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

Reply via email to