MAKE="gmake" sh -x ./build/lfs.sh
- echo Checking for Large File Support ... Checking for Large File Support ...
- cd build
- gmake -f Makefile.test-lfs clean
- uname -s
- tr [/] [_] OS=SunOS gmake: *** [clean] Error 2
- gmake -f Makefile.test-lfs gmake: Nothing to be done for `all'.
- [ 0 -ne 0 ]
- ./test-lfs-std 4 STDRES=4:1:-78191077919555584
- test 4:1:-78191077919555584 != 4:1:0 -a 4:1:-78191077919555584 != 8:1:0
- echo ERROR: LFS support check failed for standard file support ERROR: LFS support check failed for standard file support
- exit 1
This is bizarre.
What this does is that it builds a tiny test program using standard compiler-flags first, and then the flags that you would normally use when compiling for large file support (LFS).
When compiled without LFS, I expect the normal file offset "off_t" variable to be 32 bits (4 bytes); with LFS, I would expect it to be 64-bits (8 bytes). To test that, the program prints out
The value of "sizeof(off_t)"
A boolean (0/1) value to see if sizeof(off_t) is what I expect
The value of an off_t variable that has been cleared to zero using memset() - we need to print these values occasionally (e.g. for keeping track of how long into a logfile we have already scanned).
and 2) look OK, but the value prints as "-7819...." There is no way I can see how that can happen - that variable has been cleared to 0 just a few lines above the print-statement.
Just to see if I'm completely wrong, could you try running this for me:
cd build rm test-lfs-std test-lfs-lfs OS=SunOS gmake -f Makefile.test-lfs ./test-lfs-std 4 ./test-lfs-lfs 8
The output from the last line would be interesting.
Thanks, Henrik