Causing runtime failures for apps with "error while loading shared libraries: cannot make segment writable for relocation: Permission denied." TEXTREL /usr/lib/libgcrypt.so.20.1.1 dev-libs/libgcrypt-1.7.1:0/20::gentoo USE="-doc -static-libs" Portage 2.2.28 (python 3.4.3-final-0, hardened/linux/arm/armv7a, gcc-5.4.0, glibc-2.22-r4, 4.5.7-hardened armv7l) ================================================================= System uname: Linux-4.5.7-hardened-r3-v7-armv7l-with-gentoo-2.2 KiB Mem: 997136 total, 114824 free KiB Swap: 0 total, 0 free Timestamp of repository gentoo: Thu, 30 Jun 2016 00:45:01 +0000 sh bash 4.3_p42-r1 ld GNU ld (Gentoo 2.25.1 p1.1) 2.25.1 app-shells/bash: 4.3_p42-r1::gentoo dev-lang/perl: 5.22.2::gentoo dev-lang/python: 2.7.10-r1::gentoo, 3.4.3-r1::gentoo dev-util/cmake: 3.3.1-r1::gentoo dev-util/pkgconfig: 0.28-r2::gentoo sys-apps/baselayout: 2.2::gentoo sys-apps/openrc: 0.19.1::gentoo sys-apps/sandbox: 2.10-r1::gentoo sys-devel/autoconf: 2.69::gentoo sys-devel/automake: 1.14.1::gentoo, 1.15::gentoo sys-devel/binutils: 2.25.1-r1::gentoo sys-devel/gcc: 4.9.3::gentoo, 5.3.0::gentoo, 5.4.0::gentoo sys-devel/gcc-config: 1.7.3::gentoo sys-devel/libtool: 2.4.6::gentoo sys-devel/make: 4.2-r2::gentoo sys-kernel/linux-headers: 4.3::gentoo (virtual/os-headers) sys-libs/glibc: 2.22-r4::gentoo Repositories: gentoo location: /var/portage sync-type: webrsync priority: -1000 ACCEPT_KEYWORDS="arm" ACCEPT_LICENSE="* -@EULA" CBUILD="armv7a-hardfloat-linux-gnueabi" CFLAGS="-O2 -pipe -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard" CHOST="armv7a-hardfloat-linux-gnueabi" CXXFLAGS="-O2 -pipe -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard" FCFLAGS="-O2 -pipe -march=armv7-a" FEATURES="assume-digests binpkg-logs collision-protect config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news nodoc noinfo noman parallel-fetch parallel-install preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync webrsync-gpg xattr" FFLAGS="-O2 -pipe -march=armv7-a" LANG="C" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j5" USE="acl arm armv5te armv6 armv6t2 berkdb bindist bzip2 caps cli cracklib crypt cxx dri gdbm hardened iconv modules ncurses nptl pam pax_kernel pcre pic pie readline seccomp session ssl ssp tcpd unicode urandom xattr xtpax zlib" ELIBC="glibc" KERNEL="linux" USERLAND="GNU" Unset: CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, USE_PYTHON
Created attachment 439720 [details] libgcrypt.so.20.1.1 # scanelf -qT /usr/lib/libgcrypt.so.20.1.1 libgcrypt.so.20.1.1: (memory/data?) [0x5631C] in (optimized out: previous gcry_is_secure) [0xAC64] /usr/lib/libgcrypt.so.20.1.1
Can you provide configure and build logs?
Created attachment 441760 [details] build.log /var/tmp/portage/dev-libs/libgcrypt-1.7.1/temp/build.log
Created attachment 441762 [details] build-.arm.log /var/tmp/portage/dev-libs/libgcrypt-1.7.1/temp/build-.arm.log
Created attachment 441764 [details] config.log /var/tmp/portage/dev-libs/libgcrypt-1.7.1/work/libgcrypt-1.7.1-.arm/config.log
To find where relocation sits you can lookup R_ARM reloc in objdump -R -r: $ armv7a-unknown-linux-gnueabi-objdump -d -r -R -S libgcrypt.so.20.1.1 | grep -C4 R_ARM 56310: e8bd4ff0 pop {r4, r5, r6, r7, r8, r9, sl, fp, lr} 56314: e3a00044 mov r0, #68 ; 0x44 56318: e12fff1e bx lr 5631c: 0005612c andeq r6, r5, ip, lsr #2 5631c: R_ARM_RELATIVE *ABS* 56320: f3870e5f vmov.i8 q0, #255 ; 0xff 56324: f2804011 vmov.i32 d4, #1 ; 0x00000001 56328: f3a00304 vsubw.u32 q0, q0, d4 5632c: ed2d8b10 vpush {d8-d15} $ armv7a-unknown-linux-gnueabi-objdump -d -r -R -S libgcrypt.so.20.1.1 | egrep 'R_ARM|>:' 0000ac64 <gcry_is_secure@@GCRYPT_1.6>: 5631c: R_ARM_RELATIVE *ABS* Building with -ggdb with FEATURES="nostrip" you should be able to find equivalent C (or asm) lines that generate ABS relocs.
Does the issue still persist in 1.7.2? Hopefully this was fixed upstream in http://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=commit;h=a09126242a51c4ea4564b0f70b808e4f27fe5a91 : Fix non-PIC reference in PIC for poly1305/ARMv7-NEON * cipher/poly1305-armv7-neon.S (GET_DATA_POINTER): New. (_gcry_poly1305_armv7_neon_init_ext): Use GET_DATA_POINTER.
(In reply to Kristian Fiskerstrand from comment #7) > Does the issue still persist in 1.7.2? No. The issue does not persist in 1.7.2.
(In reply to Jaak Ristioja from comment #8) > (In reply to Kristian Fiskerstrand from comment #7) > > Does the issue still persist in 1.7.2? > > No. The issue does not persist in 1.7.2. ok, setting InVCS keyword until stabilizing 1.7.2 for ARM
stabilization happening in 591534
1.7.3 in stable