Mostly revert "build: add support for fixing up library soname"
authorFelix Fietkau <nbd@nbd.name>
Mon, 15 Feb 2021 16:49:46 +0000 (17:49 +0100)
committerFelix Fietkau <nbd@nbd.name>
Mon, 15 Feb 2021 17:47:21 +0000 (18:47 +0100)
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>
include/package-ipkg.mk
include/package.mk
rules.mk
scripts/set-abi-version.sh [deleted file]

index e89276ed1a03f06bfce420b502d86fdb495c40fc..eaa80ebc75c5608d3e5af70e0361dd3f08309380 100644 (file)
@@ -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
index 0f1dd5cc5069dc4586fd5a0e1604eed265879e0c..d38d52908ef3075ea2f5727e6817b2aabb7696d5 100644 (file)
@@ -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, \
index c6bd7327c5857d2eac0771e23ad23a666764c8db..8f41ff5861a046bcad893b9a11874f96e3f43e3e 100644 (file)
--- a/rules.mk
+++ b/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
diff --git a/scripts/set-abi-version.sh b/scripts/set-abi-version.sh
deleted file mode 100755 (executable)
index a61c842..0000000
+++ /dev/null
@@ -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
-)