私が持っている場合tmp.c
:
char constantFOO[0x12];
char constantBAR[0x34];
gcc -c tmp.c -o tmp.o && nm tmp.o
ショーを見ます
0000000000000034 C constantBAR
0000000000000012 C constantFOO
しかし、 でコンパイルすると-flto -ffat-lto-objects
、nm
シンボル値にゼロが出力されます。
00000000 C constantBAR
00000000 C constantFOO
両方のファイルの 16 進ダンプで値34
と値を取得できます。12
.o
私の質問は
nm
LTO ファット ファイルでの の動作は期待どおりですか? 期待していない入力を与えているだけで、ガベージを出力していますか?元の出力 (初期化されていない配列の長さに一致するシンボル値) を説明するものは何ですか? この質問は配列の問題には役立たないように見えましたが、誤解していたのかもしれません。