summaryrefslogtreecommitdiff
path: root/dev-lang/ada-bootstrap
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-10-02 01:26:11 +0100
committerV3n3RiX <venerix@koprulu.sector>2024-10-02 01:26:11 +0100
commitd39b2406e1496a2848b3f450a5737ae3dbd8c6f7 (patch)
tree2f21fa7a75d2873c67fb5d3faab2a0f60fb785ce /dev-lang/ada-bootstrap
parent95ce69d324747e9aa715e1761abab42204529b28 (diff)
gentoo auto-resync : 02:10:2024 - 01:26:10
Diffstat (limited to 'dev-lang/ada-bootstrap')
-rw-r--r--dev-lang/ada-bootstrap/Manifest9
-rw-r--r--dev-lang/ada-bootstrap/ada-bootstrap-0_p2021-r1.ebuild212
-rw-r--r--dev-lang/ada-bootstrap/files/ada-bootstrap-0_p2021-gentoo.patch72
-rw-r--r--dev-lang/ada-bootstrap/files/gcc-configure-texinfo.patch16
-rw-r--r--dev-lang/ada-bootstrap/metadata.xml7
5 files changed, 316 insertions, 0 deletions
diff --git a/dev-lang/ada-bootstrap/Manifest b/dev-lang/ada-bootstrap/Manifest
new file mode 100644
index 000000000000..2249a37d80d8
--- /dev/null
+++ b/dev-lang/ada-bootstrap/Manifest
@@ -0,0 +1,9 @@
+AUX ada-bootstrap-0_p2021-gentoo.patch 2615 BLAKE2B 16607a3a88edc6918f077171b424b86a0d696bd0897405a466b62937f74371d23efcf3477b3f106d6e19a8e15d8366c98fbbd92c588ffdc24e4bee3975d6bc42 SHA512 27b6a4907dfd80f6af950141b27e8acc5b2868a9414e9215c001a107479a0ddc54e35a6221a7d349070023e41a448029414d9f6d092fcd7a59b7d6aaee80e3bf
+AUX gcc-configure-texinfo.patch 341 BLAKE2B d2ea3b2ea08f5d3a498ba27d0fb95e325097e2104e55caa28b66515cb48662649140d90b639369aedc54b2b1178fa4b49cda442f5f504e09d88a2efa45a5057c SHA512 e8d34c5077409df5495cf0c5fbf5e77f841c5698108fa6a5fde33eb28202c685603bdefd8368918e55f30c4b995e895d71d64c715c1ec2b017e09eb2c54c09ff
+DIST gcc-10-2021-20210519-19A74-src.tar.gz 109157702 BLAKE2B 8ec307e4fde35c8726bc7b9702717329695bad928d5222a7bb691cce47500de31a60bcfcbb925129a57cb81d3d7ea92e60599aa7383d5358e63cc087b0482550 SHA512 2e2cc0ec9a3a82816a5d399d2db261c356e106b82a44efd54a1ac882b96549ab8de79c69858127c4397de6e9e9463ce6fb9994fc2e426e7d3d2f98d5efa2edb6
+DIST gcc-interface-10-2021-20210519-19A75-src.tar.gz 359085 BLAKE2B 75f941a7635f2880cc0192acb49d8e7f567baca7530fb981be14dc6cb1bf46fda0e3c043c8703cdbeeb242b548894e0bc6787adfff0f27198354d150e6e36386 SHA512 0251a93d20c59cc4705963438880fe265e2e0bb94a35b7ddaaf03e9efae60e044e585a2204d0773a46f17b3b774e4d0c73adf852f5d06ba17373d26ed580ca8d
+DIST gnat-2021-20210519-19A70-src.tar.gz 8765762 BLAKE2B ef48f54c6109566e37bfa5dee9262305d0529b3dfd333ee28bc4e66f4709a0673f673d742bc04deb15dc145404f7618d350dbdf3f2a7ab37c861e57d011946fa SHA512 3cb79be024fdd9b738d99ffc8e224d32bb382b5da2d02b97b2061a5ea58456f33d4564c92e224af2713ce15fd5481edd715e5b9a52abc74fdc142f27e103c201
+DIST gnat-gpl-2014-x86-linux-bin.tar.gz 233049287 BLAKE2B 2e8bab113f6a319533ec12fdf71c481f72aee227c22bd0cc42a53bd727b323caba1e7b6298053db8b4d3016236b31649b0b255f4ebcbb81a08a69f29f78f13fc SHA512 ac7f53fb4bd71b0e8fbd62abc45de76f7f8f2f405b80e9b60b4b65a6cef6ee98e3b06848e4b752af3c8268237e5a0529cf6145ebc5b33cd6e5cf4928d85f5be2
+DIST gnat-gpl-2014-x86_64-linux-bin.tar.gz 236253400 BLAKE2B c1db70db9442ba24688b8e323d5a02e2e9707ba1f02835ea551038d0a09aafede93a224091e5186f2f2a9d0f96144027af2184ee05ca1c19cc997a6cf3902df7 SHA512 5e40a251baac3d0ace78352956ca21a7d294d902d344a9ed7a8d376e900468c283721ebfb773adfedbf4d623ace02536505c0147815a0c1908933ad611ea085e
+EBUILD ada-bootstrap-0_p2021-r1.ebuild 5686 BLAKE2B 60414fe5ebdc583f72b5ae1a100e79e2a283c9d3735dc22f8118ba81b7d8cc0394420b7eb787ac7542d8dcc5c66eade97a3222c38cd18cf6962eb182a8bd2950 SHA512 d787d2fa019867abbaed298b9f86663370420e24ed0f86078d52ee80a36d32e45a50b3775e913fd90b74d353d8115bc08efb599640016837c24cae967add6bb8
+MISC metadata.xml 216 BLAKE2B 921055d990617104de7e3437bc9fd4598cb830193bfcdc34254102a1df2c6025916af7025843f161dff8de731f9726641906b86f831375c5d29303ba64991da2 SHA512 8c43f5f2be76799c8ace4df222de22380c389e058bc7e36bd9b19564cbd4b90ab7515b90f822139a18b3a2cba70e76d3b4eb5426f88a0508798175893073d732
diff --git a/dev-lang/ada-bootstrap/ada-bootstrap-0_p2021-r1.ebuild b/dev-lang/ada-bootstrap/ada-bootstrap-0_p2021-r1.ebuild
new file mode 100644
index 000000000000..15e40aea73b8
--- /dev/null
+++ b/dev-lang/ada-bootstrap/ada-bootstrap-0_p2021-r1.ebuild
@@ -0,0 +1,212 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MYP=gcc-10-${PV##*_p}-20210519-19A74-src
+GNATDIR=gnat-${PV##*_p}-20210519-19A70-src
+INTFDIR=gcc-interface-10-${PV##*_p}-20210519-19A75-src
+BTSTRP_X86=gnat-gpl-2014-x86-linux-bin
+BTSTRP_AMD64=gnat-gpl-2014-x86_64-linux-bin
+BASE_URI=https://community.download.adacore.com/v1
+
+inherit flag-o-matic toolchain-funcs
+
+DESCRIPTION="GNAT Ada Compiler - GPL version"
+HOMEPAGE="http://libre.adacore.com/"
+SRC_URI="
+ ${BASE_URI}/005d2b2eff627177986d2517eb31e1959bec6f3a?filename=${GNATDIR}.tar.gz
+ -> ${GNATDIR}.tar.gz
+ ${BASE_URI}/44cd393be0b468cc253bf2cf9cf7804c993e7b5b?filename=${MYP}.tar.gz
+ -> ${MYP}.tar.gz
+ ${BASE_URI}/8ace7d06e469d36d726cc8badb0ed78411e727f3?filename=${INTFDIR}.tar.gz
+ -> ${INTFDIR}.tar.gz
+ amd64? (
+ ${BASE_URI}/6eb6eef6bb897e4c743a519bfebe0b1d6fc409c6?filename=${BTSTRP_AMD64}.tar.gz&rand=1193
+ -> ${BTSTRP_AMD64}.tar.gz
+ )
+ x86? (
+ ${BASE_URI}/c5e9e6fdff5cb77ed90cf8c62536653e27c0bed6?filename=${BTSTRP_X86}.tar.gz&rand=436
+ -> ${BTSTRP_X86}.tar.gz
+ )
+"
+S="${WORKDIR}"/${MYP}
+
+LICENSE="GPL-2 GPL-3"
+SLOT="0" # TODO: slot based on GCC version used
+KEYWORDS="-* ~amd64 ~x86"
+RESTRICT="test"
+
+BDEPEND="
+ app-alternatives/yacc
+ sys-devel/binutils:*
+ >=sys-devel/flex-2.5.4
+"
+DEPEND="
+ >=dev-libs/gmp-4.3.2:=
+ >=dev-libs/mpfr-2.4.2:=
+ >=dev-libs/mpc-0.8.1:=
+ sys-libs/zlib
+ virtual/libiconv
+"
+RDEPEND="${DEPEND}"
+
+pkg_pretend() {
+ if tc-is-clang; then
+ die "${P} does not build with clang. It is bootstrapped."
+ fi
+}
+
+src_prepare() {
+ local bundledchost
+ case ${ARCH} in
+ amd64)
+ BTSTRP=${BTSTRP_AMD64}
+ bundledchost="x86_64"
+ ;;
+ x86)
+ BTSTRP=${BTSTRP_X86}
+ bundledchost="i686"
+ ;;
+ *)
+ die "Unknown \${ARCH}=${ARCH}!"
+ ;;
+ esac
+
+ local cleanup
+ for cleanup in as ld ; do
+ rm "${WORKDIR}"/${BTSTRP}/libexec/gcc/${bundledchost}-pc-linux-gnu/4.7.4/${cleanup} || die
+
+ ln -s "${BROOT}"/usr/bin/${CHOST}-${cleanup} \
+ "${WORKDIR}"/${BTSTRP}/libexec/gcc/${bundledchost}-pc-linux-gnu/4.7.4/${cleanup} || die
+ done
+
+ export GCC="${WORKDIR}"/${BTSTRP}/bin/gcc
+
+ gnatbase=$(basename ${GCC})
+ gnatpath=$(dirname ${GCC})
+ export GNATMAKE=${gnatbase/gcc/gnatmake}
+ if [[ ${gnatpath} != "." ]] ; then
+ GNATMAKE="${gnatpath}/${GNATMAKE}"
+ fi
+
+ export CC=${GCC}
+ export CXX="${gnatbase/gcc/g++}"
+ export GNATBIND="${gnatbase/gcc/gnatbind}"
+ export GNATLINK="${gnatbase/gcc/gnatlink}"
+ export GNATLS="${gnatbase/gcc/gnatls}"
+ if [[ ${gnatpath} != "." ]] ; then
+ CXX="${gnatpath}/${CXX}"
+ GNATBIND="${gnatpath}/${GNATBIND}"
+ GNATLINK="${gnatpath}/${GNATLINK}"
+ GNATLS="${gnatpath}/${GNATLS}"
+ fi
+
+ mkdir bin || die
+ local tool
+ for tool in gnat{make,bind,link,ls} ; do
+ ln -s $(type -P ${tool^^}) bin/${tool} || die
+ ln -s $(type -P ${tool^^}) bin/${bundledchost}-pc-linux-gnu-${tool} || die
+ done
+ ln -s $(type -P ${GCC}) bin/gcc || die
+ ln -s $(type -P ${GCC}) bin/${bundledchost}-pc-linux-gnu-gcc || die
+ ln -s $(type -P ${CXX}) bin/g++ || die
+ ln -s $(type -P ${CXX}) bin/${bundledchost}-pc-linux-gnu-g++ || die
+
+ cd .. || die
+ mv ${GNATDIR}/src/ada ${MYP}/gcc/ || die
+ mv ${INTFDIR} ${MYP}/gcc/ada/gcc-interface || die
+ eapply "${FILESDIR}"/${P}-gentoo.patch
+ cd - || die
+
+ sed -i \
+ -e 's:-fcf-protection":":' \
+ libiberty/configure \
+ lto-plugin/configure || die
+ sed -i \
+ -e 's:$(P) ::g' \
+ gcc/ada/gcc-interface/Makefile.in \
+ || die "sed failed"
+ default
+}
+
+src_configure() {
+ local adabdir=/usr/lib/${PN}
+ local prefix=${EPREFIX}${adabdir}
+
+ export PATH="${WORKDIR}"/${BTSTRP}/bin:"${WORKDIR}"/${GNATDIR}/bin:${PWD}/bin:${PATH}
+
+ # This version is GCC 4.7.4 with a bolted-on newer GNAT; be very
+ # conservative, we just want it to build for bootstrapping proper
+ # sys-devel/gcc[ada]. We don't need it to be fast.
+ strip-flags
+ CC="${WORKDIR}"/${BTSTRP}/bin/gcc strip-unsupported-flags
+ CC="${WORKDIR}"/${GNATDIR}/bin/gcc strip-unsupported-flags
+ strip-unsupported-flags
+ filter-lto
+ append-flags -O2
+ append-flags -fno-strict-aliasing
+
+ local conf=(
+ --{doc,info,man}dir=/.skip # let the real gcc handle docs
+ MAKEINFO=: #922230
+ --prefix="${prefix}"
+ --disable-analyzer
+ --disable-bootstrap
+ --disable-cc1
+ --disable-cet
+ --disable-gcov #843989
+ --disable-gomp
+ --disable-objc-gc
+ --disable-nls # filename collisions
+ --disable-libcc1
+ --disable-libgomp
+ --disable-libitm
+ --disable-libquadmath
+ --disable-libsanitizer
+ --disable-libssp
+ --disable-libstdcxx-pch
+ --disable-libvtv
+ --disable-shared
+ --disable-werror
+ --enable-languages=ada
+ --with-gcc-major-version-only
+ --with-system-zlib
+ --without-isl
+ --without-python-dir
+ --without-zstd
+ --disable-multilib
+ )
+
+ # libstdc++ may misdetect sys/sdt.h on systemtap-enabled system and fail
+ # (not passed in conf_gcc above given it is lost in sub-configure calls)
+ local -x glibcxx_cv_sys_sdt_h=no
+
+ mkdir "${WORKDIR}"/build || die
+ cd "${WORKDIR}"/build
+ ECONF_SOURCE="${S}" econf "${conf[@]}"
+}
+
+src_compile() {
+ emake -C "${WORKDIR}"/build MAKEINFO=: V=1
+}
+
+src_install() {
+ # -j1 to match bug #906155, other packages may be fragile too
+ emake -C "${WORKDIR}"/build -j1 MAKEINFO=: V=1 DESTDIR="${D}" install
+
+ # Make `gcc-config`-style symlinks
+ local tool
+ cd "${ED}"/usr/lib/ada-bootstrap/bin || die
+ for tool in gnat{,bind,chop,clean,kr,link,ls,make,name,prep} ; do
+ ln -s ${tool} ${CBUILD}-${tool} || die
+ ln -s ${tool} ${CBUILD}-${tool}-10 || die
+ done
+
+ # Delete libdep.a, which has a colliding name and is useless for bpf,
+ # which does not make use of cross-library dependencies: the libdep.a
+ # for the native binutils will do.
+ rm -f "${ED}"/${adabdir}/lib/bfd-plugins/libdep.a || die
+}
+
+# TODO: pkg_postinst warning/log?
diff --git a/dev-lang/ada-bootstrap/files/ada-bootstrap-0_p2021-gentoo.patch b/dev-lang/ada-bootstrap/files/ada-bootstrap-0_p2021-gentoo.patch
new file mode 100644
index 000000000000..c75ee9ce8da7
--- /dev/null
+++ b/dev-lang/ada-bootstrap/files/ada-bootstrap-0_p2021-gentoo.patch
@@ -0,0 +1,72 @@
+--- a/gcc-10-2021-20210519-19A74-src/gcc/ada/osint.adb 2017-03-10 21:58:02.600710156 +0100
++++ b/gcc-10-2021-20210519-19A74-src/gcc/ada/osint.adb 2017-03-10 21:59:38.033983293 +0100
+@@ -2229,14 +2229,11 @@
+ for J in Start_Of_Prefix .. Name_Len - Prog'Length + 1 loop
+ if Name_Buffer (J .. J + Prog'Length - 1) = Prog then
+ End_Of_Prefix := J - 1;
++ Start_Of_Suffix := J + Prog'Length;
+ exit;
+ end if;
+ end loop;
+
+- if End_Of_Prefix > 1 then
+- Start_Of_Suffix := End_Of_Prefix + Prog'Length + 1;
+- end if;
+-
+ -- Create the new program name
+
+ return new String'
+--- a/gcc-10-2021-20210519-19A74-src/config/cet.m4 2022-01-01 11:18:09.663425422 +0100
++++ b/gcc-10-2021-20210519-19A74-src/config/cet.m4 2022-01-01 11:18:14.809345911 +0100
+@@ -62,7 +62,6 @@
+ i[[34567]]86-*-linux* | x86_64-*-linux*)
+ may_have_cet=yes
+ save_CFLAGS="$CFLAGS"
+- CFLAGS="$CFLAGS -fcf-protection"
+ case "$enable_cet" in
+ auto)
+ # Check if target supports multi-byte NOPs
+--- a/gcc-10-2021-20210519-19A74-src/libiberty/configure 2024-03-02 19:45:34.658271627 +0100
++++ b/gcc-10-2021-20210519-19A74-src/libiberty/configure 2024-03-02 19:54:48.013538533 +0100
+@@ -6709,6 +6709,9 @@
+ if test "$cross_compiling" = yes; then :
+ ac_cv_c_stack_direction=0
+ else
++ cat >>confdefs.h <<_ACEOF
++extern void exit(int status);
++_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+ find_stack_direction ()
+@@ -7539,6 +7542,11 @@
+ if test "$cross_compiling" = yes; then :
+ ac_cv_func_strncmp_works=yes
+ else
++ cat >>confdefs.h <<_ACEOF
++ extern long unsigned int strlen(const char *s);
++ extern char *strcpy(char *dst, const char *src);
++ extern int strncmp(const char *s1, const char *s2, long unsigned int n);
++_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+--- a/gcc-10-2021-20210519-19A74-src/libsanitizer/configure 2024-03-02 20:41:56.810707374 +0100
++++ b/gcc-10-2021-20210519-19A74-src/libsanitizer/configure 2024-03-02 20:43:00.189080219 +0100
+@@ -16073,6 +16073,7 @@
+ sanitizer_supported=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+ #include <sys/syscall.h>
++#include <unistd.h>
+ int
+ main ()
+--- a/gcc-10-2021-20210519-19A74-src/libgfortran/configure 2024-03-02 21:57:47.282939696 +0100
++++ b/gcc-10-2021-20210519-19A74-src/libgfortran/configure 2024-03-02 21:58:34.702446345 +0100
+@@ -26391,6 +26391,7 @@
+ #if HAVE_IEEEFP_H
+ # include <ieeefp.h>
+ #endif /* HAVE_IEEEFP_H */
++extern void fpsetmask(int);
+ int
+ main ()
+ {
diff --git a/dev-lang/ada-bootstrap/files/gcc-configure-texinfo.patch b/dev-lang/ada-bootstrap/files/gcc-configure-texinfo.patch
new file mode 100644
index 000000000000..99e90998a469
--- /dev/null
+++ b/dev-lang/ada-bootstrap/files/gcc-configure-texinfo.patch
@@ -0,0 +1,16 @@
+Chances are quite good that the installed makeinfo is sufficient.
+So ignore false positives where the makeinfo installed is so new
+that it violates the cheesy version grep.
+
+http://bugs.gentoo.org/198182
+
+--- a/configure
++++ b/configure
+@@ -3573,6 +3573,6 @@
+ :
+ else
+- MAKEINFO="$MISSING makeinfo"
++ :
+ fi
+ ;;
+
diff --git a/dev-lang/ada-bootstrap/metadata.xml b/dev-lang/ada-bootstrap/metadata.xml
new file mode 100644
index 000000000000..91e8ad9f5e33
--- /dev/null
+++ b/dev-lang/ada-bootstrap/metadata.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>ada@gentoo.org</email>
+ </maintainer>
+</pkgmetadata>