4paradigm / 4paradigm/OpenMLDB
duplicate static library link
- Dominant language
- C++
- Stars
- 1.7k
- Forks
- 331
- Avg merge
- 12d 12h
- Merged PRs (30d)
- 1
Description
## Expected Behavior
static lib should be linked only one time.
## Current Behavior
Some static libs are linked multiple times.
in [`src/sdk/CMakeLists.txt`](https://github.com/4paradigm/OpenMLDB/blob/2f85d12cd8dadd3a1ec822e1f591632341f3b23f/src/sdk/CMakeLists.txt#L52)
`set(SDK_LIBS openmldb_sdk openmldb_catalog client zk_client schema openmldb_flags openmldb_codec openmldb_proto base hybridse_sdk zookeeper_mt ${VM_LIBS} ${LLVM_LIBS} ${BRPC_LIBS} ${ZETASQL_LIBS}) `
where `${VM_LIBS} ${LLVM_LIBS} ${BRPC_LIBS} ${ZETASQL_LIBS} ` are not necessary and already linked by `hybridse_sdk`.
It may cause unexpected fault if we link multiple times. see [here](https://github.com/4paradigm/OpenMLDB/runs/5425348767?check_suite_focus=true)
## Possible Solution
It is not obvious what will happen if we link a static lib multiple times. We have to figure it out what are the correct way to do this.
I believe there are other places where there are duplicate links except the `SDK_LIBS`. But it for now does not trigger any error or unexpected crash.
Contributor guide
Research direction
The issue points to src/sdk/CMakeLists.txt line 52 where SDK_LIBS includes duplicate static libraries. First, examine the CMakeLists.txt to understand the library dependencies, particularly how hybridse_sdk includes VM_LIBS, LLVM_LIBS, BRPC_LIBS, and ZETASQL_LIBS. Then, search for other duplicate links in the codebase. Test the build after removing the duplicates to ensure no linking errors occur.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, cpp
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 40/100