我正在编写小型低级运行时库以获取乐趣。
根据libgcc网站,此类库是编译器用来执行某些操作的库,这些操作过于复杂而无法发出内联代码。 GCC 自动使用这个库。您可以使用
-nostdlib
,但这只会禁用 libgcc,我想使用不同的(我的)库。通过 clang,我只找到了如何使用 libgcc 而不是 LLVM 的编译器-rt。
我希望 gcc 或 clang 编译器使用我自己的库,而不是 libgcc 或编译器-rt。
如果您准备编译自定义版本的 GCC,我有一个解决方案。
如果您对此不熟悉,我建议您阅读操作系统特定工具链,因为它提供了有关此主题的良好背景知识。
GCC 允许您在此过程中在配置文件中定义
LIBGCC_SPEC
。如gcc/gcc.cc
、中所述
config.h 可以定义 LIBGCC_SPEC 来覆盖 libgcc.a 的方式和时间 包括在内。
这将允许您直接使用自定义的 libgcc 等效项,而不必浪费时间
-nostdlib
。