Xymon Mailing List Archive search

LFS support check failed for standard file support - xymon 3.0

list Henrik Størner
Mon, 14 Mar 2011 16:55:16 +0100
Message-Id: <user-a277ba6833c3@xymon.invalid>

  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

1) The value of "sizeof(off_t)"
2) A boolean (0/1) value to see if sizeof(off_t) is what I expect
3) 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).

1) 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