Macro expansion of B0 on Linux PPC system

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Macro expansion of B0 on Linux PPC system

Lee, Greg
When I try to build sqlite 3.18.0 on a Linux PPC system, I get a compile-time error. It looks like shell.c is trying to define a local variable "B0" in one of its routines. However, the include chain includes the termios.h header, which defines a macro "B0." I can easily work around this by undefining the macro, but thought it may be worth reporting for an upstream fix. Below is my system's information and the Makefile output.

Thanks,

                -Greg

[lee218@rzmanta23:spack.rzmanta2]$ uname -a
Linux rzmanta23 3.10.0-514.2.2.2chaos.ch6.ppc64le #1 SMP Wed Jan 11 16:59:26 PST 2017 ppc64le ppc64le ppc64le GNU/Linux

[lee218@rzmanta23:spack.rzmanta2]$ rpm -q glibc-headers
glibc-headers-2.17-157.el7.ppc64le

[lee218@rzmanta23:spack.rzmanta2]$ gcc --version
gcc (GCC) 4.9.3
Copyright (C) 2015 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.



gcc -DPACKAGE_NAME=\"sqlite\" -DPACKAGE_TARNAME=\"sqlite\" -DPACKAGE_VERSION=\"3.18.0\" -DPACKAGE_STRING=\"sqlite\ 3.18.0\" -DPACKAGE_BUGREPORT=\"http://www.sqlite.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"sqlite\" -DVERSION=\"3.18.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_FDATASYNC=1 -DHAVE_USLEEP=1 -DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1 -DHAVE_DECL_STRERROR_R=1 -DHAVE_STRERROR_R=1 -DHAVE_EDITLINE_READLINE_H=1 -DHAVE_EDITLINE=1 -DHAVE_POSIX_FALLOCATE=1 -I. -I/nfs/tmp2/lee218/delete/spack.rzmanta2/var/spack/stage/sqlite-3.18.0-s7e2if4k2ygdmfbkiodulgrxmgg44vfy/sqlite-autoconf-3180000    -D_REENTRANT=1 -DSQLITE_THREADSAFE=1     -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_EXPLAIN_COMMENTS -g -O2 -MT sqlite3-sqlite3.o -MD -MP -MF .deps/sqlite3-sqlite3.Tpo -c -o sqlite3-sqlite3.o `test -f 'sqlite3.c' || echo '/nfs/tmp2/lee218/delete/spack.rzmanta2/var/spack/stage/sqlite-3.18.0-s7e2if4k2ygdmfbkiodulgrxmgg44vfy/sqlite-autoconf-3180000/'`sqlite3.c
In file included from /usr/include/termios.h:40:0,
                 from /usr/include/bits/ioctl-types.h:5,
                 from /usr/include/sys/ioctl.h:29,
                 from /usr/include/editline/readline.h:77,
                 from shell.c:71:
shell.c: In function 'KeccakF1600Step':
shell.c:722:7: error: expected identifier or '(' before numeric constant
   u64 B0, B1, B2, B3, B4;
       ^
shell.c:778:8: error: lvalue required as left operand of assignment
     B0 = (A00^D0);
        ^
shell.c:779:5: error: 'B1' undeclared (first use in this function)
     B1 = ROL64((A11^D1), 44);
     ^
shell.c:779:5: note: each undeclared identifier is reported only once for each function it appears in
shell.c:780:5: error: 'B2' undeclared (first use in this function)
     B2 = ROL64((A22^D2), 43);
     ^
shell.c:781:5: error: 'B3' undeclared (first use in this function)
     B3 = ROL64((A33^D3), 21);
     ^
shell.c:782:5: error: 'B4' undeclared (first use in this function)
     B4 = ROL64((A44^D4), 14);
     ^
shell.c:793:8: error: lvalue required as left operand of assignment
     B0 = ROL64((A03^D3), 28);
        ^
shell.c:802:8: error: lvalue required as left operand of assignment
     B0 = ROL64((A01^D1), 1);
        ^
shell.c:816:8: error: lvalue required as left operand of assignment
     B0 = ROL64((A04^D4), 27);
        ^
shell.c:825:8: error: lvalue required as left operand of assignment
     B0 = ROL64((A02^D2), 62);
        ^
shell.c:845:8: error: lvalue required as left operand of assignment
     B0 = (A00^D0);
        ^
shell.c:860:8: error: lvalue required as left operand of assignment
     B0 = ROL64((A33^D3), 28);
        ^
shell.c:869:8: error: lvalue required as left operand of assignment
     B0 = ROL64((A11^D1), 1);
        ^
shell.c:883:8: error: lvalue required as left operand of assignment
     B0 = ROL64((A44^D4), 27);
        ^
shell.c:892:8: error: lvalue required as left operand of assignment
     B0 = ROL64((A22^D2), 62);
        ^
shell.c:912:8: error: lvalue required as left operand of assignment
     B0 = (A00^D0);
        ^
shell.c:927:8: error: lvalue required as left operand of assignment
     B0 = ROL64((A43^D3), 28);
        ^
shell.c:936:8: error: lvalue required as left operand of assignment
     B0 = ROL64((A31^D1), 1);
        ^
shell.c:950:8: error: lvalue required as left operand of assignment
     B0 = ROL64((A24^D4), 27);
        ^
shell.c:959:8: error: lvalue required as left operand of assignment
     B0 = ROL64((A12^D2), 62);
        ^
shell.c:979:8: error: lvalue required as left operand of assignment
     B0 = (A00^D0);
        ^
shell.c:994:8: error: lvalue required as left operand of assignment
     B0 = ROL64((A13^D3), 28);
        ^
shell.c:1003:8: error: lvalue required as left operand of assignment
     B0 = ROL64((A21^D1), 1);
        ^
shell.c:1017:8: error: lvalue required as left operand of assignment
     B0 = ROL64((A34^D4), 27);
        ^
shell.c:1026:8: error: lvalue required as left operand of assignment
     B0 = ROL64((A42^D2), 62);
        ^
make: *** [Makefile:543: sqlite3-shell.o] Error 1
_______________________________________________
sqlite-users mailing list
[hidden email]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users