在我的系统上,当我编译某些东西(bfin-linux-uclibc-g++
但这是无关紧要的)时,我会收到数百条关于编译器标志之一的警告(不在我自己的代码库中)。我想禁用它。
fde encoding in src/SpiMessageUtil.o(.eh_frame) prevents .eh_frame_hdr table being created.
这源于一个默认的 gcc 标志,该标志被移交给链接器,通过添加'-v'
到编译步骤很容易检查:
COLLECT_GCC_OPTIONS=... --eh-frame-hdr ...
我想摆脱这个选项,它确实是默认定义的:
bfin-linux-uclibc-g++ -dumpspecs | grep frame-hdr
%{!static:--eh-frame-hdr}\
%{mfdpic: -m elf32bfinfd -z text} %{shared} %{pie} \
%{static:-dn -Bstatic} %{shared:-G -Bdynamic} \
%{!shared: %{!static: %{rdynamic:-export-dynamic} \
%{!dynamic-linker:-dynamic-linker \
%{mglibc:%{muclibc:%e-mglibc and -muclibc used together;:%e-mglibc not supported for this target};:/lib/ld-uClibc.so.0 \
}}}\
%{static}} -init __init -fini __fini
如何覆盖此选项?我不能使用-Wl,--no-eh-frame-hdr
,因为没有类似的定义。