From 66e600b37a362c8e16729401f54c37490aad648f Mon Sep 17 00:00:00 2001 From: EnumDev Date: Sat, 15 Nov 2025 11:36:00 +0200 Subject: [PATCH] Update package version to 2.45.1 --- pkg.info | 21 ++++++++++++--- source.sh | 78 ++++++++++++++++++++++++++++++++++--------------------- 2 files changed, 65 insertions(+), 34 deletions(-) diff --git a/pkg.info b/pkg.info index b0d4425..7e7272b 100644 --- a/pkg.info +++ b/pkg.info @@ -1,9 +1,22 @@ name: binutils description: The GNU Binutils are a collection of binary tools -version: 2.45 +version: 2.45.1 +revision: 1 url: https://www.gnu.org/software/binutils/ -license: GPL +license: GPL3-or-later architecture: any -depends: ["glibc","libelf","zlib","zstd"] -make_depends: ["bc","dejagnu"] type: source +depends: + - glibc + - jansson + - libelf + - zlib + - zstd +make_depends: + - bc + - dejagnu +downloads: + - url: https://sourceware.org/pub/binutils/releases/binutils-${BPM_PKG_VERSION}.tar.xz + extract_to: ${BPM_SOURCE} + extract_strip_components: 1 + checksum: 5fe101e6fe9d18fdec95962d81ed670fdee5f37e3f48f0bef87bddf862513aa5 diff --git a/source.sh b/source.sh index 370a2d8..de5f019 100644 --- a/source.sh +++ b/source.sh @@ -2,50 +2,68 @@ # BPM Expects the source code to be extracted into the automatically created 'source' directory which can be accessed using $BPM_SOURCE # BPM Expects the output files to be present in the automatically created 'output' directory which can be accessed using $BPM_OUTPUT -DOWNLOAD="https://sourceware.org/pub/binutils/releases/binutils-${BPM_PKG_VERSION}.tar.xz" -FILENAME="${DOWNLOAD##*/}" - -# The prepare function is executed in the root of the temp directory -# This function is used for downloading files and putting them into the correct location -prepare() { - wget "$DOWNLOAD" - tar -xvf "$FILENAME" --strip-components=1 -C "$BPM_SOURCE" -} - # The build function is executed in the source directory # This function is used to compile the source code build() { - mkdir -v build - cd build - ../configure --prefix=/usr \ - --sysconfdir=/etc \ - --enable-gold \ - --enable-ld=default \ - --enable-plugins \ - --enable-shared \ - --disable-werror \ - --enable-64-bit-bfd \ - --with-system-zlib \ - --enable-default-hash-style=gnu + mkdir build + cd build + + ../configure --prefix=/usr \ + --with-lib-path=/usr/lib:/usr/local/lib \ + --enable-cet \ + --enable-colored-disassembly \ + --enable-default-execstack=no \ + --enable-deterministic-archives \ + --enable-gold \ + --enable-install-libiberty \ + --enable-jansson \ + --enable-ld=default \ + --enable-new-dtags \ + --enable-pgo-build=lto \ + --enable-plugins \ + --enable-relro \ + --enable-shared \ + --enable-targets=x86_64-pep,bpf-unknown-none \ + --enable-threads \ + --disable-gdb \ + --disable-gdbserver \ + --disable-libdecnumber \ + --disable-readline \ + --disable-sim \ + --disable-werror \ + --with-pic \ + --with-system-zlib make tooldir=/usr } # The check function is executed in the source directory # This function is used to run tests to verify the package has been compiled correctly check() { - # Testsuite currently broken - return 0 - - #cd build - #make check +cd build + + make -O CFLAGS_FOR_TARGET="-O2 -g" \ + CXXFLAGS="-O2 -no-pie -fno-PIC" \ + CFLAGS="-O2 -no-pie" \ + LDFLAGS="" \ + check || true } # The package function is executed in the source directory # This function is used to move the compiled files into the output directory package() { cd build + make DESTDIR="$BPM_OUTPUT" tooldir=/usr install - rm -fv "$BPM_OUTPUT"/usr/lib/lib{bfd,ctf,ctf-nobfd,gprofng,opcodes,sframe}.a - mkdir -p "$BPM_OUTPUT"/usr/share/licenses/binutils/ - cp ../COPYING "$BPM_OUTPUT"/usr/share/licenses/binutils/COPYING + + # Install PIC version of libiberty + install -m644 libiberty/pic/libiberty.a "$BPM_OUTPUT"/usr/lib + + # Remove unwanted files + rm -f "$BPM_OUTPUT"/usr/share/man/man1/{dlltool,windres,windmc}* + + # Remove static libraries + rm -f "$BPM_OUTPUT"/usr/lib/lib{bfd,ctf,ctf-nobfd,gprofng,opcodes,sframe}.a + + # Install package license + install -Dm644 "$BPM_SOURCE"/COPYING "$BPM_OUTPUT"/usr/share/licenses/binutils/COPYING }