4paradigm / 4paradigm/OpenMLDB

duplicate static library link

Aperta
#1,385 8 commenti 0 reazioni 2 assegnatari Rivendicata da @aceforeverd Vedi su GitHub
bug build
Lingua principale
C++
Stelle
1.7k
Fork
331
Merge medio
12g 12h
PR unite (30g)
1

Descrizione

## 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.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
cmake, cpp
Ambito
build-system
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Specificata chiaramente
Idoneità per principianti
40/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.