authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-03-20 15:48:57-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-03-20 15:48:57-04:00
log8429ddecf89bf0e78b2e0143e9a4a6e7ba88a0fb
tree45c97bea61dd454347202e7371fa1d42d4b60938
parent541e763010403d8233a6420756a1e8393f1dd4c2
parent7438d0fc31f70b3a6d19e1da9a4e3f7918fc9d66
signaturelock-open Commit is signed but in an unrecognized format.

Merge branch 'glibc-add-ld'


10 files changed, 229 insertions(+), 28 deletions(-)

lib/libc/glibc/abi.txt+135
...@@ -193,6 +193,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu...@@ -193,6 +193,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu
193193
194194
1952919529
196
1962919729
197198
1982919929
...@@ -514,6 +515,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu...@@ -514,6 +515,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu
5142951529
5152951629
5162951729
51829
517519
5182952029
519521
...@@ -697,6 +699,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu...@@ -697,6 +699,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu
6972969929
6982970029
6992970129
702
7002970329
7012970429
7022970529
...@@ -819,6 +822,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu...@@ -819,6 +822,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu
8192982229
8202982329
8212982429
82529
822826
8232982729
8242982829
...@@ -904,6 +908,9 @@ aarch64-linux-gnu aarch64_be-linux-gnu...@@ -904,6 +908,9 @@ aarch64-linux-gnu aarch64_be-linux-gnu
9042990829
9052990929
9062991029
91129
912
913
9072991429
9082991529
9092991629
...@@ -1004,6 +1011,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu...@@ -1004,6 +1011,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu
100429101129
100529101229
100629101329
101429
10071015
100829101629
100929101729
...@@ -1033,6 +1041,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu...@@ -1033,6 +1041,7 @@ aarch64-linux-gnu aarch64_be-linux-gnu
103329104129
103429104229
103529104329
104429
10361045
103729104629
103829104729
...@@ -3920,6 +3929,7 @@ s390x-linux-gnu...@@ -3920,6 +3929,7 @@ s390x-linux-gnu
39203929
39213930
3922539315
3932
392327393327
39243934
392527393527
...@@ -4241,6 +4251,7 @@ s390x-linux-gnu...@@ -4241,6 +4251,7 @@ s390x-linux-gnu
4241542515
4242542525
4243542535
42545
424411425511
424527425627
42464257
...@@ -4424,6 +4435,7 @@ s390x-linux-gnu...@@ -4424,6 +4435,7 @@ s390x-linux-gnu
442419443519
442519443619
4426544375
4438
4427544395
4428544405
442928444128
...@@ -4543,6 +4555,7 @@ s390x-linux-gnu...@@ -4543,6 +4555,7 @@ s390x-linux-gnu
454327455527
45444556
454516455716
4558
4546545595
4547545605
454815456115
...@@ -4631,6 +4644,9 @@ s390x-linux-gnu...@@ -4631,6 +4644,9 @@ s390x-linux-gnu
463116464416
4632546455
4633546465
4647
4648
464912
4634546505
4635546515
4636546525
...@@ -4731,6 +4747,7 @@ s390x-linux-gnu...@@ -4731,6 +4747,7 @@ s390x-linux-gnu
4731547475
4732547485
4733547495
47505
47344751
4735547525
4736547535
...@@ -4756,6 +4773,7 @@ s390x-linux-gnu...@@ -4756,6 +4773,7 @@ s390x-linux-gnu
4756547735
4757547745
4758547755
47765
475931 5477731 5
476024 5 12 16477824 5 12 16
476124 5 12 16477924 5 12 16
...@@ -7645,6 +7663,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf...@@ -7645,6 +7663,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf
76457663
76467664
76477665
7666
76487667
76497668
765027766927
...@@ -7968,6 +7987,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf...@@ -7968,6 +7987,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf
796816798716
796916798816
797016798916
799016
79717991
797227799227
79737993
...@@ -8151,6 +8171,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf...@@ -8151,6 +8171,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf
815119817119
815219817219
815316817316
8174
815416817516
815516817616
815628817728
...@@ -8273,6 +8294,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf...@@ -8273,6 +8294,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf
827316829416
827416829516
827516829616
829716
82768298
827716829916
827816830016
...@@ -8358,6 +8380,9 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf...@@ -8358,6 +8380,9 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf
835816838016
835916838116
836016838216
838316
8384
8385
836116838616
836216838716
836316838816
...@@ -8458,6 +8483,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf...@@ -8458,6 +8483,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf
845816848316
845916848416
846016848516
848616
84618487
846216848816
846316848916
...@@ -8484,6 +8510,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf...@@ -8484,6 +8510,7 @@ arm-linux-gnueabi armeb-linux-gnueabi arm-linux-gnueabihf armeb-linux-gnueabihf
848416851016
848516851116
848616851216
851316
848724 16851424 16
848824 16851524 16
848916851616
...@@ -11374,6 +11401,7 @@ sparc-linux-gnu sparcel-linux-gnu...@@ -11374,6 +11401,7 @@ sparc-linux-gnu sparcel-linux-gnu
1137411401
1137511402
113760114030
11404
11377271140527
1137811406
11379271140727
...@@ -11693,6 +11721,7 @@ sparc-linux-gnu sparcel-linux-gnu...@@ -11693,6 +11721,7 @@ sparc-linux-gnu sparcel-linux-gnu
116930117210
116940117220
116951117231
117241
116960117250
116970117260
116983 11117273 11
...@@ -11878,6 +11907,7 @@ sparc-linux-gnu sparcel-linux-gnu...@@ -11878,6 +11907,7 @@ sparc-linux-gnu sparcel-linux-gnu
11878191190719
11879191190819
118800119090
11910
118810119110
118821119121
11883281191328
...@@ -11997,6 +12027,7 @@ sparc-linux-gnu sparcel-linux-gnu...@@ -11997,6 +12027,7 @@ sparc-linux-gnu sparcel-linux-gnu
11997331202733
1199812028
11999161202916
12030
120005120315
120010120320
12002151203315
...@@ -12085,6 +12116,9 @@ sparc-linux-gnu sparcel-linux-gnu...@@ -12085,6 +12116,9 @@ sparc-linux-gnu sparcel-linux-gnu
12085161211616
120860121170
120870121180
1211912
12120
12121
120881121221
120891121231
120901121241
...@@ -12183,6 +12217,7 @@ sparc-linux-gnu sparcel-linux-gnu...@@ -12183,6 +12217,7 @@ sparc-linux-gnu sparcel-linux-gnu
121831122171
121841122181
121851122191
122201
121860122210
121870122220
1218812223
...@@ -12207,6 +12242,7 @@ sparc-linux-gnu sparcel-linux-gnu...@@ -12207,6 +12242,7 @@ sparc-linux-gnu sparcel-linux-gnu
122070122420
122080122430
122090122440
122450
122105122465
122110122470
122120122480
...@@ -15101,6 +15137,7 @@ sparcv9-linux-gnu...@@ -15101,6 +15137,7 @@ sparcv9-linux-gnu
151015151375
151025151385
1510315139
15140
15104271514127
1510515142
15106271514327
...@@ -15422,6 +15459,7 @@ sparcv9-linux-gnu...@@ -15422,6 +15459,7 @@ sparcv9-linux-gnu
154225154595
154235154605
154245154615
154625
15425111546311
15426271546427
1542715465
...@@ -15605,6 +15643,7 @@ sparcv9-linux-gnu...@@ -15605,6 +15643,7 @@ sparcv9-linux-gnu
15605191564319
15606191564419
156075156455
15646
156085156475
156095156485
15610281564928
...@@ -15724,6 +15763,7 @@ sparcv9-linux-gnu...@@ -15724,6 +15763,7 @@ sparcv9-linux-gnu
15724271576327
1572515764
15726161576516
15766
157275157675
157285157685
15729151576915
...@@ -15812,6 +15852,9 @@ sparcv9-linux-gnu...@@ -15812,6 +15852,9 @@ sparcv9-linux-gnu
15812161585216
158135158535
158145158545
1585512
15856
15857
158155158585
158165158595
158175158605
...@@ -15912,6 +15955,7 @@ sparcv9-linux-gnu...@@ -15912,6 +15955,7 @@ sparcv9-linux-gnu
159125159555
159135159565
159145159575
159585
1591515959
159165159605
159175159615
...@@ -15938,6 +15982,7 @@ sparcv9-linux-gnu...@@ -15938,6 +15982,7 @@ sparcv9-linux-gnu
159385159825
159395159835
159405159845
159855
1594124 28 5 12 161598624 28 5 12 16
1594224 28 5 12 161598724 28 5 12 16
159435 14159885 14
...@@ -18828,6 +18873,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64...@@ -18828,6 +18873,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64
1882818873
1882918874
188300188750
18876
18831271887727
1883218878
18833271887927
...@@ -19147,6 +19193,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64...@@ -19147,6 +19193,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64
191470191930
191480191940
191495191955
191965
191500191970
191510191980
19152111919911
...@@ -19332,6 +19379,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64...@@ -19332,6 +19379,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64
19332191937919
19333191938019
193340193810
19382
193350193830
193365193845
19337281938528
...@@ -19450,6 +19498,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64...@@ -19450,6 +19498,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64
19450271949827
19451271949927
1945219500
1950116
19453161950216
194545195035
194550195040
...@@ -19539,6 +19588,9 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64...@@ -19539,6 +19588,9 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64
19539161958816
195400195890
195410195900
1959112
19592
19593
195425195945
195435195955
195445195965
...@@ -19637,6 +19689,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64...@@ -19637,6 +19689,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64
196375196895
196385196905
196395196915
196925
196400196930
196410196940
196420196950
...@@ -19661,6 +19714,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64...@@ -19661,6 +19714,7 @@ mips64el-linux-gnuabi64 mips64-linux-gnuabi64
196610197140
196620197150
196630197160
197170
196645197185
196650197190
196660197200
...@@ -22555,6 +22609,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32...@@ -22555,6 +22609,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32
2255522609
2255622610
225570226110
22612
22558272261327
2255922614
22560272261527
...@@ -22874,6 +22929,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32...@@ -22874,6 +22929,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32
228740229290
228750229300
228765229315
229325
228770229330
228780229340
22879112293511
...@@ -23059,6 +23115,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32...@@ -23059,6 +23115,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32
23059192311519
23060192311619
230610231170
23118
230620231190
230635231205
23064282312128
...@@ -23177,6 +23234,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32...@@ -23177,6 +23234,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32
23177272323427
23178272323527
2317923236
2323716
23180162323816
231815232395
231820232400
...@@ -23266,6 +23324,9 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32...@@ -23266,6 +23324,9 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32
23266162332416
232670233250
232680233260
2332712
23328
23329
232695233305
232705233315
232715233325
...@@ -23364,6 +23425,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32...@@ -23364,6 +23425,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32
233645234255
233655234265
233665234275
234285
233670234290
233680234300
233690234310
...@@ -23388,6 +23450,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32...@@ -23388,6 +23450,7 @@ mips64el-linux-gnuabin32 mips64-linux-gnuabin32
233880234500
233890234510
233900234520
234530
233915234545
233920234550
233930234560
...@@ -26282,6 +26345,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf...@@ -26282,6 +26345,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf
2628226345
2628326346
262840263470
26348
26285272634927
2628626350
26287272635127
...@@ -26601,6 +26665,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf...@@ -26601,6 +26665,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf
266010266650
266020266660
266035266675
266685
266040266690
266050266700
26606112667111
...@@ -26786,6 +26851,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf...@@ -26786,6 +26851,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf
26786192685119
26787192685219
267880268530
26854
267890268550
267905268565
26791282685728
...@@ -26904,6 +26970,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf...@@ -26904,6 +26970,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf
26904272697027
2690526971
2690626972
2697316
26907162697416
269085269755
269090269760
...@@ -26993,6 +27060,9 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf...@@ -26993,6 +27060,9 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf
26993162706016
269940270610
269950270620
2706312
27064
27065
269965270665
269975270675
269985270685
...@@ -27091,6 +27161,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf...@@ -27091,6 +27161,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf
270915271615
270925271625
270935271635
271645
270940271650
270950271660
270960271670
...@@ -27115,6 +27186,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf...@@ -27115,6 +27186,7 @@ mipsel-linux-gnueabihf mips-linux-gnueabihf
271150271860
271160271870
271170271880
271890
271185271905
271190271910
271200271920
...@@ -30009,6 +30081,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi...@@ -30009,6 +30081,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi
3000930081
3001030082
300110300830
30084
30012273008527
3001330086
30014273008727
...@@ -30328,6 +30401,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi...@@ -30328,6 +30401,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi
303280304010
303290304020
303305304035
304045
303310304050
303320304060
30333113040711
...@@ -30513,6 +30587,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi...@@ -30513,6 +30587,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi
30513193058719
30514193058819
305150305890
30590
305160305910
305175305925
30518283059328
...@@ -30631,6 +30706,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi...@@ -30631,6 +30706,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi
30631273070627
3063230707
3063330708
3070916
30634163071016
306355307115
306360307120
...@@ -30720,6 +30796,9 @@ mipsel-linux-gnueabi mips-linux-gnueabi...@@ -30720,6 +30796,9 @@ mipsel-linux-gnueabi mips-linux-gnueabi
30720163079616
307210307970
307220307980
3079912
30800
30801
307235308025
307245308035
307255308045
...@@ -30818,6 +30897,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi...@@ -30818,6 +30897,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi
308185308975
308195308985
308205308995
309005
308210309010
308220309020
308230309030
...@@ -30842,6 +30922,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi...@@ -30842,6 +30922,7 @@ mipsel-linux-gnueabi mips-linux-gnueabi
308420309220
308430309230
308440309240
309250
308455309265
308460309270
308470309280
...@@ -33734,6 +33815,7 @@ x86_64-linux-gnu...@@ -33734,6 +33815,7 @@ x86_64-linux-gnu
3373433815
3373533816
3373633817
33818
3373733819
3373833820
33739273382127
...@@ -34057,6 +34139,7 @@ x86_64-linux-gnu...@@ -34057,6 +34139,7 @@ x86_64-linux-gnu
34057103413910
34058103414010
34059103414110
3414210
34060113414311
34061273414427
34062363414536
...@@ -34240,6 +34323,7 @@ x86_64-linux-gnu...@@ -34240,6 +34323,7 @@ x86_64-linux-gnu
34240193432319
34241193432419
34242103432510
34326
34243103432710
34244103432810
34245283432928
...@@ -34359,6 +34443,7 @@ x86_64-linux-gnu...@@ -34359,6 +34443,7 @@ x86_64-linux-gnu
34359273444327
3436034444
34361163444516
34446
34362103444710
34363103444810
34364153444915
...@@ -34447,6 +34532,9 @@ x86_64-linux-gnu...@@ -34447,6 +34532,9 @@ x86_64-linux-gnu
34447163453216
34448103453310
34449103453410
3453512
34536
34537
34450103453810
34451103453910
34452103454010
...@@ -34547,6 +34635,7 @@ x86_64-linux-gnu...@@ -34547,6 +34635,7 @@ x86_64-linux-gnu
34547103463510
34548103463610
34549103463710
3463810
3455034639
34551103464010
34552103464110
...@@ -34573,6 +34662,7 @@ x86_64-linux-gnu...@@ -34573,6 +34662,7 @@ x86_64-linux-gnu
34573103466210
34574103466310
34575103466410
3466510
3457624 10 12 163466624 10 12 16
3457724 10 12 163466724 10 12 16
3457810 143466810 14
...@@ -37461,6 +37551,7 @@ x86_64-linux-gnux32...@@ -37461,6 +37551,7 @@ x86_64-linux-gnux32
3746137551
3746237552
3746337553
37554
3746437555
3746537556
37466283755728
...@@ -37784,6 +37875,7 @@ x86_64-linux-gnux32...@@ -37784,6 +37875,7 @@ x86_64-linux-gnux32
37784283787528
37785283787628
37786283787728
3787828
3778737879
37788283788028
37789363788136
...@@ -37967,6 +38059,7 @@ x86_64-linux-gnux32...@@ -37967,6 +38059,7 @@ x86_64-linux-gnux32
37967283805928
37968283806028
37969283806128
38062
37970283806328
37971283806428
37972283806528
...@@ -38086,6 +38179,7 @@ x86_64-linux-gnux32...@@ -38086,6 +38179,7 @@ x86_64-linux-gnux32
38086283817928
3808738180
38088283818128
38182
38089283818328
38090283818428
38091283818528
...@@ -38174,6 +38268,9 @@ x86_64-linux-gnux32...@@ -38174,6 +38268,9 @@ x86_64-linux-gnux32
38174283826828
38175283826928
38176283827028
3827128
38272
38273
38177283827428
38178283827528
38179283827628
...@@ -38274,6 +38371,7 @@ x86_64-linux-gnux32...@@ -38274,6 +38371,7 @@ x86_64-linux-gnux32
38274283837128
38275283837228
38276283837328
3837428
3827738375
38278283837628
38279283837728
...@@ -38303,6 +38401,7 @@ x86_64-linux-gnux32...@@ -38303,6 +38401,7 @@ x86_64-linux-gnux32
38303283840128
38304283840228
38305283840328
3840428
3830638405
38307283840628
38308283840728
...@@ -41190,6 +41289,7 @@ i386-linux-gnu...@@ -41190,6 +41289,7 @@ i386-linux-gnu
4119041289
4119141290
411920412910
4129212
41193274129327
41194364129436
41195274129527
...@@ -41509,6 +41609,7 @@ i386-linux-gnu...@@ -41509,6 +41609,7 @@ i386-linux-gnu
415090416090
415100416100
415111416111
416121
415120416130
415130416140
415143 11416153 11
...@@ -41694,6 +41795,7 @@ i386-linux-gnu...@@ -41694,6 +41795,7 @@ i386-linux-gnu
41694194179519
41695194179619
416960417970
41798
416970417990
416981418001
41699284180128
...@@ -41813,6 +41915,7 @@ i386-linux-gnu...@@ -41813,6 +41915,7 @@ i386-linux-gnu
41813274191527
4181441916
41815164191716
41918
418165419195
418170419200
41818154192115
...@@ -41901,6 +42004,9 @@ i386-linux-gnu...@@ -41901,6 +42004,9 @@ i386-linux-gnu
41901164200416
419020420050
419030420060
4200712
42008
42009
419041420101
419051420111
419061420121
...@@ -41999,6 +42105,7 @@ i386-linux-gnu...@@ -41999,6 +42105,7 @@ i386-linux-gnu
419991421051
420001421061
420011421071
421081
420020421090
420030421100
4200442111
...@@ -42023,6 +42130,7 @@ i386-linux-gnu...@@ -42023,6 +42130,7 @@ i386-linux-gnu
420230421300
420240421310
420250421320
421330
420265421345
420270421350
420280421360
...@@ -44915,6 +45023,7 @@ powerpc64le-linux-gnu...@@ -44915,6 +45023,7 @@ powerpc64le-linux-gnu
4491545023
4491645024
4491745025
45026
4491845027
4491945028
44920294502929
...@@ -45238,6 +45347,7 @@ powerpc64le-linux-gnu...@@ -45238,6 +45347,7 @@ powerpc64le-linux-gnu
45238294534729
45239294534829
45240294534929
4535029
4524145351
45242294535229
45243364535336
...@@ -45421,6 +45531,7 @@ powerpc64le-linux-gnu...@@ -45421,6 +45531,7 @@ powerpc64le-linux-gnu
45421294553129
45422294553229
45423294553329
4553433
45424294553529
45425294553629
45426294553729
...@@ -45540,6 +45651,7 @@ powerpc64le-linux-gnu...@@ -45540,6 +45651,7 @@ powerpc64le-linux-gnu
45540294565129
4554145652
45542294565329
45654
45543294565529
45544294565629
45545294565729
...@@ -45628,6 +45740,9 @@ powerpc64le-linux-gnu...@@ -45628,6 +45740,9 @@ powerpc64le-linux-gnu
45628294574029
45629294574129
45630294574229
4574329
4574432
45745
45631294574629
45632294574729
45633294574829
...@@ -45728,6 +45843,7 @@ powerpc64le-linux-gnu...@@ -45728,6 +45843,7 @@ powerpc64le-linux-gnu
45728294584329
45729294584429
45730294584529
4584629
4573145847
45732294584829
45733294584929
...@@ -45757,6 +45873,7 @@ powerpc64le-linux-gnu...@@ -45757,6 +45873,7 @@ powerpc64le-linux-gnu
45757294587329
45758294587429
45759294587529
4587629
4576045877
45761294587829
45762294587929
...@@ -48642,6 +48759,7 @@ powerpc64-linux-gnu...@@ -48642,6 +48759,7 @@ powerpc64-linux-gnu
4864248759
4864348760
4864448761
48762
4864548763
4864648764
48647274876527
...@@ -48965,6 +49083,7 @@ powerpc64-linux-gnu...@@ -48965,6 +49083,7 @@ powerpc64-linux-gnu
48965124908312
48966124908412
48967124908512
4908612
4896849087
48969274908827
4897049089
...@@ -49148,6 +49267,7 @@ powerpc64-linux-gnu...@@ -49148,6 +49267,7 @@ powerpc64-linux-gnu
49148194926719
49149194926819
49150124926912
4927033
49151124927112
49152124927212
49153284927328
...@@ -49267,6 +49387,7 @@ powerpc64-linux-gnu...@@ -49267,6 +49387,7 @@ powerpc64-linux-gnu
49267274938727
4926849388
49269164938916
49390
49270124939112
49271124939212
49272154939315
...@@ -49355,6 +49476,9 @@ powerpc64-linux-gnu...@@ -49355,6 +49476,9 @@ powerpc64-linux-gnu
49355164947616
49356124947712
49357124947812
4947912
4948032
49481
49358124948212
49359124948312
49360124948412
...@@ -49455,6 +49579,7 @@ powerpc64-linux-gnu...@@ -49455,6 +49579,7 @@ powerpc64-linux-gnu
49455124957912
49456124958012
49457124958112
4958212
4945849583
49459124958412
49460124958512
...@@ -49480,6 +49605,7 @@ powerpc64-linux-gnu...@@ -49480,6 +49605,7 @@ powerpc64-linux-gnu
49480124960512
49481124960612
49482124960712
4960812
4948312 154960912 15
4948424 12 164961024 12 16
4948524 12 164961124 12 16
...@@ -52369,6 +52495,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf...@@ -52369,6 +52495,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf
5236952495
5237052496
5237152497
52498
5237252499
5237352500
52374275250127
...@@ -52690,6 +52817,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf...@@ -52690,6 +52817,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf
526900528170
526910528180
526921528191
528201
526930528210
526940528220
526953 11528233 11
...@@ -52875,6 +53003,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf...@@ -52875,6 +53003,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf
52875195300319
52876195300419
528770530050
5300633
528780530070
528791530081
52880285300928
...@@ -52994,6 +53123,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf...@@ -52994,6 +53123,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf
52994275312327
52995135312413
52996165312516
53126
529975531275
529980531280
52999155312915
...@@ -53082,6 +53212,9 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf...@@ -53082,6 +53212,9 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf
53082165321216
530830532130
530840532140
5321512
5321632
53217
530851532181
530861532191
530871532201
...@@ -53180,6 +53313,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf...@@ -53180,6 +53313,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf
531801533131
531811533141
531821533151
533161
531830533170
531840533180
5318553319
...@@ -53204,6 +53338,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf...@@ -53204,6 +53338,7 @@ powerpc-linux-gnueabi powerpc-linux-gnueabihf
532040533380
532050533390
532060533400
533410
532075533425
532080533430
532090533440
lib/libc/glibc/fns.txt+9
...@@ -192,6 +192,7 @@ _Qp_uitoq c...@@ -192,6 +192,7 @@ _Qp_uitoq c
192_Qp_uxtoq c192_Qp_uxtoq c
193_Qp_xtoq c193_Qp_xtoq c
194___brk_addr c194___brk_addr c
195___tls_get_addr ld
195__acos_finite m196__acos_finite m
196__acosf128_finite m197__acosf128_finite m
197__acosf_finite m198__acosf_finite m
...@@ -511,6 +512,7 @@ __libc_memalign c...@@ -511,6 +512,7 @@ __libc_memalign c
511__libc_pvalloc c512__libc_pvalloc c
512__libc_realloc c513__libc_realloc c
513__libc_sa_len c514__libc_sa_len c
515__libc_stack_end ld
514__libc_start_main c516__libc_start_main c
515__libc_valloc c517__libc_valloc c
516__libpthread_version_placeholder pthread518__libpthread_version_placeholder pthread
...@@ -696,6 +698,7 @@ __open_2 c...@@ -696,6 +698,7 @@ __open_2 c
696__openat64_2 c698__openat64_2 c
697__openat_2 c699__openat_2 c
698__overflow c700__overflow c
701__parse_hwcap_and_convert_at_platform ld
699__pipe c702__pipe c
700__poll c703__poll c
701__poll_chk c704__poll_chk c
...@@ -815,6 +818,7 @@ __sqrtf_finite m...@@ -815,6 +818,7 @@ __sqrtf_finite m
815__sqrtl_finite m818__sqrtl_finite m
816__sqrtsf2 c819__sqrtsf2 c
817__stack_chk_fail c820__stack_chk_fail c
821__stack_chk_guard ld
818__statfs c822__statfs c
819__stpcpy c823__stpcpy c
820__stpcpy_chk c824__stpcpy_chk c
...@@ -903,6 +907,9 @@ __sysctl c...@@ -903,6 +907,9 @@ __sysctl c
903__syslog_chk c907__syslog_chk c
904__sysv_signal c908__sysv_signal c
905__timezone c909__timezone c
910__tls_get_addr ld
911__tls_get_addr_opt ld
912__tls_get_offset ld
906__toascii_l c913__toascii_l c
907__tolower_l c914__tolower_l c
908__toupper_l c915__toupper_l c
...@@ -999,6 +1006,7 @@ __ynf128_finite m...@@ -999,6 +1006,7 @@ __ynf128_finite m
999__ynf_finite m1006__ynf_finite m
1000__ynl_finite m1007__ynl_finite m
1001_authenticate c1008_authenticate c
1009_dl_mcount ld
1002_dl_mcount_wrapper c1010_dl_mcount_wrapper c
1003_dl_mcount_wrapper_check c1011_dl_mcount_wrapper_check c
1004_environ c1012_environ c
...@@ -1024,6 +1032,7 @@ _pthread_cleanup_pop pthread...@@ -1024,6 +1032,7 @@ _pthread_cleanup_pop pthread
1024_pthread_cleanup_pop_restore pthread1032_pthread_cleanup_pop_restore pthread
1025_pthread_cleanup_push pthread1033_pthread_cleanup_push pthread
1026_pthread_cleanup_push_defer pthread1034_pthread_cleanup_push_defer pthread
1035_r_debug ld
1027_res c1036_res c
1028_res_hconf c1037_res_hconf c
1029_rpc_dtablesize c1038_rpc_dtablesize c
lib/std/debug.zig+44-11
...@@ -235,9 +235,17 @@ pub fn panic(comptime format: []const u8, args: var) noreturn {...@@ -235,9 +235,17 @@ pub fn panic(comptime format: []const u8, args: var) noreturn {
235 panicExtra(null, first_trace_addr, format, args);235 panicExtra(null, first_trace_addr, format, args);
236}236}
237237
238/// TODO multithreaded awareness238/// Non-zero whenever the program triggered a panic.
239/// The counter is incremented/decremented atomically.
239var panicking: u8 = 0;240var panicking: u8 = 0;
240241
242// Locked to avoid interleaving panic messages from multiple threads.
243var panic_mutex = std.Mutex.init();
244
245/// Counts how many times the panic handler is invoked by this thread.
246/// This is used to catch and handle panics triggered by the panic handler.
247threadlocal var panic_stage: usize = 0;
248
241pub fn panicExtra(trace: ?*const builtin.StackTrace, first_trace_addr: ?usize, comptime format: []const u8, args: var) noreturn {249pub fn panicExtra(trace: ?*const builtin.StackTrace, first_trace_addr: ?usize, comptime format: []const u8, args: var) noreturn {
242 @setCold(true);250 @setCold(true);
243251
...@@ -247,25 +255,50 @@ pub fn panicExtra(trace: ?*const builtin.StackTrace, first_trace_addr: ?usize, c...@@ -247,25 +255,50 @@ pub fn panicExtra(trace: ?*const builtin.StackTrace, first_trace_addr: ?usize, c
247 resetSegfaultHandler();255 resetSegfaultHandler();
248 }256 }
249257
250 switch (@atomicRmw(u8, &panicking, .Add, 1, .SeqCst)) {258 switch (panic_stage) {
251 0 => {259 0 => {
252 const stderr = getStderrStream();260 panic_stage = 1;
253 noasync stderr.print(format ++ "\n", args) catch os.abort();261
254 if (trace) |t| {262 _ = @atomicRmw(u8, &panicking, .Add, 1, .SeqCst);
255 dumpStackTrace(t.*);263
264 // Make sure to release the mutex when done
265 {
266 const held = panic_mutex.acquire();
267 defer held.release();
268
269 const stderr = getStderrStream();
270 noasync stderr.print(format ++ "\n", args) catch os.abort();
271 if (trace) |t| {
272 dumpStackTrace(t.*);
273 }
274 dumpCurrentStackTrace(first_trace_addr);
275 }
276
277 if (@atomicRmw(u8, &panicking, .Sub, 1, .SeqCst) != 1) {
278 // Another thread is panicking, wait for the last one to finish
279 // and call abort()
280
281 // Sleep forever without hammering the CPU
282 var event = std.ResetEvent.init();
283 event.wait();
284
285 unreachable;
256 }286 }
257 dumpCurrentStackTrace(first_trace_addr);
258 },287 },
259 1 => {288 1 => {
260 // TODO detect if a different thread caused the panic, because in that case289 panic_stage = 2;
261 // we would want to return here instead of calling abort, so that the thread290
262 // which first called panic can finish printing a stack trace.291 // A panic happened while trying to print a previous panic message,
263 warn("Panicked during a panic. Aborting.\n", .{});292 // we're still holding the mutex but that's fine as we're going to
293 // call abort()
294 const stderr = getStderrStream();
295 noasync stderr.print("Panicked during a panic. Aborting.\n", .{}) catch os.abort();
264 },296 },
265 else => {297 else => {
266 // Panicked while printing "Panicked during a panic."298 // Panicked while printing "Panicked during a panic."
267 },299 },
268 }300 }
301
269 os.abort();302 os.abort();
270}303}
271304
src-self-hosted/stage2.zig+8
...@@ -909,6 +909,7 @@ const Stage2Target = extern struct {...@@ -909,6 +909,7 @@ const Stage2Target = extern struct {
909 os_builtin_str: ?[*:0]const u8,909 os_builtin_str: ?[*:0]const u8,
910910
911 dynamic_linker: ?[*:0]const u8,911 dynamic_linker: ?[*:0]const u8,
912 standard_dynamic_linker_path: ?[*:0]const u8,
912913
913 fn fromTarget(self: *Stage2Target, cross_target: CrossTarget) !void {914 fn fromTarget(self: *Stage2Target, cross_target: CrossTarget) !void {
914 const allocator = std.heap.c_allocator;915 const allocator = std.heap.c_allocator;
...@@ -1119,6 +1120,12 @@ const Stage2Target = extern struct {...@@ -1119,6 +1120,12 @@ const Stage2Target = extern struct {
1119 }1120 }
1120 };1121 };
11211122
1123 const std_dl = target.standardDynamicLinkerPath();
1124 const std_dl_z = if (std_dl.get()) |dl|
1125 (try mem.dupeZ(std.heap.c_allocator, u8, dl)).ptr
1126 else
1127 null;
1128
1122 const cache_hash_slice = cache_hash.toOwnedSlice();1129 const cache_hash_slice = cache_hash.toOwnedSlice();
1123 self.* = .{1130 self.* = .{
1124 .arch = @enumToInt(target.cpu.arch) + 1, // skip over ZigLLVM_UnknownArch1131 .arch = @enumToInt(target.cpu.arch) + 1, // skip over ZigLLVM_UnknownArch
...@@ -1134,6 +1141,7 @@ const Stage2Target = extern struct {...@@ -1134,6 +1141,7 @@ const Stage2Target = extern struct {
1134 .is_native = cross_target.isNative(),1141 .is_native = cross_target.isNative(),
1135 .glibc_or_darwin_version = glibc_or_darwin_version,1142 .glibc_or_darwin_version = glibc_or_darwin_version,
1136 .dynamic_linker = dynamic_linker,1143 .dynamic_linker = dynamic_linker,
1144 .standard_dynamic_linker_path = std_dl_z,
1137 };1145 };
1138 }1146 }
1139};1147};
src/all_types.hpp+1
...@@ -2267,6 +2267,7 @@ struct CodeGen {...@@ -2267,6 +2267,7 @@ struct CodeGen {
2267 Buf *zig_lib_dir;2267 Buf *zig_lib_dir;
2268 Buf *zig_std_dir;2268 Buf *zig_std_dir;
2269 Buf *version_script_path;2269 Buf *version_script_path;
2270 Buf *override_soname;
22702271
2271 const char **llvm_argv;2272 const char **llvm_argv;
2272 size_t llvm_argv_len;2273 size_t llvm_argv_len;
src/codegen.cpp+1
...@@ -10510,6 +10510,7 @@ static Error check_cache(CodeGen *g, Buf *manifest_dir, Buf *digest) {...@@ -10510,6 +10510,7 @@ static Error check_cache(CodeGen *g, Buf *manifest_dir, Buf *digest) {
10510 cache_str(ch, g->libc->kernel32_lib_dir);10510 cache_str(ch, g->libc->kernel32_lib_dir);
10511 }10511 }
10512 cache_buf_opt(ch, g->version_script_path);10512 cache_buf_opt(ch, g->version_script_path);
10513 cache_buf_opt(ch, g->override_soname);
1051310514
10514 // gen_c_objects appends objects to g->link_objects which we want to include in the hash10515 // gen_c_objects appends objects to g->link_objects which we want to include in the hash
10515 gen_c_objects(g);10516 gen_c_objects(g);
src/glibc.cpp+10
...@@ -16,6 +16,7 @@ static const ZigGLibCLib glibc_libs[] = {...@@ -16,6 +16,7 @@ static const ZigGLibCLib glibc_libs[] = {
16 {"pthread", 0},16 {"pthread", 0},
17 {"dl", 2},17 {"dl", 2},
18 {"rt", 1},18 {"rt", 1},
19 {"ld", 2},
19};20};
2021
21Error glibc_load_metadata(ZigGLibCAbi **out_result, Buf *zig_lib_dir, bool verbose) {22Error glibc_load_metadata(ZigGLibCAbi **out_result, Buf *zig_lib_dir, bool verbose) {
...@@ -330,6 +331,8 @@ Error glibc_build_dummies_and_maps(CodeGen *g, const ZigGLibCAbi *glibc_abi, con...@@ -330,6 +331,8 @@ Error glibc_build_dummies_and_maps(CodeGen *g, const ZigGLibCAbi *glibc_abi, con
330 return err;331 return err;
331 }332 }
332333
334 bool is_ld = (strcmp(lib->name, "ld") == 0);
335
333 CodeGen *child_gen = create_child_codegen(g, zig_file_path, OutTypeLib, nullptr, lib->name, progress_node);336 CodeGen *child_gen = create_child_codegen(g, zig_file_path, OutTypeLib, nullptr, lib->name, progress_node);
334 codegen_set_lib_version(child_gen, lib->sover, 0, 0);337 codegen_set_lib_version(child_gen, lib->sover, 0, 0);
335 child_gen->is_dynamic = true;338 child_gen->is_dynamic = true;
...@@ -337,6 +340,13 @@ Error glibc_build_dummies_and_maps(CodeGen *g, const ZigGLibCAbi *glibc_abi, con...@@ -337,6 +340,13 @@ Error glibc_build_dummies_and_maps(CodeGen *g, const ZigGLibCAbi *glibc_abi, con
337 child_gen->version_script_path = map_file_path;340 child_gen->version_script_path = map_file_path;
338 child_gen->enable_cache = false;341 child_gen->enable_cache = false;
339 child_gen->output_dir = dummy_dir;342 child_gen->output_dir = dummy_dir;
343 if (is_ld) {
344 assert(g->zig_target->standard_dynamic_linker_path != nullptr);
345 Buf *ld_basename = buf_alloc();
346 os_path_split(buf_create_from_str(g->zig_target->standard_dynamic_linker_path),
347 nullptr, ld_basename);
348 child_gen->override_soname = ld_basename;
349 }
340 codegen_build_and_link(child_gen);350 codegen_build_and_link(child_gen);
341 }351 }
342352
src/link.cpp+4-4
...@@ -1651,7 +1651,6 @@ static void construct_linker_job_elf(LinkJob *lj) {...@@ -1651,7 +1651,6 @@ static void construct_linker_job_elf(LinkJob *lj) {
16511651
1652 bool is_lib = g->out_type == OutTypeLib;1652 bool is_lib = g->out_type == OutTypeLib;
1653 bool is_dyn_lib = g->is_dynamic && is_lib;1653 bool is_dyn_lib = g->is_dynamic && is_lib;
1654 Buf *soname = nullptr;
1655 if (!g->have_dynamic_link) {1654 if (!g->have_dynamic_link) {
1656 if (g->zig_target->arch == ZigLLVM_arm || g->zig_target->arch == ZigLLVM_armeb ||1655 if (g->zig_target->arch == ZigLLVM_arm || g->zig_target->arch == ZigLLVM_armeb ||
1657 g->zig_target->arch == ZigLLVM_thumb || g->zig_target->arch == ZigLLVM_thumbeb)1656 g->zig_target->arch == ZigLLVM_thumb || g->zig_target->arch == ZigLLVM_thumbeb)
...@@ -1662,15 +1661,13 @@ static void construct_linker_job_elf(LinkJob *lj) {...@@ -1662,15 +1661,13 @@ static void construct_linker_job_elf(LinkJob *lj) {
1662 }1661 }
1663 } else if (is_dyn_lib) {1662 } else if (is_dyn_lib) {
1664 lj->args.append("-shared");1663 lj->args.append("-shared");
1665
1666 assert(buf_len(&g->bin_file_output_path) != 0);
1667 soname = buf_sprintf("lib%s.so.%" ZIG_PRI_usize, buf_ptr(g->root_out_name), g->version_major);
1668 }1664 }
16691665
1670 if (target_requires_pie(g->zig_target) && g->out_type == OutTypeExe) {1666 if (target_requires_pie(g->zig_target) && g->out_type == OutTypeExe) {
1671 lj->args.append("-pie");1667 lj->args.append("-pie");
1672 }1668 }
16731669
1670 assert(buf_len(&g->bin_file_output_path) != 0);
1674 lj->args.append("-o");1671 lj->args.append("-o");
1675 lj->args.append(buf_ptr(&g->bin_file_output_path));1672 lj->args.append(buf_ptr(&g->bin_file_output_path));
16761673
...@@ -1740,6 +1737,9 @@ static void construct_linker_job_elf(LinkJob *lj) {...@@ -1740,6 +1737,9 @@ static void construct_linker_job_elf(LinkJob *lj) {
1740 }1737 }
17411738
1742 if (is_dyn_lib) {1739 if (is_dyn_lib) {
1740 Buf *soname = (g->override_soname == nullptr) ?
1741 buf_sprintf("lib%s.so.%" ZIG_PRI_usize, buf_ptr(g->root_out_name), g->version_major) :
1742 g->override_soname;
1743 lj->args.append("-soname");1743 lj->args.append("-soname");
1744 lj->args.append(buf_ptr(soname));1744 lj->args.append(buf_ptr(soname));
17451745
src/stage2.h+1
...@@ -291,6 +291,7 @@ struct ZigTarget {...@@ -291,6 +291,7 @@ struct ZigTarget {
291 size_t cache_hash_len;291 size_t cache_hash_len;
292 const char *os_builtin_str;292 const char *os_builtin_str;
293 const char *dynamic_linker;293 const char *dynamic_linker;
294 const char *standard_dynamic_linker_path;
294};295};
295296
296// ABI warning297// ABI warning
tools/update_glibc.zig+16-13
...@@ -20,6 +20,7 @@ const lib_names = [_][]const u8{...@@ -20,6 +20,7 @@ const lib_names = [_][]const u8{
20 "m",20 "m",
21 "pthread",21 "pthread",
22 "rt",22 "rt",
23 "ld",
23};24};
2425
25// fpu/nofpu are hardcoded elsewhere, based on .gnueabi/.gnueabihf with an exception for .arm26// fpu/nofpu are hardcoded elsewhere, based on .gnueabi/.gnueabihf with an exception for .arm
...@@ -154,22 +155,24 @@ pub fn main() !void {...@@ -154,22 +155,24 @@ pub fn main() !void {
154 const fn_set = &target_funcs_gop.kv.value.list;155 const fn_set = &target_funcs_gop.kv.value.list;
155156
156 for (lib_names) |lib_name, lib_name_index| {157 for (lib_names) |lib_name, lib_name_index| {
157 const basename = try fmt.allocPrint(allocator, "lib{}.abilist", .{lib_name});158 const lib_prefix = if (std.mem.eql(u8, lib_name, "ld")) "" else "lib";
159 const basename = try fmt.allocPrint(allocator, "{}{}.abilist", .{ lib_prefix, lib_name });
158 const abi_list_filename = blk: {160 const abi_list_filename = blk: {
159 if (abi_list.targets[0].abi == .gnuabi64 and std.mem.eql(u8, lib_name, "c")) {161 const is_c = std.mem.eql(u8, lib_name, "c");
162 const is_m = std.mem.eql(u8, lib_name, "m");
163 const is_ld = std.mem.eql(u8, lib_name, "ld");
164 if (abi_list.targets[0].abi == .gnuabi64 and (is_c or is_ld)) {
160 break :blk try fs.path.join(allocator, &[_][]const u8{ prefix, abi_list.path, "n64", basename });165 break :blk try fs.path.join(allocator, &[_][]const u8{ prefix, abi_list.path, "n64", basename });
161 } else if (abi_list.targets[0].abi == .gnuabin32 and std.mem.eql(u8, lib_name, "c")) {166 } else if (abi_list.targets[0].abi == .gnuabin32 and (is_c or is_ld)) {
162 break :blk try fs.path.join(allocator, &[_][]const u8{ prefix, abi_list.path, "n32", basename });167 break :blk try fs.path.join(allocator, &[_][]const u8{ prefix, abi_list.path, "n32", basename });
163 } else if (abi_list.targets[0].arch != .arm and168 } else if (abi_list.targets[0].arch != .arm and
164 abi_list.targets[0].abi == .gnueabihf and169 abi_list.targets[0].abi == .gnueabihf and
165 (std.mem.eql(u8, lib_name, "c") or170 (is_c or (is_m and abi_list.targets[0].arch == .powerpc)))
166 (std.mem.eql(u8, lib_name, "m") and abi_list.targets[0].arch == .powerpc)))
167 {171 {
168 break :blk try fs.path.join(allocator, &[_][]const u8{ prefix, abi_list.path, "fpu", basename });172 break :blk try fs.path.join(allocator, &[_][]const u8{ prefix, abi_list.path, "fpu", basename });
169 } else if (abi_list.targets[0].arch != .arm and173 } else if (abi_list.targets[0].arch != .arm and
170 abi_list.targets[0].abi == .gnueabi and174 abi_list.targets[0].abi == .gnueabi and
171 (std.mem.eql(u8, lib_name, "c") or175 (is_c or (is_m and abi_list.targets[0].arch == .powerpc)))
172 (std.mem.eql(u8, lib_name, "m") and abi_list.targets[0].arch == .powerpc)))
173 {176 {
174 break :blk try fs.path.join(allocator, &[_][]const u8{ prefix, abi_list.path, "nofpu", basename });177 break :blk try fs.path.join(allocator, &[_][]const u8{ prefix, abi_list.path, "nofpu", basename });
175 } else if (abi_list.targets[0].arch == .arm) {178 } else if (abi_list.targets[0].arch == .arm) {
...@@ -234,8 +237,8 @@ pub fn main() !void {...@@ -234,8 +237,8 @@ pub fn main() !void {
234 const vers_txt_path = try fs.path.join(allocator, &[_][]const u8{ glibc_out_dir, "vers.txt" });237 const vers_txt_path = try fs.path.join(allocator, &[_][]const u8{ glibc_out_dir, "vers.txt" });
235 const vers_txt_file = try fs.cwd().createFile(vers_txt_path, .{});238 const vers_txt_file = try fs.cwd().createFile(vers_txt_path, .{});
236 defer vers_txt_file.close();239 defer vers_txt_file.close();
237 var buffered = std.io.BufferedOutStream(fs.File.WriteError).init(&vers_txt_file.outStream().stream);240 var buffered = std.io.bufferedOutStream(vers_txt_file.outStream());
238 const vers_txt = &buffered.stream;241 const vers_txt = buffered.outStream();
239 for (global_ver_list) |name, i| {242 for (global_ver_list) |name, i| {
240 _ = global_ver_set.put(name, i) catch unreachable;243 _ = global_ver_set.put(name, i) catch unreachable;
241 try vers_txt.print("{}\n", .{name});244 try vers_txt.print("{}\n", .{name});
...@@ -246,8 +249,8 @@ pub fn main() !void {...@@ -246,8 +249,8 @@ pub fn main() !void {
246 const fns_txt_path = try fs.path.join(allocator, &[_][]const u8{ glibc_out_dir, "fns.txt" });249 const fns_txt_path = try fs.path.join(allocator, &[_][]const u8{ glibc_out_dir, "fns.txt" });
247 const fns_txt_file = try fs.cwd().createFile(fns_txt_path, .{});250 const fns_txt_file = try fs.cwd().createFile(fns_txt_path, .{});
248 defer fns_txt_file.close();251 defer fns_txt_file.close();
249 var buffered = std.io.BufferedOutStream(fs.File.WriteError).init(&fns_txt_file.outStream().stream);252 var buffered = std.io.bufferedOutStream(fns_txt_file.outStream());
250 const fns_txt = &buffered.stream;253 const fns_txt = buffered.outStream();
251 for (global_fn_list) |name, i| {254 for (global_fn_list) |name, i| {
252 const kv = global_fn_set.get(name).?;255 const kv = global_fn_set.get(name).?;
253 kv.value.index = i;256 kv.value.index = i;
...@@ -277,8 +280,8 @@ pub fn main() !void {...@@ -277,8 +280,8 @@ pub fn main() !void {
277 const abilist_txt_path = try fs.path.join(allocator, &[_][]const u8{ glibc_out_dir, "abi.txt" });280 const abilist_txt_path = try fs.path.join(allocator, &[_][]const u8{ glibc_out_dir, "abi.txt" });
278 const abilist_txt_file = try fs.cwd().createFile(abilist_txt_path, .{});281 const abilist_txt_file = try fs.cwd().createFile(abilist_txt_path, .{});
279 defer abilist_txt_file.close();282 defer abilist_txt_file.close();
280 var buffered = std.io.BufferedOutStream(fs.File.WriteError).init(&abilist_txt_file.outStream().stream);283 var buffered = std.io.bufferedOutStream(abilist_txt_file.outStream());
281 const abilist_txt = &buffered.stream;284 const abilist_txt = buffered.outStream();
282285
283 // first iterate over the abi lists286 // first iterate over the abi lists
284 for (abi_lists) |*abi_list, abi_index| {287 for (abi_lists) |*abi_list, abi_index| {