forked from Mirror/pmbootstrap
aportgen binutils: modernize (MR 2199)
Set CTARGET and CTARGET_ARCH on top of the generated APKBUILD and use the existing code in the APKBUILD for build(), package(), makedepends, subpackages. This is now possible, because the pmbootstrap parser for APKBUILDs has been improved a lot since this was originally written and because the Alpine APKBUILD does everything that was hacked in here, like removing man, info directories and bfd-plugins if doing a cross build. This is now very similar to bootstrapping binutils for another architecture via scripts/bootstrap.sh in aports.git. Most importantly this sets --disable-gprofng, which fails to build against musl and is the reason why our cross/binutils-* packages generated from binutils 2.39.x didn't build anymore. Related: https://git.alpinelinux.org/aports/tree/main/binutils/APKBUILD Related: https://sourceware.org/bugzilla/show_bug.cgi?id=29477
This commit is contained in:
parent
e5d580e98a
commit
b41e4a418f
2 changed files with 88 additions and 57 deletions
|
@ -16,45 +16,12 @@ def generate(args, pkgname):
|
|||
"pkgname": pkgname,
|
||||
"pkgdesc": f"Tools necessary to build programs for {arch} targets",
|
||||
"arch": pmb.config.arch_native,
|
||||
"makedepends_build": "",
|
||||
"makedepends_host": "",
|
||||
"makedepends": "gettext libtool autoconf automake bison texinfo",
|
||||
"subpackages": "",
|
||||
}
|
||||
|
||||
replace_functions = {
|
||||
"build": """
|
||||
_target="$(arch_to_hostspec """ + arch + """)"
|
||||
"$builddir"/configure \\
|
||||
--build="$CBUILD" \\
|
||||
--target=$_target \\
|
||||
--with-lib-path=/usr/lib \\
|
||||
--prefix=/usr \\
|
||||
--with-sysroot=/usr/$_target \\
|
||||
--enable-ld=default \\
|
||||
--enable-gold=yes \\
|
||||
--enable-plugins \\
|
||||
--enable-deterministic-archives \\
|
||||
--disable-multilib \\
|
||||
--disable-werror \\
|
||||
--disable-nls
|
||||
make
|
||||
""",
|
||||
"package": """
|
||||
make install DESTDIR="$pkgdir"
|
||||
|
||||
# remove man, info folders
|
||||
rm -rf "$pkgdir"/usr/share
|
||||
|
||||
# remove files that conflict with non-cross binutils
|
||||
rm -rf "$pkgdir"/usr/lib/bfd-plugins
|
||||
""",
|
||||
"libs": None,
|
||||
"gold": None,
|
||||
}
|
||||
|
||||
replace_simple = {"\tsubpackages=*": "\tsubpackages=\"\""}
|
||||
below_header = """
|
||||
CTARGET_ARCH=""" + arch + """
|
||||
CTARGET="$(arch_to_hostspec $CTARGET_ARCH)"
|
||||
"""
|
||||
|
||||
pmb.aportgen.core.rewrite(args, pkgname, "main/binutils", fields,
|
||||
"binutils", replace_functions, replace_simple,
|
||||
remove_indent=8)
|
||||
"binutils", below_header=below_header)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue