polardb / polardb/polardbx-sql
[bug] Compiling DataNode(galaxyengine) needs gcc 9 or later
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 1.7k
- Forks
- 337
- PR merge metrics
- No merged PRs in 30d
Description
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
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Review docs/en/quickstart-development.md alongside the reported CMake linker failure and GCC version references. Update the documented prerequisite from GCC 7 to GCC 9 or later, then verify the guide no longer contradicts the reported -fuse-ld=lld requirement.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake
- Domain
- build-system, documentation
- Issue type
- Documentation
- Difficulty
- 1/5
- Estimated time
- Under an hour
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 35/100