0

ソースの整合性のために、ソースコードをできるだけ変更せずにブースト1.50バイナリを再現可能にすることができるかどうかを確認する必要があります。課題は、.cppまたは.hppファイルを変更せずにそれを行うことです。

単純に2回コンパイルし、diffを実行すると BoostライブラリのWAVEおよびSPIRITに表示される__TIME__および__DATE__マクロが原因失敗示されます。

g++4.1.1を使用してコンパイルしています。ある種の環境変数を介してこれらのマクロを定義解除または再定義するようにプリプロセッサに指示する方法を知っている人はいますか?env varでない場合は、g ++コマンドラインオプションを使用しますか?.jamファイルを編集して__TIME__と__DATE__ マクロ????再定義できる可能性があると思いますまたは、gccがデフォルトと言っているのは、それらを解決できない場合です。

おそらく、プリプロセッサが現在の日付と時刻を解決できないようにする方法があります。これを有効にして、ビルドしてから、無効にすることができますか?

これに関するアイデアをいただければ幸いです。ありがとうございました。

編集:これをフォローしている人には、元の質問で重大な間違いを犯したと思います。同じ正確なbjamビルドコマンドを使用した単純な連続ビルドでは、DATEマクロとTIMEマクロだけでなく大幅に異なる.aファイルと.soファイルが生成されることがわかりました。バイナリの16進差分は、.soファイルの違いの大きな塊を示しています。.aファイルは、一貫して異なる同じ値のパターンに従っているようです(これは、TIMEDATEである可能性が非常に高いです)。マクロ値)が、.soファイルは同じ球場にさえありません。誰かが気分になっている場合は、ブースト1.50を2回ビルドして、ビルド出力を比較し、ビルドの日付/時刻の変更が構成する単なる情報の違い以外に大きな違いがないことを確認してください。

編集(続編!):さらに多くの掘り下げを行った後、ある種の一貫性のない名前マングリングのように見えるものを発見しました。ブーストファイルシステムを2回、連続して構築し、2つのファイルpath.oの違いを調べると、次のことに気づきました。

第path.oのNM:00000000 Bの_ZN57_GLOBAL__N_libs_filesystem_src_path.cpp_00000000_8F1C916311path_localeEの0000000C _ZN57_GLOBAL__N_libs_filesystem_src_path.cpp_00000000_8F1C916312dot_dot_pathE 00000000 R _ZN57_GLOBAL__N_libs_filesystem_src_path.cpp_00000000_8F1C916316separator_stringE 00000004 B _ZN57_GLOBAL__N_libs_filesystem_src_path.cpp_00000000_8F1C91638dot_pathE B _ZN57_GLOBAL__N_libs_filesystem_src_path.cpp_00000000_8F1C916317codecvt_facet_ptrE 00000004 R _ZN57_GLOBAL__N_libs_filesystem_src_path.cpp_00000000_8F1C916326preferred_separator_stringE 00000008 B

第path.oのNM:00000000 Bの_ZN57_GLOBAL__N_libs_filesystem_src_path.cpp_00000000_EDDD474511path_localeEの0000000C _ZN57_GLOBAL__N_libs_filesystem_src_path.cpp_00000000_EDDD474512dot_dot_pathE 00000000 R _ZN57_GLOBAL__N_libs_filesystem_src_path.cpp_00000000_EDDD474516separator_stringE 00000004 B _ZN57_GLOBAL__N_libs_filesystem_src_path.cpp_00000000_EDDD47458dot_pathE B _ZN57_GLOBAL__N_libs_filesystem_src_path.cpp_00000000_EDDD474517codecvt_facet_ptrE 00000004 R _ZN57_GLOBAL__N_libs_filesystem_src_path.cpp_00000000_EDDD474526preferred_separator_stringE 00000008 B

こんなことは今まで見たことがないと思います。これらの特定のローカル変数の定義が、8F1C9163ではなくEDDD4745でマングルされるのはなぜですか?何かご意見は?私の頭は今日すでに一度爆発しました(近くのジャック・オー・ランタンによって解決されました)。これはただ悪質です。

