From 47d09ca93657488f7775ddb37ca2395d777781aa Mon Sep 17 00:00:00 2001 From: termux-pacman-bot Date: Sat, 12 Nov 2022 13:43:37 +0000 Subject: [PATCH] binutils: Overhaul * Rename main package to binutils-libs * Install executables into libexec/binutils/ * Create subpackage binutils-bin not conflicting with binutils-is-llvm - binutils-bin contains symlinks bin/{as,elfedit,gprof,ld.bfd} * Make binutils essentially a metapackage only containing symlinks --- .../bfd-dynamic_interpreter.patch | 0 .../binutils-libs/binutils-bin.subpackage.sh | 16 +++++++ .../binutils-cross.subpackage.sh | 0 .../binutils-gold.subpackage.sh | 0 .../binutils.patch | 0 packages/binutils-libs/binutils.subpackage.sh | 21 +++++++++ packages/{binutils => binutils-libs}/build.sh | 45 ++++++++++++++----- .../dirsearch.cc.patch | 0 .../gas-decrease-input-buffer-size.patch | 0 .../gold-ffsll.c.patch | 0 .../native_lib_dirs.patch32 | 0 .../native_lib_dirs.patch64 | 0 .../no-hardlink.patch.beforehostbuild | 0 .../options.cc.patch32 | 0 .../options.cc.patch64 | 0 packages/binutils/binutils-libs.subpackage.sh | 11 ----- 16 files changed, 71 insertions(+), 22 deletions(-) rename packages/{binutils => binutils-libs}/bfd-dynamic_interpreter.patch (100%) create mode 100644 packages/binutils-libs/binutils-bin.subpackage.sh rename packages/{binutils => binutils-libs}/binutils-cross.subpackage.sh (100%) rename packages/{binutils => binutils-libs}/binutils-gold.subpackage.sh (100%) rename packages/{binutils => binutils-libs}/binutils.patch (100%) create mode 100644 packages/binutils-libs/binutils.subpackage.sh rename packages/{binutils => binutils-libs}/build.sh (63%) rename packages/{binutils => binutils-libs}/dirsearch.cc.patch (100%) rename packages/{binutils => binutils-libs}/gas-decrease-input-buffer-size.patch (100%) rename packages/{binutils => binutils-libs}/gold-ffsll.c.patch (100%) rename packages/{binutils => binutils-libs}/native_lib_dirs.patch32 (100%) rename packages/{binutils => binutils-libs}/native_lib_dirs.patch64 (100%) rename packages/{binutils => binutils-libs}/no-hardlink.patch.beforehostbuild (100%) rename packages/{binutils => binutils-libs}/options.cc.patch32 (100%) rename packages/{binutils => binutils-libs}/options.cc.patch64 (100%) delete mode 100644 packages/binutils/binutils-libs.subpackage.sh diff --git a/packages/binutils/bfd-dynamic_interpreter.patch b/packages/binutils-libs/bfd-dynamic_interpreter.patch similarity index 100% rename from packages/binutils/bfd-dynamic_interpreter.patch rename to packages/binutils-libs/bfd-dynamic_interpreter.patch diff --git a/packages/binutils-libs/binutils-bin.subpackage.sh b/packages/binutils-libs/binutils-bin.subpackage.sh new file mode 100644 index 0000000000..f014635c58 --- /dev/null +++ b/packages/binutils-libs/binutils-bin.subpackage.sh @@ -0,0 +1,16 @@ +TERMUX_SUBPKG_INCLUDE=" +bin/as +bin/elfedit +bin/gprof +bin/ld.bfd +libexec/binutils/ +share/info/as.info +share/info/binutils.info +share/info/gprof.info +share/info/ld.info +share/man/ +" +TERMUX_SUBPKG_DESCRIPTION="Collection of binary tools, the main ones being ld, the GNU linker, and as, the GNU assembler" +TERMUX_SUBPKG_DEPENDS="libc++" +TERMUX_SUBPKG_BREAKS="binutils (<< 2.39-3)" +TERMUX_SUBPKG_REPLACES="binutils (<< 2.39-3)" diff --git a/packages/binutils/binutils-cross.subpackage.sh b/packages/binutils-libs/binutils-cross.subpackage.sh similarity index 100% rename from packages/binutils/binutils-cross.subpackage.sh rename to packages/binutils-libs/binutils-cross.subpackage.sh diff --git a/packages/binutils/binutils-gold.subpackage.sh b/packages/binutils-libs/binutils-gold.subpackage.sh similarity index 100% rename from packages/binutils/binutils-gold.subpackage.sh rename to packages/binutils-libs/binutils-gold.subpackage.sh diff --git a/packages/binutils/binutils.patch b/packages/binutils-libs/binutils.patch similarity index 100% rename from packages/binutils/binutils.patch rename to packages/binutils-libs/binutils.patch diff --git a/packages/binutils-libs/binutils.subpackage.sh b/packages/binutils-libs/binutils.subpackage.sh new file mode 100644 index 0000000000..3f7c5be167 --- /dev/null +++ b/packages/binutils-libs/binutils.subpackage.sh @@ -0,0 +1,21 @@ +TERMUX_SUBPKG_INCLUDE=" +bin/$TERMUX_HOST_PLATFORM-* +bin/addr2line +bin/ar +bin/c++filt +bin/dwp +bin/ld +bin/nm +bin/objcopy +bin/objdump +bin/ranlib +bin/readelf +bin/size +bin/strings +bin/strip +share/binutils/ +" +TERMUX_SUBPKG_DESCRIPTION="GNU Binutils (metapackage)" +TERMUX_SUBPKG_DEPEND_ON_PARENT=no +TERMUX_SUBPKG_DEPENDS="binutils-bin" +TERMUX_SUBPKG_CONFLICTS="binutils-is-llvm" diff --git a/packages/binutils/build.sh b/packages/binutils-libs/build.sh similarity index 63% rename from packages/binutils/build.sh rename to packages/binutils-libs/build.sh index 4f8424beaf..b405a01f3e 100644 --- a/packages/binutils/build.sh +++ b/packages/binutils-libs/build.sh @@ -1,16 +1,16 @@ TERMUX_PKG_HOMEPAGE=https://www.gnu.org/software/binutils/ -TERMUX_PKG_DESCRIPTION="Collection of binary tools, the main ones being ld, the GNU linker, and as, the GNU assembler" +TERMUX_PKG_DESCRIPTION="GNU Binutils libraries" TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=2.39 -TERMUX_PKG_REVISION=2 +TERMUX_PKG_REVISION=3 TERMUX_PKG_SRCURL=https://mirrors.kernel.org/gnu/binutils/binutils-${TERMUX_PKG_VERSION}.tar.xz TERMUX_PKG_SHA256=645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00 -TERMUX_PKG_DEPENDS="binutils-libs (>= ${TERMUX_PKG_VERSION}), libc++, zlib" -TERMUX_PKG_SUGGESTS="ldd" -TERMUX_PKG_BREAKS="binutils-dev" -TERMUX_PKG_REPLACES="binutils-dev" +TERMUX_PKG_DEPENDS="zlib" +TERMUX_PKG_BREAKS="binutils (<< 2.39), binutils-dev" +TERMUX_PKG_REPLACES="binutils (<< 2.39), binutils-dev" TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" +--bindir=$TERMUX_PREFIX/libexec/binutils --enable-gold --disable-gprofng --enable-plugins @@ -58,12 +58,35 @@ termux_step_pre_configure() { } termux_step_post_make_install() { - cd $TERMUX_PREFIX/bin + local d=$TERMUX_PREFIX/share/binutils + mkdir -p ${d} + touch ${d}/.placeholder + + mkdir -p $TERMUX_PREFIX/bin + cd $TERMUX_PREFIX/libexec/binutils + + mv ld{.bfd,} + ln -sf ld{,.bfd} + ln -sfr $TERMUX_PREFIX/libexec/binutils/ld $TERMUX_PREFIX/bin/ld.bfd + + rm -f $TERMUX_PREFIX/bin/ld.gold + mv ld.gold $TERMUX_PREFIX/bin/ + ln -sfr $TERMUX_PREFIX/bin/{ld.,}gold + + for b in *; do + ln -sfr $TERMUX_PREFIX/libexec/binutils/${b} \ + $TERMUX_PREFIX/bin/${b} + done + # Setup symlinks as these are used when building, so used by # system setup in e.g. python, perl and libtool: - for b in ar ld nm objdump ranlib readelf strip; do - ln -s -f $b $TERMUX_HOST_PLATFORM-$b + local _TOOLS_WITH_HOST_PREFIX="ar ld nm objdump ranlib readelf strip" + for b in ${_TOOLS_WITH_HOST_PREFIX}; do + ln -sfr $TERMUX_PREFIX/libexec/binutils/${b} \ + $TERMUX_PREFIX/bin/$TERMUX_HOST_PLATFORM-${b} done - mv ld.bfd ld - ln -sf ld.gold gold +} + +termux_step_post_massage() { + rm -rf bin } diff --git a/packages/binutils/dirsearch.cc.patch b/packages/binutils-libs/dirsearch.cc.patch similarity index 100% rename from packages/binutils/dirsearch.cc.patch rename to packages/binutils-libs/dirsearch.cc.patch diff --git a/packages/binutils/gas-decrease-input-buffer-size.patch b/packages/binutils-libs/gas-decrease-input-buffer-size.patch similarity index 100% rename from packages/binutils/gas-decrease-input-buffer-size.patch rename to packages/binutils-libs/gas-decrease-input-buffer-size.patch diff --git a/packages/binutils/gold-ffsll.c.patch b/packages/binutils-libs/gold-ffsll.c.patch similarity index 100% rename from packages/binutils/gold-ffsll.c.patch rename to packages/binutils-libs/gold-ffsll.c.patch diff --git a/packages/binutils/native_lib_dirs.patch32 b/packages/binutils-libs/native_lib_dirs.patch32 similarity index 100% rename from packages/binutils/native_lib_dirs.patch32 rename to packages/binutils-libs/native_lib_dirs.patch32 diff --git a/packages/binutils/native_lib_dirs.patch64 b/packages/binutils-libs/native_lib_dirs.patch64 similarity index 100% rename from packages/binutils/native_lib_dirs.patch64 rename to packages/binutils-libs/native_lib_dirs.patch64 diff --git a/packages/binutils/no-hardlink.patch.beforehostbuild b/packages/binutils-libs/no-hardlink.patch.beforehostbuild similarity index 100% rename from packages/binutils/no-hardlink.patch.beforehostbuild rename to packages/binutils-libs/no-hardlink.patch.beforehostbuild diff --git a/packages/binutils/options.cc.patch32 b/packages/binutils-libs/options.cc.patch32 similarity index 100% rename from packages/binutils/options.cc.patch32 rename to packages/binutils-libs/options.cc.patch32 diff --git a/packages/binutils/options.cc.patch64 b/packages/binutils-libs/options.cc.patch64 similarity index 100% rename from packages/binutils/options.cc.patch64 rename to packages/binutils-libs/options.cc.patch64 diff --git a/packages/binutils/binutils-libs.subpackage.sh b/packages/binutils/binutils-libs.subpackage.sh deleted file mode 100644 index d49af10af0..0000000000 --- a/packages/binutils/binutils-libs.subpackage.sh +++ /dev/null @@ -1,11 +0,0 @@ -TERMUX_SUBPKG_INCLUDE=" -include/ -lib/ -share/info/bfd.info -share/info/ctf-spec.info -" -TERMUX_SUBPKG_DESCRIPTION="Binutils libraries" -TERMUX_SUBPKG_DEPEND_ON_PARENT=no -TERMUX_SUBPKG_DEPENDS="zlib" -TERMUX_SUBPKG_REPLACES="binutils (<< 2.39)" -TERMUX_SUBPKG_BREAKS="binutils (<< ${TERMUX_PKG_VERSION})"