We are rebuilding the centos 6.8 src.rpm's for both 64-bit (.x86_64.rpm) and also 32-bit-compat (.i686.rpm)
When making 32-bit compatible build on a disk >2TB, the build will fail because or large inodes:
/home/mlos/WORK/os/PACKAGES/glibc/WORK/BUILD/glibc-2.12-2-gc4ccff1/build-i686-linuxnptl/elf/sln /home/mlos/WORK/os/PACKAGES/glibc/WORK/BUILD/glibc-2.12-2-gc4ccff1/build-i686-linuxnptl/elf/symlink.list /home/mlos/WORK/os/PACKAGES/glibc/WORK/glibc-root/lib/ld-linux.so.2: invalid destination: Value too large for defined data type
The solution is to add "-D_FILE_OFFSET_BITS=64" and this has fixed the issue on glibc and all our other i686 RPM builds.
However, with the latest update glibc-2.12-1.192.el6.src.rpm we find adding the above flag will cause the following error:
In file included from ftello.c:29: ../include/stdio.h:151: warning: asm declaration ignored due to conflict with previous rename ftello.c:66: error: '__EI_ftello' aliased to undefined symbol '__GI_ftello' make[3]: *** [/home/mlos/WORK/os/PACKAGES/glibc/WORK/BUILD/glibc-2.12-2-gc4ccff1/build-i686-linuxnptl/libio/ftello.os] Error 1
Has anyone else hit this issue? Any tips appreciated.
On Thu, Jul 21, 2016 at 02:39:56PM -0600, Captain Wiggum wrote:
We are rebuilding the centos 6.8 src.rpm's for both 64-bit (.x86_64.rpm) and also 32-bit-compat (.i686.rpm)
When making 32-bit compatible build on a disk >2TB, the build will fail because or large inodes:
/home/mlos/WORK/os/PACKAGES/glibc/WORK/BUILD/glibc-2.12-2-gc4ccff1/build-i686-linuxnptl/elf/sln /home/mlos/WORK/os/PACKAGES/glibc/WORK/BUILD/glibc-2.12-2-gc4ccff1/build-i686-linuxnptl/elf/symlink.list /home/mlos/WORK/os/PACKAGES/glibc/WORK/glibc-root/lib/ld-linux.so.2: invalid destination: Value too large for defined data type
The solution is to add "-D_FILE_OFFSET_BITS=64" and this has fixed the issue on glibc and all our other i686 RPM builds.
However, with the latest update glibc-2.12-1.192.el6.src.rpm we find adding the above flag will cause the following error:
In file included from ftello.c:29: ../include/stdio.h:151: warning: asm declaration ignored due to conflict with previous rename ftello.c:66: error: '__EI_ftello' aliased to undefined symbol '__GI_ftello' make[3]: *** [/home/mlos/WORK/os/PACKAGES/glibc/WORK/BUILD/glibc-2.12-2-gc4ccff1/build-i686-linuxnptl/libio/ftello.os] Error 1
Has anyone else hit this issue? Any tips appreciated.
Have you tried adding also -D_LARGE_SOURCE or -D_LARGEFILE64_SOURCE ? I remember in the past you had to define both _FILE_OFFSET_BITS=64" and _LARGEFILE64_SOURCE for full 64 bit support for 32-bit programs. I mention _LARGE_SOURCE because it may be relevant here: `-- Macro: _LARGEFILE_SOURCE If this macro is defined some extra functions are available which rectify a few shortcomings in all previous standards. Specifically, the functions 'fseeko' and 'ftello' are available. Without these functions the difference between the ISO C interface ('fseek', 'ftell') and the low-level POSIX interface ('lseek') would lead to problems.
This macro was introduced as part of the Large File Support extension (LFS).' which may be relevant to the ftello error you get.
peter
Thank you for the suggestion Peter. I have tried each of these individually and both in combination, with no change in behavior. :-( If I build without -D_FILE_OFFSET_BITS=64 then my i686-compat code will not run on servers with >2TB disk volumes.
I think this may be an error in the glibc code or build. Any tips appreciated.
On Thu, Jul 21, 2016 at 2:50 PM, Peter van Hooft < hooft@natlab.research.philips.com> wrote:
On Thu, Jul 21, 2016 at 02:39:56PM -0600, Captain Wiggum wrote:
We are rebuilding the centos 6.8 src.rpm's for both 64-bit (.x86_64.rpm) and also 32-bit-compat (.i686.rpm)
When making 32-bit compatible build on a disk >2TB, the build will fail because or large inodes:
/home/mlos/WORK/os/PACKAGES/glibc/WORK/BUILD/glibc-2.12-2-gc4ccff1/build-i686-linuxnptl/elf/sln
/home/mlos/WORK/os/PACKAGES/glibc/WORK/BUILD/glibc-2.12-2-gc4ccff1/build-i686-linuxnptl/elf/symlink.list
/home/mlos/WORK/os/PACKAGES/glibc/WORK/glibc-root/lib/ld-linux.so.2: invalid destination: Value too large for defined data type
The solution is to add "-D_FILE_OFFSET_BITS=64" and this has fixed the issue on glibc and all our other i686 RPM builds.
However, with the latest update glibc-2.12-1.192.el6.src.rpm we find
adding
the above flag will cause the following error:
In file included from ftello.c:29: ../include/stdio.h:151: warning: asm declaration ignored due to conflict with previous rename ftello.c:66: error: '__EI_ftello' aliased to undefined symbol
'__GI_ftello'
make[3]: ***
[/home/mlos/WORK/os/PACKAGES/glibc/WORK/BUILD/glibc-2.12-2-gc4ccff1/build-i686-linuxnptl/libio/ftello.os]
Error 1
Has anyone else hit this issue? Any tips appreciated.
Have you tried adding also -D_LARGE_SOURCE or -D_LARGEFILE64_SOURCE ? I remember in the past you had to define both _FILE_OFFSET_BITS=64" and _LARGEFILE64_SOURCE for full 64 bit support for 32-bit programs. I mention _LARGE_SOURCE because it may be relevant here: `-- Macro: _LARGEFILE_SOURCE If this macro is defined some extra functions are available which rectify a few shortcomings in all previous standards. Specifically, the functions 'fseeko' and 'ftello' are available. Without these functions the difference between the ISO C interface ('fseek', 'ftell') and the low-level POSIX interface ('lseek') would lead to problems.
This macro was introduced as part of the Large File Support extension (LFS).'
which may be relevant to the ftello error you get.
peter
CentOS-devel mailing list CentOS-devel@centos.org https://lists.centos.org/mailman/listinfo/centos-devel