-
Notifications
You must be signed in to change notification settings - Fork 3
Fix non-determinism in bootstrap gcc #22
Copy link
Copy link
Open
Labels
code healthMaintainability concernMaintainability concerngood first issueGood for newcomersGood for newcomershelp wantedExtra attention is neededExtra attention is needed
Description
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.)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
code healthMaintainability concernMaintainability concerngood first issueGood for newcomersGood for newcomershelp wantedExtra attention is neededExtra attention is needed
Type
Projects
Status
Todo