編集:v3)

残念ながら、私はまだそれに取り組んでいます。この時点で、私はELFファイルの仕様レベルで、何が変更されているのかを判断しようとしています。この時点では、ブーストファイルシステムを使用しています。私のbjamコマンドは

`./b2 -a --with-filesystem --debug-building -d+2 toolset=gcc define=__DATE__="??" define=__TIME__="??" pch=off hardcode-dll-paths=false strip=on`

何がこれらの違いを引き起こしているのかを判断しようとするのは非常に面倒です。readelfは役に立ちますが、ある程度までです。ここに、同じ正確なソースコードを使用したboostfilesystem.soの2つのビルドでの2つのreadelfコマンドの差分があります。私はこれらのことについてまだ十分な知識がなく、これらの変更に何が影響するかを完全に判断することはできませんが、おそらく世界中の誰かがそうです。

`diff x1diff x2diff 
120,123c120,123
< 00015044  0000cc01 R_386_32          00015070   _ZTIN5boost6system14er
< 0001506c  0000cc01 R_386_32          00015070   _ZTIN5boost6system14er
< 00015048  0000d701 R_386_32          00005760   _ZN5boost6system14erro
< 0001504c  0000af01 R_386_32          00005730   _ZN5boost6system14erro
---
> 00015044  0000cd01 R_386_32          00015070   _ZTIN5boost6system14er
> 0001506c  0000cd01 R_386_32          00015070   _ZTIN5boost6system14er
> 00015048  0000d801 R_386_32          00005760   _ZN5boost6system14erro
> 0001504c  0000b001 R_386_32          00005730   _ZN5boost6system14erro
128,133c128,133
< 00015058  00009801 R_386_32          00005690   _ZNK5boost6system14err
< 000150b8  00009801 R_386_32          00005690   _ZNK5boost6system14err
< 0001505c  0000bf01 R_386_32          000056b0   _ZNK5boost6system14err
< 000150bc  0000bf01 R_386_32          000056b0   _ZNK5boost6system14err
< 00015060  0000a901 R_386_32          00005710   _ZNK5boost6system14err
< 000150c0  0000a901 R_386_32          00005710   _ZNK5boost6system14err
---
> 00015058  00009901 R_386_32          00005690   _ZNK5boost6system14err
> 000150b8  00009901 R_386_32          00005690   _ZNK5boost6system14err
> 0001505c  0000c001 R_386_32          000056b0   _ZNK5boost6system14err
> 000150bc  0000c001 R_386_32          000056b0   _ZNK5boost6system14err
> 00015060  0000aa01 R_386_32          00005710   _ZNK5boost6system14err
> 000150c0  0000aa01 R_386_32          00005710   _ZNK5boost6system14err
141,142c141,142
< 00015068  0000f001 R_386_32          00012180   _ZTSN75_GLOBAL__N_libs
< 00015074  00007b01 R_386_32          00012200   _ZTSN5boost6system14er
---
> 00015068  00007701 R_386_32          00012180   _ZTSN75_GLOBAL__N_libs
> 00015074  00007c01 R_386_32          00012200   _ZTSN5boost6system14er
146,152c146,152
< 00015080  00007e01 R_386_32          00012220   _ZTSN5boost12noncopyab
< 000150a4  0000d801 R_386_32          00015064   _ZTIN75_GLOBAL__N_libs
< 000150cc  00007801 R_386_32          000150dc   _ZTIN5boost6system12sy
< 000150f0  00007801 R_386_32          000150dc   _ZTIN5boost6system12sy
< 00015300  00007806 R_386_GLOB_DAT    000150dc   _ZTIN5boost6system12sy
< 000150d0  00009701 R_386_32          0000c810   _ZN5boost6system12syst
< 000152f4  00009706 R_386_GLOB_DAT    0000c810   _ZN5boost6system12syst
---
> 00015080  00007f01 R_386_32          00012220   _ZTSN5boost12noncopyab
> 000150a4  0000ea01 R_386_32          00015064   _ZTIN75_GLOBAL__N_libs
> 000150cc  00007901 R_386_32          000150dc   _ZTIN5boost6system12sy
> 000150f0  00007901 R_386_32          000150dc   _ZTIN5boost6system12sy
> 00015300  00007906 R_386_GLOB_DAT    000150dc   _ZTIN5boost6system12sy
> 000150d0  00009801 R_386_32          0000c810   _ZN5boost6system12syst
> 000152f4  00009806 R_386_GLOB_DAT    0000c810   _ZN5boost6system12syst
154c154
< 000150d8  0000a501 R_386_32          0000c8b0   _ZNK5boost6system12sys
---
> 000150d8  0000a601 R_386_32          0000c8b0   _ZNK5boost6system12sys
158,161c158,161
< 000150fc  0000a301 R_386_32          000150e8   _ZTIN5boost10filesyste
< 00015304  0000a306 R_386_GLOB_DAT    000150e8   _ZTIN5boost10filesyste
< 00015100  00009501 R_386_32          0000cdd0   _ZN5boost10filesystem1
< 000152e4  00009506 R_386_GLOB_DAT    0000cdd0   _ZN5boost10filesystem1
---
> 000150fc  0000a401 R_386_32          000150e8   _ZTIN5boost10filesyste
> 00015304  0000a406 R_386_GLOB_DAT    000150e8   _ZTIN5boost10filesyste
> 00015100  00009601 R_386_32          0000cdd0   _ZN5boost10filesystem1
> 000152e4  00009606 R_386_GLOB_DAT    0000cdd0   _ZN5boost10filesystem1
163,164c163,164
< 00015108  0000c701 R_386_32          0000d6d0   _ZNK5boost10filesystem
< 00015114  0000d201 R_386_32          0001512c   _ZTIN5boost6detail17sp
---
> 00015108  0000c801 R_386_32          0000d6d0   _ZNK5boost10filesystem
> 00015114  0000d301 R_386_32          0001512c   _ZTIN5boost6detail17sp
166,176c166,176
< 0001511c  0000b001 R_386_32          0000c700   _ZN5boost6detail17sp_c
< 00015120  00008b01 R_386_32          0000cb10   _ZN5boost6detail17sp_c
< 00015124  00009301 R_386_32          0000c620   _ZN5boost6detail15sp_c
< 00015154  00009301 R_386_32          0000c620   _ZN5boost6detail15sp_c
< 00015174  00009301 R_386_32          0000c620   _ZN5boost6detail15sp_c
< 00015128  0000c101 R_386_32          0000c650   _ZN5boost6detail17sp_c
< 00015130  0000cf01 R_386_32          00012680   _ZTSN5boost6detail17sp
< 00015134  0000a801 R_386_32          00015138   _ZTIN5boost6detail15sp
< 00015144  0000a801 R_386_32          00015138   _ZTIN5boost6detail15sp
< 00015184  0000a801 R_386_32          00015138   _ZTIN5boost6detail15sp
< 0001513c  0000bb01 R_386_32          000126e0   _ZTSN5boost6detail15sp
---
> 0001511c  0000b101 R_386_32          0000c700   _ZN5boost6detail17sp_c
> 00015120  00008c01 R_386_32          0000cb10   _ZN5boost6detail17sp_c
> 00015124  00009401 R_386_32          0000c620   _ZN5boost6detail15sp_c
> 00015154  00009401 R_386_32          0000c620   _ZN5boost6detail15sp_c
> 00015174  00009401 R_386_32          0000c620   _ZN5boost6detail15sp_c
> 00015128  0000c201 R_386_32          0000c650   _ZN5boost6detail17sp_c
> 00015130  0000d001 R_386_32          00012680   _ZTSN5boost6detail17sp
> 00015134  0000a901 R_386_32          00015138   _ZTIN5boost6detail15sp
> 00015144  0000a901 R_386_32          00015138   _ZTIN5boost6detail15sp
> 00015184  0000a901 R_386_32          00015138   _ZTIN5boost6detail15sp
> 0001513c  0000bc01 R_386_32          000126e0   _ZTSN5boost6detail15sp
178c178
< 0001514c  0000d501 R_386_32          0000c670   _ZN5boost6detail15sp_c
---
> 0001514c  0000d601 R_386_32          0000c670   _ZN5boost6detail15sp_c
180,189c180,189
< 00015168  0000ed01 R_386_32          0000c6e0   _ZN5boost6detail17sp_c
< 0001516c  0000c501 R_386_32          0000c730   _ZN5boost6detail17sp_c
< 00015170  00007c01 R_386_32          0000ca30   _ZN5boost6detail17sp_c
< 00015178  0000c301 R_386_32          0000c660   _ZN5boost6detail17sp_c
< 00015180  0000ae01 R_386_32          00012720   _ZTSN5boost6detail17sp
< 000151a4  0000c801 R_386_32          000151d0   _ZTIN5boost10filesyste
< 000151a8  0000d401 R_386_32          000120c0   _ZN5boost10filesystem6
< 000151ac  0000ab01 R_386_32          00012080   _ZN5boost10filesystem6
< 000151b0  0000aa01 R_386_32          00011ee0   _ZNK5boost10filesystem
< 000151b4  0000bd01 R_386_32          00012050   _ZNK5boost10filesystem
---
> 00015168  0000ee01 R_386_32          0000c6e0   _ZN5boost6detail17sp_c
> 0001516c  0000c601 R_386_32          0000c730   _ZN5boost6detail17sp_c
> 00015170  00007d01 R_386_32          0000ca30   _ZN5boost6detail17sp_c
> 00015178  0000c401 R_386_32          0000c660   _ZN5boost6detail17sp_c
> 00015180  0000af01 R_386_32          00012720   _ZTSN5boost6detail17sp
> 000151a4  0000c901 R_386_32          000151d0   _ZTIN5boost10filesyste
> 000151a8  0000d501 R_386_32          000120c0   _ZN5boost10filesystem6
> 000151ac  0000ac01 R_386_32          00012080   _ZN5boost10filesystem6
> 000151b0  0000ab01 R_386_32          00011ee0   _ZNK5boost10filesystem
> 000151b4  0000be01 R_386_32          00012050   _ZNK5boost10filesystem
192c192
< 000151c0  0000ce01 R_386_32          00012040   _ZNK5boost10filesystem
---
> 000151c0  0000cf01 R_386_32          00012040   _ZNK5boost10filesystem
194,196c194,196
< 000151c8  00008801 R_386_32          00012070   _ZNK5boost10filesystem
< 000151cc  00009601 R_386_32          00011cb0   _ZNK5boost10filesystem
< 000151d4  00008901 R_386_32          00012900   _ZTSN5boost10filesyste
---
> 000151c8  00008901 R_386_32          00012070   _ZNK5boost10filesystem
> 000151cc  00009701 R_386_32          00011cb0   _ZNK5boost10filesystem
> 000151d4  00008a01 R_386_32          00012900   _ZTSN5boost10filesyste
202c202
< 000152f0  0000a206 R_386_GLOB_DAT    00015110   _ZTVN5boost6detail17sp
---
> 000152f0  0000a306 R_386_GLOB_DAT    00015110   _ZTVN5boost6detail17sp
207c207
< 00015314  0000b506 R_386_GLOB_DAT    00015160   _ZTVN5boost6detail17sp
---
> 00015314  0000b606 R_386_GLOB_DAT    00015160   _ZTVN5boost6detail17sp
223c223
< 00015350  00007f07 R_386_JUMP_SLOT   0000e3e0   _ZNK5boost10filesystem
---
> 00015350  00008007 R_386_JUMP_SLOT   0000e3e0   _ZNK5boost10filesystem
227c227
< 00015360  0000b207 R_386_JUMP_SLOT   00009d10   _ZN5boost10filesystem6
---
> 00015360  0000b307 R_386_JUMP_SLOT   00009d10   _ZN5boost10filesystem6
230,231c230,231
< 0001536c  0000c607 R_386_JUMP_SLOT   0000f8e0   _ZNK5boost10filesystem
< 00015370  00009d07 R_386_JUMP_SLOT   0000e370   _ZN5boost10filesystem4
---
> 0001536c  0000c707 R_386_JUMP_SLOT   0000f8e0   _ZNK5boost10filesystem
> 00015370  00009e07 R_386_JUMP_SLOT   0000e370   _ZN5boost10filesystem4
235,237c235,237
< 00015380  00007707 R_386_JUMP_SLOT   000078a0   _ZN5boost10filesystem6
< 00015384  0000b607 R_386_JUMP_SLOT   0000cf20   _ZN5boost10filesystem1
< 00015388  0000b807 R_386_JUMP_SLOT   0000f490   _ZN5boost10filesystem4
---
> 00015380  00007807 R_386_JUMP_SLOT   000078a0   _ZN5boost10filesystem6
> 00015384  0000b707 R_386_JUMP_SLOT   0000cf20   _ZN5boost10filesystem1
> 00015388  0000b907 R_386_JUMP_SLOT   0000f490   _ZN5boost10filesystem4
239c239
< 00015390  0000a007 R_386_JUMP_SLOT   000099f0   _ZN5boost10filesystem6
---
> 00015390  0000a107 R_386_JUMP_SLOT   000099f0   _ZN5boost10filesystem6
241c241
< 00015398  00008507 R_386_JUMP_SLOT   00005880   _ZN5boost10filesystem6
---
> 00015398  00008607 R_386_JUMP_SLOT   00005880   _ZN5boost10filesystem6
250c250
< 000153bc  0000d607 R_386_JUMP_SLOT   00010770   _ZNK5boost10filesystem
---
> 000153bc  0000d707 R_386_JUMP_SLOT   00010770   _ZNK5boost10filesystem
254,255c254,255
< 000153cc  0000d007 R_386_JUMP_SLOT   000092c0   _ZN5boost10filesystem6
< 000153d0  0000a407 R_386_JUMP_SLOT   0000f2b0   _ZNK5boost10filesystem
---
> 000153cc  0000d107 R_386_JUMP_SLOT   000092c0   _ZN5boost10filesystem6
> 000153d0  0000a507 R_386_JUMP_SLOT   0000f2b0   _ZNK5boost10filesystem
257c257
< 000153d8  0000cd07 R_386_JUMP_SLOT   000095f0   _ZN5boost10filesystem6
---
> 000153d8  0000ce07 R_386_JUMP_SLOT   000095f0   _ZN5boost10filesystem6
260c260
< 000153e4  00008f07 R_386_JUMP_SLOT   000069e0   _ZN5boost10filesystem6
---
> 000153e4  00009007 R_386_JUMP_SLOT   000069e0   _ZN5boost10filesystem6
269c269
< 00015408  0000ee07 R_386_JUMP_SLOT   00011ea0   _ZNK5boost10filesystem
---
> 00015408  0000ef07 R_386_JUMP_SLOT   00011ea0   _ZNK5boost10filesystem
272,273c272,273
< 00015414  0000ca07 R_386_JUMP_SLOT   0000f7d0   _ZNK5boost10filesystem
< 00015418  0000d107 R_386_JUMP_SLOT   0000df70   _ZNK5boost10filesystem
---
> 00015414  0000cb07 R_386_JUMP_SLOT   0000f7d0   _ZNK5boost10filesystem
> 00015418  0000d207 R_386_JUMP_SLOT   0000df70   _ZNK5boost10filesystem
277c277
< 00015428  0000c907 R_386_JUMP_SLOT   0000d2f0   _ZN5boost10filesystem1
---
> 00015428  0000ca07 R_386_JUMP_SLOT   0000d2f0   _ZN5boost10filesystem1
286,287c286,287
< 0001544c  0000b707 R_386_JUMP_SLOT   0000e190   _ZNK5boost10filesystem
< 00015450  0000c007 R_386_JUMP_SLOT   00011c70   _ZN5boost10filesystem6
---
> 0001544c  0000b807 R_386_JUMP_SLOT   0000e190   _ZNK5boost10filesystem
> 00015450  0000c107 R_386_JUMP_SLOT   00011c70   _ZN5boost10filesystem6
295c295
< 00015470  0000ea07 R_386_JUMP_SLOT   000063c0   _ZN5boost10filesystem6
---
> 00015470  0000eb07 R_386_JUMP_SLOT   000063c0   _ZN5boost10filesystem6
297c297
< 00015478  00008e07 R_386_JUMP_SLOT   00011170   _ZN5boost10filesystem1
---
> 00015478  00008f07 R_386_JUMP_SLOT   00011170   _ZN5boost10filesystem1
303c303
< 00015490  0000a707 R_386_JUMP_SLOT   0000ded0   _ZN5boost10filesystem4
---
> 00015490  0000a807 R_386_JUMP_SLOT   0000ded0   _ZN5boost10filesystem4
306c306
< 0001549c  00009e07 R_386_JUMP_SLOT   00005490   _ZN5boost10filesystem2
---
> 0001549c  00009f07 R_386_JUMP_SLOT   00005490   _ZN5boost10filesystem2
319c319
< 000154d0  00007d07 R_386_JUMP_SLOT   0000efd0   _ZNK5boost10filesystem
---
> 000154d0  00007e07 R_386_JUMP_SLOT   0000efd0   _ZNK5boost10filesystem
325,326c325,326
< 000154e8  00008c07 R_386_JUMP_SLOT   00010eb0   _ZN5boost10filesystem1
< 000154ec  00008207 R_386_JUMP_SLOT   000091c0   _ZN5boost10filesystem6
---
> 000154e8  00008d07 R_386_JUMP_SLOT   00010eb0   _ZN5boost10filesystem1
> 000154ec  00008307 R_386_JUMP_SLOT   000091c0   _ZN5boost10filesystem6
329c329
< 000154f8  00008d07 R_386_JUMP_SLOT   0000ea70   _ZN5boost10filesystem4
---
> 000154f8  00008e07 R_386_JUMP_SLOT   0000ea70   _ZN5boost10filesystem4
334c334
< 0001550c  00009007 R_386_JUMP_SLOT   0000fbb0   _ZNK5boost10filesystem
---
> 0001550c  00009107 R_386_JUMP_SLOT   0000fbb0   _ZNK5boost10filesystem
337,340c337,340
< 00015518  0000eb07 R_386_JUMP_SLOT   00011270   _ZN5boost10filesystem1
< 0001551c  0000b107 R_386_JUMP_SLOT   000114b0   _ZN5boost10filesystem1
< 00015520  00009b07 R_386_JUMP_SLOT   0000c640   _ZN5boost6detail26sp_e
< 00015524  00009c07 R_386_JUMP_SLOT   0000f000   _ZNK5boost10filesystem
---
> 00015518  0000ec07 R_386_JUMP_SLOT   00011270   _ZN5boost10filesystem1
> 0001551c  0000b207 R_386_JUMP_SLOT   000114b0   _ZN5boost10filesystem1
> 00015520  00009c07 R_386_JUMP_SLOT   0000c640   _ZN5boost6detail26sp_e
> 00015524  00009d07 R_386_JUMP_SLOT   0000f000   _ZNK5boost10filesystem
342c342
< 0001552c  0000a607 R_386_JUMP_SLOT   0000dd00   _ZN5boost10filesystem4
---
> 0001552c  0000a707 R_386_JUMP_SLOT   0000dd00   _ZN5boost10filesystem4
344c344
< 00015534  0000ad07 R_386_JUMP_SLOT   00007aa0   _ZN5boost10filesystem6
---
> 00015534  0000ae07 R_386_JUMP_SLOT   00007aa0   _ZN5boost10filesystem6
591,597c591,597
<    234: 000063c0  1559 FUNC    GLOBAL DEFAULT   10 _ZN5boost10filesystem6det
<    235: 00011270    81 FUNC    GLOBAL DEFAULT   10 _ZN5boost10filesystem19po
<    236: 00009020   405 FUNC    GLOBAL DEFAULT   10 _ZN5boost10filesystem6det
<    237: 0000c6e0    30 FUNC    WEAK   DEFAULT   10 _ZN5boost6detail17sp_coun
<    238: 00011ea0    59 FUNC    GLOBAL DEFAULT   10 _ZNK5boost10filesystem6de
<    239: 000155b8     8 OBJECT  WEAK   DEFAULT   24 _ZGVZNK5boost10filesystem
<    240: 00012180    99 OBJECT  WEAK   DEFAULT   12 _ZTSN75_GLOBAL__N_libs_fi
---
>    234: 00015064    12 OBJECT  WEAK   DEFAULT   19 _ZTIN75_GLOBAL__N_libs_fi
>    235: 000063c0  1559 FUNC    GLOBAL DEFAULT   10 _ZN5boost10filesystem6det
>    236: 00011270    81 FUNC    GLOBAL DEFAULT   10 _ZN5boost10filesystem19po
>    237: 00009020   405 FUNC    GLOBAL DEFAULT   10 _ZN5boost10filesystem6det
>    238: 0000c6e0    30 FUNC    WEAK   DEFAULT   10 _ZN5boost6detail17sp_coun
>    239: 00011ea0    59 FUNC    GLOBAL DEFAULT   10 _ZNK5boost10filesystem6de
>    240: 000155b8     8 OBJECT  WEAK   DEFAULT   24 _ZGVZNK5boost10filesystem
619,623c619,623
<       0  42         ( 32.1%)
<       1  49         ( 37.4%)     34.8%
<       2  32         ( 24.4%)     80.1%
<       3  4          (  3.1%)     88.7%
<       4  4          (  3.1%)    100.0%
---
>       0  41         ( 31.3%)
>       1  50         ( 38.2%)     35.5%
>       2  32         ( 24.4%)     80.9%
>       3  5          (  3.8%)     91.5%
>       4  3          (  2.3%)    100.0%`

