aportgen: build gcc-x86_64 etc. pkgs for aarch64
Instead of building cross packages for the native architecture, add a new get_cross_packages_arches() function that returns the desired architectures no matter what the current native architecture is. So gcc-x86_64 will always have arch="aarch64", and gcc-aarch64 will always have arch="x86_64". We can tweak the function in the future if e.g. it becomes viable to cross compile from riscv64. Or even better, remove this and the cross compile packages upstreamed into alpine (see pmb#551). Link: https://lists.sr.ht/~postmarketos/pmbootstrap-devel/%3C20231126104823.3723-1-ollieparanoid@postmarketos.org%3E
This commit is contained in:
parent
bcfdc3fb1b
commit
62a05d4fbc
|
@ -13,6 +13,18 @@ import pmb.config
|
||||||
import pmb.helpers.cli
|
import pmb.helpers.cli
|
||||||
|
|
||||||
|
|
||||||
|
def get_cross_package_arches(pkgname):
|
||||||
|
"""
|
||||||
|
Get the arches for which we want to build cross packages.
|
||||||
|
:param pkgname: package name, e.g. "gcc-aarch64", "gcc-x86_64"
|
||||||
|
:returns: string of architecture(s) (space separated)
|
||||||
|
"""
|
||||||
|
if pkgname.endswith("-x86_64"):
|
||||||
|
return "aarch64"
|
||||||
|
else:
|
||||||
|
return "x86_64"
|
||||||
|
|
||||||
|
|
||||||
def properties(pkgname):
|
def properties(pkgname):
|
||||||
"""
|
"""
|
||||||
Get the `pmb.config.aportgen` properties for the aport generator, based on
|
Get the `pmb.config.aportgen` properties for the aport generator, based on
|
||||||
|
|
|
@ -47,7 +47,7 @@ def generate(args, pkgname):
|
||||||
|
|
||||||
url="http://busybox.net"
|
url="http://busybox.net"
|
||||||
license="GPL2"
|
license="GPL2"
|
||||||
arch="{pmb.config.arch_native}"
|
arch="{pmb.aportgen.get_cross_package_arches(pkgname)}"
|
||||||
options="!check !strip"
|
options="!check !strip"
|
||||||
pkgdesc="Statically linked Busybox for $_arch"
|
pkgdesc="Statically linked Busybox for $_arch"
|
||||||
_target="$(arch_to_hostspec $_arch)"
|
_target="$(arch_to_hostspec $_arch)"
|
||||||
|
|
|
@ -23,12 +23,11 @@ def generate(args, pkgname):
|
||||||
" gcc6.")
|
" gcc6.")
|
||||||
pmb.helpers.run.user(args, ["cp", "-r", upstream, f"{args.work}/aportgen"])
|
pmb.helpers.run.user(args, ["cp", "-r", upstream, f"{args.work}/aportgen"])
|
||||||
|
|
||||||
# Rewrite APKBUILD (only building for native covers most use cases and
|
# Rewrite APKBUILD
|
||||||
# saves a lot of build time, can be changed on demand)
|
|
||||||
fields = {
|
fields = {
|
||||||
"pkgname": pkgname,
|
"pkgname": pkgname,
|
||||||
"pkgdesc": f"Stage2 cross-compiler for {arch}",
|
"pkgdesc": f"Stage2 cross-compiler for {arch}",
|
||||||
"arch": pmb.config.arch_native,
|
"arch": pmb.aportgen.get_cross_package_arches(pkgname),
|
||||||
"depends": f"binutils-{arch} mpc1",
|
"depends": f"binutils-{arch} mpc1",
|
||||||
"makedepends_build": "gcc g++ bison flex texinfo gawk zip"
|
"makedepends_build": "gcc g++ bison flex texinfo gawk zip"
|
||||||
" gmp-dev mpfr-dev mpc1-dev zlib-dev",
|
" gmp-dev mpfr-dev mpc1-dev zlib-dev",
|
||||||
|
|
|
@ -42,7 +42,7 @@ def generate(args, pkgname):
|
||||||
pkgname={pkgname}
|
pkgname={pkgname}
|
||||||
pkgver={pkgver}
|
pkgver={pkgver}
|
||||||
pkgrel={pkgrel}
|
pkgrel={pkgrel}
|
||||||
arch="{pmb.config.arch_native}"
|
arch="{pmb.aportgen.get_cross_package_arches(pkgname)}"
|
||||||
subpackages="musl-dev-{arch}:package_dev"
|
subpackages="musl-dev-{arch}:package_dev"
|
||||||
|
|
||||||
_arch="{arch}"
|
_arch="{arch}"
|
||||||
|
|
Loading…
Reference in New Issue