On AIX, stat will store inodes in 32bit even when using LARGE_FILES.
If the inode is larger, it will return -1 in st_ino.
Thus, in incpath.c when comparing include directories, if several
of them have 64bit inodes, they will be considered as duplicated.

gcc/ChangeLog:
2021-05-06  Clément Chigot  <clement.chi...@atos.net>

        * configure.ac: Check sizeof ino_t and dev_t.
        * config.in: Regenerate.
        * configure: Regenerate.
        * config/rs6000/aix.h (HOST_STAT_FOR_64BIT_INODES): New define.
        * incpath.c (HOST_STAT_FOR_64BIT_INODES): New define.
        (remove_duplicates): Use it.

libcpp/ChangeLog:
2021-05-06  Clément Chigot  <clement.chi...@atos.net>

        * configure.ac: Check sizeof ino_t and dev_t.
        * config.in: Regenerate.
        * configure: Regenerate.
        * include/cpplib.h (INO_T_CPP): Change for AIX.
        (DEV_T_CPP): New macro.
        (struct cpp_dir): Use it.



Attachment: 0001-aix-handle-64bit-inodes-for-include-directories.patch
Description: 0001-aix-handle-64bit-inodes-for-include-directories.patch

Reply via email to