[tlbuild] build failure: texk/web2c/configure.ac tests for stat64 function but not for "struct stat64"

taco taco at elvenkind.com
Thu May 27 21:05:58 CEST 2010


Vladimir Volovich wrote:
> Hi!
> 
> i've got a build failure on AIX:
> 
> source='luatexdir/luafilesystem/src/lfs.c' object='libluamisc_a-lfs.o' libtool=no \
>         DEPDIR=.deps depmode=aix /bin/bash ../../../texk/web2c/../../build-aux/depcomp \
>         xlc -DHAVE_CONFIG_H -I. -I../../../texk/web2c -I/usr/local/vvv/src/source/Work/texk -I/usr/local/vvv/src/source/texk -I/usr/local/vvv/src/source/Work/libs/zlib/include -I/usr/local/vvv/src/source/Work/libs/zziplib/include -I../../../texk/web2c/luatexdir/lua51 -I/opt/freeware/include -DUSE_STDLIB_WORKAROUNDS  -O2 -qmaxmem=262144 -qarch=com -qlanglvl=extended -qcpluscmt -c -o libluamisc_a-lfs.o `test -f 'luatexdir/luafilesystem/src/lfs.c' || echo '../../../texk/web2c/'`luatexdir/luafilesystem/src/lfs.c
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 527.41: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 531.40: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 535.40: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 539.40: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 543.40: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 547.40: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 551.40: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 555.28: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 559.28: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 563.28: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 567.40: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 571.41: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 576.40: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 580.40: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 586.3: 1506-285 (S) The indirection operator cannot be applied to a pointer to an incomplete struct or union.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 598.27: 1506-196 (W) Initialization between types "void(*)(struct lua_State*,struct stat64*)" and "void(*)(struct lua_State*,struct stat64*)" is not allowed.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 599.27: 1506-196 (W) Initialization between types "void(*)(struct lua_State*,struct stat64*)" and "void(*)(struct lua_State*,struct stat64*)" is not allowed.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 600.27: 1506-196 (W) Initialization between types "void(*)(struct lua_State*,struct stat64*)" and "void(*)(struct lua_State*,struct stat64*)" is not allowed.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 601.27: 1506-196 (W) Initialization between types "void(*)(struct lua_State*,struct stat64*)" and "void(*)(struct lua_State*,struct stat64*)" is not allowed.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 602.27: 1506-196 (W) Initialization between types "void(*)(struct lua_State*,struct stat64*)" and "void(*)(struct lua_State*,struct stat64*)" is not allowed.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 603.27: 1506-196 (W) Initialization between types "void(*)(struct lua_State*,struct stat64*)" and "void(*)(struct lua_State*,struct stat64*)" is not allowed.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 604.27: 1506-196 (W) Initialization between types "void(*)(struct lua_State*,struct stat64*)" and "void(*)(struct lua_State*,struct stat64*)" is not allowed.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 605.27: 1506-196 (W) Initialization between types "void(*)(struct lua_State*,struct stat64*)" and "void(*)(struct lua_State*,struct stat64*)" is not allowed.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 606.27: 1506-196 (W) Initialization between types "void(*)(struct lua_State*,struct stat64*)" and "void(*)(struct lua_State*,struct stat64*)" is not allowed.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 607.27: 1506-196 (W) Initialization between types "void(*)(struct lua_State*,struct stat64*)" and "void(*)(struct lua_State*,struct stat64*)" is not allowed.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 608.27: 1506-196 (W) Initialization between types "void(*)(struct lua_State*,struct stat64*)" and "void(*)(struct lua_State*,struct stat64*)" is not allowed.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 609.27: 1506-196 (W) Initialization between types "void(*)(struct lua_State*,struct stat64*)" and "void(*)(struct lua_State*,struct stat64*)" is not allowed.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 611.27: 1506-196 (W) Initialization between types "void(*)(struct lua_State*,struct stat64*)" and "void(*)(struct lua_State*,struct stat64*)" is not allowed.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 612.27: 1506-196 (W) Initialization between types "void(*)(struct lua_State*,struct stat64*)" and "void(*)(struct lua_State*,struct stat64*)" is not allowed.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 614.17: 1506-196 (W) Initialization between types "void(*)(struct lua_State*,struct stat64*)" and "void(*)(struct lua_State*,struct stat64*)" is not allowed.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 622.9: 1506-007 (S) "struct stat64" is undefined.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 684.32: 1506-045 (S) Undeclared identifier stat64.
> "../../../texk/web2c/luatexdir/luafilesystem/src/lfs.c", line 692.32: 1506-045 (S) Undeclared identifier lstat64.
> gmake[5]: *** [libluamisc_a-lfs.o] Error 1
> 
> which seems to be caused by the check in texk/web2c/configure.ac:
> 
> AC_CHECK_FUNCS([access atoi fmax ftime gettimeofday mkdtemp setlocale snprintf stat64 strerror strlcat strlcpy])
> 
> which results in "#define HAVE_STAT64 1" in Work/texk/web2c/c-auto.h
> but despite the presence of the stat64() function, neither it, nor the
> "struct stat64" is defined in the headers in the current build environment.
> (one would need to specially define some macros to enable this API. i
> did not do that, since we're building 32-bit binaries, and there's no
> need for 64-bit I/O).
> 
> it seems that for better portability, texk/web2c/configure.ac should
> also test whether the "struct stat64" is defined in <sys/stat.h>.

Even though this is for luatex, I hope Peter will look into this
and tell me what to do (I assume an lfs.c fix will be needed after
a configure change ...)


More information about the tlbuild mailing list