From b9baf09512756943ced419aa5ec71bf435681e09 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Thu, 4 Sep 2025 11:49:04 +0200 Subject: [PATCH] linux-user: Populate sigreturn_region_{start,end} in all vdso.S Mark the regions which contain sigreturn syscalls within each vdso. Rebuild the shared objects. Signed-off-by: Richard Henderson --- linux-user/aarch64/vdso-be.so | Bin 3224 -> 3320 bytes linux-user/aarch64/vdso-le.so | Bin 3224 -> 3320 bytes linux-user/aarch64/vdso.S | 2 ++ linux-user/arm/vdso-be32.so | Bin 2648 -> 2724 bytes linux-user/arm/vdso-be8.so | Bin 2648 -> 2724 bytes linux-user/arm/vdso-le.so | Bin 2648 -> 2724 bytes linux-user/arm/vdso.S | 2 ++ linux-user/hppa/vdso.S | 2 ++ linux-user/hppa/vdso.so | Bin 2104 -> 2224 bytes linux-user/i386/vdso.S | 2 ++ linux-user/i386/vdso.so | Bin 2672 -> 2792 bytes linux-user/loongarch64/vdso.S | 2 ++ linux-user/loongarch64/vdso.so | Bin 3560 -> 3712 bytes linux-user/ppc/vdso-32.so | Bin 3020 -> 3140 bytes linux-user/ppc/vdso-64.so | Bin 3896 -> 4048 bytes linux-user/ppc/vdso-64le.so | Bin 3896 -> 4048 bytes linux-user/ppc/vdso.S | 2 ++ linux-user/riscv/vdso-32.so | Bin 2980 -> 3124 bytes linux-user/riscv/vdso-64.so | Bin 3944 -> 4104 bytes linux-user/riscv/vdso.S | 2 ++ linux-user/s390x/vdso.S | 2 ++ linux-user/s390x/vdso.so | Bin 3464 -> 3616 bytes 22 files changed, 16 insertions(+) diff --git a/linux-user/aarch64/vdso-be.so b/linux-user/aarch64/vdso-be.so index d43c3b19cdf6588757f2039f2308a8bce21aed9c..4089838b30535738e89252a146a039af54ed8be1 100755 GIT binary patch delta 372 zcmbOs`9pGoKI4y#1`&)RyJD|o>HWC-e5%H5Ca1P4+9vm zd;n7rLK8{+%j5z!YhOD?hW{TSl8g%=G?;W}U|`?^vlv(^AT*eaLa1l<0E<9~0zroV zA15{n*VhUmtiAz}V-R3qV3>>~{st<}!N9<<5=ndqR2-y!Ka%(fxOj51flqQ;MWJ3k zgGvg6N(Do4W_nR-Noi4Dd{Jt8W`3S@d~r!)Q3-~4d}?0G=1TS?#)%VHHs9t@Vdez+ gmXCpfL3}a?k3Q!Ns1?^HJMfru=0SNalN-1s0NrRve*gdg delta 303 zcmew%IYV-SKI4py1`&)RPZQU!U8Q??61%0t;jr&#CkKX#p4vQz@jlDs)ocd7LW~Um zKQe#;;{q@RA*2}?7`PxzmI??BCiM{NnLWTF5W+=};s3{pjl%VTLJSN%5HXe;5Sl@N zfq@|%N&F2|oP&XZp%zJe2UHxSeln8y3AlK2a=D9vS3#IwK7&dMgGvQMyi25?qpznk zLwvluUueAR=4b4IjGL`FRhT&o7#JA%7#J8tCui{Jb7nxzST%V8k2$9hl-Dx(0ha^- D3%)el diff --git a/linux-user/aarch64/vdso-le.so b/linux-user/aarch64/vdso-le.so index aaedc9d85e568d5dadc9c394e9c4459f1f0c8c88..240802821c32943170f7de64f8a0b3ab2a21cd13 100755 GIT binary patch delta 284 zcmbOs`9pGo2IG&7n(>SxE{t}Xmv61yy2m1;okeN+zms!1<2TP?yu+d>!~g<33?EoP zGy-danLG?%CTFtQOWH9oFfcNF{J($^EDR^yCm&=JmyCkSdN9K!z>I>)AKAn?YZ(|A zgcx`jZcKJ$7oU8CNq}+XWJYFj#{H86*`=)VQ!GM?o%He4C0end9*oautP+y XP5#IvJh_0GWpV(I0%P9fLLPMhUIj-_ delta 217 zcmew%IYV-S2IGv4n(>SxrfSl257}AgzHD2Uk@GeFM#i?fJDcY)-eH-%g3Uluh=GBD zk>TV21&jh8rvpSpf*ekUse$lQ?7T zWJYH3$pP#flRMaj`5YsQio#s<@)=Z87*r}YUuBPH+-$+Az|32~1kuIEz`!6nIh9A7 dGlLx>vTE{2CgI5i%q){P@F*|}O}@yZ4gelKFsuLo diff --git a/linux-user/aarch64/vdso.S b/linux-user/aarch64/vdso.S index a0ac1487b0..59dd94dc8f 100644 --- a/linux-user/aarch64/vdso.S +++ b/linux-user/aarch64/vdso.S @@ -71,5 +71,7 @@ vdso_syscall __kernel_clock_getres, __NR_clock_getres __kernel_rt_sigreturn: /* No BTI C insn here -- we arrive via RET. */ mov x8, #__NR_rt_sigreturn +sigreturn_region_start: svc #0 +sigreturn_region_end: endf __kernel_rt_sigreturn diff --git a/linux-user/arm/vdso-be32.so b/linux-user/arm/vdso-be32.so index b896d3d545ebf91942038831a9535b023137a86b..6d71cd9c36d185e48810140d6b1b12a1c8f95900 100755 GIT binary patch delta 322 zcmca1vP5)(GUK0#DhEXNi816dstG5g=$qZlvG_W5!PJ@GH~u)rBFECe00BG<3=C=v z3@i&ETm}%|dh#At`FcAB28JIXQAURU9~l@J+!+{H8W|WE6qp#ms=^r0N*IbW(~D9|N{jO1i&E1w^Yh}1OA?E)2&d+yY%XJKWahlUz`(%I iz`!6eiA$QbgMoqJ-ed(XWzjSS28JmhM?*0qhz0=i2tZ~4 delta 232 zcmZ1?dP8J_GUJAcDhEV9iF@2Qn5bfLZGwFE!TAAV%KxoCZv1hKW%4~%*?J)c28JID z3=9m64F5keFfd3nFt9W-Ffb@EF);8jFfeE{Fff7T85kJ27#JAr7#J9DAgK=lu|Zf6 zqCbv-fhC`Tfq_E^qQ8iNfh85B7s_vAU|@+x@MRe0GBB_N!Ud9(10wR1Epzqq8B|I( nA7X1{=G?%*z`)PIz#ul+hfA6@gMooz)8rg3Wk#vV6SzbG9N{eY diff --git a/linux-user/arm/vdso-be8.so b/linux-user/arm/vdso-be8.so index 784b7bdb2a9308671bbc4c1e38ab4eac568ea6f7..6446a96fcf63747f1c171a1bc99210d2268d971a 100755 GIT binary patch delta 322 zcmca1vP5)(GUK0#DhEX5v@5rDpV-zdaE;R)d34B;SoCa3}iE`}@y28J7q z5I#tK1B3}C1sOj6?_ywJ$Y)_-;9y{25MtnAn8(1tkjlcqzy;-RVqjp1M)18EPBJhs z1R?|&7?P6>jG`hcy!7%JR7x0%Gt-MwOG=CK;)_z#GxPJ}i%SxVun4E-rED%^t7GQ8 hz{tSB&%nSSG5Ig2G;0SN1H-+^vRulHX_Fnf!~sb#M6&<@ delta 239 zcmZ1?dP8J_0^^2>iibs{A2M=DJTKY)!fEEqs*sO2HQxVB+W6xL%j7$(GW9|X3=BUQ zAb^qK<9}%e28Ko!1_lKN1_mYu9tLfYJQGBofq{#`j)8&U1|x(IQXc|gf=NM!kN@Ks z7#Q+d7#KJh7#M^Yco>Qp7#LDnKsq7(HUxy0IuFLc1|}=f)rNnd=!qfQ8}zM+OE4 z9tH;H2_Qa%&7jP{z&rzq4`nhiK-F6?FfjZ82{J6!U? z@x>*HMJ1TRsd*`zAFwbpZhpl2m60=nfq{XKfq_AE@&k4$HdX}&28OOl9Ll1r7#J8@ LAQpj1Mi2=A-i diff --git a/linux-user/i386/vdso.S b/linux-user/i386/vdso.S index e7a1f333a1..8df77b5a94 100644 --- a/linux-user/i386/vdso.S +++ b/linux-user/i386/vdso.S @@ -114,6 +114,7 @@ vdso_syscall3 __vdso_getcpu, __NR_gettimeofday */ nop +sigreturn_region_start: __kernel_sigreturn: popl %eax /* pop sig */ .cfi_adjust_cfa_offset -4 @@ -128,6 +129,7 @@ __kernel_rt_sigreturn: movl $__NR_rt_sigreturn, %eax int $0x80 endf __kernel_rt_sigreturn +sigreturn_region_end: .cfi_endproc diff --git a/linux-user/i386/vdso.so b/linux-user/i386/vdso.so index bdece5dfcf8da036d013262d4e37208350283cfa..e01c3818d0d2e4871cf39b2ddd21043d0695d07e 100755 GIT binary patch delta 444 zcmew$@=kzJ5{@jp{@LTJl;I7NjX(ad)H6T<3&Y3%JPZsB z=UAZv4BQOL3=9nSkoYhe5Dijq!N9=q1H@rqU|?imVsK<&VBlbZ3NUaogus{#3=Dz{ zAOFWOFffF$GB7YRFfa%)a5EGzFw`?lW@TUyfeN%RFfeRqWnd74@+YAgFo%JG;W{e= z13OfH69WT7J(B)o3=9m}Nc_7D3=H8&{7+C1azOR7GP*J_EN5k45P%9WBqxWZriFPM z>g6*OXQmgWmXsFd#TTWfXXfX{7ndX!m0${|=A~>tz}CRH*`DJpqm}|A0|PGu#EGDw i0GZ6m0P!>2H|z`yf{c^RxRfLWIT#q~;NqZQgm3`nj75h4 delta 302 zcmaDM`axuZ0;9x4#ls?Yp!s=SQWathS7noo`vD#e+D$b z1LpHE)UbgWa6%c(;$dh&69)-nGsl8~fq{|XG*^ybCao6NT4spqI3=9lH3_J`0P}e|Q&A{+@ z@`4-)RNMoy!fKj^vwLc_~Mepq7qEu)V!3xb$H>-0g kGV^vYLEOQ|z`!6nIh0qMlYTV221W)H zz%|*BLtIh?EXKv~fd$Nf6Xuf>Im8)#Ckrx*GbTjenet|GUJhnDhEWA#S8BnzBO%iakv;8rJgEnt>YiE@dr0sJp%}^F#P|>z`(%6 zz`!N};zQUB$_xx_I!JsdlYs%M-hzRF;Ri^Nk%57Ufq}u1fr0rAh|j>lz{SA85W>K~ zqygeHg0wI&WP#WqEC{i$oPnX96{LYj2y8h+I|Bpj1CZrV{#*tIHWda21`a5HBLf2) z3zGaP1_ss>Nc;y33~T}n3=Aw#_1~Z#g6e1FWnf?hIT&gmqcnpP1M3yI0m;cGX}SJs zg?jl6#hK|vsU@XFdGST5>6!U?@x>*HMJ1TRsd*`z&#iaYlTCGNaE#l>;J~u3G}Hz1nkb!uCykg)t8^X6|Be-uQ!?t^NlC0|Nsi0|OHS z0|OTW1M?dYAHrskWnf^^0Pz_a7+4q>7>q$|5Ef+k|B-=#!GVE+6{Ma=h=GBJfq@}_ zfr0e_0|Nt$pT@wzrozC$zyX!7VqjncnFEub%)sEqdICwqN(Kft0R{#J7N~~(3=C`% zNCsSEU|}MDl7=BOY O;Zb7ZI6m2cM+5+8I4pDk diff --git a/linux-user/ppc/vdso-64.so b/linux-user/ppc/vdso-64.so index ac1ab2582e4675979ffca3ce90dce17df579ab2a..b89f2a0e018a7bb6923db267a746006d341f6bb1 100755 GIT binary patch delta 436 zcmdlXcR_xFKI4Ur1{RDWTs14(R3|H4uzIPrn<4t+7Q5Ac<(q35C$O`yF#P{Gu~FER zhk=0sgc%qZ*iSGZfHIQ!1%xmI15Bd@BLf2yM1rvaLW4<11_lN$FpGiZ1%w8ZA%YMa z>k|bKHm(3mLHLD8;&YJ1+mXauki_RAi64N9voJ6)Y(^4?`G|vof#DQHJQk#seG7<$ zdhrHC0wlsd0YrkulasScO$t-f_3{~tGt-MwOG=CK;)_z#GxPJ}i%SxVN-%{}^HMhd v;B02xT*a-*%-O-fz`)1Az#u$%1)m-lR|M4L_mdy+nQ?KuL%A)J6?i28zlume delta 307 zcmca0ze8?`4-)RNMoy!fKj^vwLc_~Mepq7qEu)V!3es=TCa!hWME=wU}Qi6 zT$39)#U*7K7#IW@KK@6MVqjp^2{7#JA%C)@ICbN=9ji0qhL R$ZyWMfeXTGnY@u#9ssSSC))r3 diff --git a/linux-user/ppc/vdso.S b/linux-user/ppc/vdso.S index 2e79ea9808..e9256a2dea 100644 --- a/linux-user/ppc/vdso.S +++ b/linux-user/ppc/vdso.S @@ -220,6 +220,7 @@ endf __kernel_sync_dicache nop +sigreturn_region_start: __kernel_sigtramp_rt: raw_syscall __NR_rt_sigreturn endf __kernel_sigtramp_rt @@ -235,5 +236,6 @@ __kernel_sigtramp32: raw_syscall __NR_sigreturn endf __kernel_sigtramp32 #endif +sigreturn_region_end: .cfi_endproc diff --git a/linux-user/riscv/vdso-32.so b/linux-user/riscv/vdso-32.so index c2ce2a4757900a16b891bb98f7a027ac30c47a5f..4818a994f0394d83ca5e8213f6e2d2d3ee2f504c 100755 GIT binary patch delta 447 zcmZ1?zC~h!0#gs?L?tIipNXmSMas5*X}YtK&*i=K5rz{7_FXjfZHe71!C1(`dSVBlg{&A`Cmzy#rg1%77#K2G85nq=d?rSSgJJ5$ z7#SF1kmR)(85jbP_zcO(F8;+KSw?#K3@Q~xWyVICMg@lPxkd#B@rg#0SF$Ra!b63j zI5WK{wWPEtFTN->Ju^QqzPKc@s033uH7{lJEcPzO%}Si#7#V#gPvjP!tivt9dxe#O k;Q=E913v=;gZN}mZfUkH>9GP7&mX>{KClSJXw)Pc=8@@0p2sL3=9Vt85lr*6P$gYm>f&3s0mjWgL9MZUOZ%%7)STEdup@5PH(j}Av>WiW2u!l=l~8;C~W1Td3lV!i0( zIUFL4rIR;uh)dQnFfcGOeEk0aP4SG$4>`moS3_kFFoX5NiGz~`ImH>zOrFRr&iG)m zBd2)%7X}6fAqF0XEl_iKplX>IA>uH{a6rYypyDgg)N4V-=b(u*Bqt}CBqth1=;br0 zR1}q&nPeIj7{=!s6&S=P8Wl|b#-?Bj4-1Ck%=DtvlG38Q_@dPG%>2Cg;*!Lo5=`OL zyp+wyI2SQ)PUBW$X7rid$!9LAzz%WZ1ttj1&%nSSKKUx2HrEGEh=@JoWG;R)PJM0& KciLo5UU>jXo?@H; delta 329 zcmeBBcp*1IgHdCmWmu)4hczq1_lO3hL8VuFfyP3iOGzd;*v&S zF)juLRxkrjxK1|Y6qk%AjH7KFo6vs%mbkq`X*20 z6la_>IgweMal>RoW^uJ6P?dAgR5BzdXPUaXSOn?iGpJN-PT^X_xS4}Tff?fK$u|5d rq7v*7Qx`BnXpnbACztYTbMD}Th};B)(BwV*Dx4F!AR^NsBD_2R082oz diff --git a/linux-user/riscv/vdso.S b/linux-user/riscv/vdso.S index c37275233a..1d780db771 100644 --- a/linux-user/riscv/vdso.S +++ b/linux-user/riscv/vdso.S @@ -181,7 +181,9 @@ endf __vdso_flush_icache nop __vdso_rt_sigreturn: +sigreturn_region_start: raw_syscall __NR_rt_sigreturn +sigreturn_region_end: endf __vdso_rt_sigreturn .cfi_endproc diff --git a/linux-user/s390x/vdso.S b/linux-user/s390x/vdso.S index 3332492477..c60e9ed086 100644 --- a/linux-user/s390x/vdso.S +++ b/linux-user/s390x/vdso.S @@ -52,6 +52,7 @@ vdso_syscall __kernel_getcpu, __NR_getcpu * by all users. Without it we get the fallback signal frame handling. */ +sigreturn_region_start: __kernel_sigreturn: raw_syscall __NR_sigreturn endf __kernel_sigreturn @@ -59,3 +60,4 @@ endf __kernel_sigreturn __kernel_rt_sigreturn: raw_syscall __NR_rt_sigreturn endf __kernel_rt_sigreturn +sigreturn_region_end: diff --git a/linux-user/s390x/vdso.so b/linux-user/s390x/vdso.so index 64130f6f335269b03291653d006225b365be9cd9..a669a6b7dda7b60bb8aa125bd70c8ed3384da841 100755 GIT binary patch delta 435 zcmeB>ULZ3;kBLiRqk#pZh})fO-I~!HOHa>f*qfa!daD0cMEm9%#s{n{EDZlYPHYr5 zU(vg9IfeXxHV0i(d!DI+R zJ+lK?1VUs9Ashe^VPF6`qzWO<`UENg5}yDO*8>T$$$>})1_mYu28Lx236Kcu1`x@> zz#zfEz_3RU;?X%V#LgOfO0;DJ{y2FG@|% z%+HH2E=epZ!4yu-OWEwf(agB{6sIaPX9oiV10MqegUI9`Jo=m~pay@QY`|;IIUCAr JnOwjv0RVWSNmu{? delta 305 zcmZ1=(;+=UkBPHmqk#pZ$eP<0^W+mAZmVidw^)#U>fWD6>!)n4VSK<^&&crqBLf&P zHh?Jz!NtJ90KyCm3@k4oLSRxBp`O_RECL~ng%}ukAWSw0#lRrLz`)>)5NCY?l>muH zLdA6%7#P^(pb|_B3=H{D2?hoR)(uc`2?hp+RzZgUA15{n>rO%_U;~*1QUlVs6d}%f y0wl=5z#y~vK1Va-=437vW=;(T1_nL`1_pu26L|GGJ)kP~Og_PD&d4%}PXPe494hnx