From 4052850d22ea0d5f2b16a2e70eaf1d7114e4233e Mon Sep 17 00:00:00 2001 From: Joerie de Gram Date: Sat, 24 Jul 2021 00:50:09 +0200 Subject: [PATCH] tests: add e_machine endianness test (#269) --- tests/Makefile.am | 3 ++- tests/endianness.sh | 24 ++++++++++++++++++++++++ tests/endianness/Makefile | 3 +++ tests/endianness/ppc64/libtest.so | Bin 0 -> 66736 bytes tests/endianness/ppc64/main | Bin 0 -> 66920 bytes tests/endianness/ppc64le/libtest.so | Bin 0 -> 66736 bytes tests/endianness/ppc64le/main | Bin 0 -> 66920 bytes 7 files changed, 29 insertions(+), 1 deletion(-) create mode 100755 tests/endianness.sh create mode 100644 tests/endianness/Makefile create mode 100755 tests/endianness/ppc64/libtest.so create mode 100755 tests/endianness/ppc64/main create mode 100755 tests/endianness/ppc64le/libtest.so create mode 100755 tests/endianness/ppc64le/main diff --git a/tests/Makefile.am b/tests/Makefile.am index 91a31b67..2943db31 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -27,7 +27,8 @@ src_TESTS = \ output-flag.sh \ no-rpath-pie-powerpc.sh \ build-id.sh \ - invalid-elf.sh + invalid-elf.sh \ + endianness.sh build_TESTS = \ $(no_rpath_arch_TESTS) diff --git a/tests/endianness.sh b/tests/endianness.sh new file mode 100755 index 00000000..23b4aead --- /dev/null +++ b/tests/endianness.sh @@ -0,0 +1,24 @@ +#! /bin/sh -e +SCRATCH=scratch/$(basename $0 .sh) +PATCHELF="../src/patchelf" + +for arch in ppc64 ppc64le; do + rm -rf ${SCRATCH} + mkdir -p ${SCRATCH} + + cp endianness/${arch}/main endianness/${arch}/libtest.so ${SCRATCH}/ + + rpath="${PWD}/${SCRATCH}" + + # set rpath to scratch dir + ${PATCHELF} --output ${SCRATCH}/main-rpath --set-rpath $rpath ${SCRATCH}/main + + # attempt to shrink rpath, should not result in empty rpath + ${PATCHELF} --output ${SCRATCH}/main-shrunk --shrink-rpath --debug ${SCRATCH}/main-rpath + + # check whether rpath is still present + if ! ${PATCHELF} --print-rpath ${SCRATCH}/main-shrunk | grep -q "$rpath"; then + echo "rpath was removed for ${arch}" + exit 1 + fi +done diff --git a/tests/endianness/Makefile b/tests/endianness/Makefile new file mode 100644 index 00000000..914e3630 --- /dev/null +++ b/tests/endianness/Makefile @@ -0,0 +1,3 @@ +all: + $(CC) -xc -nostdlib -shared -o libtest.so - <<< 'void test() {}' + $(CC) -xc -nostdlib -L. -ltest -o main - <<< 'void _start() {}' diff --git a/tests/endianness/ppc64/libtest.so b/tests/endianness/ppc64/libtest.so new file mode 100755 index 0000000000000000000000000000000000000000..31340787cec1be87d88c02c9c880650c9c70948d GIT binary patch literal 66736 zcmeIy&2Af26u|K_P8tFP2vw0PMTMvWDJ<-`G(=UqX_TfP5{)2;1yUu;N!-}MACWyF zNrlutLZ1M!|p^Lq?mK(o^x@cM07!S|B=RL?z#8O%>B*1e!BL>-BKx& zbWF$xdToi)(DJv7m}OOsCAlp(WJ-VEm3Ooq#$G7;&;6O0iCq@s-NWxx%pb>)or;o8 zTSttsuJj6ZvCO9-GQFMu_N68#V@K)5*-UmVW@D^<)@61veW&zYXC-e8a#`%Q4i^V` zuisc4Y_^t~?dAH7=5G7(lRj%%^<`-I&nnldi|y9t^3u)Mbmug`^=C4l8hVkwGX+A!v_jv0EtMh*lJKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_KdC~(CfrYugzm^}}%H#+{)+CRrA7h)_~Q>-p~VTrda z{$lZMig>+^tZJ$i?277p31$|)tmDR_twApbpBeka=lW0g(vDH z?ERvXmuTK#GWROFG;i}xPM$aKF_dd z7KvGA#e_EZ=|r{IGw^diuLry{}u3 z;`?5Q7Kh&_G(OkU+rAElp+mRLum~cv7Cnr&Z)wu&{rUF(X+H$N@gvN|j|X~jy8dPC zO#5cR2U{Gk|5|hQ-sX_@mG7_O_Tx3~7v}LuPk(-NO#3hGLmzLC_u<8Us*lxIZGeT5 z*XdR|arg~F3}^aKCq~I=KDM)G8fWx;FSczTi-hkV{xkghTepQwezL2pCp*%7L;8I^ Q&#V8{>UJ%9@b{O00P-!$CIA2c literal 0 HcmV?d00001 diff --git a/tests/endianness/ppc64/main b/tests/endianness/ppc64/main new file mode 100755 index 0000000000000000000000000000000000000000..c7c8869fc8d11130c42d230f1c23292e18c419f7 GIT binary patch literal 66920 zcmeIyO>Y}T7{KvaJ1qeUgsPP)g(3?Mqz7-DmxihcsZpA?NHn66I8+=gzcqGh?^?SX z;^b0)gnon^df+2)Lj3@Ih+MeC0WPSRXLe>*>%~dSp|}4?>&MSCGrKdteR;P1?Y&aT zQ&}sktMcC#%41uDL`b7{YlnrVgTy)6TNQ=AsI1!9~3;eO$2hGeY@S(_y38jsDeZmGy1vp6U79!bq!&-T7PEXcfF8D_6n*q7U<+m|X;>?ytFpf_5M zlQ8Nm_g6R8o1@{Nb-1#&*WEiF?M1zQ2f@=I zJPfM+UT`onoh$yTzq;J-HJAJC!f-zh{gw2pTGhy!MYud)v&%at$VHM)oXBZaZVz#@ zx8Ch#&Z4B3=A8Uv0YPZwxhv#o%)nBRUJ#4JseoJT0ZEI(& zD!Ej7i{-B*Uy#F_OeVie)X${Om3O?W=0=;|;-!>I*RIK!mlD%{i8KTdKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5J2Ef1w1>@#p^b|WaFHP zrJ;`D!T zZoN8vd#&_L-QU`}U0J%n^Zkv=O3h#MYj1Eh*@RtRX==38ZNYfDPN~~{m&UH9qZFP0 zNugeJPrGHj^)HVLA^}COEHXnYorRsIL`}OSy^?SRU z54YZq|ua^L?(9Kzh01ZqM`Elf&;(Xh`Y*f z9|bbp#3WLF(itVn?{w==qQ;<8@3y7pvUF5q&}+#FLK)Qx2ZK(K%+meewMCiX-Y55b z+LL5}Vd1Q9ye@wshkYK4&v*8m>-%D#Wj#f|!fDgB&*i=T%jWL-W0Pm^!zYr@ny-gd z<#5lRn}4D^K6|g1&YAy%^x1V=hwQy~@4r`( zG43AA-|YVBeYE9p>o<a)vxxy;$+KmRq|pVskNxWI&XF;9!fP#cafv@csPpT6+-f>rF3RKNe$YbV7}vmi5r_v-g4Y0^$*rE$<%X{XIrvQk+)JnWtv zb!(ez-3O01H_AHhe%kJCJgU?luWxjU)udKy7LS@IN$aSxezleqj~j=L=1HSiJ7^qt ziuL1mt@v?#Wp$-?aDV;kwU>77>@k<*+3xW3MvH~(;n~9T{?_mJmo@scM%_J`?rcSi z^HG+&q~}hx#?R}N0|5jOKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5cuBuoJ!^Ux3Ew`%@?>}j1Ssv4t#A(t=B~GfP2d#2FDOLA1=d-M;TtBEt z{IIE2m1e!3G<2o^;CNrJ5%!S3CjWjsUbHoIpJa#c3*VQEn*CGvi1+(<=J5mT8}GNY ze5ix4C%xalN00v9hxNic^!0uJ7Bv^H?frv+C4Ap&Np_5XU7u(+L-raYwuX@&K5A5r@pFhVpS{6zM z{l5QfXL-F{EicxI=gZdb@5$@ttbf517VUPjHA5=Q-Ofs~uw?zutYKcWZ|R?}>+fIx nV?4k2tTX@l!B)6DlnX;&-_vjFVDRjo)cCViJ{rn};duYw*wV|{ literal 0 HcmV?d00001 diff --git a/tests/endianness/ppc64le/main b/tests/endianness/ppc64le/main new file mode 100755 index 0000000000000000000000000000000000000000..386c3be75efa653c56f56c8f7e2be80b68ab7918 GIT binary patch literal 66920 zcmeIy&u<$=6u|LuoP-n#gsPP)1&{>?(t|g4(k5vUQld0%k!VCCaX=g_$KGJa_S*Gs z8rPR{8dlQ+A z(JO1N8P|HA^_ey4cqwBhY21zIo3~+xFyf&JSGk!S?#=P^Q*6BY8Kyt21sw zcco(Nvqq!t(8Vd~8y9|-eQPwwr}4jTuY)6BH8}D!YMhq^G-{pO)<4zdq)wxr@9STZ zsyp8c*-tuN_1iESk1cHOk*#yUcMGKo9&AZvltW$?kvkU?~FM8w{xeCmoq(f0Q>+UAaZ^N@0-x`;9vu4csb^ZV7{Qf_& z&vV>(Q@Z=@*80OQH%zHypMGicLFwN1`oqoAgS*={ zwG+psI4O4%Qwpo)q-;Y}H71CkwvzIWjY-$Xn%>o;Bg5)*{A(r&lh3QM)B&1vg+RJm2J*a_NpRHfZ&g;8QR|1YmOTkq^o{;ql>F;2~& ze)^x;e)lcVGW~yR)aRn#6McEL{i&_}!@k>EuiqDqAIkbVUh5@o^7h94`?Ox)7mfP8 zaeH)o*Luz0vN`t(X#JtwXnbY+Mz8ewzp$Myr{6z)|1|3Pb&hm4*dWC literal 0 HcmV?d00001