I've been noticing that the binary bootstrap gcc has differed on each build. At first, I thought it might be because of the parallelism, but even with ZB_BUILD_CORES=1, the bootstrap produces differing results. I compared two runs:
Files /opt/zb/store/6ssl5z26zmr9dn2iz4xi17a13ia7qz8y-gcc-4.2.1/lib/libstdc++.a and /opt/zb/store/z3bi28c5p48vszan6ks1sga8vw41zcyz-gcc-4.2.1/lib/libstdc++.a differ
Files /opt/zb/store/6ssl5z26zmr9dn2iz4xi17a13ia7qz8y-gcc-4.2.1/lib/libstdc++.la and /opt/zb/store/z3bi28c5p48vszan6ks1sga8vw41zcyz-gcc-4.2.1/lib/libstdc++.la differ
Files /opt/zb/store/6ssl5z26zmr9dn2iz4xi17a13ia7qz8y-gcc-4.2.1/lib/libsupc++.a and /opt/zb/store/z3bi28c5p48vszan6ks1sga8vw41zcyz-gcc-4.2.1/lib/libsupc++.a differ
Files /opt/zb/store/6ssl5z26zmr9dn2iz4xi17a13ia7qz8y-gcc-4.2.1/lib/libsupc++.la and /opt/zb/store/z3bi28c5p48vszan6ks1sga8vw41zcyz-gcc-4.2.1/lib/libsupc++.la differ
Files /opt/zb/store/6ssl5z26zmr9dn2iz4xi17a13ia7qz8y-gcc-4.2.1/libexec/gcc/x86_64-unknown-linux-musl/4.2.1/cc1 and /opt/zb/store/z3bi28c5p48vszan6ks1sga8vw41zcyz-gcc-4.2.1/libexec/gcc/x86_64-unknown-linux-musl/4.2.1/cc1 differ
Files /opt/zb/store/6ssl5z26zmr9dn2iz4xi17a13ia7qz8y-gcc-4.2.1/libexec/gcc/x86_64-unknown-linux-musl/4.2.1/cc1plus and /opt/zb/store/z3bi28c5p48vszan6ks1sga8vw41zcyz-gcc-4.2.1/libexec/gcc/x86_64-unknown-linux-musl/4.2.1/cc1plus differ
The .la files are a bit of a red herring, since they are self-references.
Difference in cc1:
--- /proc/self/fd/16 2025-05-07 19:23:05.018537811 -0700
+++ /proc/self/fd/23 2025-05-07 19:23:05.018537811 -0700
@@ -286762,7 +286762,7 @@
00460290: 0000 0000 0000 0000 0000 0000 0000 0000 ................
004602a0: 635f 6669 6e69 7368 5f6f 6d70 5f61 746f c_finish_omp_ato
004602b0: 6d69 6300 0000 0000 0000 0000 0000 0000 mic.............
-004602c0: 54c3 ed4c 6447 9662 9fc6 98c0 c492 9b5a T..LdG.b.......Z
+004602c0: dd8b 1bbe 63f0 2685 ccae 48ae 53cb 6394 ....c.&...H.S.c.
004602d0: 2548 7769 6c6c 206e 6576 6572 2062 6520 %Hwill never be
004602e0: 6578 6563 7574 6564 002e 2e2f 2e2e 2f73 executed.../../s
004602f0: 7263 5f67 6363 2f67 6363 2f74 7265 652d rc_gcc/gcc/tree-
Difference in cc1plus:
--- /proc/self/fd/16 2025-05-07 19:23:51.220552986 -0700
+++ /proc/self/fd/23 2025-05-07 19:23:51.220552986 -0700
@@ -318664,7 +318664,7 @@
004dcc70: 6573 7469 6d61 7465 5f6e 756d 5f69 6e73 estimate_num_ins
004dcc80: 6e73 5f31 0063 6f70 795f 626f 6479 5f72 ns_1.copy_body_r
004dcc90: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-004dcca0: 11b6 3c5d ed58 abfc bad8 5481 512a 2b7a ..<].X....T.Q*+z
+004dcca0: 7363 c36c f4d8 8aa4 dd9f a936 049c 9f7a sc.l.......6...z
004dccb0: 2548 7769 6c6c 206e 6576 6572 2062 6520 %Hwill never be
004dccc0: 6578 6563 7574 6564 002e 2e2f 2e2e 2f73 executed.../../s
004dccd0: 7263 5f67 6363 2f67 6363 2f74 7265 652d rc_gcc/gcc/tree-
The differences in the .a files are more extensive, but seem not reference-related. libsupc++.a is a smaller difference, so included here:
--- /proc/self/fd/16 2025-05-07 19:25:18.568187440 -0700
+++ /proc/self/fd/23 2025-05-07 19:25:18.568187440 -0700
@@ -1379,7 +1379,7 @@
00005620: 2e5f 7372 635f 6763 635f 6c69 6273 7464 ._src_gcc_libstd
00005630: 635f 5f5f 7633 5f6c 6962 7375 7063 5f5f c___v3_libsupc__
00005640: 5f65 685f 616c 6c6f 632e 6363 5f30 3030 _eh_alloc.cc_000
-00005650: 3030 3030 305f 3135 3032 4339 3638 3135 00000_1502C96815
+00005650: 3030 3030 305f 4139 4230 3437 4536 3135 00000_A9B047E615
00005660: 656d 6572 6765 6e63 795f 6d75 7465 7845 emergency_mutexE
00005670: 005f 5a34 315f 5f73 7461 7469 635f 696e ._Z41__static_in
00005680: 6974 6961 6c69 7a61 7469 6f6e 5f61 6e64 itialization_and
@@ -1673,7 +1673,7 @@
00006880: 5f2e 2e5f 7372 635f 6763 635f 6c69 6273 _.._src_gcc_libs
00006890: 7464 635f 5f5f 7633 5f6c 6962 7375 7063 tdc___v3_libsupc
000068a0: 5f5f 5f65 685f 616c 6c6f 632e 6363 5f30 ___eh_alloc.cc_0
-000068b0: 3030 3030 3030 305f 3135 3032 4339 3638 0000000_1502C968
+000068b0: 3030 3030 3030 305f 4139 4230 3437 4536 0000000_A9B047E6
000068c0: 3135 656d 6572 6765 6e63 795f 6d75 7465 15emergency_mute
000068d0: 7845 002e 7265 6c61 2e74 6578 742e 5f5a xE..rela.text._Z
000068e0: 4e39 5f5f 676e 755f 6378 7837 5f5f 6d75 N9__gnu_cxx7__mu
@@ -1691,7 +1691,7 @@
000069a0: 7372 635f 6763 635f 6c69 6273 7464 635f src_gcc_libstdc_
000069b0: 5f5f 7633 5f6c 6962 7375 7063 5f5f 5f65 __v3_libsupc___e
000069c0: 685f 616c 6c6f 632e 6363 5f30 3030 3030 h_alloc.cc_00000
-000069d0: 3030 305f 3135 3032 4339 3638 3135 656d 000_1502C96815em
+000069d0: 3030 305f 4139 4230 3437 4536 3135 656d 000_A9B047E615em
000069e0: 6572 6765 6e63 795f 6d75 7465 7845 002e ergency_mutexE..
000069f0: 6273 732e 656d 6572 6765 6e63 795f 6275 bss.emergency_bu
00006a00: 6666 6572 002e 6273 732e 656d 6572 6765 ffer..bss.emerge
@@ -3121,14 +3121,14 @@
0000c300: 5f2e 2e5f 2e2e 5f73 7263 5f67 6363 5f6c _.._.._src_gcc_l
0000c310: 6962 7374 6463 5f5f 5f76 335f 6c69 6273 ibstdc___v3_libs
0000c320: 7570 635f 5f5f 6568 5f67 6c6f 6261 6c73 upc___eh_globals
-0000c330: 2e63 635f 3030 3030 3030 3030 5f45 4431 .cc_00000000_ED1
-0000c340: 3530 3230 3431 3067 6574 5f67 6c6f 6261 5020410get_globa
+0000c330: 2e63 635f 3030 3030 3030 3030 5f34 4336 .cc_00000000_4C6
+0000c340: 3646 3834 3031 3067 6574 5f67 6c6f 6261 6F84010get_globa
0000c350: 6c45 7600 5f5a 5a4e 3835 5f47 4c4f 4241 lEv._ZZN85_GLOBA
0000c360: 4c5f 5f4e 5f2e 2e5f 2e2e 5f2e 2e5f 2e2e L__N_.._.._.._..
0000c370: 5f73 7263 5f67 6363 5f6c 6962 7374 6463 _src_gcc_libstdc
0000c380: 5f5f 5f76 335f 6c69 6273 7570 635f 5f5f ___v3_libsupc___
0000c390: 6568 5f67 6c6f 6261 6c73 2e63 635f 3030 eh_globals.cc_00
-0000c3a0: 3030 3030 3030 5f45 4431 3530 3230 3431 000000_ED1502041
+0000c3a0: 3030 3030 3030 5f34 4336 3646 3834 3031 000000_4C66F8401
0000c3b0: 3067 6574 5f67 6c6f 6261 6c45 7645 3667 0get_globalEvE6g
0000c3c0: 6c6f 6261 6c00 5f47 4c4f 4241 4c5f 4f46 lobal._GLOBAL_OF
0000c3d0: 4653 4554 5f54 4142 4c45 5f00 5f5f 6778 FSET_TABLE_.__gx
@@ -3154,8 +3154,8 @@
0000c510: 2e5f 2e2e 5f73 7263 5f67 6363 5f6c 6962 ._.._src_gcc_lib
0000c520: 7374 6463 5f5f 5f76 335f 6c69 6273 7570 stdc___v3_libsup
0000c530: 635f 5f5f 6568 5f67 6c6f 6261 6c73 2e63 c___eh_globals.c
-0000c540: 635f 3030 3030 3030 3030 5f45 4431 3530 c_00000000_ED150
-0000c550: 3230 3431 3067 6574 5f67 6c6f 6261 6c45 20410get_globalE
+0000c540: 635f 3030 3030 3030 3030 5f34 4336 3646 c_00000000_4C66F
+0000c550: 3834 3031 3067 6574 5f67 6c6f 6261 6c45 84010get_globalE
0000c560: 7600 2e72 656c 612e 7465 7874 2e5f 5f63 v..rela.text.__c
0000c570: 7861 5f67 6574 5f67 6c6f 6261 6c73 5f66 xa_get_globals_f
0000c580: 6173 7400 2e72 656c 612e 7465 7874 2e5f ast..rela.text._
@@ -3165,8 +3165,8 @@
0000c5c0: 5f2e 2e5f 7372 635f 6763 635f 6c69 6273 _.._src_gcc_libs
0000c5d0: 7464 635f 5f5f 7633 5f6c 6962 7375 7063 tdc___v3_libsupc
0000c5e0: 5f5f 5f65 685f 676c 6f62 616c 732e 6363 ___eh_globals.cc
-0000c5f0: 5f30 3030 3030 3030 305f 4544 3135 3032 _00000000_ED1502
-0000c600: 3034 3130 6765 745f 676c 6f62 616c 4576 0410get_globalEv
+0000c5f0: 5f30 3030 3030 3030 305f 3443 3636 4638 _00000000_4C66F8
+0000c600: 3430 3130 6765 745f 676c 6f62 616c 4576 4010get_globalEv
0000c610: 4536 676c 6f62 616c 002e 7265 6c61 2e65 E6global..rela.e
0000c620: 685f 6672 616d 6500 2e63 6f6d 6d65 6e74 h_frame..comment
0000c630: 002e 6e6f 7465 2e47 4e55 2d73 7461 636b ..note.GNU-stack
@@ -5004,33 +5004,33 @@
000138b0: 2e2e 5f2e 2e5f 7372 635f 6763 635f 6c69 .._.._src_gcc_li
000138c0: 6273 7464 635f 5f5f 7633 5f6c 6962 7375 bstdc___v3_libsu
000138d0: 7063 5f5f 5f67 7561 7264 2e63 635f 3030 pc___guard.cc_00
-000138e0: 3030 3030 3030 5f33 4445 3338 3042 4131 000000_3DE380BA1
+000138e0: 3030 3030 3030 5f38 3735 4643 3734 3231 000000_875FC7421
000138f0: 3667 6574 5f73 7461 7469 635f 6d75 7465 6get_static_mute
00013900: 7845 7600 5f5a 4e38 305f 474c 4f42 414c xEv._ZN80_GLOBAL
00013910: 5f5f 4e5f 2e2e 5f2e 2e5f 2e2e 5f2e 2e5f __N_.._.._.._.._
00013920: 7372 635f 6763 635f 6c69 6273 7464 635f src_gcc_libstdc_
00013930: 5f5f 7633 5f6c 6962 7375 7063 5f5f 5f67 __v3_libsupc___g
00013940: 7561 7264 2e63 635f 3030 3030 3030 3030 uard.cc_00000000
-00013950: 5f33 4445 3338 3042 4134 696e 6974 4576 _3DE380BA4initEv
+00013950: 5f38 3735 4643 3734 3234 696e 6974 4576 _875FC7424initEv
00013960: 005f 5a5a 4e38 305f 474c 4f42 414c 5f5f ._ZZN80_GLOBAL__
00013970: 4e5f 2e2e 5f2e 2e5f 2e2e 5f2e 2e5f 7372 N_.._.._.._.._sr
00013980: 635f 6763 635f 6c69 6273 7464 635f 5f5f c_gcc_libstdc___
00013990: 7633 5f6c 6962 7375 7063 5f5f 5f67 7561 v3_libsupc___gua
-000139a0: 7264 2e63 635f 3030 3030 3030 3030 5f33 rd.cc_00000000_3
-000139b0: 4445 3338 3042 4131 3667 6574 5f73 7461 DE380BA16get_sta
+000139a0: 7264 2e63 635f 3030 3030 3030 3030 5f38 rd.cc_00000000_8
+000139b0: 3735 4643 3734 3231 3667 6574 5f73 7461 75FC74216get_sta
000139c0: 7469 635f 6d75 7465 7845 7645 346f 6e63 tic_mutexEvE4onc
000139d0: 6500 5f5a 4e38 305f 474c 4f42 414c 5f5f e._ZN80_GLOBAL__
000139e0: 4e5f 2e2e 5f2e 2e5f 2e2e 5f2e 2e5f 7372 N_.._.._.._.._sr
000139f0: 635f 6763 635f 6c69 6273 7464 635f 5f5f c_gcc_libstdc___
00013a00: 7633 5f6c 6962 7375 7063 5f5f 5f67 7561 v3_libsupc___gua
-00013a10: 7264 2e63 635f 3030 3030 3030 3030 5f33 rd.cc_00000000_3
-00013a20: 4445 3338 3042 4131 3273 7461 7469 635f DE380BA12static_
+00013a10: 7264 2e63 635f 3030 3030 3030 3030 5f38 rd.cc_00000000_8
+00013a20: 3735 4643 3734 3231 3273 7461 7469 635f 75FC74212static_
00013a30: 6d75 7465 7845 005f 5a4e 3830 5f47 4c4f mutexE._ZN80_GLO
00013a40: 4241 4c5f 5f4e 5f2e 2e5f 2e2e 5f2e 2e5f BAL__N_.._.._.._
00013a50: 2e2e 5f73 7263 5f67 6363 5f6c 6962 7374 .._src_gcc_libst
00013a60: 6463 5f5f 5f76 335f 6c69 6273 7570 635f dc___v3_libsupc_
00013a70: 5f5f 6775 6172 642e 6363 5f30 3030 3030 __guard.cc_00000
-00013a80: 3030 305f 3344 4533 3830 4241 3130 6661 000_3DE380BA10fa
+00013a80: 3030 305f 3837 3546 4337 3432 3130 6661 000_875FC74210fa
00013a90: 6b65 5f6d 7574 6578 4500 5f5a 4e53 7439 ke_mutexE._ZNSt9
00013aa0: 6578 6365 7074 696f 6e43 3245 7600 5f5a exceptionC2Ev._Z
00013ab0: 5456 5374 3965 7863 6570 7469 6f6e 005f TVSt9exception._
@@ -5390,7 +5390,7 @@
000150d0: 2e5f 7372 635f 6763 635f 6c69 6273 7464 ._src_gcc_libstd
000150e0: 635f 5f5f 7633 5f6c 6962 7375 7063 5f5f c___v3_libsupc__
000150f0: 5f67 7561 7264 2e63 635f 3030 3030 3030 _guard.cc_000000
-00015100: 3030 5f33 4445 3338 3042 4131 3667 6574 00_3DE380BA16get
+00015100: 3030 5f38 3735 4643 3734 3231 3667 6574 00_875FC74216get
00015110: 5f73 7461 7469 635f 6d75 7465 7845 7600 _static_mutexEv.
00015120: 2e72 656c 612e 7465 7874 2e5f 5a4e 395f .rela.text._ZN9_
00015130: 5f67 6e75 5f63 7878 3137 5f5f 7265 6375 _gnu_cxx17__recu
@@ -5403,8 +5403,8 @@
000151a0: 5f2e 2e5f 2e2e 5f2e 2e5f 7372 635f 6763 _.._.._.._src_gc
000151b0: 635f 6c69 6273 7464 635f 5f5f 7633 5f6c c_libstdc___v3_l
000151c0: 6962 7375 7063 5f5f 5f67 7561 7264 2e63 ibsupc___guard.c
-000151d0: 635f 3030 3030 3030 3030 5f33 4445 3338 c_00000000_3DE38
-000151e0: 3042 4134 696e 6974 4576 002e 6763 635f 0BA4initEv..gcc_
+000151d0: 635f 3030 3030 3030 3030 5f38 3735 4643 c_00000000_875FC
+000151e0: 3734 3234 696e 6974 4576 002e 6763 635f 7424initEv..gcc_
000151f0: 6578 6365 7074 5f74 6162 6c65 002e 7265 except_table..re
00015200: 6c61 2e74 6578 742e 5f5a 4e39 5f5f 676e la.text._ZN9__gn
00015210: 755f 6378 7831 375f 5f72 6563 7572 7369 u_cxx17__recursi
@@ -5419,8 +5419,8 @@
000152a0: 4e5f 2e2e 5f2e 2e5f 2e2e 5f2e 2e5f 7372 N_.._.._.._.._sr
000152b0: 635f 6763 635f 6c69 6273 7464 635f 5f5f c_gcc_libstdc___
000152c0: 7633 5f6c 6962 7375 7063 5f5f 5f67 7561 v3_libsupc___gua
-000152d0: 7264 2e63 635f 3030 3030 3030 3030 5f33 rd.cc_00000000_3
-000152e0: 4445 3338 3042 4131 3066 616b 655f 6d75 DE380BA10fake_mu
+000152d0: 7264 2e63 635f 3030 3030 3030 3030 5f38 rd.cc_00000000_8
+000152e0: 3735 4643 3734 3231 3066 616b 655f 6d75 75FC74210fake_mu
000152f0: 7465 7845 002e 7265 6c61 2e72 6f64 6174 texE..rela.rodat
00015300: 612e 5f5a 5456 4e39 5f5f 676e 755f 6378 a._ZTVN9__gnu_cx
00015310: 7832 3072 6563 7572 7369 7665 5f69 6e69 x20recursive_ini
@@ -5435,8 +5435,8 @@
000153a0: 5f2e 2e5f 2e2e 5f2e 2e5f 2e2e 5f73 7263 _.._.._.._.._src
000153b0: 5f67 6363 5f6c 6962 7374 6463 5f5f 5f76 _gcc_libstdc___v
000153c0: 335f 6c69 6273 7570 635f 5f5f 6775 6172 3_libsupc___guar
-000153d0: 642e 6363 5f30 3030 3030 3030 305f 3344 d.cc_00000000_3D
-000153e0: 4533 3830 4241 3132 7374 6174 6963 5f6d E380BA12static_m
+000153d0: 642e 6363 5f30 3030 3030 3030 305f 3837 d.cc_00000000_87
+000153e0: 3546 4337 3432 3132 7374 6174 6963 5f6d 5FC74212static_m
000153f0: 7574 6578 4500 2e72 656c 612e 726f 6461 utexE..rela.roda
00015400: 7461 2e5f 5a54 494e 395f 5f67 6e75 5f63 ta._ZTIN9__gnu_c
00015410: 7878 3236 5f5f 636f 6e63 7572 7265 6e63 xx26__concurrenc
@@ -5453,7 +5453,7 @@
000154c0: 5f73 7263 5f67 6363 5f6c 6962 7374 6463 _src_gcc_libstdc
000154d0: 5f5f 5f76 335f 6c69 6273 7570 635f 5f5f ___v3_libsupc___
000154e0: 6775 6172 642e 6363 5f30 3030 3030 3030 guard.cc_0000000
-000154f0: 305f 3344 4533 3830 4241 3136 6765 745f 0_3DE380BA16get_
+000154f0: 305f 3837 3546 4337 3432 3136 6765 745f 0_875FC74216get_
00015500: 7374 6174 6963 5f6d 7574 6578 4576 4534 static_mutexEvE4
00015510: 6f6e 6365 002e 7265 6c61 2e72 6f64 6174 once..rela.rodat
00015520: 612e 5f5a 5449 4e39 5f5f 676e 755f 6378 a._ZTIN9__gnu_cx
@@ -12475,8 +12475,8 @@
00030ba0: 2e5f 2e2e 5f2e 2e5f 2e2e 5f73 7263 5f67 ._.._.._.._src_g
00030bb0: 6363 5f6c 6962 7374 6463 5f5f 5f76 335f cc_libstdc___v3_
00030bc0: 6c69 6273 7570 635f 5f5f 7665 632e 6363 libsupc___vec.cc
-00030bd0: 5f30 3030 3030 3030 305f 4139 3233 3039 _00000000_A92309
-00030be0: 4445 3137 756e 6361 7463 685f 6578 6365 DE17uncatch_exce
+00030bd0: 5f30 3030 3030 3030 305f 3433 4535 4645 _00000000_43E5FE
+00030be0: 3637 3137 756e 6361 7463 685f 6578 6365 6717uncatch_exce
00030bf0: 7074 696f 6e43 3145 7600 5f5f 6378 615f ptionC1Ev.__cxa_
00030c00: 6765 745f 676c 6f62 616c 735f 6661 7374 get_globals_fast
00030c10: 005f 5f67 7878 5f70 6572 736f 6e61 6c69 .__gxx_personali
@@ -12634,7 +12634,7 @@
00031590: 2e2e 5f2e 2e5f 2e2e 5f73 7263 5f67 6363 .._.._.._src_gcc
000315a0: 5f6c 6962 7374 6463 5f5f 5f76 335f 6c69 _libstdc___v3_li
000315b0: 6273 7570 635f 5f5f 7665 632e 6363 5f30 bsupc___vec.cc_0
-000315c0: 3030 3030 3030 305f 4139 3233 3039 4445 0000000_A92309DE
+000315c0: 3030 3030 3030 305f 3433 4535 4645 3637 0000000_43E5FE67
000315d0: 3137 756e 6361 7463 685f 6578 6365 7074 17uncatch_except
000315e0: 696f 6e43 3145 7600 2e72 656c 612e 7465 ionC1Ev..rela.te
000315f0: 7874 2e5f 5f63 7861 5f76 6563 5f63 6c65 xt.__cxa_vec_cle
(The libstdc++.a diff is similar but is 10x larger.)
I've been noticing that the binary bootstrap gcc has differed on each build. At first, I thought it might be because of the parallelism, but even with
ZB_BUILD_CORES=1, the bootstrap produces differing results. I compared two runs:The
.lafiles are a bit of a red herring, since they are self-references.Difference in
cc1:Difference in
cc1plus:The differences in the
.afiles are more extensive, but seem not reference-related.libsupc++.ais a smaller difference, so included here:(The
libstdc++.adiff is similar but is 10x larger.)