libtool: don't prefix the installed binary

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]
(From OE-Core rev: 4b308773eca7570ce5007e8f953b56252c17fdb1)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton
2021-12-10 14:22:33 +00:00
committed by Richard Purdie
parent 14cb87f9ae
commit ebf34d5b25
4 changed files with 8 additions and 109 deletions

View 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/

View 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
}

View File

@@ -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,

View 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
}