|
Am 03.01.2015 um 18:01 schrieb Roberto Ierusalimschy:
Am 03.01.2015 um 15:23 schröbte Lorenzo Donati:Compiled with TDM-GCC 4.8.1-32bit under Windows-7 64bit (yes 32 bit compiler in a 64bit machine) and got some warnings:[...]lua.c: In function 'pmain': lua.c:584:5: warning: implicit declaration of function '_fileno' [-Wimplicit-function-declaration] if (lua_stdin_is_tty()) { /* running in interactive mode? */ ^ liolib.c: In function 'io_pclose': liolib.c:260:3: warning: implicit declaration of function '_pclose' [-Wimplicit-function-declaration] return luaL_execresult(L, l_pclose(L, p->f)); ^ liolib.c: In function 'io_popen': liolib.c:268:3: warning: implicit declaration of function '_popen' [-Wimplicit-function-declaration] p->f = l_popen(L, filename, mode); ^ liolib.c:268:8: warning: assignment makes pointer from integer without a cast [enabled by default] p->f = l_popen(L, filename, mode); ^Those are probably the result of the new `-std=c99` flag in the makefile: `-std=c99` implies `__STRICT_ANSI__`, and the above mentioned functions are not declared if `__STRICT_ANSI__` is in effect. We could replace `-std=c99` with `-std=gnu99` for all architectures, or just append `-std=gnu99` to the compiler command line (after the `-std=c99`) for the mingw target only.Can someone check whether adding "CC=gcc -std=gnu99" to the call to 'make' solve these warnings (and define a working version of 'io.popen')? Many thanks, -- Roberto
I changed "CC=gcc -std=gnu99" in src/Makefile and got no errors. I used gcc (tdm-1) 4.9.2 (32bit) but 4.8.1. Ulrich.
d:\_Sources\LUA\lua-5.3.0>make mingw cd src && make mingw make[1]: Entering directory 'd:/_Sources/LUA/lua-5.3.0/src' make "LUA_A=lua53.dll" "LUA_T=lua.exe" \ "AR=gcc -std=gnu99 -shared -o" "RANLIB=strip --strip-unneeded" \ "SYSCFLAGS=-DLUA_BUILD_AS_DLL" "SYSLIBS=" "SYSLDFLAGS=-s" lua.exe make[2]: Entering directory 'd:/_Sources/LUA/lua-5.3.0/src' gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o lua.o lua.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o lapi.o lapi.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o lcode.o lcode.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o lctype.o lctype.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o ldebug.o ldebug.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o ldo.o ldo.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o ldump.o ldump.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o lfunc.o lfunc.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o lgc.o lgc.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o llex.o llex.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o lmem.o lmem.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o lobject.o lobject.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o lopcodes.o lopcodes.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o lparser.o lparser.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o lstate.o lstate.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o lstring.o lstring.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o ltable.o ltable.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o ltm.o ltm.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o lundump.o lundump.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o lvm.o lvm.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o lzio.o lzio.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o lauxlib.o lauxlib.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o lbaselib.o lbaselib.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o lbitlib.o lbitlib.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o lcorolib.o lcorolib.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o ldblib.o ldblib.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o liolib.o liolib.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o lmathlib.o lmathlib.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o loslib.o loslib.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o lstrlib.o lstrlib.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o ltablib.o ltablib.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o lutf8lib.o lutf8lib.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o loadlib.o loadlib.c gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_BUILD_AS_DLL -c -o linit.o linit.c gcc -std=gnu99 -shared -o lua53.dll lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o lauxlib.o lbaselib.o lbitlib.o lcorolib.o ldblib.o liolib.o lmath lib.o loslib.o lstrlib.o ltablib.o lutf8lib.o loadlib.o linit.o strip --strip-unneeded lua53.dll gcc -std=gnu99 -o lua.exe -s lua.o lua53.dll -lm make[2]: Leaving directory 'd:/_Sources/LUA/lua-5.3.0/src' make "LUAC_T=luac.exe" luac.exe make[2]: Entering directory 'd:/_Sources/LUA/lua-5.3.0/src' gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -c -o luac.o luac.c ar rcu liblua.a lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o l string.o ltable.o ltm.o lundump.o lvm.o lzio.o lauxlib.o lbaselib.o lbitlib.o lcorolib.o ldblib.o liolib.o lmathlib.o loslib.o lstrl ib.o ltablib.o lutf8lib.o loadlib.o linit.o ranlib liblua.a gcc -std=gnu99 -o luac.exe luac.o liblua.a -lm make[2]: Leaving directory 'd:/_Sources/LUA/lua-5.3.0/src' make[1]: Leaving directory 'd:/_Sources/LUA/lua-5.3.0/src' d:\_Sources\LUA\lua-5.3.0>gcc --version gcc (tdm-1) 4.9.2 Copyright (C) 2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.