Compiling with -std=iso9899:1999 is the culprit. Strict c99 mode disables gcc extensions like inline asm.
On Thu, Nov 7, 2019, 7:57 AM Dennis Clarke <dcla...@blastwave.org> wrote: > > While building sqlite from the zip file sqlite-src-3300100.zip I saw > what seems to be a normal configure and then madness : > > > boe13$ pwd > /opt/bw/build/sqlite-src-3300100_rhel_74_3.10.0-693.el7.x86_64.001 > boe13$ ./configure --prefix=/opt/bw --enable-shared --enable-static > --enable-readline --enable-threadsafe 2>&1 | tee > ../sqlite-src-3300100_rhel_74_3.10.0-693.el7.x86_64.001.config.log > checking build system type... x86_64-pc-linux-gnu > checking host system type... x86_64-pc-linux-gnu > checking for gcc... /opt/bw/gcc9/bin/gcc > checking whether the C compiler works... yes > checking for C compiler default output file name... a.out > checking for suffix of executables... > checking whether we are cross compiling... no > checking for suffix of object files... o > checking whether we are using the GNU C compiler... yes > checking whether /opt/bw/gcc9/bin/gcc accepts -g... yes > checking for /opt/bw/gcc9/bin/gcc option to accept ISO C89... none needed > checking for a sed that does not truncate output... /usr/bin/sed > checking for grep that handles long lines and -e... /usr/bin/grep > checking for egrep... /usr/bin/grep -E > checking for fgrep... /usr/bin/grep -F > checking for ld used by /opt/bw/gcc9/bin/gcc... /usr/bin/ld > checking if the linker (/usr/bin/ld) is GNU ld... yes > checking for BSD- or MS-compatible name lister (nm)... > /opt/bw/gcc9/bin/x86_64-redhat-linux-gcc-nm -p > checking the name lister (/opt/bw/gcc9/bin/x86_64-redhat-linux-gcc-nm > -p) interface... BSD nm > checking whether ln -s works... yes > checking the maximum length of command line arguments... 1572864 > checking whether the shell understands some XSI constructs... yes > checking whether the shell understands "+="... yes > checking for /usr/bin/ld option to reload object files... -r > checking for objdump... /usr/bin/objdump > checking how to recognize dependent libraries... pass_all > checking for ar... /opt/bw/gcc9/bin/x86_64-redhat-linux-gcc-ar > checking for strip... /usr/bin/strip > checking for ranlib... /opt/bw/gcc9/bin/x86_64-redhat-linux-gcc-ranlib > checking command to parse /opt/bw/gcc9/bin/x86_64-redhat-linux-gcc-nm -p > output from /opt/bw/gcc9/bin/gcc object... ok > checking how to run the C preprocessor... /opt/bw/gcc9/bin/gcc -E > checking for ANSI C header files... yes > checking for sys/types.h... yes > checking for sys/stat.h... yes > checking for stdlib.h... yes > checking for string.h... yes > checking for memory.h... yes > checking for strings.h... yes > checking for inttypes.h... yes > checking for stdint.h... yes > checking for unistd.h... yes > checking for dlfcn.h... yes > checking for objdir... .libs > checking if /opt/bw/gcc9/bin/gcc supports -fno-rtti -fno-exceptions... no > checking for /opt/bw/gcc9/bin/gcc option to produce PIC... -fPIC -DPIC > checking if /opt/bw/gcc9/bin/gcc PIC flag -fPIC -DPIC works... yes > checking if /opt/bw/gcc9/bin/gcc static flag -static works... no > checking if /opt/bw/gcc9/bin/gcc supports -c -o file.o... yes > checking if /opt/bw/gcc9/bin/gcc supports -c -o file.o... (cached) yes > checking whether the /opt/bw/gcc9/bin/gcc linker (/usr/bin/ld -m > elf_x86_64) supports shared libraries... yes > checking whether -lc should be explicitly linked in... no > checking dynamic linker characteristics... GNU/Linux ld.so > checking how to hardcode library paths into programs... immediate > checking whether stripping libraries is possible... yes > checking if libtool supports shared libraries... yes > checking whether to build shared libraries... yes > checking whether to build static libraries... yes > checking for a BSD-compatible install... /usr/bin/install -c > checking for special C compiler options needed for large files... no > checking for _FILE_OFFSET_BITS value needed for large files... no > checking for int8_t... yes > checking for int16_t... yes > checking for int32_t... yes > checking for int64_t... yes > checking for intptr_t... yes > checking for uint8_t... yes > checking for uint16_t... yes > checking for uint32_t... yes > checking for uint64_t... yes > checking for uintptr_t... yes > checking for sys/types.h... (cached) yes > checking for stdlib.h... (cached) yes > checking for stdint.h... (cached) yes > checking for inttypes.h... (cached) yes > checking malloc.h usability... yes > checking malloc.h presence... yes > checking for malloc.h... yes > checking for fdatasync... yes > checking for gmtime_r... yes > checking for isnan... yes > checking for localtime_r... yes > checking for localtime_s... no > checking for malloc_usable_size... yes > checking for strchrnul... yes > checking for usleep... yes > checking for utime... yes > checking for pread... yes > checking for pread64... yes > checking for pwrite... yes > checking for pwrite64... yes > checking for tclsh8.7... tclsh8.7 > configure: Version set to 3.30 > configure: Release set to 3.30.1 > configure: Version number set to 3030001 > checking whether to support threadsafe operation... yes > checking for library containing pthread_create... -lpthread > checking for library containing pthread_mutexattr_init... none required > checking whether to support shared library linked as release mode or > not... no > checking whether to use an in-ram database for temporary tables... no > checking if executables have the .exe suffix... unknown > checking for Tcl configuration... found /opt/bw/lib/tclConfig.sh > checking for existence of /opt/bw/lib/tclConfig.sh... loading > checking for library containing readline... no > checking for library containing tgetent... -lncurses > checking for readline in -lreadline... no > checking readline.h usability... no > checking readline.h presence... no > checking for readline.h... no > checking for /usr/include/readline.h... no > checking for /usr/include/readline/readline.h... no > checking for /usr/local/include/readline.h... no > checking for /usr/local/include/readline/readline.h... no > checking for /usr/local/readline/include/readline.h... no > checking for /usr/local/readline/include/readline/readline.h... no > checking for /usr/contrib/include/readline.h... no > checking for /usr/contrib/include/readline/readline.h... no > checking for /mingw/include/readline.h... no > checking for /mingw/include/readline/readline.h... no > checking for library containing fdatasync... none required > checking zlib.h usability... yes > checking zlib.h presence... yes > checking for zlib.h... yes > checking for library containing deflate... -lz > checking for library containing dlopen... -ldl > checking whether to support MEMSYS5... no > checking whether to support MEMSYS3... no > configure: creating ./config.status > config.status: creating Makefile > config.status: creating sqlite3.pc > config.status: creating config.h > config.status: executing libtool commands > boe13$ > boe13$ pwd > /opt/bw/build/sqlite-src-3300100_rhel_74_3.10.0-693.el7.x86_64.001 > boe13$ > boe13$ > boe13$ gmake 2>&1 | tee > ../sqlite-src-3300100_rhel_74_3.10.0-693.el7.x86_64.001.compile.log > /opt/bw/gcc9/bin/gcc -std=iso9899:1999 -O0 -m64 -g -march=k8 -mtune=k8 > -Wl,-rpath=/opt/bw/lib,--enable-new-dtags -fno-builtin -malign-double > -mpc80 -o mksourceid > > /opt/bw/build/sqlite-src-3300100_rhel_74_3.10.0-693.el7.x86_64.001/tool/mksourceid.c > /opt/bw/build/sqlite-src-3300100_rhel_74_3.10.0-693.el7.x86_64.001/tool/mksourceid.c: > > In function 'SHA1Transform': > /opt/bw/build/sqlite-src-3300100_rhel_74_3.10.0-693.el7.x86_64.001/tool/mksourceid.c:550:28: > > warning: implicit declaration of function 'asm' > [-Wimplicit-function-declaration] > 550 | ({ unsigned int y; asm(op " %1,%0" : "=r" (y) : "I" > (k), "0" (x)); y; }) > | ^~~ > /opt/bw/build/sqlite-src-3300100_rhel_74_3.10.0-693.el7.x86_64.001/tool/mksourceid.c:552:18: > > note: in expansion of macro 'SHA_ROT' > 552 | #define ror(x,k) SHA_ROT("rorl", x, k) > | ^~~~~~~ > /opt/bw/build/sqlite-src-3300100_rhel_74_3.10.0-693.el7.x86_64.001/tool/mksourceid.c:565:32: > > note: in expansion of macro 'ror' > 565 | #define blk0le(i) (block[i] = (ror(block[i],8)&0xFF00FF00) \ > | ^~~ > /opt/bw/build/sqlite-src-3300100_rhel_74_3.10.0-693.el7.x86_64.001/tool/mksourceid.c:578:22: > > note: in expansion of macro 'blk0le' > 578 | z+=((w&(x^y))^y)+blk0le(i)+0x5A827999+rol(v,5);w=ror(w,2); > | ^~~~~~ > /opt/bw/build/sqlite-src-3300100_rhel_74_3.10.0-693.el7.x86_64.001/tool/mksourceid.c:620:5: > > note: in expansion of macro 'Rl0' > 620 | Rl0(a,b,c,d,e, 0); Rl0(e,a,b,c,d, 1); Rl0(d,e,a,b,c, 2); > Rl0(c,d,e,a,b, 3); > | ^~~ > > > This has to be a configure error of some sort I hope : > > > > > boe13$ gmake 2>&1 | tee > ../sqlite-src-3300100_rhel_74_3.10.0-693.el7.x86_64.001.compile.log > /opt/bw/gcc9/bin/gcc -std=iso9899:1999 -O0 -m64 -g -march=k8 -mtune=k8 > -Wl,-rpath=/opt/bw/lib,--enable-new-dtags -fno-builtin -malign-double > -mpc80 -o mksourceid > > /opt/bw/build/sqlite-src-3300100_rhel_74_3.10.0-693.el7.x86_64.001/tool/mksourceid.c > /opt/bw/build/sqlite-src-3300100_rhel_74_3.10.0-693.el7.x86_64.001/tool/mksourceid.c: > > In function 'SHA1Transform': > /opt/bw/build/sqlite-src-3300100_rhel_74_3.10.0-693.el7.x86_64.001/tool/mksourceid.c:550:28: > > warning: implicit declaration of function 'asm' > [-Wimplicit-function-declaration] > 550 | ({ unsigned int y; asm(op " %1,%0" : "=r" (y) : "I" > (k), "0" (x)); y; }) > | ^~~ > /opt/bw/build/sqlite-src-3300100_rhel_74_3.10.0-693.el7.x86_64.001/tool/mksourceid.c:552:18: > > note: in expansion of macro 'SHA_ROT' > 552 | #define ror(x,k) SHA_ROT("rorl", x, k) > | ^~~~~~~ > /opt/bw/build/sqlite-src-3300100_rhel_74_3.10.0-693.el7.x86_64.001/tool/mksourceid.c:565:32: > > note: in expansion of macro 'ror' > 565 | #define blk0le(i) (block[i] = (ror(block[i],8)&0xFF00FF00) \ > | ^~~ > /opt/bw/build/sqlite-src-3300100_rhel_74_3.10.0-693.el7.x86_64.001/tool/mksourceid.c:578:22: > > note: in expansion of macro 'blk0le' > 578 | z+=((w&(x^y))^y)+blk0le(i)+0x5A827999+rol(v,5);w=ror(w,2); > | ^~~~~~ > /opt/bw/build/sqlite-src-3300100_rhel_74_3.10.0-693.el7.x86_64.001/tool/mksourceid.c:620:5: > > note: in expansion of macro 'Rl0' > 620 | Rl0(a,b,c,d,e, 0); Rl0(e,a,b,c,d, 1); Rl0(d,e,a,b,c, 2); > Rl0(c,d,e,a,b, 3); > . > . > . > > This all seems very strange as sqlite is usually a rock of gibraltar > stable and easy process to get built and tested. > > What dumb thing did I do here ? > > > > -- > Dennis Clarke > RISC-V/SPARC/PPC/ARM/CISC > UNIX and Linux spoken > GreyBeard and suspenders optional > _______________________________________________ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users