]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
libtool: don't prefix the installed binary
authorRoss Burton <ross@burtonini.com>
Fri, 10 Dec 2021 14:22:33 +0000 (14:22 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 12 Dec 2021 18:10:09 +0000 (18:10 +0000)
Typically libtool installs the binary to 'libtool' in the source tree,
but we've got patches to rename this to ${host_sys}-libtool. As this
isn't standard any upstream that don't respect the LIBTOOL variable need
to be told explicitly where libtool is, which is a long-term maintenance
burden for us on top of the initial libtool patches.

The reasoning for this renaming appears to stem from the design to be
sure that we're using our new/patched libtool and not the host's binary.
However, now that we have HOSTTOOLS, there's no way to run the host
libtool so this argument is moot.

This patch removes the libtool renaming, follow-up patches remove the
required modifications from the rest of the recipes.

[RP: Remove commented patch lines]
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/libtool/libtool-cross_2.4.6.bb
meta/recipes-devtools/libtool/libtool-native_2.4.6.bb
meta/recipes-devtools/libtool/libtool/prefix.patch [deleted file]
meta/recipes-devtools/libtool/nativesdk-libtool_2.4.6.bb

index 4a43867b3ec0b95212449002a9d673151b1b2783..93f1dd7825d4fcefd27e5f626901d889bb35311f 100644 (file)
@@ -1,7 +1,6 @@
 require libtool-${PV}.inc
 
 PACKAGES = ""
-SRC_URI += "file://prefix.patch"
 SRC_URI += "file://fixinstall.patch"
 
 datadir = "${STAGING_DIR_TARGET}${target_datadir}"
@@ -22,15 +21,16 @@ do_configure:prepend () {
 # Find references to LTCC="ccache xxx-gcc" and CC="ccache xxx-gcc"
 #
 do_install () {
+       ln -s false ${D}
        install -d ${D}${bindir_crossscripts}/
-       install -m 0755 ${HOST_SYS}-libtool ${D}${bindir_crossscripts}/${HOST_SYS}-libtool
+       install -m 0755 libtool ${D}${bindir_crossscripts}/libtool
        sed -e 's@^\(predep_objects="\).*@\1"@' \
            -e 's@^\(postdep_objects="\).*@\1"@' \
            -e 's@^CC="ccache.@CC="@' \
            -e 's@^LTCC="ccache.@LTCC="@' \
-           -i ${D}${bindir_crossscripts}/${HOST_SYS}-libtool
-       sed -i '/^archive_cmds=/s/\-nostdlib//g' ${D}${bindir_crossscripts}/${HOST_SYS}-libtool
-       sed -i '/^archive_expsym_cmds=/s/\-nostdlib//g' ${D}${bindir_crossscripts}/${HOST_SYS}-libtool
+           -i ${D}${bindir_crossscripts}/libtool
+       sed -i '/^archive_cmds=/s/\-nostdlib//g' ${D}${bindir_crossscripts}/libtool
+       sed -i '/^archive_expsym_cmds=/s/\-nostdlib//g' ${D}${bindir_crossscripts}/libtool
        GREP='/bin/grep' SED='sed' ${S}/build-aux/inline-source libtoolize > ${D}${bindir_crossscripts}/libtoolize
        chmod 0755 ${D}${bindir_crossscripts}/libtoolize
        install -d ${D}${target_datadir}/libtool/build-aux/
index 3b20ce3e69fc3f50a3b5132c4c7cd81b6d6417c4..19024f7830cc9467a7ca0dafe681a27a9a8aac10 100644 (file)
@@ -2,8 +2,6 @@ require libtool-${PV}.inc
 
 DEPENDS = ""
 
-SRC_URI += "file://prefix.patch"
-
 inherit native
 
 EXTRA_OECONF = " --with-libtool-sysroot=${STAGING_DIR_NATIVE}"
@@ -18,5 +16,5 @@ do_configure:prepend () {
 do_install () {
        autotools_do_install
        install -d ${D}${bindir}/
-       install -m 0755 ${HOST_SYS}-libtool ${D}${bindir}/${HOST_SYS}-libtool
+       install -m 0755 libtool ${D}${bindir}/libtool
 }
diff --git a/meta/recipes-devtools/libtool/libtool/prefix.patch b/meta/recipes-devtools/libtool/libtool/prefix.patch
deleted file mode 100644 (file)
index a73df2e..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-Renames "libtool" -> "${TARGET_PREFIX}libtool" which makes sure
-it can't be confused with the host libtool.
-
-Originally by: RP
-
-Updated: Date: 2010/06/28
-Nitin A Kamble <nitin.a.kamble@intel.com>
-
-It also adjusts libtool so that the header at the script is used for 
-script execution and not thevalue of $SHELL. This is because many 
-Makefiles change $SHELL so dash can get used to execute what is 
-otherwise configured as a bash shell script. Since we don't need to 
-execute scipts this way on any system I'm aware of us building upon, 
-the simplest fix is just to remove $SHELL.
-
-Updated: Date: 2011/11/09
-RP
-
-Updated by: Robert Yang <liezhi.yang@windriver.com>
-
-diff --git a/Makefile.am b/Makefile.am
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -31,7 +31,7 @@ SUBDIRS                      = .
- DIST_SUBDIRS          = $(SUBDIRS)
- EXTRA_DIST            =
--BUILT_SOURCES         = libtool libtoolize
-+BUILT_SOURCES         = $(host_alias)-libtool libtoolize
- CLEANFILES            =
- MOSTLYCLEANFILES      =
-@@ -67,7 +67,7 @@ build_scripts        = $(srcdir)/$(aux_dir)/announce-gen \
- EXTRA_DIST     += bootstrap bootstrap.conf $(build_scripts) cfg.mk maint.mk \
-                 GNUmakefile
--CLEANFILES     += libtool libtoolize
-+CLEANFILES     += $(host_alias)-libtool libtoolize
- ## If a file is named several times below, and especially if it
- ## is a distributed file created during Libtool bootstrap, we
-@@ -276,7 +276,7 @@ configure_edit = $(bootstrap_edit) \
-       -e 's|@srcdir\@|$(srcdir)|g'
- # The libtool distributor and the standalone libtool script.
--bin_SCRIPTS = libtool
-+bin_SCRIPTS = $(host_alias)-libtool
- libtoolize: $(libtoolize_in) $(config_status)
-       $(AM_V_at)rm -f '$@'
-@@ -287,7 +287,7 @@ libtoolize: $(libtoolize_in) $(config_status)
- # We used to do this with a 'stamp-vcl' file, but non-gmake builds
- # would rerun configure on every invocation, so now we manually
- # check the version numbers from the build rule when necessary.
--libtool: $(ltmain_sh) $(config_status) $(dotversion)
-+$(host_alias)-libtool: $(ltmain_sh) $(config_status) $(dotversion)
-       @$(rebuild); \
-       if test -f '$@'; then \
-         eval `'$(SED)' -n '/^package_revision=/p' '$@'`; \
-@@ -731,12 +731,12 @@ TESTS_ENVIRONMENT = MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" \
- BUILDCHECK_ENVIRONMENT = _lt_pkgdatadir="$(abs_top_srcdir)" \
-       LIBTOOLIZE="$(abs_top_builddir)/libtoolize" \
--      LIBTOOL="$(abs_top_builddir)/libtool" \
-+      LIBTOOL="$(abs_top_builddir)/$(host_alias)-libtool" \
-       tst_aclocaldir="$(abs_top_srcdir)/m4"
- INSTALLCHECK_ENVIRONMENT = \
-       LIBTOOLIZE="$(bindir)/`echo libtoolize |$(SED) '$(program_transform_name)'`" \
--      LIBTOOL="$(bindir)/`echo libtool |$(SED) '$(program_transform_name)'`" \
-+      LIBTOOL="$(bindir)/`echo $(host_alias)-libtool |$(SED) '$(program_transform_name)'`" \
-       LTDLINCL="-I$(includedir)" \
-       LIBLTDL="$(libdir)/libltdl.la" \
-       tst_aclocaldir="$(aclocaldir)"
-diff --git a/m4/libtool.m4 b/m4/libtool.m4
---- a/m4/libtool.m4
-+++ b/m4/libtool.m4
-@@ -86,7 +86,8 @@ _LT_SET_OPTIONS([$0], [$1])
- LIBTOOL_DEPS=$ltmain
- # Always use our own libtool.
--LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-+LIBTOOL='$(top_builddir)'
-+LIBTOOL="$LIBTOOL/${host_alias}-libtool"
- AC_SUBST(LIBTOOL)dnl
- _LT_SETUP
-@@ -199,7 +200,7 @@ aix3*)
- esac
- # Global variables:
--ofile=libtool
-+ofile=${host_alias}-libtool
- can_build_shared=yes
- # All known linkers require a '.a' archive for static linking (except MSVC,
index e3ad6721fdf963d1c4846c5a526469818cb33449..86c55ded7b60be0c57cd04baaacbac732cc19655 100644 (file)
@@ -2,7 +2,6 @@ require libtool-${PV}.inc
 
 FILESEXTRAPATHS =. "${FILE_DIRNAME}/libtool:"
 
-SRC_URI += "file://prefix.patch"
 SRC_URI += "file://fixinstall.patch"
 
 inherit nativesdk
@@ -20,12 +19,12 @@ do_configure:prepend () {
 do_install () {
        autotools_do_install
        install -d ${D}${bindir}/
-       install -m 0755 ${HOST_SYS}-libtool ${D}${bindir}/
+       install -m 0755 libtool ${D}${bindir}/
 }
 
 SYSROOT_PREPROCESS_FUNCS += "libtoolnativesdk_sysroot_preprocess"
 
 libtoolnativesdk_sysroot_preprocess () {
        install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
-       install -m 755 ${D}${bindir}/${HOST_SYS}-libtool ${SYSROOT_DESTDIR}${bindir_crossscripts}/${HOST_SYS}-libtool
+       install -m 755 ${D}${bindir}/libtool ${SYSROOT_DESTDIR}${bindir_crossscripts}/libtool
 }