0

为了源代码的完整性,我需要看看是否有可能使 boost 1.50 二进制文件可重现,而对源代码的更改尽可能少。挑战是在不更改任何 .cpp 或 .hpp 文件的情况下做到这一点。

由于__ TIME ____ DATE __宏出现在 boost 库 WAVE 和 SPIRIT 中,只需编译两次并进行 diff 即可显示失败。

我正在使用 g++ 4.1.1 进行编译。任何人都知道通过某种环境变量告诉预处理器取消定义或重新定义这些宏的方法吗?如果不是环境变量,那么一些 g++ 命令行选项?我想我可以编辑一些 .jam 文件来重新定义__ TIME ____ DATE __,宏到???? 或者 gcc 所说的默认值是当这些无法解决时。

也许有一种方法可以强制预处理器无法解析当前日期和时间,我可以启用、构建然后禁用它?

任何有关此的想法将不胜感激。谢谢你。

编辑:对于那些一直关注这个的人,我认为我在最初的问题中犯了一个严重的错误。我现在发现,使用完全相同的 bjam 构建命令进行简单的背靠背构建会产生 .a 和 .so 文件,它们除了DATETIME宏之外完全不同。二进制十六进制差异显示 .so 文件中的大量差异。.a 文件似乎遵循相同值始终不同的模式(这很可能是TIMEDATE宏值),但 .so 文件甚至不在同一个球场。如果有人有这种心情,我会挑战你两次构建 boost 1.50,比较构建输出并尝试证明除了构建日期/时间的变化所构成的信息差异之外,没有显着差异。

编辑(续集!):在进行了更多挖掘之后,我发现了似乎是某种不一致的名称修改。只构建 boost 文件系统,两次,背靠背,并检查两者之间的文件 path.o 之间的差异,我注意到了这一点:

nm of first path.o: 00000000 b _ZN57_GLOBAL__N_libs_filesystem_src_path.cpp_00000000_8F1C916311path_localeE 0000000c b _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_8F1C916317codecvt_facet_ptrE 00000004 r _ZN57_GLOBAL__N_libs_filesystem_src_path.cpp_00000000_8F1C916326preferred_separator_stringE 00000008 b _ZN57_GLOBAL__N_libs_filesystem_src_path.cpp_00000000_8F1C91638dot_pathE

nm of second path.o: 00000000 b _ZN57_GLOBAL__N_libs_filesystem_src_path.cpp_00000000_EDDD474511path_localeE 0000000c b _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_EDDD474517codecvt_facet_ptrE 00000004 r _ZN57_GLOBAL__N_libs_filesystem_src_path.cpp_00000000_EDDD474526preferred_separator_stringE 00000008 b _ZN57_GLOBAL__N_libs_filesystem_src_path.cpp_00000000_EDDD47458dot_pathE

我不认为我以前见过这种事情。为什么这些特定的局部变量定义会被 EDDD4745 而不是 8F1C9163 破坏?有什么想法吗?今天我的头已经炸了一次(被附近的南瓜灯解决了)。这个简直是恶毒。

编辑:v3)

不幸的是,我仍然在做。在这一点上,我处于 ​​ELF 文件规范级别,试图确定发生了什么变化。我现在只是在使用 boost 文件系统。我的 bjam 命令是

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

试图确定到底是什么导致了这些差异是一件苦差事。readelf 很有帮助,但只是在一定程度上。我在这里有两个 readelf 命令在两个版本的 boost filesystem.so 上的差异,它使用了相同的源代码。我对这些东西的了解还不够,无法确定是什么影响了这些变化,也许世界上有人。

`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

我终于找到了答案,我不敢相信我花了这么长时间才找到它。匿名命名空间在这里存在问题,而不是提升本身。显然, boost 1_50 包含一些匿名命名空间。看起来我正在使用的编译器,gcc 4.1.1 的 ABI 或其他任何东西(甚至可能是其他更新或更旧的)在每次编译翻译单元时生成一个新的和不同的 UUID 来为这些匿名命名空间中的符号添加前缀,我猜将唯一性应用于外部链接符号的原因(正确?不正确?)。这种情况下的解决方案是使用编译器提供的 -frandom-seed 标志。当我偶然看到这个页面时,我终于被告知可能会发生什么。

这是 frandom-seed 编译器标志的文档。

我的用例最终是 -frandom-seed="0"

最后,它实际上与 __DATE __ 和 __ TIME __无关直到处理boost WAVE和 SPIRIT,它们确实包含在 1.50 中)。

这个真的打到我了。

在“二进制再现性”标签下,堆栈溢出似乎没有任何关于此的内容。似乎在其他文章中使用了“二进制再现性”之外的其他短语,所以我使用的搜索参数没有提出任何内容。谁知道?不是我,长官。

于 2012-11-08T18:44:05.177 回答