(投稿に収まるように、ファイル内のいくつかのエントリを簡略化する必要がありました)。ほとんどの場合、これらのエントリの一部の行番号が異なるように見えます。ELFファイルのシンボルエントリの順序を変更できる可能性があるのは何ですか?

4

1 に答える 1

0

私はついに答えを見つけました、そして私はそれを見つけるのにそれほど時間がかかったとは信じられません。ここでは匿名の名前空間が問題になっていますが、それ自体が問題になっているわけではありません。どうやら、ブースト1_50にはいくつかの匿名の名前空間が含まれています。私が使用しているコンパイラ、gcc 4.1.1のABI、またはその他(そしておそらくより最近または古いもの)は、翻訳ユニットがコンパイルされるたびに、これらの匿名名前空間のシンボルにプレフィックスを付けるための新しい異なるUUIDを生成するようです。外部リンケージのシンボルに一意性を適用する理由(正しい?正しくない?)。この場合の解決策は、コンパイラーによって提供される-frandom-seedフラグを使用することです。このページにランダムに出くわしたとき、私はついに何が起こっているのかを知ることができました。

これは、frandom-seedコンパイラフラグのドキュメントです。

これの私のユースケースは、結局-frandom-seed="0"になりました

結局、それは__DATE__および__TIME__マクロとは実際には何の関係もありませんでした(1.50にそれらを含むブーストWAVEおよびSPIRITを処理するまで)

これは本当に私を打ち負かしました。

タグ「バイナリの再現性」の下で、スタックオーバーフローはこれに関して何も持っていないようでした。他の記事では「バイナリ再現性」以外のフレーズが使われているようですので、使った検索パラメータは何も思いつきませんでした。誰かわかったね?私じゃない、チーフ。

于 2012-11-08T18:44:05.177 に答える