On multi-TB storage array with XFS filesystem I have to enable 64bit inodes
recently (inode64 mount option). Having test.c with:

int main(void){
  return 0;
}

compiles fine for one file, but if i copy it to another one (several times till
it got the right inode number) it produces:

r...@matylda1: /mnt/data/kasparek# LC_ALL=C gcc -o test.o test-10356.c
cc1: error: test-10356.c: Value too large for defined data type

The only difference I believe is inode number, definitely not the content of
the file:

r...@matylda1: /mnt/data/kasparek# stat test.c
  File: `test.c'
  Size: 30              Blocks: 8          IO Block: 4096   regular file
Device: 810h/2064d      Inode: 10853690    Links: 1

r...@matylda1: /mnt/data/kasparek# stat test-10356.c
  File: `test-10356.c'
  Size: 30              Blocks: 8          IO Block: 4096   regular file
Device: 810h/2064d      Inode: 15447948189  Links: 1


from strace I found that cc1 is doing fstat64 call on the source code file and
then finishes with this message. The first this I need to help with is how to
check if the code that causes this (expect somewhere is used 32bit variable to
store the inode) is from gcc itself or it is some third-party library. I
checked latest version of 4.0, 4.1, 4.2, 4.3, 4.4, 4.5 branches and all behave
the same. The system is x86_64 2.6.32.12 kernel on CentOS 5.4. All GCCs are
32bit binaries (with cross compiler for x86_64, mips, arm and alpha having the
same behavior).

Thanks in advance.


-- 
           Summary: 64bit inodes for source code causes "Value too large for
                    defined data type" (XFS,inode64)
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: major
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: kasparek at fit dot vutbr dot cz
 GCC build triplet: x86_64-pc-linux-gnu
  GCC host triplet: x86_64-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44116

Reply via email to