mirror of
https://github.com/hanwckf/immortalwrt-mt798x.git
synced 2025-01-07 01:53:34 +08:00
Mostly revert "build: add support for fixing up library soname"
This reverts commit b12288fa69b171f7c9405518c9bed3581a06f7ce. The patchelf approach is too fragile, and the only users of this have been converted to make patching unnecessary Leave the abi_version_str variable in place in rules.mk Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
26a899e3e8
commit
075fa4cd9a
@ -152,7 +152,6 @@ ifeq ($(DUMP),)
|
||||
mkdir -p $(PKG_BUILD_DIR)/.pkgdir/$(1)
|
||||
$(call Package/$(1)/install,$(PKG_BUILD_DIR)/.pkgdir/$(1))
|
||||
$(call Package/$(1)/install_lib,$(PKG_BUILD_DIR)/.pkgdir/$(1))
|
||||
$(if $(PKG_ABI_VERSION),$(SET_ABI_VERSION) "$(PKG_ABI_VERSION)" "$(PKG_BUILD_DIR)/.pkgdir/$(1)" "$(STAGING_DIR)/packages/$(STAGING_FILES_LIST)")
|
||||
touch $$@
|
||||
|
||||
$(STAGING_DIR_ROOT)/stamp/.$(1)_installed: $(PKG_BUILD_DIR)/.pkgdir/$(1).installed
|
||||
@ -197,15 +196,11 @@ $(_endef)
|
||||
$$(IPKG_$(1)) : export DESCRIPTION=$$(Package/$(1)/description)
|
||||
$$(IPKG_$(1)) : export PATH=$$(TARGET_PATH_PKG)
|
||||
$$(IPKG_$(1)) : export PKG_SOURCE_DATE_EPOCH:=$(PKG_SOURCE_DATE_EPOCH)
|
||||
ifdef Build/InstallDev
|
||||
$$(IPKG_$(1)): $(STAMP_INSTALLED)
|
||||
endif
|
||||
$(PKG_INFO_DIR)/$(1).provides $$(IPKG_$(1)): $(STAMP_BUILT) $(INCLUDE_DIR)/package-ipkg.mk
|
||||
@rm -rf $$(IDIR_$(1)); \
|
||||
$$(call remove_ipkg_files,$(1),$$(call opkg_package_files,$(call gen_ipkg_wildcard,$(1))))
|
||||
mkdir -p $(PACKAGE_DIR) $$(IDIR_$(1))/CONTROL $(PKG_INFO_DIR)
|
||||
$(call Package/$(1)/install,$$(IDIR_$(1)))
|
||||
$(if $(PKG_ABI_VERSION),$(SET_ABI_VERSION) "$(PKG_ABI_VERSION)" "$$(IDIR_$(1))" "$(STAGING_DIR)/packages/$(STAGING_FILES_LIST)")
|
||||
$(if $(Package/$(1)/install-overlay),mkdir -p $(PACKAGE_DIR) $$(IDIR_$(1))/rootfs-overlay)
|
||||
$(call Package/$(1)/install-overlay,$$(IDIR_$(1))/rootfs-overlay)
|
||||
-find $$(IDIR_$(1)) -name 'CVS' -o -name '.svn' -o -name '.#*' -o -name '*~'| $(XARGS) rm -rf
|
||||
|
@ -178,7 +178,6 @@ Build/Exports=$(Build/Exports/Default)
|
||||
define Build/CoreTargets
|
||||
STAMP_PREPARED:=$$(STAMP_PREPARED)
|
||||
STAMP_CONFIGURED:=$$(STAMP_CONFIGURED)
|
||||
PKG_ABI_VERSION:=$$(PKG_ABI_VERSION)
|
||||
|
||||
$(if $(QUILT),$(Build/Quilt))
|
||||
$(call Build/Autoclean)
|
||||
@ -237,7 +236,6 @@ define Build/CoreTargets
|
||||
"$(STAGING_DIR)/packages/$(STAGING_FILES_LIST)" \
|
||||
"$(STAGING_DIR)"; \
|
||||
fi
|
||||
$(if $(PKG_ABI_VERSION),$(SET_ABI_VERSION) "$(PKG_ABI_VERSION)" $(TMP_DIR)/stage-$(PKG_DIR_NAME))
|
||||
if [ -d $(TMP_DIR)/stage-$(PKG_DIR_NAME) ]; then \
|
||||
(cd $(TMP_DIR)/stage-$(PKG_DIR_NAME); find ./ > $(TMP_DIR)/stage-$(PKG_DIR_NAME).files); \
|
||||
$(call locked, \
|
||||
|
4
rules.mk
4
rules.mk
@ -339,10 +339,6 @@ else
|
||||
$(SCRIPT_DIR)/rstrip.sh
|
||||
endif
|
||||
|
||||
SET_ABI_VERSION= \
|
||||
PATCHELF="$(STAGING_DIR_HOST)/bin/patchelf" \
|
||||
$(SCRIPT_DIR)/set-abi-version.sh
|
||||
|
||||
ifeq ($(CONFIG_IPV6),y)
|
||||
DISABLE_IPV6:=
|
||||
else
|
||||
|
@ -1,73 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Copyright (C) 2020 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
SELF=${0##*/}
|
||||
|
||||
[ -n "$PATCHELF" ] || {
|
||||
echo "$SELF: patchelf command not defined (PATCHELF variable not set)"
|
||||
exit 1
|
||||
}
|
||||
|
||||
ABI_VER="$1"
|
||||
PATCH_DIR="$2"
|
||||
REF_LIST="$3"
|
||||
|
||||
[ -n "$ABI_VER" -a -n "$PATCH_DIR" ] || {
|
||||
echo "$SELF: no ABI version or files/directories specified"
|
||||
echo "usage: $SELF <VERSION> [<PATH>...]"
|
||||
exit 1
|
||||
}
|
||||
|
||||
cmd() {
|
||||
echo "$@" >&2
|
||||
"$@" || exit 1
|
||||
}
|
||||
|
||||
gen_lib_list() {
|
||||
while read F; do
|
||||
F="${F##*/}"
|
||||
case "$F" in
|
||||
lib*.so*);;
|
||||
*) continue;;
|
||||
esac
|
||||
echo -n "$F:"
|
||||
done < "$REF_LIST"
|
||||
}
|
||||
|
||||
find "$PATCH_DIR" -type f -a -name 'lib*.so*' | \
|
||||
(
|
||||
while read F; do
|
||||
NEW_F="${F%%.so*}.so.$ABI_VER"
|
||||
NEW_NAME="${NEW_F##*/}"
|
||||
[ "$NEW_F" != "$F" ] || continue
|
||||
cmd mv "$F" "$NEW_F"
|
||||
[ "$REF_LIST" ] || cmd ln -s "$NEW_NAME" "$F"
|
||||
cmd $PATCHELF --set-soname "$NEW_NAME" "$NEW_F"
|
||||
done
|
||||
)
|
||||
|
||||
[ -n "$REF_LIST" ] || exit 0
|
||||
|
||||
LIBS="$(gen_lib_list)"
|
||||
LIBS="${LIBS%%:}"
|
||||
find "$PATCH_DIR" -type f -a -exec file {} \; | \
|
||||
sed -n -e 's/^\(.*\):.*ELF.*\(executable\|relocatable\|shared object\).*,.*/\1:\2/p' | \
|
||||
(
|
||||
IFS=":"
|
||||
while read F S; do
|
||||
$PATCHELF --print-needed "$F" | while read L; do
|
||||
BASE_L="${L%%.so*}"
|
||||
for lib in $LIBS; do
|
||||
base_lib="${lib%%.so*}"
|
||||
[ "$BASE_L" = "$base_lib" ] || continue
|
||||
[ "$l" = "$lib" ] && continue
|
||||
cmd $PATCHELF --replace-needed "$L" "$lib" "$F"
|
||||
done
|
||||
done
|
||||
done
|
||||
true
|
||||
)
|
Loading…
x
Reference in New Issue
Block a user