Closed epgmat closed 8 months ago
Yes, there are some incompatibilities with GCC 6 on IBM i 7.5. We have no plans to fix GCC 6, but GCC 10 will work. You can use CC=gcc-10 CXX=g++-10 python3.9 -m pip ...
on IBM i 7.5.
In that case, shouldn't gcc-10 be the default compiler for IBM i 7.5? Since the current default compiler (SYMLNK /QOpenSys/pkgs/bin/gcc -> gcc-6) does not work correctly and will not be fixed.
Yes, there are some incompatibilities with GCC 6 on IBM i 7.5. We have no plans to fix GCC 6, but GCC 10 will work. You can use
CC=gcc-10 CXX=g++-10 python3.9 -m pip ...
on IBM i 7.5.
When I run python3.9 -m pip -v install lxml
(adding parameter verbose), I can see that gcc will be called with parameter -pthread:
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -O2 -g -maix64 -mtune=power7 -mcpu=power7 -maltivec -mvsx -O2 -g -maix64 -mtune=power7 -mcpu=power7 -maltivec -mvsx -fPIC -DCYTHON_CLINE_IN_TRACEBACK=0 -I/QOpenSys/pkgs/include/libxml2 -I/QOpenSys/pkgs/include -Isrc -Isrc/lxml/includes -I/QOpenSys/pkgs/include/python3.9 -c src/lxml/etree.c -o build/temp.os400-powerpc64-3.9/src/lxml/etree.o -w
When using gcc-10 via the environment variables it does not be called with parameter -pthread:
gcc-10 -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -O2 -g -maix64 -mtune=power7 -mcpu=power7 -maltivec -mvsx -O2 -g -maix64 -mtune=power7 -mcpu=power7 -maltivec -mvsx -fPIC -DCYTHON_CLINE_IN_TRACEBACK=0 -I/QOpenSys/pkgs/include/libxml2 -I/QOpenSys/pkgs/include -Isrc -Isrc/lxml/includes -I/QOpenSys/pkgs/include/python3.9 -c src/lxml/etree.c -o build/temp.os400-powerpc64-3.9/src/lxml/etree.o -w
So should I add the parameter -pthread to the CC variable? Like: CC="gcc-10 -pthread" CXX=g++-10 python3.9 -m pip ...
?
Ah yeah, looks like the compiler in /QOpenSys/pkgs/lib/python3.9/_sysconfigdata__os400_.py
is gcc -pthread
, so CC='gcc-10 -pthread'
would be appropriate and similarly for CXX.
Thanks for this thread. Was able to install bcrypt==3.1.7 with gcc10 on IBM V7R5. When you don't fix gcc6 anymore shoudn't be gcc10 the default for future releases?
If we had per-release packages, then yeah. We do plan to rebuild everything with GCC 10 and make it the default, but I don't know when that will happen.
We have installed a new IBM i 7.5 LPAR and have now gcc errors when installing the Python 3.9 package lxml:
On IBM i 7.4 the installation runs without errors.
The same issue occurred on AIX 7.2 TL 5: https://community.ibm.com/community/user/power/discussion/gcc-struct-sigset-t-conflicts-with-aix-systimeh
It seems that IBM has fixed this header issue in gcc-10 but not for gcc-6. gcc-6 should also be fixed because IBM i 7.5 uses gcc-6 as the default compiler for their RPM builds: https://kadler.io/2021/04/07/mar-oss-updates.html
Thanks, Matthias