diff options
| author | Sam James <sam@gentoo.org> | 2025-01-22 16:41:42 +0000 |
|---|---|---|
| committer | Sam James <sam@gentoo.org> | 2025-01-22 19:46:14 +0000 |
| commit | fd80b52f6eb59b31526f4e75e834240e60408f0a (patch) | |
| tree | cfa9314b567c48d35699c7d85f9dd3d6fbb336de /dev-lang/ada-bootstrap/ada-bootstrap-12.ebuild | |
| parent | 1896fac74ffa1cdb67fd9c9d3d85a618096c5d40 (diff) | |
| download | gentoo-fd80b52f6eb59b31526f4e75e834240e60408f0a.tar.gz gentoo-fd80b52f6eb59b31526f4e75e834240e60408f0a.tar.bz2 gentoo-fd80b52f6eb59b31526f4e75e834240e60408f0a.zip | |
dev-lang/ada-bootstrap: add 12
No ~loong as GCC 12 didn't support it. Adding older branches to facilitate
GCC testing. I originally wasn't going to bother but I'd like to bisect
an issue on ARM, so...
Built with ::gentoo at 6895c729372e48a5f596abd65cfeb26c178c5b17, same
stage3 as before for earlier binaries (stage3-amd64-hardened-systemd-20241214T201851Z).
The only quirk is, for `build-ada-bootsraps`, crossdev's behaviour with
--gcc to specify certain versions may use unkeyworded GCC in a particular
slot (not checked), but easy to reproduce still with the right ::gentoo commit.
See https://github.com/thesamesam/sam-gentoo-scripts/blob/2c192ac1461144fb2a2ab83014ad13794e4efc3d/niche/build-ada-bootstraps.
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-lang/ada-bootstrap/ada-bootstrap-12.ebuild')
| -rw-r--r-- | dev-lang/ada-bootstrap/ada-bootstrap-12.ebuild | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/dev-lang/ada-bootstrap/ada-bootstrap-12.ebuild b/dev-lang/ada-bootstrap/ada-bootstrap-12.ebuild new file mode 100644 index 000000000000..26ffd1b4ef9f --- /dev/null +++ b/dev-lang/ada-bootstrap/ada-bootstrap-12.ebuild @@ -0,0 +1,121 @@ +# Copyright 2024-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# The binaries in SRC_URI are generated by the following (roughly): +# * taking an amd64 stage3 +# * adding USE=ada to make.conf +# * running `crossdev ${CHOST} --ex-gcc -S` +# * running `USE=ada ${CHOST}-emerge -v1 gcc` +# * copy /usr/${CHOST}/var/cache/binpkgs/sys-devel/gcc* into +# ada-bootstrap-${PV}-${CHOST}.gpkg.tar +# +# The full script is at https://github.com/thesamesam/sam-gentoo-scripts/blob/91558fb51c56a661d6f374507888ff67725ca660/build-ada-bootstraps. +# +# Binaries in SRC_URI are regular Gentoo binpkgs in the GPKG format. +# +# Note: of course, the used GCC on both CBUILD and CHOST +# must be the same version, correspond to ${PV} in ada-bootstrap, +# and be at most the newest stable GCC (ideally older). +inherit unpacker + +DESCRIPTION="Binary bootstrap compiler for GNAT (Ada compiler)" +HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Ada" +SRC_URI=" + alpha? ( + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-alpha-unknown-linux-gnu.gpkg.tar + ) + arm64? ( + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-aarch64-unknown-linux-gnu.gpkg.tar + ) + arm? ( + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-armv6j-softfp-linux-gnueabi.gpkg.tar + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-armv6j-unknown-linux-gnueabihf.gpkg.tar + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-armv7a-softfp-linux-gnueabi.gpkg.tar + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-armv7a-unknown-linux-gnueabihf.gpkg.tar + ) + hppa? ( + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-hppa1.1-unknown-linux-gnu.gpkg.tar + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-hppa2.0-unknown-linux-gnu.gpkg.tar + ) + ppc? ( + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-powerpc-unknown-linux-gnu.gpkg.tar + ) + ppc64? ( + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-powerpc64le-unknown-linux-gnu.gpkg.tar + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-powerpc64-unknown-linux-gnu.gpkg.tar + ) + riscv? ( + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-riscv64-unknown-linux-gnu.gpkg.tar + ) + sparc? ( + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-sparc64-unknown-linux-gnu.gpkg.tar + ) + s390? ( + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-s390-ibm-linux-gnu.gpkg.tar + https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-s390x-ibm-linux-gnu.gpkg.tar + ) +" +S=${WORKDIR} + +LICENSE="GPL-2 GPL-3" +SLOT="0" +KEYWORDS="-* ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc" + +RDEPEND=" + >=dev-libs/gmp-4.3.2:= + >=dev-libs/mpfr-2.4.2:= + >=dev-libs/mpc-0.8.1:= + sys-libs/zlib + virtual/libiconv +" + +src_unpack() { + # We want to unpack only the appropriate tarball for CHOST (e.g. on arm). + TARBALL_TO_UNPACK= + + local archive + for archive in ${A} ; do + local tarball_chost=${archive/${P}-} + tarball_chost=${tarball_chost%%.gpkg.tar} + + if [[ ${tarball_chost} == ${CHOST} ]] ; then + TARBALL_TO_UNPACK=${archive} + break + fi + done + + if [[ -z ${TARBALL_TO_UNPACK} ]] ; then + die "No tarball found for CHOST=${CHOST}. Please file a bug at bugs.gentoo.org." + fi + + unpack_gpkg "${TARBALL_TO_UNPACK}" +} + +src_install() { + local chost=${TARBALL_TO_UNPACK/${P}-} + chost=${chost%%.gpkg.tar} + + BINPKG=$(find "${WORKDIR}"/ -type d -mindepth 1 -maxdepth 1 -iname 'gcc-*') + BINPKG="${BINPKG#${WORKDIR}}" + + dodir /usr/lib/ada-bootstrap + mv "${WORKDIR}"/${BINPKG}/image/usr/ "${ED}"/usr/lib/ada-bootstrap || die + + # Make `gcc-config`-style symlinks + insinto /usr/lib/ada-bootstrap/bin + local tool + for tool in gcc gnat{,bind,chop,clean,kr,link,ls,make,name,prep} ; do + dosym -r /usr/lib/ada-bootstrap/usr/${chost}/gcc-bin/${PV}/${tool} /usr/lib/ada-bootstrap/bin/${tool} + dosym -r /usr/lib/ada-bootstrap/usr/${chost}/gcc-bin/${PV}/${tool} /usr/lib/ada-bootstrap/bin/${chost}-${tool} + dosym -r /usr/lib/ada-bootstrap/usr/${chost}/gcc-bin/${PV}/${tool} /usr/lib/ada-bootstrap/bin/${chost}-${tool}-${PV} + done + + rm -rf "${ED}"/usr/lib/ada-bootstrap/usr/bin || die + # This gives us the same layout as older dev-lang/ada-bootstrap + dosym -r /usr/lib/ada-bootstrap/bin /usr/lib/ada-bootstrap/usr/bin + dosym -r /usr/lib/ada-bootstrap/usr/libexec /usr/lib/ada-bootstrap/libexec +} + +# TODO: pkg_postinst warning/log? |
