# Automatically generated aport, do not edit!
# Generator: pmbootstrap aportgen binutils-armhf
# Based on: main/binutils


CTARGET_ARCH=armhf
CTARGET="$(arch_to_hostspec $CTARGET_ARCH)"

pkgname=binutils-armhf
pkgver=2.40
pkgrel=11
pkgdesc="Tools necessary to build programs for armhf targets"
url="https://www.gnu.org/software/binutils/"
makedepends_build="bison flex texinfo"
makedepends_host="zlib-dev jansson-dev zstd-dev"
makedepends="$makedepends_build $makedepends_host"
arch="x86_64"
license="GPL-2.0-or-later AND LGPL-2.1-or-later AND BSD-3-Clause"
subpackages="binutils-dev binutils-doc"
source="https://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.xz
	0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch
	CVE-2023-1972.patch
	binutils-ld-fix-static-linking.patch
	riscv64-textrels.patch
	"
builddir="$srcdir/binutils-$pkgver"

if [ -z "$BOOTSTRAP" ]; then
	makedepends_host="$makedepends_host jansson-dev zstd-dev"
fi

if [ "$CHOST" = "$CBUILD" ] && [ "$CBUILD" = "$CTARGET" ] && [ "$CTARGET_ARCH" != "riscv64" ]; then
	subpackages="$subpackages binutils-gold"
fi

if [ "$CHOST" != "$CTARGET" ]; then
	pkgname="binutils-$CTARGET_ARCH"
	subpackages=""
	sonameprefix="binutils:"
fi

# secfixes:
#   2.40-r10:
#     - CVE-2023-1972
#   2.40-r0:
#     - CVE-2023-1579
#   2.39-r2:
#     - CVE-2022-38533
#   2.39-r0:
#     - CVE-2022-38126
#   2.35.2-r1:
#     - CVE-2021-3487
#   2.32-r0:
#     - CVE-2018-19931
#     - CVE-2018-19932
#     - CVE-2018-20002
#     - CVE-2018-20712
#   2.28-r1:
#     - CVE-2017-7614

build() {
	local _sysroot=/
	local _cross_configure="--enable-install-libiberty --enable-shared"
	local _arch_configure=""
	local _gold_configure="--disable-gold"
	local _plugin_configure="--enable-plugins"

	if [ "$CHOST" != "$CTARGET" ]; then
		_sysroot="$CBUILDROOT"
		_cross_configure="--disable-install-libiberty"
		_plugin_configure="--disable-plugins"
	fi

	if [ "$CHOST" = "$CBUILD" ] && [ "$CBUILD" = "$CTARGET" ] && [ "$CTARGET_ARCH" != "riscv64" ]; then
		_gold_configure="--enable-gold"
	fi

	if [ "$CTARGET_ARCH" = "x86_64" ]; then
		_arch_configure="--enable-targets=x86_64-pep"
	fi

	if [ "$CTARGET_ARCH" = "riscv64" ]; then
		_gold_configure="--disable-gold"
	fi

	CFLAGS="$CFLAGS -O2" \
	CXXFLAGS="$CXXFLAGS -O2" \
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--target=$CTARGET \
		--with-build-sysroot="$CBUILDROOT" \
		--with-sysroot=$_sysroot \
		--prefix=/usr \
		--mandir=/usr/share/man \
		--infodir=/usr/share/info \
		--sysconfdir=/etc \
		$_arch_configure \
		$_cross_configure \
		$_gold_configure \
		$_plugin_configure \
		--disable-gprofng \
		--disable-multilib \
		--disable-nls \
		--disable-werror \
		--enable-64-bit-bfd \
		--enable-colored-disassembly \
		--enable-default-execstack=no \
		--enable-default-hash-style=gnu \
		--enable-deterministic-archives \
		--enable-ld=default \
		--enable-new-dtags \
		--enable-relro \
		--enable-threads \
		--with-bugurl="https://postmarketos.org/issues" \
		--with-mmap \
		--with-pic \
		--with-system-zlib
	make
}

package() {
	make install DESTDIR="$pkgdir"
	if [ -d "$pkgdir"/usr/lib64 ]; then
		mv "$pkgdir"/usr/lib64/* "$pkgdir"/usr/lib/
		rmdir "$pkgdir"/usr/lib64
	fi
	if [ "$CHOST" != "$CTARGET" ]; then
		# creating cross tools: remove any files that would conflict
		# with the native tools, or other cross tools
		rm -r "${pkgdir:?}"/usr/share
		rm -f "$pkgdir"/usr/lib/libiberty.a
		rm -r "${pkgdir:?}"/usr/lib/bfd-plugins
	fi
}

gold() {
	pkgdesc="GNU binutils - gold linker"

	if [ -e "$pkgdir"/usr/bin/ld.gold ]; then
		amove usr/bin/ld.gold
	fi
	amove usr/$CTARGET/bin/ld.gold
}

sha512sums="
a37e042523bc46494d99d5637c3f3d8f9956d9477b748b3b1f6d7dfbb8d968ed52c932e88a4e946c6f77b8f48f1e1b360ca54c3d298f17193f3b4963472f6925  binutils-2.40.tar.xz
70ec22bd72ef6dddecfd970613387dd4a8cdc8730dd3cbf03d5a0c3a7c4d839383167bb06dad21bf7c235329fd44b5dc4aefe762f68544f17155cf002bf1be4a  0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch
b434e126c4c3f70c02b0a5597a0d75a4ea99b1498552c2d0676005ac0ae171c56cf07a6f6e2faa1381f1f4d4a37043a07d177dd4912f09b61109f103853594b2  CVE-2023-1972.patch
ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49  binutils-ld-fix-static-linking.patch
d138691d953c6f49111601df1731db157d2ecedf1593e37ababb5c12ff10572b5f7982288c81579f4a99097780dbb18d3b457f74daab0f935f59423e69cec56f  riscv64-textrels.patch
"
