polardbx-sql
polardbx-sql copied to clipboard
[bug] Compiling DataNode(galaxyengine) needs gcc 9 or later
phenonmenon
When I followed the source installation guide to compile galaxyengine, I found gcc cannot support -fuse-ld=lld option, the error messages of CMakeFiles/CMakeError.log looks like:
Linking C executable cmTC_6284a
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_6284a.dir/link.txt --verbose=1
/usr/bin/gcc -fno-omit-frame-pointer -DC_LD_LLD_RESULT CMakeFiles/cmTC_6284a.dir/src.c.o -o cmTC_6284a -fuse-ld=lld
gcc: error: unrecognized command line option '-fuse-ld=lld'; did you mean '-fuse-ld=bfd'?
MakeFiles/cmTC_6284a.dir/build.make:97: recipe for target 'cmTC_6284a' failed
gmake[1]: *** [cmTC_6284a] Error 1
analysis
The help of gcc(/usr/bin/gcc -v --help 2>&1 | grep -E "fuse-ld") shows that is -fuse-ld=lld is not a avaiable option. Then, I checked the GNU manuals, I found which version of gcc you recommended in the installation guide DO NOT support -fuse-ld=lld in your cmake receipe in total.
- gcc 7.4 options for linking: no
-fuse-ld=lld - gcc 7.5 options for linking: no
-fuse-ld=lld - gcc 8.4 options for linking: no
-fuse-ld=lld - gcc 8.5 options for linking: no
-fuse-ld=lld - gcc 9.1 options for linking: support
-fuse-ld=lld
According to the release of gcc, it is obvious that the neccessary gcc version is 9.1 or later .
suggestion
Update the source installation guide GCC 7 with GCC 9.
environment
galaxyengine main/4cc03124f8530c03c948d2b9d91624ca196e8f22 openSUSE Leap 42.3 gcc 7.4.0
Duplicated with https://github.com/ApsaraDB/galaxyengine/issues/11. Close this pls.
@fuyufjh This issue is about the document, so I placed it here. So you now know how confused I find that the document and its code repository are seperated...