Merge pull request #6094 from heitbaum/rpath-so

Remove libtool preserved temporary RPATH/RUNPATH from "shared object" ELF binaries (libraries/executables)
This commit is contained in:
CvH 2022-02-03 17:44:55 +01:00 committed by GitHub
commit 1808f92226
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
51 changed files with 218 additions and 6 deletions

View File

@ -873,6 +873,11 @@ is_sequential_build() {
[ "${MTWITHLOCKS}" != "yes" ] && return 0 || return 1
}
# arg1: filename (libtool) to remove hardcode rpath when --disable-rpath is not supported by configure
libtool_remove_rpath() {
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' ${1}
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' ${1}
}
### PACKAGE HELPERS ###
# get variable ($2) for package ($1).

View File

@ -14,6 +14,10 @@ PKG_TOOLCHAIN="autotools"
PKG_CONFIGURE_OPTS_TARGET="--enable-static --enable-twinserial"
post_configure_target() {
libtool_remove_rpath libtool
}
make_target() {
make
make -C src/ Info.plist

View File

@ -11,3 +11,7 @@ PKG_URL="https://xorg.freedesktop.org/archive/individual/lib/libXcursor-${PKG_VE
PKG_DEPENDS_TARGET="toolchain libX11 libXfixes libXrender"
PKG_LONGDESC="X11 Cursor management library.s"
PKG_BUILD_FLAGS="+pic -sysroot"
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -12,3 +12,7 @@ PKG_LONGDESC="X11 Screen Saver extension library."
PKG_BUILD_FLAGS="+pic -sysroot"
PKG_CONFIGURE_OPTS_TARGET="--enable-malloc0returnsnull"
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -16,6 +16,10 @@ PKG_CONFIGURE_OPTS_TARGET="--enable-static \
--without-cython \
--disable-largefile"
post_configure_target() {
libtool_remove_rpath libtool
}
post_makeinstall_target() {
mkdir -p "${SYSROOT_PREFIX}/usr/include/lib/libimobiledevice"
cp ${PKG_BUILD}/common/utils.h "${SYSROOT_PREFIX}/usr/include/libimobiledevice"

View File

@ -14,3 +14,7 @@ PKG_CONFIGURE_OPTS_TARGET="ac_cv_func_malloc_0_nonnull=yes \
ac_cv_func_realloc_0_nonnull=yes \
--enable-static \
--disable-shared"
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -12,7 +12,12 @@ PKG_LONGDESC="A sophisticated ftp/http client, and a file transfer program suppo
PKG_BUILD_FLAGS="-sysroot"
PKG_CONFIGURE_OPTS_TARGET="--disable-nls \
--disable-rpath \
--without-gnutls \
--with-openssl \
--with-readline=${SYSROOT_PREFIX}/usr \
--with-zlib=${SYSROOT_PREFIX}/usr"
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -15,3 +15,7 @@ PKG_CONFIGURE_OPTS_TARGET="--disable-shared \
--disable-libudev \
--enable-libusb \
--enable-usbdropdir=/storage/.kodi/addons/service.pcscd/drivers"
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -19,3 +19,7 @@ fi
PKG_CONFIGURE_OPTS_TARGET="--with-plugindir=/usr/lib/alsa"
PKG_MAKE_OPTS_TARGET="SUBDIRS=${SUBDIR_PULSEAUDIO}"
PKG_MAKEINSTALL_OPTS_TARGET="SUBDIRS=${SUBDIR_PULSEAUDIO}"
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -15,3 +15,7 @@ PKG_CONFIGURE_OPTS_TARGET="ac_cv_func_malloc_0_nonnull=yes \
--disable-shared \
--enable-static \
--disable-mtpz"
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -13,4 +13,5 @@ PKG_BUILD_FLAGS="-sysroot"
PKG_CMAKE_OPTS_TARGET="-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES=${SYSROOT_PREFIX}/usr/include \
-DBUILD_UNIT_TESTS=OFF"
-DBUILD_UNIT_TESTS=OFF \
-DCMAKE_SKIP_RPATH=ON"

View File

@ -17,6 +17,8 @@ pre_make_target() {
export CFLAGS="${TARGET_CFLAGS}"
export CPPFLAGS="${TARGET_CPPFLAGS}"
sed -i 's|^EXLDFLAGS :=.*|EXLDFLAGS :=|' Makefile
}
pre_makeinstall_target() {

View File

@ -29,6 +29,10 @@ PKG_CONFIGURE_OPTS_TARGET="--disable-unittest \
--with-ssl=no \
--with-stressjob=no"
post_configure_target() {
libtool_remove_rpath libtool
}
post_makeinstall_target() {
rm -rf ${INSTALL}/usr/bin/${PKG_NAME}-config
cp ${PKG_NAME}-config ${TOOLCHAIN}/bin

View File

@ -33,6 +33,10 @@ pre_configure_target() {
CFLAGS+=" -fcommon"
}
post_configure_target() {
libtool_remove_rpath libtool
}
addon() {
mkdir -p ${ADDON_BUILD}/${PKG_ADDON_ID}/bin
cp ${PKG_INSTALL}/usr/sbin/rsyslogd \

View File

@ -25,6 +25,7 @@ PKG_CONFIGURE_OPTS_COMMON="bash_cv_have_mbstate_t=set \
--with-expat=yes \
--disable-source-highlight \
--disable-nls \
--disable-rpath \
--disable-sim \
--without-x \
--disable-tui \

View File

@ -21,3 +21,10 @@ PKG_CONFIGURE_OPTS_HOST="--disable-static --enable-shared \
--disable-native-java \
--disable-csharp \
--without-emacs"
PKG_CONFIGURE_OPTS_TARGET="--disable-rpath"
post_configure_target() {
libtool_remove_rpath gettext-runtime/libasprintf/libtool
libtool_remove_rpath gettext-tools/libtool
}

View File

@ -16,6 +16,10 @@ PKG_BUILD_FLAGS="+pic -parallel"
PKG_CONFIGURE_OPTS_TARGET="--disable-swtest"
post_configure_target() {
libtool_remove_rpath libtool
}
post_makeinstall_target() {
rm -rf ${INSTALL}/usr/bin
}

View File

@ -18,6 +18,10 @@ pre_configure_target() {
export CONFIG_SHELL="/bin/bash"
}
post_configure_target() {
libtool_remove_rpath libtool
}
post_makeinstall_target() {
rm -rf ${INSTALL}/usr/bin
}

View File

@ -17,6 +17,7 @@ PKG_CONFIGURE_OPTS_TARGET="--without-onig"
pre_configure_target() {
# slang fails to build in subdirs
cd ${PKG_BUILD}
sed -i 's|RPATH=".*"|RPATH=""|' configure
rm -rf .${TARGET_NAME}
}

View File

@ -63,6 +63,7 @@ pre_configure_target() {
--enable-pthread \
--enable-gobject=yes \
--disable-full-testing \
--disable-rpath \
--disable-trace \
--enable-interpreter \
--disable-symbol-lookup \
@ -98,3 +99,7 @@ pre_configure_target() {
--disable-egl"
fi
}
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -21,3 +21,7 @@ pre_configure_target() {
cd ..
./autogen.sh
}
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -23,7 +23,7 @@ PKG_MESON_OPTS_TARGET="-Dlibkms=false \
-Dman-pages=false \
-Dvalgrind=false \
-Dfreedreno-kgsl=false \
-Dinstall-test-programs=false \
-Dinstall-test-programs=true \
-Dudev=false"
listcontains "${GRAPHIC_DRIVERS}" "(crocus|i915|iris)" &&
@ -48,6 +48,14 @@ listcontains "${GRAPHIC_DRIVERS}" "etnaviv" &&
PKG_MESON_OPTS_TARGET+=" -Detnaviv=true" || PKG_MESON_OPTS_TARGET+=" -Detnaviv=false"
post_makeinstall_target() {
mkdir -p ${INSTALL}/usr/bin
cp -a ${PKG_BUILD}/.${TARGET_NAME}/tests/modetest/modetest ${INSTALL}/usr/bin/
# Remove all test programs installed by install-test-programs=true except modetest
# Do not "not use" the ninja install and replace this with a simple "cp modetest"
# as ninja strips the unnecessary build rpath during the install.
safe_remove ${INSTALL}/usr/bin/amdgpu_stress
safe_remove ${INSTALL}/usr/bin/drmdevice
safe_remove ${INSTALL}/usr/bin/kms-steal-crtc
safe_remove ${INSTALL}/usr/bin/kms-universal-planes
safe_remove ${INSTALL}/usr/bin/modeprint
safe_remove ${INSTALL}/usr/bin/proptest
safe_remove ${INSTALL}/usr/bin/vbltest
}

View File

@ -18,6 +18,10 @@ PKG_CONFIGURE_OPTS_TARGET="--disable-werror \
--with-libgpg-error-prefix=${SYSROOT_PREFIX}/usr \
--with-gnu-ld"
post_configure_target() {
libtool_remove_rpath libtool
}
post_makeinstall_target() {
mkdir -p ${INSTALL}/usr/config/aacs
cp -P ../KEYDB.cfg ${INSTALL}/usr/config/aacs

View File

@ -20,3 +20,7 @@ if [ ${TARGET_ARCH} = "x86_64" ]; then
PKG_DEPENDS_TARGET+=" nasm:host"
PKG_CONFIGURE_OPTS_TARGET+=" --enable-asm"
fi
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -23,3 +23,7 @@ if [ "${BLURAY_AACS_SUPPORT}" = "yes" ]; then
else
PKG_CONFIGURE_OPTS_TARGET+=" --without-libaacs"
fi
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -39,3 +39,7 @@ PKG_CONFIGURE_OPTS_TARGET="--disable-werror \
--with-fontconfig \
--with-libxml2 \
--with-gnu-ld"
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -49,6 +49,7 @@ PKG_CONFIGURE_OPTS_TARGET="py_cv_mod_gtk_=yes \
--disable-libevent \
--enable-compat-libdns_sd \
--disable-compat-howl \
--disable-rpath \
--with-xml=expat \
--with-avahi-user=avahi \
--with-avahi-group=avahi \
@ -58,6 +59,10 @@ pre_configure_target() {
NOCONFIGURE=1 ./autogen.sh
}
post_configure_target() {
libtool_remove_rpath libtool
}
post_makeinstall_target() {
# disable wide-area
sed -e "s,^.*enable-wide-area=.*$,enable-wide-area=no,g" -i ${INSTALL}/etc/avahi/avahi-daemon.conf

View File

@ -46,6 +46,10 @@ pre_configure_target() {
export LIBS="-lncurses"
}
post_configure_target() {
libtool_remove_rpath libtool
}
post_makeinstall_target() {
safe_remove ${INSTALL}/usr/lib/systemd
safe_remove ${INSTALL}/usr/bin/bluemoon

View File

@ -68,6 +68,10 @@ PKG_MAKE_OPTS_TARGET="storagedir=/storage/.cache/connman \
vpn_storagedir=/storage/.config/wireguard \
statedir=/run/connman"
post_configure_target() {
libtool_remove_rpath libtool
}
post_makeinstall_target() {
rm -rf ${INSTALL}/usr/lib/systemd
rm -rf ${INSTALL}/usr/lib/tmpfiles.d/connman_resolvconf.conf

View File

@ -12,6 +12,10 @@ PKG_DEPENDS_TARGET="toolchain linux:host libmnl libnftnl"
PKG_LONGDESC="IP packet filter administration."
PKG_TOOLCHAIN="autotools"
post_configure_target() {
libtool_remove_rpath libtool
}
post_makeinstall_target() {
mkdir -p ${INSTALL}/usr/config/iptables/
cp -PR ${PKG_DIR}/config/README ${INSTALL}/usr/config/iptables/

View File

@ -16,6 +16,7 @@ PKG_CONFIGURE_OPTS_TARGET="--disable-doc \
--disable-guile \
--disable-libdane \
--disable-padlock \
--disable-rpath \
--disable-tests \
--disable-tools \
--disable-valgrind-tests \
@ -25,3 +26,7 @@ PKG_CONFIGURE_OPTS_TARGET="--disable-doc \
--with-included-unistring \
--without-p11-kit \
--without-tpm"
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -10,7 +10,13 @@ PKG_URL="https://github.com/libusb/libusb-compat-0.1/releases/download/v${PKG_VE
PKG_DEPENDS_TARGET="toolchain libusb"
PKG_LONGDESC="The libusb project's aim is to create a Library for use by user level applications to USB devices."
PKG_CONFIGURE_OPTS_TARGET="--disable-log --disable-debug-log --disable-examples-build"
PKG_CONFIGURE_OPTS_TARGET="--disable-log \
--disable-debug-log \
--disable-examples-build"
post_configure_target() {
libtool_remove_rpath libtool
}
post_makeinstall_target() {
rm -rf ${INSTALL}/usr/bin

View File

@ -30,6 +30,10 @@ pre_configure_target() {
fi
}
post_configure_target() {
libtool_remove_rpath libtool
}
post_makeinstall_target() {
rm -rf ${INSTALL}/usr/lib/systemd
rm -rf ${INSTALL}/lib

View File

@ -41,6 +41,10 @@ pre_configure_target() {
export LIBS="-ldnet -ltirpc"
}
post_configure_target() {
libtool_remove_rpath libtool
}
post_makeinstall_target() {
rm -rf ${INSTALL}/sbin
rm -rf ${INSTALL}/usr/share

View File

@ -25,6 +25,10 @@ pre_configure_init() {
: # reuse pre_configure_target()
}
post_configure_init() {
: # reuse post_configure_target()
}
configure_init() {
: # reuse configure_target()
}
@ -42,3 +46,7 @@ makeinstall_init() {
pre_configure_target() {
export CFLAGS+=" -I${PKG_BUILD}/lib"
}
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -70,6 +70,10 @@ PKG_CONFIGURE_OPTS_TARGET="ac_cv_lib_rtmp_RTMP_Init=yes \
--with-libidn2 \
--with-nghttp2"
post_configure_target() {
libtool_remove_rpath libtool
}
post_makeinstall_target() {
rm -rf ${INSTALL}/usr/share/zsh

View File

@ -12,3 +12,7 @@ PKG_LONGDESC="Synaptics touchpad driver for X.Org."
PKG_TOOLCHAIN="autotools"
PKG_CONFIGURE_OPTS_TARGET="--with-xorg-module-dir=${XORG_PATH_MODULES}"
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -16,6 +16,10 @@ PKG_TOOLCHAIN="autotools"
PKG_CONFIGURE_OPTS_TARGET="--enable-glamor \
--with-xorg-module-dir=${XORG_PATH_MODULES}"
post_configure_target() {
libtool_remove_rpath libtool
}
post_makeinstall_target() {
mkdir -p ${INSTALL}/etc/X11
cp ${PKG_DIR}/config/*.conf ${INSTALL}/etc/X11

View File

@ -40,6 +40,10 @@ else
PKG_CONFIGURE_OPTS_TARGET+=" --with-default-dri=2"
fi
post_configure_target() {
libtool_remove_rpath libtool
}
post_makeinstall_target() {
rm -rf ${INSTALL}/usr/share/polkit-1
}

View File

@ -15,3 +15,7 @@ PKG_TOOLCHAIN="autotools"
PKG_CONFIGURE_OPTS_TARGET="--enable-vmwarectrl-client \
--with-xorg-module-dir=${XORG_PATH_MODULES}"
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -13,3 +13,7 @@ PKG_LONGDESC="X Composite Library"
PKG_BUILD_FLAGS="+pic"
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared"
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -13,3 +13,7 @@ PKG_LONGDESC="LibXdamage provides an X Window System client interface to the DAM
PKG_BUILD_FLAGS="+pic"
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared"
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -12,3 +12,7 @@ PKG_DEPENDS_TARGET="toolchain util-macros libX11"
PKG_LONGDESC="LibXext provides an X Window System client interface to several extensions to the X protocol."
PKG_CONFIGURE_OPTS_TARGET="--enable-malloc0returnsnull --without-xmlto"
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -13,3 +13,7 @@ PKG_LONGDESC="X Fixes Library"
PKG_BUILD_FLAGS="+pic"
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared"
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -20,3 +20,7 @@ PKG_CONFIGURE_OPTS_TARGET="--disable-ipv6 \
--enable-fc \
--with-gnu-ld \
--without-xmlto"
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -22,3 +22,7 @@ PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared \
--without-xsltproc \
--without-asciidoc \
--with-gnu-ld"
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -12,3 +12,7 @@ PKG_DEPENDS_TARGET="toolchain util-macros libXext"
PKG_LONGDESC="libXinerama is the Xinerama library."
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared --enable-malloc0returnsnull"
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -12,3 +12,7 @@ PKG_DEPENDS_TARGET="toolchain util-macros libX11 libXrender libXext"
PKG_LONGDESC="Xrandr is a simple library designed to interface the X Resize and Rotate Extension."
PKG_CONFIGURE_OPTS_TARGET="--enable-malloc0returnsnull"
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -13,3 +13,7 @@ PKG_LONGDESC="The X Rendering Extension introduces digital image composition wit
PKG_BUILD_FLAGS="+pic"
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared --enable-malloc0returnsnull"
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -12,3 +12,7 @@ PKG_DEPENDS_TARGET="toolchain util-macros libXext libXi libX11"
PKG_LONGDESC="The Xtst Library"
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared --with-gnu-ld --without-xmlto"
post_configure_target() {
libtool_remove_rpath libtool
}

View File

@ -17,7 +17,8 @@ PKG_CONFIGURE_OPTS_TARGET="--with-arch=${TARGET_ARCH} \
--with-default-fonts=/usr/share/fonts \
--without-add-fonts \
--disable-dependency-tracking \
--disable-docs"
--disable-docs \
--disable-rpath"
pre_configure_target() {
# ensure we dont use '-O3' optimization.
@ -27,6 +28,10 @@ pre_configure_target() {
CXXFLAGS+=" -I${PKG_BUILD}"
}
post_configure_target() {
libtool_remove_rpath libtool
}
post_makeinstall_target() {
rm -rf ${INSTALL}/usr/bin
}