私のシステムでは、何かをコンパイルすると(bfin-linux-uclibc-g++
で、それは無関係ですが)、私はコンパイラのフラグの1つに関して何百もの警告を出します。私はそれを無効にしたい。デフォルトのgccオプションをリンカに適用する方法は?
fde encoding in src/SpiMessageUtil.o(.eh_frame) prevents .eh_frame_hdr table being created.
これは、コンパイル手順に'-v'
を追加することでチェックすることは容易であるリンカーに引き渡されるデフォルトのgccのフラグからorginates:
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
を使用することはできません。なぜなら、定義されたものは何もないからです。
私はこのオプションを無効にしました: 'strace/opt/uClinux/bfin-linux-uclibc/bin/bfin-linux-uclibc-gcc 2>&1 | grep -i spec'を実行し、これらのディレクトリの一つである 'bfin-linux-uclibc-g ++ -dumpspecs> specs'に行き、' specs'ファイルを手動で更新します。しかし、醜い見えます。フラグを削除しても警告が取り除かれるわけではありませんが、バグ(2013年1月22日パッチを参照)です。http://sourceware.org/ml/binutils/2013-01/msg00333.htmlこれは本当にあなたがこれをやろうとしているか、もっと美しい方法がありますか? –