I have tried for some hours to figure out how to get full control over the paths that are implicitly searched for *libgcc.a*. As an example, here is the command that is passed to *collect2*: /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccwIgXt9.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o main /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. --verbose /tmp/ccR9vB4k.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o This boils down to something like: [LINK_SPEC] [STARTFILE_SPEC] [The Evasive Library Paths] --verbose /tmp/ccR9vB4k.o [REAL_LIBGCC_SPEC] [LIB_SPEC] ..... Where, [The Evasive Library Paths] = -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. It is [The Evasive Library Paths] that I am trying to get fine control over. It seems that these are just automatically inserted because we are linking with -lgcc which makes total sense - but I need to have full control over it and may want to change it. The rest of the command line for *collect2* is understandable and modifiable since I can match it up with the relevant SPEC file. Only these evasive library paths are causing me a lot of wasted hours. I was looking at *LINK_COMMAND_SPEC* ( https://gcc.gnu.org/onlinedocs/gcc-5.2.0/gccint/Driver.html) as a potential work around, but I thought that, since it is already late, I would just ask on here. Regards,