Add linker tools
Nessuno ha ancora preso questa issue.
- Lingua principale
- TypeScript
- Stelle
- 276
- Fork
- 37
- Merge medio
- 1g 4h
- PR unite (30g)
- 12
Descrizione
Tasks
-
lldcan be easily added as it is already supported. We just need to add a CLI and actions option for it. It should be treated the same asclangtidy, etc. - mold
- sold
- gold
Description
Hi,
I was using setup-cpp with project_options (in my docker build) and custemize the linker option, see find_linker.
Would be nice to install mold or one of the other (better) Linker, rather then (gcc) ld or gold.
Improving C++ Compilation Times: Tools & Techniques - Vittorio Romeo - ACCU 2023
So install (?) ...
mold(e.g. whencompilerisgcc)lldwhencompilerisllvm(default)soldfor Mac OS- windows: ???
npx setup-cpp --compiler gcc --linker mold --cmake true --ninja true --ccache true --vcpkg true
More Context
I was getting this Error: /usr/bin/ld.gold: separate-code: unknown -z option.
CMakeOptions.cmake
find_linker(PROJECT_OPTIONS_LINKER)
MESSAGE(STATUS "Use Linker: ${PROJECT_OPTIONS_LINKER}")
project_options(
...
LINKER
${PROJECT_OPTIONS_LINKER})
Compiler found: /usr/bin/g++-13
Use Linker: gold
After that I just installed mold and everything works:
RUN apt-get update -qq && \
# install nodejs
apt-get install -y --no-install-recommends nodejs npm && \
# install setup-cpp
npm install -g setup-cpp@v0.41.0 && \
# install the compiler and tools
setup-cpp \
--nala true \
--compiler ${compiler} \
--cmake true \
--ninja true \
--task true \
--vcpkg true \
--cppcheck true \
--gcovr true \
--doxygen true \
--ccache true && \
# install custom linker
apt-get install -y --no-install-recommends mold && \
# cleanup
nala autoremove -y && \
nala autopurge -y && \
apt-get clean && \
nala clean --lists && \
rm -rf /var/lib/apt/lists/* && \
rm -rf /tmp/*
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia tracciando la gestione delle opzioni di setup-cpp CLI e GitHub Actions per gli strumenti del compilatore, confrontandola con il supporto in stile clangtidy menzionato nel task. Esamina l’uso di CMakeOptions.cmake e find_linker mostrato nella issue, quindi definisci il comportamento di installazione e selezione per lld, mold, sold e gold sulle piattaforme indicate. Il lavoro è completato quando le opzioni del linker richieste possono essere selezionate tramite la CLI e la configurazione di Actions.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- cmake, cpp, github-actions, typescript
- Ambito
- build-system, ci-cd, tooling
- Tipo di issue
- Funzionalità
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100