Mostly revert "build: add support for fixing up library soname"
This reverts commit b12288fa69
.
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)
|
mkdir -p $(PKG_BUILD_DIR)/.pkgdir/$(1)
|
||||||
$(call Package/$(1)/install,$(PKG_BUILD_DIR)/.pkgdir/$(1))
|
$(call Package/$(1)/install,$(PKG_BUILD_DIR)/.pkgdir/$(1))
|
||||||
$(call Package/$(1)/install_lib,$(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 $$@
|
touch $$@
|
||||||
|
|
||||||
$(STAGING_DIR_ROOT)/stamp/.$(1)_installed: $(PKG_BUILD_DIR)/.pkgdir/$(1).installed
|
$(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 DESCRIPTION=$$(Package/$(1)/description)
|
||||||
$$(IPKG_$(1)) : export PATH=$$(TARGET_PATH_PKG)
|
$$(IPKG_$(1)) : export PATH=$$(TARGET_PATH_PKG)
|
||||||
$$(IPKG_$(1)) : export PKG_SOURCE_DATE_EPOCH:=$(PKG_SOURCE_DATE_EPOCH)
|
$$(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
|
$(PKG_INFO_DIR)/$(1).provides $$(IPKG_$(1)): $(STAMP_BUILT) $(INCLUDE_DIR)/package-ipkg.mk
|
||||||
@rm -rf $$(IDIR_$(1)); \
|
@rm -rf $$(IDIR_$(1)); \
|
||||||
$$(call remove_ipkg_files,$(1),$$(call opkg_package_files,$(call gen_ipkg_wildcard,$(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)
|
mkdir -p $(PACKAGE_DIR) $$(IDIR_$(1))/CONTROL $(PKG_INFO_DIR)
|
||||||
$(call Package/$(1)/install,$$(IDIR_$(1)))
|
$(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)
|
$(if $(Package/$(1)/install-overlay),mkdir -p $(PACKAGE_DIR) $$(IDIR_$(1))/rootfs-overlay)
|
||||||
$(call Package/$(1)/install-overlay,$$(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
|
-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
|
define Build/CoreTargets
|
||||||
STAMP_PREPARED:=$$(STAMP_PREPARED)
|
STAMP_PREPARED:=$$(STAMP_PREPARED)
|
||||||
STAMP_CONFIGURED:=$$(STAMP_CONFIGURED)
|
STAMP_CONFIGURED:=$$(STAMP_CONFIGURED)
|
||||||
PKG_ABI_VERSION:=$$(PKG_ABI_VERSION)
|
|
||||||
|
|
||||||
$(if $(QUILT),$(Build/Quilt))
|
$(if $(QUILT),$(Build/Quilt))
|
||||||
$(call Build/Autoclean)
|
$(call Build/Autoclean)
|
||||||
@ -237,7 +236,6 @@ define Build/CoreTargets
|
|||||||
"$(STAGING_DIR)/packages/$(STAGING_FILES_LIST)" \
|
"$(STAGING_DIR)/packages/$(STAGING_FILES_LIST)" \
|
||||||
"$(STAGING_DIR)"; \
|
"$(STAGING_DIR)"; \
|
||||||
fi
|
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 \
|
if [ -d $(TMP_DIR)/stage-$(PKG_DIR_NAME) ]; then \
|
||||||
(cd $(TMP_DIR)/stage-$(PKG_DIR_NAME); find ./ > $(TMP_DIR)/stage-$(PKG_DIR_NAME).files); \
|
(cd $(TMP_DIR)/stage-$(PKG_DIR_NAME); find ./ > $(TMP_DIR)/stage-$(PKG_DIR_NAME).files); \
|
||||||
$(call locked, \
|
$(call locked, \
|
||||||
|
4
rules.mk
4
rules.mk
@ -339,10 +339,6 @@ else
|
|||||||
$(SCRIPT_DIR)/rstrip.sh
|
$(SCRIPT_DIR)/rstrip.sh
|
||||||
endif
|
endif
|
||||||
|
|
||||||
SET_ABI_VERSION= \
|
|
||||||
PATCHELF="$(STAGING_DIR_HOST)/bin/patchelf" \
|
|
||||||
$(SCRIPT_DIR)/set-abi-version.sh
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_IPV6),y)
|
ifeq ($(CONFIG_IPV6),y)
|
||||||
DISABLE_IPV6:=
|
DISABLE_IPV6:=
|
||||||
else
|
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…
Reference in New Issue
Block a user