From ea785f70ef5148f372c897e503e71c080b69e8da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Motiejus=20Jak=C5=A1tys?= Date: Thu, 25 Aug 2022 16:36:10 +0300 Subject: [PATCH 1/2] glibc/abilists: add libresolv stubs Generated with https://github.com/ziglang/glibc-abi-tool/pull/2 Fixes #12628 --- lib/libc/glibc/abilists | Bin 205284 -> 210531 bytes src/glibc.zig | 5 +++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/libc/glibc/abilists b/lib/libc/glibc/abilists index 205d3c15fb8175e508e2e07230b6d757822a687e..179e3f6f3fb50cb33fbe6e0e9f52da77859b78d5 100644 GIT binary patch delta 6617 zcmaEInCI~u9!8Fdj8bexsm1v@WgDd?Ffo~#OkTqz&6Jt6`6N@HuwzkbaeR7eNk)Eg zNm6BAVs5Gt13v=;1N(#zw){-&4Gazj4D53m8WoNjw;nX9f$%MVn(J zS23C7702f$W~U}6=H=%x{NL-(#y*t+*&Q%1G_o%*$}i1JNi9pwoBqIzQDm~RjDmeZ zX-RQLeo+aT{@Cm&Q_JZP9}f!IjJ*78@{HNMSM@xzV|;u;d|DwWTF5h{b#ssAKYpu} zy!h0Lg2cQOgeh$7ttdf)EruJ}mv8Q{T*&1BN+A>liKdGivsxZFr5PLHkCDxJ?iM_b zkl-sUO)aWS$NV_>z(w{9fB^H8qckkDY1V2V4Fo_J-n&-1OAxj?s)(n_o?5 zXVT6qjxR1K%FHV%DoVp|(DKRLv(8TbI8%x#IdQT>mCa_c**0v3NcstAFHI}T&rK_s zyl}tp^al@_*ftj}v}Q5^n#aj zbts5WPN5`jH`lC;XK{^>Psxi<&d(*cw#dycNzI+SP{Lw*-Ek)N&GPH`n9M-+7_=5c z%^P@g>}H(}UsD*{LCaR5+5I*n37eJnVVW+X2S5_mZyPf-DbaS zmE11yimjj|AE_K8DeF%bxFI(A|H0D9#}6uPE;-aJtN}~JMMe0N&gO4d*;y3XnbzTt z=1sSH8Lhx|7FmI?x%>7~Mhj5JFHTJ^F3C?xEJ;NKB*?4y;$XA>-ApEr`1s<=-1uVh z11T@Hq9i51d~#u!#OCey{S=_JNM3O&88u%~L2hEn^uW_hmRp?}HP{{EK_zBReqK7N zw}>vhw`a369u=@Jh|e!5$s{`+OlOp3^qy`Y!6>zTvIOH!mf)QH2$uYOyb)=$TGfU z16OLG#FCj>oSRsZoIzf|Y`><$7%Xg*R~!$jFXD@{GYc60|Nl=g!DdeW|3Y-Sy#=Gx z_8bewG;L5}3`%t+`JfbtKTmAGn9S(G#tARix65QPE)xP5$BDVA#1)GfMfv&Qs=yx9 zc23O6OeC{H-u|zKaU!VF1Q&>bym44iJ*z$m=^d;{YTVZw#T_ES?B`#2oqh89;1i*&aTZ zQJzH|RK%5*5Nv*IFI&hc!s89{F(?UTQety!W^qzZ;`E99jF!`%u4S~HZXn0VHGR@r zM$zp`>lgzVLFu$OF*g-t5&kr`Jh`AKKP%1H2;3Ch-oKu4HM0RUk>{1<6KHrW&r3}# zN~)Y5V8$r2J$N%?7l#ALfBEHPcPLu7-`>sW3W^+1k&#!DpNN_wh>e@p?FvU2CD;t| zisLi$GD`|T4JiU4ky)IRUq1a~Afx8=v{Q^%tsu=7(z~0 z>=N zX$PwR@=Ef_%=+7nS(x6-Il!75WXG?PGLsOaGsJVbiJ3X*9Venw%5+Z^CV!T++{B8> z2d@fmpQXao%4`iQ=)sL4VhZ}=)Lc-jDkZ;Q@`oF$(?4V~aZJzBV0tB%my?o|6Q7cp zl9I!~@Q0y=VMTm=S@Gn(@zUE{G?^wa+7`r@R2HB$Lx^|0kT%mvT~LdrC^_tTmyoO7nE@rV%@#HTaW2G zi!G?Iz)~*}mom548#AqB(Fb)BvNH<^H87WF7ANPG6y;2AL%*6kbo zm>x0Ofg+9k#@+OZ0ZbBHIr+(nIjPC{d1ccX-!fTD=Llr-pT07HNtP+Ic>3EwM&0dg zflOsANX?G_p-fRiZUym_cpyH$JQ1+2ea&4C>WlH1#r3O%{j4#U1$w^8~&L&XiZ?COodc|l58WRNPbn+5&NUrna( zw_xPhe(L~J6g#XAA+uk--S7m{Pv*F^{G!~%62jvnpb;W)ssQ!mi&Be=p>-+#zUFqj zGfc*ifhAgfCf(Z=bBP9W*2C3(~D?_+X+*67JO`NiZW zwzQPY-02I;7$vv=e8O~#!yS?rAx%_ZQPiMo@c+#RlH3AgzXLP0q4-c7RG_ zgcTZ0pt%$t1`TN9)?k86hXk-d=2Ze%Kr<`MOaUwq_Xn^*+^@j|o@HSSV1ZZ>z{1|T K{hTJw&3OH3-B zys_6}^L4S)Oqt~!C(y?oEOs6N~ z^!1OJ*e4%)Z#h}LJAl13Cpo*IJY{;IAhX5hPu(kd+2i9gi}MomKq8i#*=Ff7v9~j= zE6&JGpPa~My}5c0JJaN<`BIbD&O6JRoS2+nJXui8a`UD6Hf)Tgll>wkr{`~EWZN9E z%$kWYar%NLMw`w0E2pq>7MBzirxwH;Cr>YQXVl(oxn7fnB{#byb^66QOqQGPZx&_R ztiA0Et5AGmN>)i`Zfb>@3B!L|o(86M)Bm$FOS2azC*~yOLmdSj2fdeDk=CgZD zxhG#dp)}d;L^n%vVsYkl!*V8(&D}k%+GjKVEQHn zMk(gv)RO51WlV0{&nPhNWKmDc$xkdP%}dEFPGev&U}#{P5FZbAU1n-(s-cku1A_xY z1H+o>H&hu@C-eGnZjV-D{K2+;jxJ+>Fk|NQfIp0)(~TV&rG)c}BrFm8|NU|hgBeSa6D=(LrL ztdkGDH=kb6#Tdv`RzAJ3g;8Srhc3oD!eFg$=P~wiOfUG##I^nSaz+uB?M!PJMR=wg z@Gx;qf4GBDbb8DV#_H|gb}$AoZZFuyc!GI*@;=7J9PG*Yd1=KZMbkGnGAeH`I?gD` zvHi?>MhUj<{MQ(n8QDM~otH74(T!1Zd**e<WaIN@7Y%4g1|0M&0ck ziA-fI9PLc&(o;)HOC~Qgwc36xl}TD?yJ7`X70>oNEljI8Sd)tji%KRRd~db=OE1%E z#_bRKncT&;XDnk1 z*g*NNC~dl+G^5CNoqJ3&jO^vf#mR}qsnZuEGg@swai8g#7)x48X71#R?Bdfueq(am zKIJ>pEsm`lnHhONg$=0unZEHfqv>=WUgouo#nT0J86Br@_{YSu-G-03nUN(qCqI3% npqTk~GXdt!OpFt@zY=10WZqsO#(Y*}`Vwts@9n-i%wk*s{iqF$ diff --git a/src/glibc.zig b/src/glibc.zig index ceb60ff096..c02989294b 100644 --- a/src/glibc.zig +++ b/src/glibc.zig @@ -41,6 +41,7 @@ pub const libs = [_]Lib{ .{ .name = "rt", .sover = 1 }, .{ .name = "ld", .sover = 2 }, .{ .name = "util", .sover = 1 }, + .{ .name = "resolv", .sover = 2 }, }; // glibc's naming of Zig architectures @@ -59,7 +60,7 @@ const Arch = enum(c_int) { riscv32, riscv64, sparc, - sparcv9, + sparc64, sparcel, s390x, i386, @@ -1155,7 +1156,7 @@ fn glibcToZigArch(arch_tag: Arch) std.Target.Cpu.Arch { .riscv32 => .riscv32, .riscv64 => .riscv64, .sparc => .sparc, - .sparcv9 => .sparc64, // In glibc, sparc64 is called sparcv9. + .sparc64 => .sparc64, .sparcel => .sparcel, .s390x => .s390x, .i386 => .i386, From 29e90efbb131b21eb7f41425a4dd4b74e6989942 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Motiejus=20Jak=C5=A1tys?= Date: Thu, 25 Aug 2022 16:46:32 +0300 Subject: [PATCH 2/2] src/glibc: remove redundant Arch abilists now use Zig's arch, no need for a separate one. --- src/glibc.zig | 51 ++------------------------------------------------- 1 file changed, 2 insertions(+), 49 deletions(-) diff --git a/src/glibc.zig b/src/glibc.zig index c02989294b..4e33867169 100644 --- a/src/glibc.zig +++ b/src/glibc.zig @@ -44,29 +44,6 @@ pub const libs = [_]Lib{ .{ .name = "resolv", .sover = 2 }, }; -// glibc's naming of Zig architectures -const Arch = enum(c_int) { - arm, - armeb, - aarch64, - aarch64_be, - mips, - mipsel, - mips64, - mips64el, - powerpc, - powerpc64, - powerpc64le, - riscv32, - riscv64, - sparc, - sparc64, - sparcel, - s390x, - i386, - x86_64, -}; - pub const LoadMetaDataError = error{ /// The files that ship with the Zig compiler were unable to be read, or otherwise had malformed data. ZigInstallationCorrupt, @@ -158,7 +135,7 @@ pub fn loadMetaData(gpa: Allocator, zig_lib_dir: fs.Dir) LoadMetaDataError!*ABI log.err("abilists: expected ABI name", .{}); return error.ZigInstallationCorrupt; }; - const arch_tag = std.meta.stringToEnum(Arch, arch_name) orelse { + const arch_tag = std.meta.stringToEnum(std.Target.Cpu.Arch, arch_name) orelse { log.err("abilists: unrecognized arch: '{s}'", .{arch_name}); return error.ZigInstallationCorrupt; }; @@ -172,7 +149,7 @@ pub fn loadMetaData(gpa: Allocator, zig_lib_dir: fs.Dir) LoadMetaDataError!*ABI }; targets[i] = .{ - .arch = glibcToZigArch(arch_tag), + .arch = arch_tag, .os = .linux, .abi = abi_tag, }; @@ -1140,30 +1117,6 @@ fn buildSharedLib( try sub_compilation.updateSubCompilation(); } -fn glibcToZigArch(arch_tag: Arch) std.Target.Cpu.Arch { - return switch (arch_tag) { - .arm => .arm, - .armeb => .armeb, - .aarch64 => .aarch64, - .aarch64_be => .aarch64_be, - .mips => .mips, - .mipsel => .mipsel, - .mips64 => .mips64, - .mips64el => .mips64el, - .powerpc => .powerpc, - .powerpc64 => .powerpc64, - .powerpc64le => .powerpc64le, - .riscv32 => .riscv32, - .riscv64 => .riscv64, - .sparc => .sparc, - .sparc64 => .sparc64, - .sparcel => .sparcel, - .s390x => .s390x, - .i386 => .i386, - .x86_64 => .x86_64, - }; -} - // Return true if glibc has crti/crtn sources for that architecture. pub fn needsCrtiCrtn(target: std.Target) bool { return switch (target.cpu.arch) {