boost 1.50的二进制再现

时间:2012-10-31 01:36:17

标签: linux boost g++ binary-reproducibility

我需要看看是否有可能使boost 1.50二进制可重复 为了源完整性,尽可能少地更改源代码。 挑战是在不更改任何.cpp或.hpp文件的情况下执行此操作。

由于 __ TIME __ __ DATE __ 出现在boost库中的宏WAVE和SPIRIT。

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

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

任何关于此的想法都将非常感激。 谢谢。

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

编辑(续集!): 在做了很多挖掘之后,我发现了一些似乎不一致的名称错误。 只构建boost文件系统,两次,背靠背,并检查两者之间的文件路径之间的差异,我注意到了这一点:

nm的第一条路径.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的第二个路径.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文件中符号条目的顺序?

1 个答案:

答案 0 :(得分:0)

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

时,我终于知道可能会发生什么

Here is the documentation for the frandom-seed compiler flag.

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

最后它与 __ DATE __ __ TIME __ 宏无关直到处理提升WAVE和SPIRIT,它们在1.50中包含它们。

这个真的打败了我。

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