为了源代码的完整性,我需要看看是否有可能使 boost 1.50 二进制文件可重现,而对源代码的更改尽可能少。挑战是在不更改任何 .cpp 或 .hpp 文件的情况下做到这一点。
由于__ TIME __和__ DATE __宏出现在 boost 库 WAVE 和 SPIRIT 中,只需编译两次并进行 diff 即可显示失败。
我正在使用 g++ 4.1.1 进行编译。任何人都知道通过某种环境变量告诉预处理器取消定义或重新定义这些宏的方法吗?如果不是环境变量,那么一些 g++ 命令行选项?我想我可以编辑一些 .jam 文件来重新定义__ TIME __和__ DATE __,宏到???? 或者 gcc 所说的默认值是当这些无法解决时。
也许有一种方法可以强制预处理器无法解析当前日期和时间,我可以启用、构建然后禁用它?
任何有关此的想法将不胜感激。谢谢你。
编辑:对于那些一直关注这个的人,我认为我在最初的问题中犯了一个严重的错误。我现在发现,使用完全相同的 bjam 构建命令进行简单的背靠背构建会产生 .a 和 .so 文件,它们除了DATE和TIME宏之外完全不同。二进制十六进制差异显示 .so 文件中的大量差异。.a 文件似乎遵循相同值始终不同的模式(这很可能是TIME和DATE宏值),但 .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 文件中符号条目的顺序?