diff options
author | Stephen L Arnold <nerdboy@gentoo.org> | 2016-06-03 20:54:17 -0700 |
---|---|---|
committer | Stephen L Arnold <nerdboy@gentoo.org> | 2016-06-03 21:04:49 -0700 |
commit | c4b4d9a83711610c09f8db31919b095a4d9628f2 (patch) | |
tree | 26cd40db5af69b7e82ca63d8dda3e2df9d461455 /dev-lang | |
parent | app-eselect/eselect-gnat: version bump to 1.5-r1 (diff) | |
download | gentoo-c4b4d9a83711610c09f8db31919b095a4d9628f2.tar.gz gentoo-c4b4d9a83711610c09f8db31919b095a4d9628f2.tar.bz2 gentoo-c4b4d9a83711610c09f8db31919b095a4d9628f2.zip |
dev-lang/gnat-gcc: version bump to 4.9.3 (ebuild and gnatboot)
Newly reworked gnat-gcc with new multilib and hardened support. Will
probably also need updates to gnat.eclass to build Ada packages.
Ncurses with use=ada works again (in the overlay) but the existing
gnat.eclass Ada configuration will most likely get simplified first.
Other arches still in progress.
Package-Manager: portage-2.2.28
Diffstat (limited to 'dev-lang')
-rw-r--r-- | dev-lang/gnat-gcc/Manifest | 7 | ||||
-rw-r--r-- | dev-lang/gnat-gcc/files/gcc-spec-env-r1.patch | 87 | ||||
-rw-r--r-- | dev-lang/gnat-gcc/files/gnat-gcc-4.9.3-make-default-paths-match-slot.patch | 27 | ||||
-rw-r--r-- | dev-lang/gnat-gcc/gnat-gcc-4.9.3.ebuild | 86 | ||||
-rw-r--r-- | dev-lang/gnat-gcc/metadata.xml | 27 |
5 files changed, 224 insertions, 10 deletions
diff --git a/dev-lang/gnat-gcc/Manifest b/dev-lang/gnat-gcc/Manifest index fdf0a3388dec..2a681b7be78d 100644 --- a/dev-lang/gnat-gcc/Manifest +++ b/dev-lang/gnat-gcc/Manifest @@ -1,3 +1,7 @@ +DIST gcc-4.4.3-specs-0.2.0.tar.bz2 2004 SHA256 f6c7cb99beead66dd4d06f7004c5731a9360330cbe878ce79792c618e008eed2 SHA512 779ecb0a064d2138b54569c8ae501975b8a6b72e5a3acbf8597619a8db77ee42ef9b0e62608d5192a15e4393e7dfc009bb50b994782236faa744b2c46b5fe517 WHIRLPOOL 8a1e45aad9d306cb19de93c63b5854a97e629d90852feb6861dcfca042b6257705304fc13ad65655a4cb227d36b83fc6063648c94f270821574ee0e85307094e +DIST gcc-4.9.3-patches-1.5.tar.bz2 25384 SHA256 e1c43125fab5a4db1997a01b362b3611907c9020e41a591e5eb2f5669f216538 SHA512 d266790b1f537c7c3de459cc67f9151b77b16b1e36780c3d2a02f2e4627d5a0f8f6430d7092bbfa6f9a4667c02170d3ce75b0453b6facc94998d414e58f4a1e1 WHIRLPOOL 31b4d54f0858f5673d76590ac822e097ddf799d4eafba81c1378af7cbaadd7be8634297ca9f900a78f7382ebfa9626a40e12ca7c06eff88431de04ddd4d2cec0 +DIST gcc-4.9.3-piepatches-v0.6.4.tar.bz2 14431 SHA256 012c3025ac2e14781ff25028c0b1d42a07f510b125006116e268bcd90fb6c9db SHA512 3bbeacbca5e8ef6ab0b1d58add42f5e8e82328afe024666f9585b5398c8722e7d012abfd2009a98ad47b1f1b26afaf421402a9e7719a5662516b32dcbe5608be WHIRLPOOL 9e68d981aed42ece2f481f62efc078ad370ac780e96ba39c4273c8675d552b845cd52c588bd41839868f430b0a532789858914f4ef32a1bc187e2983264ebfd3 +DIST gcc-4.9.3.tar.bz2 90006707 SHA256 2332b2a5a321b57508b9031354a8503af6fdfb868b8c1748d33028d100a8b67e SHA512 9ac57377a6975fc7adac704ec81355262b9f537def6955576753b87715470a20ee6a2a3144a79cc8fcba3443f7b44c7337d79d704b522d053f54f79aa6b442df WHIRLPOOL 085e4cc1825b031652cbe9e098671f761acfeca64c6cc9b8ad2a8961c13fcac9e02b4538b44dc38181a355266f2c55c99ce5a1bff3f2860b870285cf3f0e84a5 DIST gcc-ada-3.4.6.tar.bz2 3784327 SHA256 d5bfb166b2ad287ba85ebba533cca4453b521479cffc1bd3c6d273f6b3d794e2 SHA512 db54512d28388629c5e1af468127d737ffa513299917438992de63dc9b6495b41b81488d4bf748c6adc1e469228326ef5fb4bc682ebc5e6cc85dd5995b421a50 WHIRLPOOL e0264296c090cd19e6ebde5d1c0242a8b9ef34e9d2dd6b521c0c6353907613a1436208362851b15b5c66c9985d0aa098616be0087a3c46c4dee5d6a894825c96 DIST gcc-ada-4.1.2.tar.bz2 4589609 SHA256 703125c4d033c666b52db2aeee0a05e3461467fe8ff6e5e588b5cdb8c6928bb0 SHA512 7885ae0782f80b0c3adb35b0317f8de665f828eb96fada6f97046da897081655864736aed7a35ca7db996543e02126b1e0b4d71512e6dca95700601c6cf2dc10 WHIRLPOOL 8005eb7956964535b130c531a619a4bb46b4a4cdb4f1524c8ae1c0ad8db15628062b45b0f526aa860b5e7397fa5f9d502ff1990ae6652940a5d724434d0e2c6a DIST gcc-ada-4.2.3.tar.bz2 4740243 SHA256 08956727415fb1721c5c89ef33ebe94ab718459e88f7cd4589fc1c2b7e98cb4c SHA512 3143bca05c59cef64d26a42e2dc5732215301e0ea147e0670bdd8b53fd21ee76b58a1dc81e001a96b81549b96a633c95ff2314f25c0ab26f39c33bdaa32356d7 WHIRLPOOL db3592005bb4903bc11e1cdc3b351836395e1883478c5abd4be52f7946386e7dc9c9a5782900c5c97731add94f4cadf995510297bb6c276ea75c7ec46aeca8ec @@ -26,3 +30,6 @@ DIST gnatboot-4.3-sparc.tar.bz2 13065130 SHA256 e234336123fd65c0f73cd25af99dbb43 DIST gnatboot-4.4-amd64.tar.bz2 26117669 SHA256 fd6c6ea6e4d57eb178d239a8b1e4d99d6638cb9d7d322c0789b37e8ed6a49b67 SHA512 bf68582e8e8ecc9c4f4dbec90ef47edf10769ca7a2dd197b065f44e5ad1e40b81c44592bb362651654b187ebad972095176509273b5e98edc1a26c2164075d80 WHIRLPOOL 59d714a3ea70dae7c4b9e6d177336810bbb5ea7bcdbe038c7c34d543ef8c45f40d240ecbc58de1b49c88904b245cdd3ef9121bc88fa3bdecf413762f67301cde DIST gnatboot-4.4-i686.tar.bz2 17194327 SHA256 1081cdf2514fd1c03b40f0923d0046ffd2886b3bc6eabd217eaa40da1765ba5b SHA512 29a4e32d178f065ceef88efc9bae3bd2b68553e34d485b929e055733ceabdaf172c58ab92f24340d8a46fdbb1565e5f7573b744e3931ed261aaeb488c40501e6 WHIRLPOOL 80987d40ddf7589a74c6280dd687ad442ee7a560c5bb2eece950c50fcf0bfaa38e2befeec72e6fbf2695bb9d89ecfe905cf894152a56b22c7384926a59ce4f11 DIST gnatboot-4.4-sparc.tar.bz2 13962662 SHA256 467fa1da5ee4c769a10b2c870e132e1bf7827688e88860fdd27259e9b258109b SHA512 d02b07824da718d5a3c41a4d5c848b872cecbcf3ec04e59ba922fed0549e1d6901c07122038c286f6627d6f4edb1a71a6e52b8a5e52e8c788d9d51ac96f225b4 WHIRLPOOL 9164527588573ba1b5088c7835e739e3518bbdb099e0b85f205ca7602da87bd20646f8bd9fa12a14417ff18fe90041288be3647ecd900f300cf33621c5fb48fb +DIST gnatboot-4.9-amd64.tar.xz 126692152 SHA256 4d7bfd5f8cb190ea51d6bea37a24aa149b6017093fa3aad9c5831c047a006381 SHA512 da41b0986e2c84ff14da86e4149d19a9429c456b6f6ef2733552e8d09ae1af62d4352cd4d2b892ed36c4a1278c5f8cef3513eafbd52cdd74a26e8d369662160f WHIRLPOOL bad5be4f54728004e1ed60d0440e8eb9d0b2dd64693e401f33c97a7f48026e2086a764c677463bb62cc87885582997fd69a9703133592d473bb5c07f2ad1984a +DIST gnatboot-4.9-arm.tar.xz 104226768 SHA256 7789b327b5828e7d537e08cca5addc3e7ec4d1a9743737c60c36f65e9bdda819 SHA512 11c1fdbe08432ef3d01c74de9ce54a2ca750097b52d7d7ec88389a8a918a011dce918d342089b7e4bc60850e1427d398a0f144659db3b36565a9574fe3daef29 WHIRLPOOL 3d15dc7f22371152383c3508c1de2b8b2d4e5fbf729a88844bbe42cabe6d25a39e01eba72ec51abdb253550170b8c239fcb666dca94ec158ab30f477d96098ba +DIST gnatboot-4.9-i686.tar.xz 82344156 SHA256 bf15503603827b46c22f3dbbf7461c64006d5c7d8cf2e2d986f082d1dfacca67 SHA512 c652c1f7530f61839e7937f598b1ff795a1394c6a8d0ab1dc7fda894f84adc394d6041b895a0ffa35b246b8868b7e495f28ec9576e469c026626c93764112ff9 WHIRLPOOL 8c9fda1dab1e1d4739ec73d2f6031a32c469bc6571211d7c1cc816863a551c8f032522a3a14aea44b0f9b3c9bcba87e1d7eace0f9344ac7876ea40c8dcb76fca diff --git a/dev-lang/gnat-gcc/files/gcc-spec-env-r1.patch b/dev-lang/gnat-gcc/files/gcc-spec-env-r1.patch new file mode 100644 index 000000000000..a58926836e4e --- /dev/null +++ b/dev-lang/gnat-gcc/files/gcc-spec-env-r1.patch @@ -0,0 +1,87 @@ +2013-08-22 Magnus Granberg <zorry@gentoo.org> + + * gcc/gcc.c (main): Add support for external spec file via the GCC_SPECS env var + and move the process of the user specifed specs. + + This allows us to easily control pie/ssp defaults with gcc-config profiles. + Original patch by Rob Holland + Extended to support multiple entries separated by ':' by Kevin F. Quinn + Modified to use getenv instead of poisoned GET_ENVIRONMENT by Ryan Hill + Modified to process the GCC_SPECS env var befor DRIVER_SELF_SPECS by Magnus Granberg + +--- gcc-4.8-20130210/gcc/gcc.c 2013-02-05 16:55:31.000000000 +0100 ++++ gcc-4.8-20130210-work/gcc/gcc.c 2013-07-26 02:32:14.625089864 +0200 +@@ -6427,6 +6428,48 @@ main (int argc, char **argv) + do_option_spec (option_default_specs[i].name, + option_default_specs[i].spec); + ++#if !(defined (__MSDOS__) || defined (OS2) || defined (VMS) || defined (WIN32)) ++ /* Add specs listed in GCC_SPECS. Note; in the process of separating ++ * each spec listed, the string is overwritten at token boundaries ++ * (':') with '\0', an effect of strtok_r(). ++ */ ++ specs_file = getenv ("GCC_SPECS"); ++ if (specs_file && (strlen(specs_file) > 0)) ++ { ++ char *spec, *saveptr; ++ for (spec=strtok_r(specs_file,":",&saveptr); ++ spec!=NULL; ++ spec=strtok_r(NULL,":",&saveptr)) ++ { ++ struct user_specs *user = (struct user_specs *) ++ xmalloc (sizeof (struct user_specs)); ++ user->next = (struct user_specs *) 0; ++ user->filename = spec; ++ if (user_specs_tail) ++ user_specs_tail->next = user; ++ else ++ user_specs_head = user; ++ user_specs_tail = user; ++ } ++ } ++#endif ++ /* Process any user specified specs in the order given on the command ++ * line. */ ++ for (uptr = user_specs_head; uptr; uptr = uptr->next) ++ { ++ char *filename = find_a_file (&startfile_prefixes, uptr->filename, ++ R_OK, true); ++ read_specs (filename ? filename : uptr->filename, false, true); ++ } ++ /* Process any user self specs. */ ++ { ++ struct spec_list *sl; ++ for (sl = specs; sl; sl = sl->next) ++ if (sl->name_len == sizeof "self_spec" - 1 ++ && !strcmp (sl->name, "self_spec")) ++ do_self_spec (*sl->ptr_spec); ++ } ++ + /* Process DRIVER_SELF_SPECS, adding any new options to the end + of the command line. */ + +@@ -6535,24 +6578,6 @@ main (int argc, char **argv) + PREFIX_PRIORITY_LAST, 0, 1); + } + +- /* Process any user specified specs in the order given on the command +- line. */ +- for (uptr = user_specs_head; uptr; uptr = uptr->next) +- { +- char *filename = find_a_file (&startfile_prefixes, uptr->filename, +- R_OK, true); +- read_specs (filename ? filename : uptr->filename, false, true); +- } +- +- /* Process any user self specs. */ +- { +- struct spec_list *sl; +- for (sl = specs; sl; sl = sl->next) +- if (sl->name_len == sizeof "self_spec" - 1 +- && !strcmp (sl->name, "self_spec")) +- do_self_spec (*sl->ptr_spec); +- } +- + if (compare_debug) + { + enum save_temps save; diff --git a/dev-lang/gnat-gcc/files/gnat-gcc-4.9.3-make-default-paths-match-slot.patch b/dev-lang/gnat-gcc/files/gnat-gcc-4.9.3-make-default-paths-match-slot.patch new file mode 100644 index 000000000000..0c197a15c134 --- /dev/null +++ b/dev-lang/gnat-gcc/files/gnat-gcc-4.9.3-make-default-paths-match-slot.patch @@ -0,0 +1,27 @@ +--- gcc/Makefile.in.orig 2016-05-20 15:01:04.277726220 -0700 ++++ gcc/Makefile.in 2016-05-20 18:40:43.658617109 -0700 +@@ -594,9 +594,9 @@ + # -------- + + # Directory in which the compiler finds libraries etc. +-libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(version) ++libsubdir = $(libdir)/gnat-gcc/$(target_noncanonical)/SLOT_MARKER + # Directory in which the compiler finds executables +-libexecsubdir = $(libexecdir)/gcc/$(target_noncanonical)/$(version) ++libexecsubdir = $(libexecdir)/gnat-gcc/$(target_noncanonical)/SLOT_MARKER + # Directory in which all plugin resources are installed + plugin_resourcesdir = $(libsubdir)/plugin + # Directory in which plugin headers are installed +@@ -1944,9 +1944,9 @@ + + DRIVER_DEFINES = \ + -DSTANDARD_STARTFILE_PREFIX=\"$(unlibsubdir)/\" \ +- -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \ +- -DSTANDARD_LIBEXEC_PREFIX=\"$(libexecdir)/gcc/\" \ +- -DDEFAULT_TARGET_VERSION=\"$(version)\" \ ++ -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gnat-gcc/\" \ ++ -DSTANDARD_LIBEXEC_PREFIX=\"$(libexecdir)/gnat-gcc/\" \ ++ -DDEFAULT_TARGET_VERSION=\"SLOT_MARKER\" \ + -DDEFAULT_TARGET_MACHINE=\"$(target_noncanonical)\" \ + -DSTANDARD_BINDIR_PREFIX=\"$(bindir)/\" \ + -DTOOLDIR_BASE_PREFIX=\"$(libsubdir_to_prefix)$(prefix_to_exec_prefix)\" \ diff --git a/dev-lang/gnat-gcc/gnat-gcc-4.9.3.ebuild b/dev-lang/gnat-gcc/gnat-gcc-4.9.3.ebuild new file mode 100644 index 000000000000..8e2d69b95c7b --- /dev/null +++ b/dev-lang/gnat-gcc/gnat-gcc-4.9.3.ebuild @@ -0,0 +1,86 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +PATCH_VER="1.5" +PIE_VER="0.6.4" +SPECS_VER="0.2.0" +SPECS_GCC_VER="4.4.3" +PIE_GLIBC_STABLE="amd64 x86 mips ppc ppc64 arm" +SSP_STABLE="amd64 x86 mips ppc ppc64 arm" + +inherit gnatbuild-r1 + +DESCRIPTION="GNAT Ada Compiler - gcc version" +HOMEPAGE="https://gcc.gnu.org/" +LICENSE="GMGPL" + +IUSE="acats doc hardened" + +BOOT_SLOT="4.9" + +# SLOT is set in gnatbuild-r1.eclass, depends only on PV (basically SLOT=GCCBRANCH) +# so the URI's are static. +KEYWORDS="~amd64 ~arm ~x86" + +# arm is armv7-hardfloat, no neon: +# (--with-arch=armv7-a --with-mode=thumb --with-float=hard --with-fpu=vfpv3-d16) +SRC_URI="mirror://gnu/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 + mirror://gentoo/gcc-${PV}-patches-${PATCH_VER}.tar.bz2 + mirror://gentoo/gcc-${PV}-piepatches-v${PIE_VER}.tar.bz2 + hardened? ( mirror://gentoo/gcc-${SPECS_GCC_VER}-specs-${SPECS_VER}.tar.bz2 ) + amd64? ( http://dev.gentoo.org/~nerdboy/files/gnatboot-${BOOT_SLOT}-amd64.tar.xz ) + arm? ( http://dev.gentoo.org/~nerdboy/files/gnatboot-${BOOT_SLOT}-arm.tar.xz ) + x86? ( http://dev.gentoo.org/~nerdboy/files/gnatboot-${BOOT_SLOT}-i686.tar.xz )" + +# starting with 4.3.0 gnat needs these libs +RDEPEND=">=dev-libs/mpfr-3.1.2 + >=dev-libs/gmp-5.1.3 + >=dev-libs/mpc-1.0.1 + >=sys-libs/zlib-1.2 + >=sys-libs/ncurses-5.7:0" + +DEPEND="${RDEPEND} + doc? ( >=sys-apps/texinfo-5 )" + +if [[ ${CATEGORY} != cross-* ]] ; then + PDEPEND="${PDEPEND} >=sys-libs/glibc-2.12" +fi + +src_prepare() { + # See if we can enable boehm-gc for Ada + #epatch "${FILESDIR}"/${PN}-4.9.3-enable-boehm-gc-for-Ada.patch + + #fixup some hardwired flags + pushd "${S}"/gcc/ada > /dev/null + + # universal gcc -> gnatgcc substitution occasionally produces lines too long + # and then build halts on the style check. + # + sed -i -e 's:gnatgcc:gcc:' osint.ads switch.ads || + die "reversing [gnat]gcc substitution in comments failed" + + popd > /dev/null + + # gcc pretty much ignores --with-system-zlib. At least it still descends + # into zlib and does configure and build there (gcc bug@7125?). For whatever + # reason this conflicts with multilib in gcc-4.4.. + sed -i -e "s:libgui zlib:libgui:" "${S}"/configure +} + +src_compile() { + # looks like gnatlib_and_tools and gnatlib_shared have become part of + # bootstrap + gnatbuild-r1_src_compile configure make-tools bootstrap +} + +src_install() { + gnatbuild-r1_src_install + + if use acats ; then + insinto "${LIBPATH}"/acats + doins -r "${S}"/gcc/testsuite/ada/acats/* + fi +} diff --git a/dev-lang/gnat-gcc/metadata.xml b/dev-lang/gnat-gcc/metadata.xml index fb03ada8d557..e4bed84044bf 100644 --- a/dev-lang/gnat-gcc/metadata.xml +++ b/dev-lang/gnat-gcc/metadata.xml @@ -1,18 +1,25 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> -<maintainer type="project"> + <maintainer type="project"> <email>ada@gentoo.org</email> - <name>Gentoo Resources for Ada</name> + <name>Gentoo Ada Project</name> </maintainer> <use> - <flag name="lto">Add support for link-time optimizations (unsupported, use - at your own risk).</flag> + <flag name="acats"> + Installs ACATS source under LIBPATH. + </flag> + <flag name="lto"> + Enable Link Time Optimization (somewhat unsafe). + </flag> </use> -<longdescription> -GNAT, the (GN)U (A)da (T)oolchain, is a high performance Ada 95 -development environment based on the mature GCC compiler technology. It -implements the full Ada 95 language defined by the ISO standard and is upward -compatible with Ada 83. This is an FSF supported version, integrated with gcc. -</longdescription> + <longdescription> + GNAT, the (GN)U (A)da (T)oolchain, is a high performance Ada 95 development + environment based on the mature GCC compiler technology. It implements the + full Ada 95 language defined by the ISO standard and is upward compatible + with Ada 83. This is an FSF supported version, integrated with gcc. + </longdescription> + <upstream> + <remote-id type="cpe">cpe:/a:gnu:gcc</remote-id> + </upstream> </pkgmetadata> |