From 6930d60e10e81283a57be3ee3a2b5ca328a40304 Mon Sep 17 00:00:00 2001 From: Tianon Gravi Date: Tue, 17 Jun 2025 14:52:33 -0700 Subject: [PATCH 1/2] Update to Debian Trixie I had two MIPS-related hiccups with this: - the musl-upstream `musl-gcc` wrapper script has a bug that drops compiler arguments (patch included here; hopefully we can remove in the future?) - QEMU couldn't run the resulting MUSL binaries until I applied an update to my binfmt magic/mask (https://bugs.debian.org/1041597, https://salsa.debian.org/qemu-team/qemu/-/commit/bb0811e353b757b3c4df1c0010e3a17a04a9ea9f) - it also runs just fine on real musl hardware --- Dockerfile.build | 11 +++++++---- Makefile | 2 ++ amd64/hello-world/hello | Bin 10072 -> 10072 bytes arm32v5/hello-world/hello | Bin 5472 -> 5460 bytes arm32v6/hello-world/hello | Bin 5460 -> 5448 bytes arm32v7/hello-world/hello | Bin 4048 -> 4040 bytes arm64v8/hello-world/hello | Bin 5200 -> 5200 bytes i386/hello-world/hello | Bin 9756 -> 9756 bytes mips64le/hello-world/hello | Bin 7440 -> 7408 bytes musl-gcc-mips64le.patch | 19 +++++++++++++++++++ ppc64le/hello-world/hello | Bin 6280 -> 6280 bytes riscv64/hello-world/hello | Bin 5152 -> 5240 bytes s390x/hello-world/hello | Bin 5376 -> 5328 bytes 13 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 musl-gcc-mips64le.patch diff --git a/Dockerfile.build b/Dockerfile.build index d22307f..4cbf0be 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -1,10 +1,9 @@ # explicitly use Debian for maximum cross-architecture compatibility -FROM debian:bookworm-slim +FROM debian:trixie-slim RUN set -eux; \ - apt-get update; \ dpkgArch="$(dpkg --print-architecture)"; \ - apt-get install -y --no-install-recommends \ + apt-get install --update -y --no-install-recommends \ ca-certificates \ gnupg \ wget \ @@ -37,8 +36,9 @@ RUN set -eux; \ \ arch-test \ file \ + patch \ ; \ - rm -rf /var/lib/apt/lists/* + apt-get dist-clean # https://musl.libc.org/releases.html ENV MUSL_VERSION 1.2.5 @@ -59,6 +59,9 @@ RUN set -eux; \ WORKDIR /usr/src/hello COPY . . +# https://bugs.debian.org/1050429: error: unrecognized command-line option '-EL' (on mips64le specifically/only) +RUN patch --input="$PWD/musl-gcc-mips64le.patch" /usr/local/src/musl/tools/musl-gcc.specs.sh + # the following steps are grouped into "architecture families" and roughly ordered in a descending compatibility way such that we end up with the most accurate ".host-arch" symlink we can reasonably get RUN set -ex; \ diff --git a/Makefile b/Makefile index 3f1bd74..206022c 100644 --- a/Makefile +++ b/Makefile @@ -20,6 +20,8 @@ $(MUSL_GCC): mkdir -p '$(MUSL_DIR)' cd '$(MUSL_DIR)' && '$(MUSL_SRC)/configure' --disable-shared --prefix='$(MUSL_PREFIX)' > /dev/null $(MAKE) -C '$(MUSL_DIR)' -j '$(shell nproc)' install > /dev/null +.PHONY: musl +musl: $(MUSL_GCC) $(C_TARGETS): hello.c $(MUSL_GCC) $(MUSL_GCC) $(CFLAGS) -Wl,--gc-sections -static \ diff --git a/amd64/hello-world/hello b/amd64/hello-world/hello index 3ffc66f4348005911fdfa00af929c727f7d4d842..8cf6df2f45644d135483cddf9237eb9d64196e29 100755 GIT binary patch delta 518 zcmccNcf)VO49;zA3}CQrCzmcO3^vn}kPqpu}+(6%G!dQ#`uM1o&A!I*-3d zWdfOhB;s(eN9S*kPWu;2fdZX}nos<1y;KoY%EEq(_1|Pi5n;{WiVO_=tewt4OIgJg zfSNj+SAb0FZSDY3oe-*`{hzkEUd7xOg>~=7vyI}GL5mUasAb)n}GQ7Uz(al;q z`Ljr>wchm zpeZ0x4Tz`#kf{n{_Okv1N&CcD4^)4PS~KG*_Ldyt}D+Z$lD&whAxnySi8HWSn0*ZcSXKPc$-{{8>||AErY m`C=0}CnqqvZc^C6!nk=3lD}+ z@CMHwIBLika7JO2p!cw$_1RMdI}+xuzXhR z{yyO*qGK4`lToTJiDcmMa)4tO-Nk5bWL@5fFQTmuaB{+Z8ohF;bQqz+WPd4UyhP|W zvL-(i)U$n-JLMkNQ!9ND1x9uy_?dBNkz2wPU8MT;znT^17il`AA;E|l1opoTK%NB9 z*ClWpes;mR=0oa-bQrlWWkw!L*uRID_lX&+!cpXmBV1=P;7mOX@Iw0(jMjJKGX0we xEcZF??&xXt=wIKLS8V+8{c5vPOOM_OKTp>8;-0%kGhuIZT2vzB)pqE7=pPd>z8wGn diff --git a/arm32v5/hello-world/hello b/arm32v5/hello-world/hello index c9e599e403b20db5b618c18053d33f5a64309f2d..e9cfc4fa3b4458b7daf5ca1c168ed8c08ef15005 100755 GIT binary patch delta 1227 zcmXX`U1(fI6h3o*lFjBOJDa^Bn;*J2Y-F)odV>j+`ol)6z64ApLWC$A4ERuysC^I= zvfHhq5Z&EO5{fk4`;Zr(EJkFNF02rtk0}0Eoqa6G^Dm%cceO6vt5{n7DvN{rX7#%5` z0u1t+=PTb0_hjG@c>&MY@6A=3@5Ln1k-hg>%V=-yXX8w~!KS*;#TiWidz^`{*z?_g zaYk(*4?kqDCbnT;066Ac0t4crHaNJuSd}d6HLp5eK->#DG3$?re?x3(nZecZs?^<* zAEBb8nKCARB^V|edSCpi4RDPpnj5W3%_;fhUY2XR{fL3q_3RdU&IQ=y(7CCqG_oas z;yBXg0cDHwaWSc9*j@3OKHN2c&3#B)vL*`pV?Aj^O#Z);9#Pkyv{meH`Ajs<~Zxz*)mg%eJbi5AH*JXV=9Z$ zF8FFU6EAjtv~mTC(aeVY4TF|Z?*Q$oGl%O?*UFYMI5iG`(Cpn zSMtpns7DLId8kG7dVrNjBmBBtg0i|>@Rb4v)aCAV83Eg13p@hm;OuyHMKYvLB`V2_ z(sGK@jU%nRBd1n2!|>>B03rwNLOt20 z_5t`F@ip0j?h$v*)ZGi}+($L#t8;{GGQM#@C++>ZJHe=L8;pfQ5rRPyh_-i|Vw2Gm8n16~HM z0TBTEr)ynoXQ%63;~5hP1#aNn=D`c#b+Ab>vcVDf4-H%~jM)eKu`t{N-vm4Z*Rc0{ zO=ml)*rNV)4j0`>Xta(CuF5WaRTjWEQK#6(IaLor1K0)@a6Zex15xh_*(Fg=q)gSv z7R^N3bYMB6%TAkfeT?SBIIQC*MHK7-v20tWin#zUZK~OG;!9X6?zXrMs|Kqk{wn@!ww{4_N$%IxAOk`K;lTi~}v4tR8%tN3BqvoxJ zY_n7TEik(JJ+bZt#COYMHS~;nr=WMEoQK!8A zbV=7zd3t3hiv>+-xKIe66ZjQeQPEcu8Uv?l<&f)gtae_pspFf#JW9q~At)=pGcISl`J-$X17r zl`f)oND+b*>#!d`$FT@xL>yDmyDdZt{@E8HSL)~!Rb1A3)t~o~xTn3$o{3GZi=7e8 z`a98ag`R5mae2(|t!|;59`yN0?_*61U+G&7gC`wTvkrkh%&X1^?FUkWCoFIScAZ4Ovq)&U14H4vL99ThM*0ynA@K zEu>M-yBBz_rtnKH0V-ee7D*fSOj~>(Iy5PKf8!j0L+aHpJ-k(?`Wkqh%GYEAjd&sZ zny%U>f=d%t0v|Ud&V-4a zl)WxP@Nq`IRP>RQr#y0!RQ^oRN0Q0!rS?~yW7OYc*OmGPPwn?;%F{@xV;`__s2Y_Rec)#Vo5~YP`B(AKFf-`(JnpcV~L-lNxcVF zkN6K(rWLP{IA|vI;5`}@Z@~)kjlpUY)25*Zv!545#Dl!^;t{M0tcut)yY&iQw<97Q Oi;A8YXMc);Slj;;B&mD= diff --git a/arm32v6/hello-world/hello b/arm32v6/hello-world/hello index a0336dff36f534fa4ea431f686b909c584ca57a9..a498f45db40a15a66d4e2fe1623e19c8fb4302df 100755 GIT binary patch delta 1216 zcmXX`U1%It6h3!;lF4S0y_=no%@56%O^B@t9Wg<%t?X8XJVe};h*hejv=4=XMD2s3 zklk#Q3ah)Dn}kK0?mP$z1~jHhlonR0AmT$oMGFeEJG~@rjI2ILAC&Q%q%(Yc-#Pc* zGxwfz?)-H4yThe8OO_8N#;3Z70_YSx4DY@@)uq6%&oGsvBJR>ih6`812E(}Bt zFxm+)0BGdYA1Z&@-!Tk>$nkjg+V*6*{%Y7G+OclD+t8Y;x5gt(oMEZ<(Fmjafa{!z zPuLUf+nmuY-~w!)Jr}J&KMZhu^CTD$=at^xtEa1yC7pUD?s&ufuOVRR|EikZ_M4%ug? zs!~f9-O;^BD_fMz%ONqLj*>;Ta)Q4;YV0=Ij%OxIvVbgGwUWH}a#dc;AR}?7 zuDVXWWv1xrX=IO1d5<7lL@#>SdFULnYVgZ@nN{tat0BAGzAPCkWI$WcCU^kM?fE%* z>|UW_JTJ|7UfL0ql^0#pElbTVOCB#vmELn%?L>oUreWBRHB@@qGl^W&R$XjJbW+we zYWap$%VBTk-v!mjEQ$ zYv!)Sn$+9^ZxdgXEtqcDi@It*9`t=k32dDAHB^)Fiva$u35dV%SRPd%qO%BvcSD4b>wGmZ=9{pBAg|2XQOnTc|at YHL+`rKoQ+9Qr%H8+RfQ7;&^w@|E(o?hyVZp delta 1255 zcmXX`Z)jUp6hHULi0KEuf7dRZBlC!5pHf~nG9y)M{ z(N>5gppoM}UtLY^AB95X_`G;ybGqt%8fy`4nRhOQg_01MJ-Fd)t-gM*Dzb;&Z0w`e&&amVk*sy7jTSu82(!Q#=n zRPC}Gp^~IrMH0Q`4-y^xK>VfjXJyc-q!d$D3%{AF@hPg=a0Zgjv)6 zM7FMLnKId(h?h1fQ<8_pq?&%}k07`|PH*~;gCNT6^}7W5zaTgmW|F|x&(V@x6JM#R z1EWOI{kG!`?B%M8RrLjPme(b+aDSrTJd3!m!%IZ8QT9lTX~|=aVWI(SdI$U`aD5Ny z7*Pgx1f`R`L<;`O6GR_n#_s9jGi_X5KZH_h$Jj$5wPE&-(DgUsA1ZWTvnS-U!ML}L z#1F&geSM7etSsomj9m~vcAbswB#9mj5v_x-BuTv7{rTLNs43+Z77zJxfT=g;eMpmo>BKuR<$g zz0y*#m_g(kmf~vM5xrD&Bi4M2^U{KWmM{@#+pf#)=5Cu9&9cjFA04xB7AZL(PzT5YS_ELgq5%__@51a?r zz&gdq1V^Cnn7ECY%D7AoL0JHr_{*;-UKbhsMdKYh<=71etGb9 z*g`gAyKhGm@-mR`WmEwkh|7Hen-!Pi!+Pjrirev&Zb7odKai&T7)^_;85hr(Tn}HL s8E7dzjG2ejFN&t2hZz(^74|UpvRH-GfYcD4nPv^KFOg=xIGX7HAE4lvasU7T diff --git a/arm32v7/hello-world/hello b/arm32v7/hello-world/hello index dcf0633aaba0c9b604791f46db872f3fc8f0a26e..b5cf738f7c5f627ae932160a98d15178979eda23 100755 GIT binary patch delta 974 zcmX9-YfKzf6h3!e``+!k4ItUNFA!SUNTFEjE0kOY%AkaZaT8NBYnr&*n09{ zKlFz-tT!f8YD`R%#%Bt_{ecm8f3&7CC1FcVum({RgLEsIO*PCaVLStO^3D0ab58D= zbLXDr(9O_vm=tr7*s*0dfCUk(Mey0z%We++91No#L8oMeF*@|e$Qf4h9L&8}<2zRc z-NM;wSO$G9Hy3ccS%t8D5elohr5;bTD$brZg#V!MyNj?8IqceU5x9@|81)ONuOlxa zGN|7nM<*^K??N2FT5q5|hq%50g-kDip4XzH{MBsN^U^i9+$lo@^c~|_Y@$SYh`GLyXG&XgO8U>9)(25=u9R)tK-r9=_F8x{k39m zVT2R$5aN;(pbPyC2m$#knAe%NJ!ftgcO~U5dOsm4eB-syQy>rwww|h*|3MIBB z*4RGV;96{@8s?HZ9&_|vpi9``vTgs4j-z#B8{eYcLS!wCHDw!N=cOiZwtA*pPzQCh z^}wP(KYvwP<>n_HBYgWRUiyrOgAeyc0e=&6Yu!PA9(|V0;h9;((Sos{hnsKmh=lyj z;@*%rjiG5am_uTg!g+x delta 967 zcmXYwUrbY19LIm>w)awMOWW1ZKf+2W3~+52R$QlBhU9obFT)sJ(wG?UH9oY#hb|!t zqYOxvY%|+~^<>Kx_kb_U5^mSn=1VD3Elb>3hO(7g-F}BzjpvULB7QJ zD8@gbUqFU1{)lvpeU82t!G*vm>buCzRVZY70JK@Pkr%H_@9!7Bafk^K!k}&GZ%U)| zak5^9$lH3Pfy80wKSh4y1K2BNsVeiSTXPAib|OoI@=F)J`8|h*saM`3IWTiqshey5 z!Z8=`8=-OOak5U1vsbzHmNS)*YHa3>m0onoJG zp|M(=&$4lg{P6Kv!G6ar9@aR|>-goXpxh!tE8I1HC!LnqgQ8O+jafR8iA`&`Jz5aJ zk2NN+zEWu)fc1yGG(iT8wRuFsZoT4YiZH&Wq(b(L@1}q(}r{Cf5H`JcLa5MXH{AJ4`8D(SE zgRZY}9a8~-^Qaj=uwShw#**lxNNi2p58<*7e|(>^iwDwMw5;pnaj~pFx%P}gthYFv z-zS|*WvPvN(ih|->0i=8C2{CCnS_UFQqC!hawi_da_V?0kp9YV+uQeISGT1N)~&#; zTRF904YyLY5KwHpO7d~#WhvU1r6XP%NGnRV!$S!TYZek#zHMVa@&=heo#14s2qNs}~aupa-?e1|#O`05J&msUIbx&cLiPX3nFQRa|QTpF>2kFkaz#`YP$?cj-$c z#53#^u8VB&MEz(+*y{I}wvW9gIF?L3t5|hESOr`cdKK%jX7j={mG7Pb7_R#j%T{l+ z@^kMh4S@8rg|ck*E3||3Y=*&l`J1@D+y%zABx?SNQg}|1Bb|7VtzN@KYC1tDP{$&k zm*UBx5Ef*_J=E_s02*EXpQsKL#miFIyDQ-x{=2kqsEQuc&Jd#(C8Bl{j2a54xwQ7$ zBQW259OhU2OsrtPU+~=3uq0NQWd6!r=GucUvBumc0l57)`epBVzTxyMM%-;Av~#;A zUbqD@W_0o=_o&lwOtGfE1(6FNi=NwRsbvJN+qYUKd?|MSYjc!}3us_sWlfiy2pFhrT}nMuEWPzp%cF|NhBj z?^BJ}#=ycyX5LSr8EDq#XjU|i58w@c-4dcFGOexa>TM zvxrX#d@=4(EE;ne6G6rL42VAX0ko_d%V$Mbo`|<|%t+wV$#}pTkR2mjhC81TR8p)G zP<>p2@(Lr1Sp~{*aLr~Bad7K{SDAsFLE6BgST}tD)=vO*4Kt!uSP-nUcyJt;jzxO> z-dpEquvuDht)JtEywTuAd?lw5Q3(#sNHENgc~hjs&v{=VKkzkgg4!zg`8shb_V|3R ziPT23`2=i_AWkX7VdS3P;gUEjh?B?-Ib7z^Od$4=^fAkFdgSMyz6&6Ov{Q>R;X};x z;OvY8h&K_>{lPEpo#5B^D!cIKsDc52HmVq2KH7V7gRcXmnsaC@I`B(NPD2^1&W?~s20J;Ih& delta 1349 zcmY*YZ%iCj5TCbi4~{>9JMKzRQFae&kP@pg9;qST?lmg$gKeZWCT)}+l~k&U1V7Z! z=B^gha5iE4PWe)mHj;GjlL<5_YFp44V=x8~iLut)aiFOhQ(OqQF|hvjKvQ2bJ8$MU zGw=6y=1n(DHw?Cyj#W}&ja3?5@9nmFubCF7#y^QtuKWSX@IYf&qSQLD`WF+kDkYv- z=VVAkgVDiV26+>+%VIa%D}P256zABhQk^0yq&wInqCskEo!~Fb*D3saSAKGw?XGRL zT{NZp60<9u(z!j%usBO+I8QUwUhQS(Z#Xvx4EAh-=wqtUY%wf7&su~d9bi#$fOlj6 z6@NUw+N+yZ+Yc8v%U(4F!h0Um?2R(AQ`o1%n*Ffj48^73@283OZI%FZ`9-}D9ne**a(n)6Ezlibvny~pc-f#mLl`@jvx~;FW!zlgiK>O2G@c8{W)5*ncX{B;H^&q*7VrzQJGJo`X?70R zJ}l>(kF=1{ckATY#VxD@*y0w}4{QY3(iYZ7THIa&c%Jg%NG(0o1$s-Bnmsb1CP$E% z<;7?b&DAhUZ4^I|cdw@_ORqqdzs>2D^P)>yXSL3`r)&4f_~3H|og_%DNeNE^4X@&4kOVr+SKL zCR>v@tJ1cq9*GTHma3DZQXqL}JsGcuxRGLXX$|=q^mDi?{Am7o%xzHsQ>2?~9Z}Oh zwg-jXsr#}(B!NJMQ&M}2@}~wg^I!X`yeO-944qgqgy+Cy zvJd+-n|Yyw(B;s09?VDfsdjEC@P~qAUqH^2@93s3Yjy^?oifd2I89+LXNZahR0vUV z61JhC1|dcdQrM2y((+L>jrtEAM^dFU_4c@T|rmk-heISyZo z>%dYV8ssDRTA@j=P~Mk6;87tx{qv3QDqL3(as)Ds7}<4fty<_4kiKQ{V?}4#K1qXt zC27Xw-J-$Q%H~G9eG%rLD=ql{`}oA9zpiAiOe=Wi#7%#52_8qmS`_zJHJ8>@Zdx^! Kqg_?Muzvt{jQg|z diff --git a/i386/hello-world/hello b/i386/hello-world/hello index d51e54c0d3953816fdb9fef774d3afd4dd5ddc5f..e6f30d4e2908c9f1d59102b032ca82fc5b1529aa 100755 GIT binary patch delta 410 zcmbQ^GskB_3Tp>D14GBg%I;3QlD2JKOnJ%g`-o$@IbduD}zJp$ilTC${*)#wC|KE7nYI3}=GH=J9|Nlc@I0Fr8Jjyk>Us#r%GR@<4N&-w1TasK|6m2fx@o zIbI}&oegMYs=}7Y$iTpwJlRzAtrY+9hABYHSb%sZi0JHy0g}Bw zg4L7l#cTyFftGi&sJu7`bRy6)htkP?V#^sDHk*l`;@JF8ej2lA<8&4dpbj`#vYCa0 ZZSqRx^NfX)D^=uKLGq28=c?2*0ssndl9d1e delta 411 zcmbQ^GskB_3TqcT14Gxw%zNrCUaSTYOMyi58=n6qDl#vUCYuZBG0vNuCJ@1R zWb%Fi7uMbqHHHb3IRyPVdbg-C072U1ctH;YXT6}96%!K!L*udYiVO_Fjc@h<)%4b= zNOaFpxd3E#Pf@u7q&}}cen4Ui3rDAf;el?RW{1|3r9XOEnkO>~^)PBp?h~5Nm9GHQ z9@P2y#fi!0!piK~fB*k)JZv*LQCOL`>(BrHp)Z_)#xx$~nLJTgmYwV0|Np(MyC-iI z)?(Z{`GK$;WAo(y!geaHK$kQh5r~e9KOFX={y)%&V?OdgbDQ4?bjPU3bV>)m*grW@ zB!-;>Xk_Ezo0E@-crf0a%qyzGmdeP$z?wSQT=cCh*YSoaK+9NwxVrJ8zl?(B#G zvN|tLwiB}zG6UM*$)fUNAJCOR`&tiFPVNy~&RDnEMEn%TCWR@?qRrD;IDqQmV990{ a4wlI)mCrL4Pp(vvX9dYOZ=S1C&jO6j#vwUW05i|j&~7#Arz`> zP0j2No#am`arOy+N#U`%=dKF*n|khcfU@1-0ni} zbeP|+uBj@$-Rbre+^Irg+myv~>e{NlYdtyi98@2RW!^r}C3Ed543zUO@_BU~EAmvh zflcx);bu0(-$bnPkHfDjXK&)SMpm<4z9q7bW%%yM`USnh zn1~}StBun5)6V_V_Z|H>nr4!?Bp$s*iK&y_y>2aET(Wkl%u3XQZfv8pv5ntbu@yxR zR-9+!d}n1{KH0$%CJ}a{2rac0GHs1&?JZ{-?_zW!_W;ofSxgUfKZIvdMI|F!+v^&1 zYRVvWF=Y;uPP-N?nm~KkLK0{K9iRnd6ta^PS~Tg+De%y@cPiyHFd@#kX(vK?+c`zH znWL2RB^Elp<_+0*L7Xdd zk~B6&#FtfDRYl1A#`L!!cGtG?hpX>eG2VBeYXEX5k_D)8LTs&3?M-~Jdfkd{jA)dt zkw?!#%2Y5Y#lNdwn-9^j6M`obnIds2l{X2|J||%o=zYq@QthLJ$J8X%GHAk4peoVu z0MViT$S@wFw_Ju;DaRkV3Sx)^+jQWavb$e-NGECu=P8lZ zSeW+q6Kx+?ZVMA_&?u2SL@MRRqmp>PhQ2T*GH0oZ`f#4RJYI_q-WXMaXHch`PByR@ zjWnGVMZ=(8_ZM->ZD|ZsIvJ)6@KCxP(TOD%H-r( z;ZpU=hJp;8mai3ZP7;21%)YQaX~73rcBqB=x_G{>PeftxEa&@z+$bW?p6?7ge$7 zza=8c8YW2-N_7-Wl8MSW3g*aU8J&iQO4m5j13Jxwf;kL4hIs;yz=dDs9O<7~(U%`r z5lERYioWqVaj1U|xBy%Lrn3n=9zAtYP)t6SmQ@kTtWqhJ+)F9bg~?AkI=rj`i9Uok zI-!z_HDx^FE|lYwcw-b$wZ~Dx@%l$#O0Fzho&QP%xqk?8W!^6G3u=4|w2#VO4*aV~ zTeiW!t*|BR8wu>&1pBsKx9<|kYlVH=Jo{D$_LaQWYxd1w^Y60%@$VxL?l%Z1#gxe< ztRms!U?FU-Y(O$kW8-WEZr|UvYwO;=> z{`jPiM|?cyW64Kc#pU_kVGo0knb$P0O^Sy--uN9<^wZlOq`%VJaL(`VsqiLDF7dFB zKVv?@hK_!2zRYl)-@Y;(4JsevJ61MFgZhr~!)Q_5-Hfq8{&<1&C#OYD)Jq5>+v~rxNd#)hzaHJd!2t;SN}I4JN&%> delta 2561 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 C$}2qp delta 1656 zcmZ{lUrZcT6voe;SzwmZx+FtugVx;^*qJS9!NxEfA}mPh?hp}ZF|nFRtqI|6c`%vU z8E4q+163cE+?YVpD5$h)Q%xIu(D)~WSi!~zn%Jaob|a0u6dsl}1wG{zKe$0PM@lF->luUeF*otTQ0I%7xsqU90yvr<+QP=s=d1v|E*>Fqy4%xAj?$Mr zO;s{UM7WYJfhaCKkbx7K-{`dGAh|?ucwVT_u@74bIIS;|bhB=M-7LV_lLzj%Sbk84 z6-cy|0BFXqAKAvwNt;GX{8bAq5h36Y^Tm!kdnZyPp!HCzq`EGiV_gTqTVDZ*hybh^ zAoIXzX66r==S|^791s1bq;7Z0X3dQ4eRkYd!;xsKSpiO40|c~Xx>?dh-k{Hv4hog! z^!?IqvP4%(52=$l!3V@0V*&Tki873|UG)}Pi{k>5G*)(++@O_0?aZCB5ZOLdRuBQi z`Zx`E2e*G#cG7$Wvy2UBt8~m8Bx(AEcaWT=f$|`EkH*ShB?`SzK4c5oTh3f2sw1pdpdAU};GA`y&p3$;kNkF>*EGXP zxIaNs<72r!Y07;`v!*O*^pF}Qj+z1^k>f}lWlf}KwpBm2xyiZ?50JMvs4FAYCCVk#8_KlhZ ze$kAskabSXnjOH`=r}{r838rS*tEu2Y+{!2=Vlxq=wTm7;Z=4gwZ<~e8b%kR%kJ2z z4g9l#iJJ`Ch4e*ZmFZ8)eYZ^srsIon&FqPmTRnc=lF>-0;bY88VF?!uHC`}1kd5;^ zKxo8+c@O3{m@+0j%uflJ7cie=$`v#n_e0`&tUm*wO!&cex}Snt|(7Sie|PT-uV zS_Fb4EuDJ54@vRv4@5$}EuCurDvOT&&W?;6h{SqZY%Ewq$LlPJi9&&k1)IeJ-p%Jo zW|Xhi;iWqDl&rsF%6grZCl@FElIr}(baF^VpzDxxz^K?{O%Y> z_6HK#<8=1&x;3_ty3gjFEu9m~74;3&F5^3f6TADL#QfGGzESR>SpYjbPS7zy$09n; zJI(Lu{=DOrf4a?^6}j2Df1BMgi)QBvX8%MpJ7&==)^W2B(Cn7Z&9b7tQTvG7d;jCM zCP#JOn==c(QBhc4rhW3KGyW=xkPKCK9`w3C$bSM{dSYjj*I!u}`RNpnj>(15F`CBF W)<+^m1G}2MMzqgc zQ>NRYPloRBc5g(z-oNZIRv|8IvUZYe>;`rCWGb2A3@-hb%3NO!*=Ci&=-1^bxKjGc zQBuwPy1Hw1qCPhUFV!{M#jF_g*{|Y3YE2cN!%*V$93_y$rP{=OG03WI<*xbKqZX$7 zvWSNPqKxMC0eZL&csobs-CVT~Yn?RDTzTjt$A#shJ{^0Qtd8ztNHbB>!^e0lou40l zuW(}Z2zyVhnBLUz0fp5brQeLaj}OvY(LeC7=?c?Re@r^x42zQuuzl~R)jfNYd`c0l z*L+1+UHoZvQBA$`8~8a*R*@3c`e6jvV&hJpAeRxuu?ZbVwH-?-j#ljpdF1ApBxd|-IP-T%gz*1XE5%H_LwZSHR03KDa2*{=pDCnWnV|K**# zyvNn7iil@w&o{l-_EPTM3qI5MnM0<@GsjF*XO5d@WSeP@-r_-~x~#(`>;gIcd8LHC zVt%>x{>km94O6Dr*$Q#wHgsFFX0RMvdf`<6sZTnxmQAPM#~frQH-D=Sx3KvyI3}ka zTpnHABNohQlI$DG#k?>w{W#!RFdJT5%>J^EC?NMk6iuV!#LLZ??+=L77#+=I6@%SJ z-a9EObw>XcdMwVq3uUYmgsz)#XW)|iDqdvQIktRN<1|C?jom%f)L!*HIPb=>QYiL# zL#1Q_u}x9x!7&i|&NfMuRMAp>aMgMI70RKk-nc2u-S^RPiTlg(5Vo zc(>wD*jh#SnTn4p{)Ckkp+&`~6o10Lr3fcf{9DDJutSQ_s^Z&v*Bh!_lr^|RAIQ)L(Gm@XR5#p0$UD6p?=%7cK;OfIh6=-r$7^a{e)UTSzepYq96Bsw#bC~? zd-VtulcD(F0rIf7=12|RnK6-J&?hq+Qhx@UFydF>>dY?W#IDR0tIT9`HG=$1B(Anp z=C;&97}Th|uaUVYqdu#z3qQJ_q&U*ZDQ53U~84y57|4eK^RM=`vG4Fe+N{ EZ#746`Tzg` delta 2268 zcmbVOe{2)i9sj;N-<_Q%!R8V>X#*s=rb&U(N+AmAAc{+EvrP)s#*ZPjQlbk>p=_fi z)Y~LxJI>ij=0dzjYG<@vjJJWR=Y8Mjd-l6k)nC<9Ro-L*bui@G0Bb-;t`9*D&;Yx2WNyG1oHC>D z1eUr62ztFCh>1Bahg51VV)6 zja{3-$BY&>h?Nxz>Y~Njgz<%OlUbOM%zQ_N%^+q5MUY(H&HFh zTAs%Y^*B{Iil3y4T)4v%=p5s@XQ`6rkJG1}!oXDEBWGV+czdeb=Y0JZ8h^`aDIiPM zwVVjX>pL`wBcs})D?f3kAcfgUiqUx;)AI0*Z%S!ss`QgTq!_2;@A_2<{>DSU>qxKM>?W2mz4g-GF8vi;G((#clfogBq{fc0*g zXNGR?A=@r)W+;I~sz=B~2i-|Z1kYaSbu?Ux1cKb_Gwr3h< zcW-Gs-e&%BadW#HnKYlg=gP+)8)GMw%ILh+kDjM+hLRcP~6IRCNKDCQ?N2s%jz?rjW0w3@kcT2MG z`sd2zuH?#pwVU~j1KJBEwwc4@y49o4aaTb>=WrPRKy9*0s|dUDwWX{xK@Hb$p4 zLC<=z_yP*QSnVHgFuruR@U4&(6N|2*R8IaJndQD{_&g@UES*}+$~{i6NJHvw{EkVS z{wvh7ZV*c2a6R^}?-I`Amb>b{u5&lQ@V?FSZ^QepzEobVen8fFLesfN_9 zqPzT7I}C5B=91JPdlkyM`wsNI>M9-yTf^~-)(CSk9^v?m9Sn)EHOPeHL4qEG;xme5 z7uUrIM37F*$cnJkEgoP?lskg^8oYmOpF{jnBFE6^9btez$^h@T!C+?s#Ju<;d5z*j zaY1k=!8=k2ytfvtjZqaHY=B?5bt620^t5{-{9^JF*KF)$wEK;n> zvJ|Ua|JAEX)vG#la^+@^ z0?G;D{-MJ=7XJZ<`O-2gnO3;u9HEZVtV*d-!#%if@v>q&0ebS8XANXo1NcL}vg}*h do!#0K_pSrk9OP7D!A};H8tCjH=6P*G{~tjtP8k3I diff --git a/s390x/hello-world/hello b/s390x/hello-world/hello index 986d234609cf456a2be22011f04e57d6b2011a31..986f5573aad61b3b92806084fa92b5be9b1d8891 100755 GIT binary patch delta 2020 zcmZuyYitx%6h1RM?app@=yX|au|}q3Nr5U%Q?(Tz?bcVd(2hUQfV@OXa86Xo>xfU} z4ZJVp42lL178)=f$;ng~JQ$qz@_8@+Z7xL7qC^1-7h9>5A~}`JVjI|nb8;WGRi?h{ zPxYpp2u>Hr%1Mgn9Tfctdp=S9EDQ=f|+mDiA_tFa25}wxt$=*z6PN6-n0i_k!1RbEe#M`on z9j$tL>yhH_X+yLnO!f?)70n3-ef50ZF#ohSKQ7uBcq6*Ze#+aY*F^2B!;(%@>zoek zcnRGS`Y##@lTcYZ$2zK)OGE7C>ei+2`_=45-XS)oy^S_T6X}enzxEFMth!O!$G)#V zo?7qf<_cd^t+%il*e*oOO5_=@a_v+P7LdI01ELd=zY85ewux?P4+@pF<)v=U=`z+? zoC{E0E=@5p7HDm$_l}RRM%ROoH!OH-4O2Y^L2G*@sfnn5rO<-HznrY+v)&RH#_z+L zmR+D-Ojp~qW%()2=YF+Ub8Zi^KJ^i)h3!`#YFTF&_~r3FN)zS&FrP2cRatyLpat_^R=dZ}6Tu-{fZjjX3;1G^G3QjR0JRww7L+r6B-))?pe zKw~6XWs+6p5Uc{Lz^bq+Yy>ufbEE_JF*ZfC6awsYGdN3`B$;GyBRLVn-5R1}7z<|Q z9?PUI%b`TZ3?#Bn0Ngj?8sC$;NRDjEI0QEkT3f7}r<`;wsW?n3{a#8N%?&SFX_Jzm zR7`uZ;Yv&aF0=rr0;es&MG}^!Crnef>-o>67%xGzUViOls-Bm@Ba!$bt0!7Bx}Ctj zhA4{jg*%aO9NpE&$~-Qnx_ajlN+0kW9??+{-86m-L<2t26qsh5K=A-Icud<>FtyNWCkO%}cEIps z3UD0*=7_Rtmq zfwzSji`zq$h4c*DzWCv=|DQ{wPq3_Ty=CEEVw1w1^k$Mi$&6TgXu$XC2H19ZZ&tiP NmW_2vgKRQp`~yW`h5!Hn delta 2050 zcmbVNZ)_Ar6o0$7z1zFqmAPw?){5OLr{zxqTPwB{LVLBws@Seb^`M#>KNXGTDi}2} z-X-M=2_c11Qw0+YCCdj58xX>Rk+ZqPC`JiULSw*$%_Y@6;hHq2AL@;7=I$E9H{E3B z&3o@RGw=7C+1;ya(rYKy%Mm!NxBC}CJY?~3^1et|j3tOJ*~61Zm)-Q?WA5~{WV!*o zt7(rkoVxDrDd-S$3M|3KvLgV?e$Vw4jsrNlra)bGHAZe^asbl1h`a%cugF))5RA`e zH0*P>1`*$(Y(0)I*)oKEhkSD)b3>qhvHcKnqu_yn+X`I}v{iV-Z377cw%iYG<*6T) zrizJQ`R3fqg#^Sh7A|@Yi+hEQeFzqq`(U|PbdN)@0@>UTswnYjCdX36ALyt&AobF( z<(8MqcDhwi z(;XcHF)^;8J)QySdwRt4x-?9So~ZOI)szwWnn~KPTzjCVMmVeNC|opSpt`3E z1yC~c0Ln_brK%$)WR`3Nwqr{=x}kyMbQ`O&*R*=<4MV5rtDYG8z}+*4IbSgV<~&>A z@|V;>99C3P2iG{mkID0Cq}l8hJj5Y|ZXS^cIgYT$=DcBz;cb z_qH~jF0ErWvJPH&=mZ{9B%YoS`i7?HkKRV<6Z(huv(#G-(XmRdUubW32>TI?=;g?$ zSh+pdhZ{&@JSdRO*$zYw@zV;u#8nJEo9|%^W^kWc+XG=c4Rw4h&`*kf+w^(>@NxNg z-J$MWp9T+?jy%*E4{N_=*8v3oKDmM|@Cm{B=?8IF!_2~Nx?XLoj^edo#p@`^6dhGJ zNzc<$>c(~Z%q*Lk?uRsheOrGzJAgA^Lur3P5nIt-;hP1&!_gO1^>?P^m4>B(xrQ;+ zeWCISoc#tyuswxsEw*Z$9Lev%YdvGOf(LJ=V!jAQ{<*D}VGwWC8?FKh1kGxYOdo7V z$PCOV znBgx%bzdnXW2VTGn2}A1{^ehlB1Ceai?O}tGmJUV#Mqn2?Resx4#qhGXce>yS{1E| zHi$N84go>jF;ohm2{j#cEG%py0Xmq&V$YLkk*ehHGj!-S2*i);p14IkD8{a9KxAFE z{k_nL?q(-EaF>m_VWC1JNQntUau0wCxAJMNrTzsYtwREgDmN`+2g)%8aenszy%lIk zRbs)oVGtxp%oXhC{0^3f8F!Gcn_tfL$J;b0_6dn-$etygPVexaYz$RyM3o836>+d+ zp)zrdrUK(4Y^v|Kq877Ug7-sLToD$E`CyL1d?P;0_zhKg#Z4 zElV7yx1x0X9lvO95_YG3`)X}Mw`6x5h+w{fAaetmTV7<&W8+#WrXVhG4^B-Xu;w0M zFm73dOY)!Oz;aQJ20Y)0ket8Ob=@DHxU5c-(P%EZC45 z*V(wa1I`J|z<5!1UnB}(e;GZ#58FP!iTC!3ZU-3i9a-JKGyHK{1XOm%{B#qE_A{+by zgdeCRwIc2Qg8~bogS3ENrsR Date: Tue, 12 Aug 2025 16:30:44 -0700 Subject: [PATCH 2/2] Upgrade from GnuPG to sq This requires doing a lot more backflipping to accept the musl key because it frankly should probably be replaced with something newer (at least since 2023, if not since 2013). --- Dockerfile.build | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/Dockerfile.build b/Dockerfile.build index 4cbf0be..d3c3c9b 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -5,7 +5,7 @@ RUN set -eux; \ dpkgArch="$(dpkg --print-architecture)"; \ apt-get install --update -y --no-install-recommends \ ca-certificates \ - gnupg \ + sq \ wget \ \ gcc \ @@ -43,14 +43,28 @@ RUN set -eux; \ # https://musl.libc.org/releases.html ENV MUSL_VERSION 1.2.5 RUN set -eux; \ - wget -O musl.tgz.asc "https://musl.libc.org/releases/musl-$MUSL_VERSION.tar.gz.asc"; \ - wget -O musl.tgz "https://musl.libc.org/releases/musl-$MUSL_VERSION.tar.gz"; \ - \ - export GNUPGHOME="$(mktemp -d)"; \ - gpg --batch --keyserver keyserver.ubuntu.com --recv-keys '836489290BB6B70F99FFDA0556BCDB593020450F'; \ - gpg --batch --verify musl.tgz.asc musl.tgz; \ - gpgconf --kill all; \ - rm -rf "$GNUPGHOME" musl.tgz.asc; \ +# > Since 1.1.7, releases are signed with the project GPG key. Its fingerprint is 8364 8929 0BB6 B70F 99FF DA05 56BC DB59 3020 450F. + muslKey='8364 8929 0BB6 B70F 99FF DA05 56BC DB59 3020 450F'; \ +# +# Error: No binding signature at time 2025-08-12T23:23:25Z +# because: Policy rejected non-revocation signature (PositiveCertification) requiring second pre-image resistance +# because: SHA1 is not considered secure since 2023-02-01T00:00:00Z +# +# and then: +# +# Error: Policy rejected non-revocation signature (Binary) requiring collision resistance +# because: SHA1 is not considered secure since 2013-02-01T00:00:00Z +# 0 authenticated signatures, 1 bad signature. +# + sq='sq --policy-as-of 2013-01-01T00:00:00Z'; \ + $sq network search "$muslKey"; \ + $sq pki link add --cert "$muslKey" --userid 'musl libc '; \ + $sq download \ + --output 'musl.tgz' \ + --url "https://musl.libc.org/releases/musl-$MUSL_VERSION.tar.gz" \ + --signature-url "https://musl.libc.org/releases/musl-$MUSL_VERSION.tar.gz.asc" \ + --signer "$muslKey" \ + ; \ \ mkdir /usr/local/src/musl; \ tar --extract --file musl.tgz --directory /usr/local/src/musl --strip-components 1; \