From 4f2d7949f03e1c198bc888f2d05f421d35c57e21 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 9 Oct 2017 18:53:29 +0100 Subject: reinit the tree, so we can have metadata --- sys-devel/gcc-apple/Manifest | 19 ++ .../gcc-apple-4.0.1_p5465-default-altivec.patch | 38 +++ .../files/gcc-apple-4.2.1-arch-option.patch | 57 ++++ .../gcc-apple-4.2.1-autoconf-m4-precious.patch | 12 + .../gcc-apple/files/gcc-apple-4.2.1-dsymutil.patch | 20 ++ .../gcc-apple-4.2.1-prefix-search-dirs-r1.patch | 39 +++ .../files/gcc-apple-4.2.1-prefix-search-dirs.patch | 27 ++ .../gcc-apple/files/gcc-apple-4.2.1-texinfo.patch | 33 ++ .../files/gcc-apple-4.2.1_p5666-darwin14.patch | 148 ++++++++ .../files/gcc-apple-4.2.1_p5666-perl-5.18.patch | 11 + sys-devel/gcc-apple/files/libstdc++-16.patch | 11 + .../gcc-apple/gcc-apple-4.2.1_p5666-r2.ebuild | 375 +++++++++++++++++++++ sys-devel/gcc-apple/metadata.xml | 13 + 13 files changed, 803 insertions(+) create mode 100644 sys-devel/gcc-apple/Manifest create mode 100644 sys-devel/gcc-apple/files/gcc-apple-4.0.1_p5465-default-altivec.patch create mode 100644 sys-devel/gcc-apple/files/gcc-apple-4.2.1-arch-option.patch create mode 100644 sys-devel/gcc-apple/files/gcc-apple-4.2.1-autoconf-m4-precious.patch create mode 100644 sys-devel/gcc-apple/files/gcc-apple-4.2.1-dsymutil.patch create mode 100644 sys-devel/gcc-apple/files/gcc-apple-4.2.1-prefix-search-dirs-r1.patch create mode 100644 sys-devel/gcc-apple/files/gcc-apple-4.2.1-prefix-search-dirs.patch create mode 100644 sys-devel/gcc-apple/files/gcc-apple-4.2.1-texinfo.patch create mode 100644 sys-devel/gcc-apple/files/gcc-apple-4.2.1_p5666-darwin14.patch create mode 100644 sys-devel/gcc-apple/files/gcc-apple-4.2.1_p5666-perl-5.18.patch create mode 100644 sys-devel/gcc-apple/files/libstdc++-16.patch create mode 100644 sys-devel/gcc-apple/gcc-apple-4.2.1_p5666-r2.ebuild create mode 100644 sys-devel/gcc-apple/metadata.xml (limited to 'sys-devel/gcc-apple') diff --git a/sys-devel/gcc-apple/Manifest b/sys-devel/gcc-apple/Manifest new file mode 100644 index 000000000000..e1d2a427a124 --- /dev/null +++ b/sys-devel/gcc-apple/Manifest @@ -0,0 +1,19 @@ +AUX gcc-apple-4.0.1_p5465-default-altivec.patch 1381 SHA256 699dfea402a5a2d80f8374254a36fc7552f32b5fc25c1d15d9b88b7742874f09 SHA512 8eb71bb7d478af415d4222774172423744ec8ded1c1fe03da03779a4e8d19ce7783bf246b7249f30249a4d9f2eb34f667fa43a2e40edba23f22fe535c2dc6100 WHIRLPOOL 071667d5b0b49ce0a455e7fb7f0960e50e9ccb6d8f73464fee89a06836439e65fa42730d0e959511c6ad26865f4a3c6352801c7ff3bce51c3bfdf019fcf70ebc +AUX gcc-apple-4.2.1-arch-option.patch 2151 SHA256 f7f7da2d46ec6dc8ab8cf8754994abf93db7a925f20f92433e2e3f0f49b15e85 SHA512 daa34b0db6b5ce46766628819b7234fd1310060d359bf088d5ab06f2aeef9f4fc33f403b428e105c7cecc6d4d3b823134ddc090cc0c44bd6650d3b6a65c58635 WHIRLPOOL 555e66197abe1b95c60281c6158eb1039883819b510c205de17aedc1b4a4f5b9bb6404e342a5df75520d09b3ca5d009a70abcb2970d8ca0d29fb323dbff7f84e +AUX gcc-apple-4.2.1-autoconf-m4-precious.patch 340 SHA256 22d04767775394bf88f7108e29338fe3d1d8f5f3c7ce115d211730c9c52562cc SHA512 7a7f40e1aa87c92d412d9b803cfbe43ecc51568a39bfab29eb3307489661a68c40d690af53a8902ce55e96f364860287a19934e3fe3d075c5d62e086d72836db WHIRLPOOL c666cc4ee0e63f0421a404ff21e7beb52dc89442ba09a3366e46a0027b2156b61e1258abff3c9d5d452b2439481226b78871c7d65b4e1e3d1bec261352d83401 +AUX gcc-apple-4.2.1-dsymutil.patch 853 SHA256 bba3d9d406afe12f1fd55f7b91ab65c07d4a1b37401d711a0ea287104aa07040 SHA512 382a49d92f03772e71bbb5b31257187b3fd964583f4a1ab2a19a459f679d9dd48549813cb3ef03e6cbaf728c9e62162364d1dafb75257d85b687b7e356d580d0 WHIRLPOOL 0f2964ebd56dfdb5ad84bc465fb64cc0140c9ecbfc3eefa584ff06b2d1c8bfce8f09d2ab449628730813daf265d0e9dd1ea673d28b62670f9f3f1ad123e90fb4 +AUX gcc-apple-4.2.1-prefix-search-dirs-r1.patch 1587 SHA256 87cc753a3e125a04e2a3019c39b113a269c6801d1d14affd02f0cb0d2adc9901 SHA512 04ebd1b02ce022c4277988fabb7c198286bc9604ade70cf5d64a0296781a377b6c26ad8206da63d37ca1211537b4b8d31d7b06ae1fa3405f77f19ce01636156f WHIRLPOOL 37dee072631014a6ab90c14c1bbab3bf20a662fccf771e135c943a600796e3362c776ab09a745f872666f384f4fe57fbf5cdd203b3a935607eff4ad5c1de3d67 +AUX gcc-apple-4.2.1-prefix-search-dirs.patch 1053 SHA256 8f71661b144df92cd9a924b54cbd11a28de0b7ddc258a489bd1e1913e7d4a208 SHA512 0efdedb7a69b21732f254567f0593319f06ed25c12641d6df0219c5b1c90768494286affd98c02a726c82ffe0e27aa4548c9701981dc6a2eb8a0c3455b78a364 WHIRLPOOL 0df7f9cb80d692f93e88f073562d51658d251956ea53b1eb1a5d364fe961c22521436ea0429f711c9424ef6da47b945fafc64ffa42aa70d89c244c8442a75344 +AUX gcc-apple-4.2.1-texinfo.patch 1110 SHA256 1efd6ac46557feb01b7c28b214209ed3eab4714d91b6cbdf8701801ff53d545d SHA512 1b27fa076dffc80d4ea9cc2e209f4ef2cd31ba4f585b977c20a15432cb7a86f3bc76aa734cb328e5702309585e1c440ed33fd605b863e41c91d96268d1b6bf36 WHIRLPOOL 7b4a80716e02d212893291b69465aeab83dde2ff326497929fce040736f6fd8cd8efe3ce1272e039fc36b9a3780665653b7477ea8ab76595d349d84af26a19f6 +AUX gcc-apple-4.2.1_p5666-darwin14.patch 4870 SHA256 3e97bf7788f0a16fb93baa34ab5053f89cc503486123ba23ee809956d4fbaf9a SHA512 4569f6ae976760074629f5526a45793e10ca56508f13642c4da173c387f4ccf1ffc62b595e3fbc8694fd0d673f5a19eb5a9002b211ed149ad4492044d26bbba7 WHIRLPOOL 387000a9adb9875e728069d93bd90862e16fab847d1d71ee0ca72ff61b4155ef170221b2d17ccf354c1d2a808b297c7783f041bf0f09cc534be3da388266cc8e +AUX gcc-apple-4.2.1_p5666-perl-5.18.patch 286 SHA256 7364a7a2c8fc79d5698bc96572e15269e04a619d6cc30d7a640d14c2ec0711c6 SHA512 bdbb2e1d6146ff461c762d3efff59f272762121b033eb24bb1a016ab946268ec77dc22d01997870c406ac09d55e668eead61865a696a490482e69befb84cfdba WHIRLPOOL a531698dfc39cc1073d85a0063b2ce729461135979dd06a78dc2efc73c02989a4c123cbe3623609dad7f8c08ba2a25f43e0586083ce99ae85904b4f1f2913903 +AUX libstdc++-16.patch 253 SHA256 f037576ba363256c61979eb68a2c1dff24445e8c5f403a729bead2c7db1f0314 SHA512 aefc96161aba55ee77620e440cab3674f069331a6947e26acf56562e286e64f0888b247b9e67b02f68b16f4522e7e6ab4b145190508ed9222ad2dc98cc625716 WHIRLPOOL 87eb1017709dacc552861aa1a85fa81c53ef4a89017dbab18cdc62ddcd0f9aca13ac3aac51268644cf8a812bc23023f4ee2ed09e1684c6f61865400d8a7d5e21 +DIST gcc-5666.3.tar.gz 19367320 SHA256 6c46f4376d11ada5be0cfc3894b9296edf574af3c616ab71803ea78edfd7015b SHA512 31cf52a00f31bcd7c47382888152cfe9851688c8fb7b1f236197b06b8acdd96b1943d327f8fab0fd305531c99a8fbf4865b2214dc2d1a236bb8ad39f710ce931 WHIRLPOOL 03711b56d38b2cb3b5af735802a82ef435cf42c3aa4fa74fa754b016edea447d011e626115fe59449def14ac34422788340165faab567b6fb992d1fe1684f93d +DIST gcc-apple-4.2.1_p5646-gfortran.patch 38284 SHA256 c909a792b4e3ea76cbba6d8aefd712ef98506bd4e3dd275a144e5ed272c2ae22 SHA512 94b1c7d343b780e52bbbbc213987feda7d8f7e083d7c338ab244e89e69ba5c2fc74a9695c5f38f273e4e50683ef67b4de85abd4aa0c5c2fe3a28f7bf275dbf3a WHIRLPOOL 12da437da136b1d581b075b86d7a1ae8687e56fd811e0fc4b650faf2831746466358d63d34309bee9ab4254dff4f861685ecb0f5a20697ad7e77afc7cd0d7ef4 +DIST gcc-fortran-4.2.4.tar.bz2 905688 SHA256 6fc2056cd62921b2859381749710af765a46877bd46f9fe5ef6fab0671c47e04 SHA512 1a36587a3691b8d7ecd23938efcdfca42642b6b260a1c830f6d791bb1b8ac32953998c45d77eee2d557861d631431569503c796b61aeaea9ac5fffbce1982faa WHIRLPOOL 5db1f448b3c08985ee2d0b1a9101e72733f4859184892da67268650c1010c26487b5ff15670151e67fdde5e4bd9053ed2e98b1582d1f4f99375b1bcdaf94351a +DIST libstdcxx-16.tar.gz 64695692 SHA256 a7d8041e50e110f5a503e188a05cb217f0c99c51f248a0a1387cc07a0b6f167f SHA512 2f0e8d694aaaf94fc2a0463ebd4a5775865421dedb431a6f6f701a8d33078e768bef232f72e2cf1f8e2d278eb60ff54030f5ad22b43eb0643d49bc4717e96b05 WHIRLPOOL fb90a1df90e60717906d227fb1dc2b8639fd063dbf6eec39d3a840dc8025c5384bd2c8b0a86158f8c072a1008ac2561e8e9f512ef4a4f84c081903154bb9d378 +DIST libstdcxx-39.tar.gz 117081330 SHA256 aad6c0b7aa80b8117af1868d502f7aa4d042e5f33cada853a8ba75980391c6bb SHA512 c640292c0f371069fbb635ed0385627c8abab869db93513922e19b25886864d093eef3684c49bf1ba82325f2d1d3cd1eb382ef6ea9dee039208fe99fe8653db6 WHIRLPOOL ae0eba85e393ea8f14369557712e26c6662e147dec6d8ec0da0919a8290a834c7a1c0150bcc48972f111a14fcfe1501362b2b0dc9dc57aeb8456a35b74d8457e +EBUILD gcc-apple-4.2.1_p5666-r2.ebuild 13193 SHA256 0ed5d81df030a5f87103bcaff68e98eed4450fea82a9b8de6ec01dc6bbe629e5 SHA512 4d85007f599e285ef6f91d40e422a9d380c0eb3e8eb6be522d2b635b7e6da98fe9ea62ad63e73b61aa04fd6546cc497246a1dc75ee1fc669f2cbea1734e12f12 WHIRLPOOL ce7a95794cabe9a1bc328b96b55a20ef96e647a6341d688766ac3847cdc8c6ea3ad728b83681d7360c6b19db281da660c8853c47cea5788ca7cf091e077e3e22 +MISC ChangeLog 5227 SHA256 334d2017f0c9411c02ef99c628e05740a43cdc82cf71bb2e8a276e1d52495003 SHA512 874038b55c0c5703890273ad1a539aa404b0753340339e42f50eb9f135614e987326f35505adcb2db74c759ffdd4859a3d31f25952b7bef782fc845f63dd6e1f WHIRLPOOL f4bce37f10f754584f4ba41e3242ae171c36d6ea051a015726a24cf324b7218e5ceaf8e0715238fc32af95b9da725f4e7e5a9b490e24d43113cbbedf697071be +MISC ChangeLog-2015 15474 SHA256 be7735f12a7d53a70d2b3b4b8ac157bccba5643fe8769bce844fcd54a0adbc06 SHA512 ac010807af2bd101211962417a88cb000e23a7a230ff64bbf4829b16129eea9da24ca5d35124cd557d0d897e66d8e642f1e1c9a74755354897858ed596937e8a WHIRLPOOL 41392e18ed401df72776143d733b5f8da2518aee537e8ead704270de3c8821a45b75adf97624e7e2c4c99656eabca3b16604160bebc624cb75981af855753062 +MISC metadata.xml 530 SHA256 cf6199d73a3b413442595861daebab28d16f561aacc47dd20d0228583909aecd SHA512 29922e179098de072d1a5bd869ba4505a88ee1340ceb66b0898b58446ddd74b6a6dcc961b4a1445d2db3b95259c6cb31030b9c0b7ea036a92b303b7f7ac3b371 WHIRLPOOL 52fe3540af10f029e8be63b0aa8ed1c3e52a08ebdc799b31e7b7f9ddaac73052c657cacd9c8fe4a77bc8a150bb1b70ac8bca3575a7bc5c6d007d384d2a0f97fc diff --git a/sys-devel/gcc-apple/files/gcc-apple-4.0.1_p5465-default-altivec.patch b/sys-devel/gcc-apple/files/gcc-apple-4.0.1_p5465-default-altivec.patch new file mode 100644 index 000000000000..e7b0bbbf8078 --- /dev/null +++ b/sys-devel/gcc-apple/files/gcc-apple-4.0.1_p5465-default-altivec.patch @@ -0,0 +1,38 @@ +* reverse patch to gain 10.4 behaviour for AltiVec. + +--- gcc/config/rs6000/rs6000-c.c ++++ gcc/config/rs6000/rs6000-c.c +@@ -245,22 +245,22 @@ + builtin_define ("__bool=__attribute__((altivec(bool__))) unsigned"); + + /* APPLE LOCAL begin AltiVec */ ++ builtin_define ("vector=vector"); ++ builtin_define ("pixel=pixel"); ++ builtin_define ("_Bool=_Bool"); ++ builtin_define ("bool=bool"); ++ init_vector_keywords (pfile); ++ ++ /* Indicate that the compiler supports Apple AltiVec syntax, ++ including context-sensitive keywords. */ + if (rs6000_altivec_pim) + { +- builtin_define ("vector=vector"); +- builtin_define ("pixel=pixel"); +- builtin_define ("_Bool=_Bool"); +- builtin_define ("bool=bool"); +- init_vector_keywords (pfile); +- +- /* Indicate that the compiler supports Apple AltiVec syntax, +- including context-sensitive keywords. */ + builtin_define ("__APPLE_ALTIVEC__"); + builtin_define ("vec_step(T)=(sizeof (__typeof__(T)) / sizeof (__typeof__(T) __attribute__((altivec(element__)))))"); +- +- /* Enable context-sensitive macros. */ +- cpp_get_callbacks (pfile)->macro_to_expand = rs6000_macro_to_expand; + } ++ ++ /* Enable context-sensitive macros. */ ++ cpp_get_callbacks (pfile)->macro_to_expand = rs6000_macro_to_expand; + /* APPLE LOCAL end AltiVec */ + } + if (TARGET_SPE) diff --git a/sys-devel/gcc-apple/files/gcc-apple-4.2.1-arch-option.patch b/sys-devel/gcc-apple/files/gcc-apple-4.2.1-arch-option.patch new file mode 100644 index 000000000000..94abba89306c --- /dev/null +++ b/sys-devel/gcc-apple/files/gcc-apple-4.2.1-arch-option.patch @@ -0,0 +1,57 @@ +Description: Add dummy -arch option with simplistic check. +Author: Heiko Przybyl + +diff -pruN gcc-5664.orig/gcc/gcc.c gcc-5664/gcc/gcc.c +--- gcc-5664.orig/gcc/gcc.c 2010-09-21 22:28:11.000000000 +0200 ++++ gcc-5664/gcc/gcc.c 2010-09-21 22:28:24.000000000 +0200 +@@ -88,6 +88,8 @@ compilation is specified by a string cal + #include "flags.h" + #include "opts.h" + ++#include ++ + /* By default there is no special suffix for target executables. */ + /* FIXME: when autoconf is fixed, remove the host check - dj */ + #if defined(TARGET_EXECUTABLE_SUFFIX) && defined(HOST_EXECUTABLE_SUFFIX) +--- gcc-5664/gcc/gcc.c.orig 2010-09-22 01:30:04.000000000 +0200 ++++ gcc-5664/gcc/gcc.c 2010-09-22 01:36:52.000000000 +0200 +@@ -1401,6 +1401,39 @@ translate_options (int *argcp, const cha + nskip += 1; + else if (! strcmp (p, "Xassembler")) + nskip += 1; ++ /* GENTOO_PORTAGE Allow but filter -arch. */ ++ if (! strcmp (p, "arch")) { ++ if (i + 1 == argc) ++ fatal ("argument to `-arch' is missing"); ++ /* Check current arch vs. given arch if possible. */ ++ const NXArchInfo *ai = NXGetLocalArchInfo(); ++ if (ai) { ++ /* Returns the most generic setting */ ++ /* aka "i386", "x86_64", "ppc", "ppc64", "arm". */ ++ const NXArchInfo *gai = NXGetArchInfoFromCpuType(ai->cputype, CPU_SUBTYPE_MULTIPLE); ++ if (gai) { ++ const char *name = gai->name; ++#ifdef __LP64__ ++ /* Make sure x64 on 32bit kernel is set correctly. */ ++ if (gai->cputype == CPU_TYPE_I386) { ++ name = "x86_64"; ++ } ++ else if (gai->cputype == CPU_TYPE_POWERPC) { ++ name = "ppc64"; ++ } ++#endif ++ if (strcmp(name, argv[i + 1]) != 0) { ++ fatal ("`-arch %s' does not match current compiler arch `%s'", ++ argv[i + 1], name); ++ } ++ } ++ } ++ ++ /* Skip argument. */ ++ i += 2; ++ /* Don't add option to the new env. */ ++ nskip = 0; ++ } + + /* Watch out for an option at the end of the command line that + is missing arguments, and avoid skipping past the end of the diff --git a/sys-devel/gcc-apple/files/gcc-apple-4.2.1-autoconf-m4-precious.patch b/sys-devel/gcc-apple/files/gcc-apple-4.2.1-autoconf-m4-precious.patch new file mode 100644 index 000000000000..0ad6ced95867 --- /dev/null +++ b/sys-devel/gcc-apple/files/gcc-apple-4.2.1-autoconf-m4-precious.patch @@ -0,0 +1,12 @@ +https://sourceware.org/ml/libffi-discuss/2009/msg00289.html + +--- libgomp/configure.ac ++++ libgomp/configure.ac +@@ -110,6 +110,7 @@ + m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS]) + m4_define([_AC_ARG_VAR_PRECIOUS],[]) + AC_PROG_CC ++m4_undefine([_AC_ARG_VAR_PRECIOUS]) + m4_rename([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) + + AC_SUBST(CFLAGS) diff --git a/sys-devel/gcc-apple/files/gcc-apple-4.2.1-dsymutil.patch b/sys-devel/gcc-apple/files/gcc-apple-4.2.1-dsymutil.patch new file mode 100644 index 000000000000..8da025d8c5d0 --- /dev/null +++ b/sys-devel/gcc-apple/files/gcc-apple-4.2.1-dsymutil.patch @@ -0,0 +1,20 @@ +Revert of dsymutil part of +http://gcc.gnu.org/ml/gcc-patches/2006-09/msg00057.html +See http://article.gmane.org/gmane.linux.gentoo.alt/4327 + +--- gcc/config/darwin.h ++++ gcc/config/darwin.h +@@ -326,12 +326,7 @@ + "/* APPLE LOCAL nested functions 4357979 */"\ + %{fnested-functions: -allow_stack_execute} \ + %{!nostdlib:%{!nodefaultlibs:%(link_ssp) %G %L}} \ +-"/* APPLE LOCAL begin mainline 4.3 2006-10-31 4370146 */"\ +- %{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} %{F*} }}}}}}}}\n\ +-%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\ +-"/* APPLE LOCAL end mainline 4.3 2006-10-31 4370146 */"\ +- %{.c|.cc|.C|.cpp|.cp|.c++|.cxx|.CPP|.m|.mm: \ +- %{g*:%{!gstabs*:%{!g0: dsymutil %{o*:%*}%{!o:a.out}}}}}}}}}}}}" ++ %{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} %{F*} }}}}}}}}" + /* APPLE LOCAL end mainline */ + + #ifdef TARGET_SYSTEM_ROOT diff --git a/sys-devel/gcc-apple/files/gcc-apple-4.2.1-prefix-search-dirs-r1.patch b/sys-devel/gcc-apple/files/gcc-apple-4.2.1-prefix-search-dirs-r1.patch new file mode 100644 index 000000000000..497248527d6d --- /dev/null +++ b/sys-devel/gcc-apple/files/gcc-apple-4.2.1-prefix-search-dirs-r1.patch @@ -0,0 +1,39 @@ +In Prefix we are really self-providing, so don't look back! +Original patch by Heiko Przybyl + +/usr/lib and /lib are not valid locations to search for startfiles, +especially as they come BEFORE the prefix locations. + +--- gcc/gcc.c ++++ gcc/gcc.c +@@ -1525,8 +1525,8 @@ static const char *gcc_libexec_prefix; + #endif + + static const char *const standard_exec_prefix = STANDARD_EXEC_PREFIX; +-static const char *const standard_exec_prefix_1 = "/usr/libexec/gcc/"; +-static const char *const standard_exec_prefix_2 = "/usr/lib/gcc/"; ++static const char *const standard_exec_prefix_1 = "@GENTOO_PORTAGE_EPREFIX@/usr/libexec/gcc/"; ++static const char *const standard_exec_prefix_2 = "@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/"; + static const char *md_exec_prefix = MD_EXEC_PREFIX; + + static const char *md_startfile_prefix = MD_STARTFILE_PREFIX; +diff --git a/a/gcc/config/darwin.h b/b/gcc/config/darwin.h +index 482cd4c..b971c64 100644 +--- gcc/config/darwin.h ++++ gcc/config/darwin.h +@@ -24,6 +24,15 @@ Boston, MA 02110-1301, USA. */ + #ifndef CONFIG_DARWIN_H + #define CONFIG_DARWIN_H + ++#undef STANDARD_STARTFILE_PREFIX ++#define STANDARD_STARTFILE_PREFIX "@GENTOO_PORTAGE_TPREFIX@/usr/lib" ++ ++#undef STANDARD_STARTFILE_PREFIX_1 ++#define STANDARD_STARTFILE_PREFIX_1 "@GENTOO_PORTAGE_TPREFIX@/lib" ++ ++#undef STANDARD_STARTFILE_PREFIX_2 ++#define STANDARD_STARTFILE_PREFIX_2 STANDARD_STARTFILE_PREFIX_1 ++ + /* The definitions in this file are common to all processor types + running Darwin, which is the kernel for Mac OS X. Darwin is + basically a BSD user layer laid over a Mach kernel, then evolved diff --git a/sys-devel/gcc-apple/files/gcc-apple-4.2.1-prefix-search-dirs.patch b/sys-devel/gcc-apple/files/gcc-apple-4.2.1-prefix-search-dirs.patch new file mode 100644 index 000000000000..2cd947b4e82f --- /dev/null +++ b/sys-devel/gcc-apple/files/gcc-apple-4.2.1-prefix-search-dirs.patch @@ -0,0 +1,27 @@ +In Prefix we are really self-providing, so don't look back! +Patch by Heiko Przybyl + +--- gcc/gcc.c ++++ gcc/gcc.c +@@ -1525,8 +1525,8 @@ static const char *gcc_libexec_prefix; + #endif + + static const char *const standard_exec_prefix = STANDARD_EXEC_PREFIX; +-static const char *const standard_exec_prefix_1 = "/usr/libexec/gcc/"; +-static const char *const standard_exec_prefix_2 = "/usr/lib/gcc/"; ++static const char *const standard_exec_prefix_1 = "@GENTOO_PORTAGE_EPREFIX@/usr/libexec/gcc/"; ++static const char *const standard_exec_prefix_2 = "@GENTOO_PORTAGE_EPREFIX@/usr/lib/gcc/"; + static const char *md_exec_prefix = MD_EXEC_PREFIX; + + static const char *md_startfile_prefix = MD_STARTFILE_PREFIX; +--- gcc/config/darwin.h ++++ gcc/config/darwin.h +@@ -1286,7 +1286,7 @@ void add_framework_path (char *); + } \ + } while (0) + +-#define SYSROOT_PRIORITY PREFIX_PRIORITY_FIRST ++#define SYSROOT_PRIORITY PREFIX_PRIORITY_LAST + /* APPLE LOCAL end isysroot 5083137 */ + + /* Every program on darwin links against libSystem which contains the pthread diff --git a/sys-devel/gcc-apple/files/gcc-apple-4.2.1-texinfo.patch b/sys-devel/gcc-apple/files/gcc-apple-4.2.1-texinfo.patch new file mode 100644 index 000000000000..f82fe60d2ee7 --- /dev/null +++ b/sys-devel/gcc-apple/files/gcc-apple-4.2.1-texinfo.patch @@ -0,0 +1,33 @@ +--- configure ++++ configure +@@ -3748,7 +3748,7 @@ + # For an installed makeinfo, we require it to be from texinfo 4.4 or + # higher, else we use the "missing" dummy. + if ${MAKEINFO} --version \ +- | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|[5-9])' >/dev/null 2>&1; then ++ | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|4\.[1-9][0-9]|[5-9])' >/dev/null 2>&1; then + : + else + MAKEINFO="$MISSING makeinfo" +--- gcc/configure.ac ++++ gcc/configure.ac +@@ -882,7 +882,7 @@ + # that we can use it. + gcc_AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version, + [GNU texinfo.* \([0-9][0-9.]*\)], +- [4.[4-9]*]) ++ [4.[4-9]*|4.[1-9][0-9]]) + if test $gcc_cv_prog_makeinfo_modern = no; then + MAKEINFO="$MISSING makeinfo" + AC_MSG_WARN([ +--- libgomp/configure.ac ++++ libgomp/configure.ac +@@ -135,7 +135,7 @@ + # that we can use it. + ACX_CHECK_PROG_VER([MAKEINFO], [makeinfo], [--version], + [GNU texinfo.* \([0-9][0-9.]*\)], +- [4.[4-9]*]) ++ [4.[4-9]*|4.[1-9][0-9]]) + AM_CONDITIONAL(BUILD_INFO, test $gcc_cv_prog_makeinfo_modern = "yes") + + diff --git a/sys-devel/gcc-apple/files/gcc-apple-4.2.1_p5666-darwin14.patch b/sys-devel/gcc-apple/files/gcc-apple-4.2.1_p5666-darwin14.patch new file mode 100644 index 000000000000..fb785b0ad9c4 --- /dev/null +++ b/sys-devel/gcc-apple/files/gcc-apple-4.2.1_p5666-darwin14.patch @@ -0,0 +1,148 @@ +https://537826.bugs.gentoo.org/attachment.cgi?id=394896 +https://bugs.gentoo.org/show_bug.cgi?id=537826 +Michael Weiser + +Backport of https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=218873 (as +per https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61407) to correctly encode Mac +OS X versions >10.9 into __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__. +Extended to also encode patch level the way clang and Apple GCC 4.2.1 do. + +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63810 has a much more generic +patch. But it's not yet in-tree pending legal paperwork. Once that's done, we +can backport that. + +--- gcc/libgcov.c ++++ gcc/libgcov.c +@@ -34,6 +34,14 @@ + #include "coretypes.h" + #include "tm.h" + ++/* to deal with XBC headers from 10.10 */ ++#ifndef __has_extension ++#define __has_extension(x) 0 ++#endif ++#ifndef __has_feature ++#define __has_feature(x) 0 ++#endif ++ + /* APPLE LOCAL begin instant off 6414141 */ + #if defined(__APPLE__) && !defined(__STATIC__) && !defined(__ppc__) && !defined(__ppc64__) && !defined(__arm__) + #include +--- gcc/config/darwin-driver.c.orig 2010-10-14 22:27:53.000000000 +0200 ++++ gcc/config/darwin-driver.c 2015-01-25 21:15:09.000000000 +0100 +@@ -174,8 +174,6 @@ + version_p = osversion + 1; + if (ISDIGIT (*version_p)) + major_vers = major_vers * 10 + (*version_p++ - '0'); +- if (major_vers > 4 + 9) +- goto parse_failed; + if (*version_p++ != '.') + goto parse_failed; + version_pend = strchr(version_p, '.'); +--- gcc/config/darwin-c.c.orig 2015-01-25 19:44:40.000000000 +0100 ++++ gcc/config/darwin-c.c 2015-01-25 21:05:47.000000000 +0100 +@@ -930,31 +930,91 @@ + + /* Return the value of darwin_macosx_version_min suitable for the + __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ macro, +- so '10.4.2' becomes 1042. ++ so '10.4.2' becomes 1042 and '10.10.2' becomes 101002. ++ Cap patch level to 9 in the old format. + Print a warning if the version number is not known. */ + static const char * + /* APPLE LOCAL ARM 5683689 */ + macosx_version_as_macro (void) + { +- static char result[] = "1000"; ++ static char result[7] = "1000"; ++ int inputindex = 3, outputindex = 2; + ++ /* make sure version starts with "10." - makes sure we can safely start ++ * parsing at inputindex == 3 */ + if (strncmp (darwin_macosx_version_min, "10.", 3) != 0) + goto fail; ++ ++ /* first character of minor version needs to be digit */ + if (! ISDIGIT (darwin_macosx_version_min[3])) + goto fail; +- result[2] = darwin_macosx_version_min[3]; +- if (darwin_macosx_version_min[4] != '\0') ++ ++ result[outputindex++] = darwin_macosx_version_min[inputindex++]; ++ ++ if (ISDIGIT (darwin_macosx_version_min[inputindex])) { ++ /* Starting with OS X 10.10, the macro ends '00' rather than '0', ++ i.e. 10.10.x becomes 101000 rather than 10100. */ ++ result[outputindex++] = darwin_macosx_version_min[inputindex++]; ++ result[4] = '0'; ++ result[5] = '0'; ++ result[6] = '\0'; ++ } ++ ++ /* if we're out of input, leave patch level at 0 or 00 and finish */ ++ if (darwin_macosx_version_min[inputindex] == '\0') ++ return result; ++ ++ /* a dot *must* follow now */ ++ if (darwin_macosx_version_min[inputindex++] != '.') ++ goto fail; ++ ++ /* a digit must follow after the dot */ ++ if (! ISDIGIT (darwin_macosx_version_min[inputindex])) ++ goto fail; ++ ++ /* old-style macro */ ++ if (outputindex == 3) ++ { ++ /* one-digit patch level */ ++ if (darwin_macosx_version_min[inputindex + 1] == '\0') + { +- if (darwin_macosx_version_min[4] != '.') +- goto fail; +- if (! ISDIGIT (darwin_macosx_version_min[5])) +- goto fail; +- if (darwin_macosx_version_min[6] != '\0') +- goto fail; +- result[3] = darwin_macosx_version_min[5]; ++ result[outputindex] = darwin_macosx_version_min[inputindex]; ++ return result; + } +- else +- result[3] = '0'; ++ ++ inputindex++; ++ if (! ISDIGIT (darwin_macosx_version_min[inputindex++])) ++ goto fail; ++ ++ /* three digits? */ ++ if (darwin_macosx_version_min[inputindex] != '\0') ++ goto fail; ++ ++ /* no room for another digit. Traditional Apple GCC 4.2.1 doesn't accept ++ * it but current clang caps it to 9. We choose to be in line with clang. */ ++ result[outputindex] = '9'; ++ return result; ++ } ++ ++ /* new-style macro */ ++ ++ /* leave a leading zero if only one digit is following */ ++ if (darwin_macosx_version_min[inputindex + 1] == '\0') { ++ result[outputindex + 1] = darwin_macosx_version_min[inputindex]; ++ return result; ++ } ++ ++ result[outputindex++] = darwin_macosx_version_min[inputindex++]; ++ ++ /* a digit must follow now */ ++ if (! ISDIGIT (darwin_macosx_version_min[inputindex])) ++ goto fail; ++ ++ result[outputindex] = darwin_macosx_version_min[inputindex++]; ++ ++ /* no more input allowed */ ++ if (darwin_macosx_version_min[inputindex] != '\0') ++ goto fail; + + return result; + diff --git a/sys-devel/gcc-apple/files/gcc-apple-4.2.1_p5666-perl-5.18.patch b/sys-devel/gcc-apple/files/gcc-apple-4.2.1_p5666-perl-5.18.patch new file mode 100644 index 000000000000..af3688aa48e5 --- /dev/null +++ b/sys-devel/gcc-apple/files/gcc-apple-4.2.1_p5666-perl-5.18.patch @@ -0,0 +1,11 @@ +--- a/contrib/texi2pod.pl ++++ b/contrib/texi2pod.pl +@@ -337,7 +337,7 @@ while(<$inf>) { + $_ = "\n=item $1\n"; + } + } else { +- $_ = "\n=item $ic\n"; ++ $_ = "\n=item Z\<\>$ic\n"; + $ic =~ y/A-Ya-y/B-Zb-z/; + $ic =~ s/(\d+)/$1 + 1/eg; + } diff --git a/sys-devel/gcc-apple/files/libstdc++-16.patch b/sys-devel/gcc-apple/files/libstdc++-16.patch new file mode 100644 index 000000000000..81d075bface7 --- /dev/null +++ b/sys-devel/gcc-apple/files/libstdc++-16.patch @@ -0,0 +1,11 @@ +--- libstdc++-v3/include/bits/c++config ++++ libstdc++-v3/include/bits/c++config +@@ -76,7 +76,7 @@ + } + namespace std + { +- using namespace __gnu_debug_def __attribute__ ((strong)); ++ using namespace __gnu_debug_def; + } + #else + # define _GLIBCXX_STD std diff --git a/sys-devel/gcc-apple/gcc-apple-4.2.1_p5666-r2.ebuild b/sys-devel/gcc-apple/gcc-apple-4.2.1_p5666-r2.ebuild new file mode 100644 index 000000000000..bd1d11209952 --- /dev/null +++ b/sys-devel/gcc-apple/gcc-apple-4.2.1_p5666-r2.ebuild @@ -0,0 +1,375 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" + +inherit eutils toolchain flag-o-matic autotools prefix + +GCC_VERS=${PV/_p*/} +APPLE_VERS="${PV/*_p/}.3" +DESCRIPTION="Apple branch of the GNU Compiler Collection, Developer Tools 4.0" +HOMEPAGE="https://gcc.gnu.org" +SRC_URI="http://www.opensource.apple.com/darwinsource/tarballs/other/gcc-${APPLE_VERS}.tar.gz + http://www.opensource.apple.com/darwinsource/tarballs/other/libstdcxx-16.tar.gz + http://www.opensource.apple.com/darwinsource/tarballs/other/libstdcxx-39.tar.gz + fortran? ( + mirror://gnu/gcc/gcc-4.2.4/gcc-fortran-4.2.4.tar.bz2 + https://dev.gentoo.org/~grobian/distfiles/${PN}-4.2.1_p5646-gfortran.patch + )" +LICENSE="GPL-2 GPL-3" + +SLOT="42" +KEYWORDS="~ppc-macos ~x64-macos ~x86-macos" +IUSE="bootstrap fortran nls +openmp objc objc++ +cxx" + +RDEPEND=">=sys-libs/zlib-1.1.4 + >=sys-libs/ncurses-5.2-r2 + nls? ( sys-devel/gettext ) + >=sys-devel/gcc-config-1.8-r1 + sys-libs/csu + !=dev-libs/gmp-4.2.1 + >=dev-libs/mpfr-2.2.0_p10 + )" +DEPEND="${RDEPEND} + >=sys-apps/texinfo-4.2-r4 + >=sys-devel/bison-1.875 + ${CATEGORY}/binutils-apple + >=dev-libs/mpfr-2.2.0_p10" + +S=${WORKDIR}/gcc-${APPLE_VERS} + +# TPREFIX is the prefix of the CTARGET installation +export TPREFIX=${TPREFIX:-${EPREFIX}} + +do_bootstrap() { + is_crosscompile && return 1 + [[ ${CHOST} != ${CBUILD} ]] && return 1 + [[ ${EPREFIX} != ${TPREFIX} ]] && return 1 + return 0 +} + +src_unpack() { + # override toolchain.eclass func + unpack ${A} +} + +src_prepare() { + # Support for fortran + if use fortran ; then + mv "${WORKDIR}"/gcc-4.2.4/gcc/fortran gcc/ || die + mv "${WORKDIR}"/gcc-4.2.4/libgfortran . || die + # from: substracted from http://r.research.att.com/tools/ + epatch "${DISTDIR}"/${PN}-4.2.1_p5646-gfortran.patch + fi + + # move in libstdc++ + case ${CHOST} in + *-darwin1*|i?86-*-darwin9|powerpc-*-darwin9) + LIBSTDCXX_APPLE_VERSION=39 + ;; + *) + # pre Leopard has no dtrace, which is required by 37.11 and above + # Leopard only has 32-bits version of dtrace + LIBSTDCXX_APPLE_VERSION=16 + ;; + esac + mv "${WORKDIR}"/libstdcxx-${LIBSTDCXX_APPLE_VERSION}/libstdcxx/libstdc++-v3 . + if [[ ${LIBSTDCXX_APPLE_VERSION} == 16 ]] ; then + epatch "${FILESDIR}"/libstdc++-${LIBSTDCXX_APPLE_VERSION}.patch # does it apply on 37? + sed -i -e 's/__block\([^_]\)/__blk\1/g' \ + libstdc++-v3/include/ext/mt_allocator.h \ + libstdc++-v3/src/mt_allocator.cc || die "conflict fix failed" + fi + + # we use our libtool + sed -i -e "s:/usr/bin/libtool:${EPREFIX}/usr/bin/${CTARGET}-libtool:" \ + gcc/config/darwin.h || die "sed gcc/config/darwin.h failed" + # add prefixed Frameworks to default search paths (may want to change this + # in a cross-compile) + sed -i -e "/\"\/System\/Library\/Frameworks\"\,/i\ \ \"${EPREFIX}/Frameworks\"\, " \ + gcc/config/darwin-c.c || die "sed gcc/config/darwin-c.c failed" + + # Workaround deprecated "+Nc" syntax for GNU tail(1) + sed -i -e "s:tail +16c:tail -c +16:g" \ + gcc/Makefile.in || die "sed gcc/Makefile.in failed." + + # default to AltiVec on PPC, like for older releases + epatch "${FILESDIR}"/${PN}-4.0.1_p5465-default-altivec.patch + + # support -arch XXX if XXX is actually what the toolchain targets because + # some upstreams insist on setting it + epatch "${FILESDIR}"/${PN}-4.2.1-arch-option.patch + + # dsymutil stuff breaks on 10.4/x86, revert it + [[ ${CHOST} == *86*-apple-darwin8 ]] && \ + epatch "${FILESDIR}"/${PN}-${GCC_VERS}-dsymutil.patch + + # support OS X 10.10 + epatch "${FILESDIR}"/${P}-darwin14.patch + + # bootstrapping might fail with host provided gcc on 10.4/x86 + if ! is_crosscompile && ! echo "int main(){return 0;}" | gcc -o "${T}"/foo \ + -mdynamic-no-pic -x c - >/dev/null 2>&1; + then + einfo "-mdynamic-no-pic doesn't work - disabling..." + echo "BOOT_CFLAGS=-g -O2" > config/mh-x86-darwin + XD=gcc/config/i386/x-darwin + awk 'BEGIN{x=1}{if ($0 ~ "use -mdynamic-no-pic to build x86") + {x=1-x} else if (x) print}' $XD > t && mv t $XD \ + || die "Failed to rewrite $XD" + fi + + epatch "${FILESDIR}"/${P}-perl-5.18.patch + + epatch "${FILESDIR}"/${PN}-4.2.1-prefix-search-dirs-r1.patch + eprefixify "${S}"/gcc/gcc.c + sed -i -e "s|@GENTOO_PORTAGE_TPREFIX@|${TPREFIX}|g" "${S}"/gcc/config/darwin.h + + if use !bootstrap ; then + # this only occurs with up-to-date tools from the Prefix, and actually + # breaks the bootstrap since the autoconf needs a very recent automake + epatch "${FILESDIR}"/${PN}-${GCC_VERS}-texinfo.patch + epatch "${FILESDIR}"/${PN}-${GCC_VERS}-autoconf-m4-precious.patch + cd "${S}"/gcc && eautoconf + cd "${S}"/libgomp && eautoconf + fi + + local BRANDING_GCC_PKGVERSION="$(sed -n -e '/^#define VERSUFFIX/s/^[^"]*"\([^"]\+\)".*$/\1/p' "${S}"/gcc/version.c)" + BRANDING_GCC_PKGVERSION=${BRANDING_GCC_PKGVERSION/(/(Gentoo ${PVR}, } + einfo "patching gcc version: ${GCC_VERS}${BRANDING_GCC_PKGVERSION}" + + sed -i -e "s~VERSUFFIX \"[^\"]*~VERSUFFIX \"${BRANDING_GCC_PKGVERSION}~" \ + "${S}"/gcc/version.c || die "failed to update VERSUFFIX with Gentoo branding" + sed -i -e 's~developer\.apple\.com\/bugreporter~bugs\.gentoo\.org\/~' \ + "${S}"/gcc/version.c || die "Failed to change the bug URL" + + # fix the install_names of all shared libraries for the target + # NOTE: do this after any automake-ing! + # Yes, patching generated files is bad. Talk to me once you've found a way to do this inside automake. + sed -i -e "s|-install_name \$(slibdir)|-install_name ${TPREFIX}/usr/${CTARGET}/lib/gcc|" "${S}"/gcc/config/t-slibgcc-darwin + sed -i -e "s|-rpath \$(toolexeclibdir)|-rpath ${TPREFIX}/usr/${CTARGET}/lib/gcc|" \ + "${S}"/{libgomp,libstdc++-v3/src,libstdc++-v3/libsupc++}/Makefile.in +} + +src_configure() { + local langs="c" + use cxx && langs="${langs},c++" + use objc && langs="${langs},objc" + use objc++ && langs="${langs/,objc/},objc,obj-c++" # need objc with objc++ + use fortran && langs="${langs},fortran" + + LIBPATH=${EPREFIX}/usr/lib/gcc/${CTARGET}/${GCC_VERS} + if is_crosscompile ; then + BINPATH=${EPREFIX}/usr/${CHOST}/${CTARGET}/gcc-bin/${GCC_VERS} + else + BINPATH=${EPREFIX}/usr/${CTARGET}/gcc-bin/${GCC_VERS} + fi + STDCXX_INCDIR=${LIBPATH}/include/g++-v${GCC_VERS/\.*/} + + local myconf="${myconf} \ + --prefix=${EPREFIX}/usr \ + --bindir=${BINPATH} \ + --includedir=${LIBPATH}/include \ + --datadir=${EPREFIX}/usr/share/gcc-data/${CTARGET}/${GCC_VERS} \ + --mandir=${EPREFIX}/usr/share/gcc-data/${CTARGET}/${GCC_VERS}/man \ + --infodir=${EPREFIX}/usr/share/gcc-data/${CTARGET}/${GCC_VERS}/info \ + --with-gxx-include-dir=${STDCXX_INCDIR} \ + --host=${CHOST} \ + --enable-version-specific-runtime-libs" + + if is_crosscompile ; then + # Straight from the GCC install doc: + # "GCC has code to correctly determine the correct value for target + # for nearly all native systems. Therefore, we highly recommend you + # not provide a configure target when configuring a native compiler." + myconf="${myconf} --target=${CTARGET}" + + # Tell compiler where to find what it needs + myconf="${myconf} --with-sysroot=${EPREFIX}/usr/${CTARGET}" + + # Set this to something sane for both native and target + CFLAGS="-O2 -pipe" + + local VAR="CFLAGS_"${CTARGET//-/_} + CXXFLAGS=${!VAR} + fi + [[ -n ${CBUILD} ]] && myconf="${myconf} --build=${CBUILD}" + + # Native Language Support + if use nls ; then + myconf="${myconf} --enable-nls --without-included-gettext" + else + myconf="${myconf} --disable-nls" + fi + + # reasonably sane globals (hopefully) + myconf="${myconf} \ + --with-system-zlib \ + --disable-checking \ + --disable-werror" + + # ??? + myconf="${myconf} --enable-shared --enable-threads=posix" + + # make clear we're in an offset + use prefix && myconf="${myconf} --with-local-prefix=${TPREFIX}/usr" + + do_bootstrap || myconf="${myconf} --disable-bootstrap" + + # we don't use a GNU linker, so tell GCC where to find the linker stuff we + # want it to use + myconf="${myconf} \ + --with-as=${EPREFIX}/usr/bin/${CTARGET}-as \ + --with-ld=${EPREFIX}/usr/bin/${CTARGET}-ld" + + # make sure we never do multilib stuff, for that we need a different Prefix + [[ -z ${I_KNOW_WHAT_IM_DOING_I_WANT_APPLE_MULTILIB} ]] \ + && myconf="${myconf} --disable-multilib" + + myconf="${myconf} --enable-languages=${langs} $(use_enable openmp libgomp)" + + # The produced libgcc_s.dylib is faulty if using a bit too much + # optimisation. Nail it down to something sane + CFLAGS="-O2 -pipe" + CXXFLAGS=${CFLAGS} + + # https://gcc.gnu.org/ml/gcc-patches/2006-11/msg00765.html + # (won't hurt if already 64-bits, but is essential when coming from a + # multilib compiler -- the default) + [[ ${CTARGET} == powerpc64-* || ${CTARGET} == x86_64-* ]] && \ + export CC="${CC:-$(tc-getCC)} -m64" + + # Clang on OSX defaults to c99 mode, while GCC defaults to gnu89 + # (C90 + extensions). This makes Clang barf on GCC's sources, so + # work around that. Bugs #491098, #574736 + export CC="${CC:-$(tc-getCC)} -std=gnu89" + + mkdir -p "${WORKDIR}"/build + cd "${WORKDIR}"/build + einfo "Configuring GCC with: ${myconf//--/\n\t--}" + "${S}"/configure ${myconf} || die "conf failed" +} + +src_compile() { + cd "${WORKDIR}"/build || die + if ! do_bootstrap; then + GCC_MAKE_TARGET=${GCC_MAKE_TARGET-all} + else + GCC_MAKE_TARGET=${GCC_MAKE_TARGET-bootstrap} + fi + emake ${GCC_MAKE_TARGET} || die "emake failed" +} + +src_install() { + cd "${WORKDIR}"/build + # -jX doesn't work + emake -j1 DESTDIR="${D}" install || die + + # Punt some tools which are really only useful while building gcc + find "${ED}" -name install-tools -prune -type d -exec rm -rf "{}" \; + # This one comes with binutils + find "${ED}" -name libiberty.a -exec rm -f "{}" \; + + # Basic sanity check + if ! is_crosscompile ; then + local EXEEXT + eval $(grep ^EXEEXT= "${WORKDIR}"/build/gcc/config.log) + [[ -r ${D}${BINPATH}/gcc${EXEEXT} ]] || die "gcc not found in ${ED}" + fi + + # create gcc-config entry + dodir /etc/env.d/gcc + local gcc_envd_base="/etc/env.d/gcc/${CHOST}-${GCC_VERS}" + + gcc_envd_file="${ED}${gcc_envd_base}" + + # phase PATH/ROOTPATH out ... + echo "PATH=\"${BINPATH}\"" > ${gcc_envd_file} + echo "ROOTPATH=\"${BINPATH}\"" >> ${gcc_envd_file} + echo "GCC_PATH=\"${BINPATH}\"" >> ${gcc_envd_file} + + # we don't do multilib + LDPATH="${LIBPATH}" + echo "LDPATH=\"${LDPATH}\"" >> ${gcc_envd_file} + echo "MANPATH=\"${EPREFIX}/usr/share/gcc-data/${CHOST}/${GCC_VERS}/man\"" >> ${gcc_envd_file} + echo "INFOPATH=\"${EPREFIX}/usr/share/gcc-data/${CHOST}/${GCC_VERS}/info\"" >> ${gcc_envd_file} + echo "STDCXX_INCDIR=\"g++-v${GCC_VERS/\.*/}\"" >> ${gcc_envd_file} + is_crosscompile && echo "CTARGET=${CTARGET}" >> ${gcc_envd_file} + + # Move to compiler-specific directories + [[ -f ${D}${STDCXX_INCDIR}/cxxabi.h ]] && \ + mv -f "${D}"${STDCXX_INCDIR}/cxxabi.h "${D}"${LIBPATH}/include/ + + # These should be symlinks + dodir /usr/bin + cd "${D}"${BINPATH} + for x in cpp gcc g++ c++ g77 gcj gcjh gfortran ; do + # For some reason, g77 gets made instead of ${CTARGET}-g77... + # this should take care of that + [[ -f ${x} ]] && mv ${x} ${CTARGET}-${x} + + if [[ -f ${CTARGET}-${x} ]] && ! is_crosscompile ; then + ln -sf ${CTARGET}-${x} ${x} + + # Create version-ed symlinks + dosym ${BINPATH#${EPREFIX}}/${CTARGET}-${x} \ + /usr/bin/${CTARGET}-${x}-${GCC_VERS} + dosym ${BINPATH#${EPREFIX}}/${CTARGET}-${x} \ + /usr/bin/${x}-${GCC_VERS} + fi + + if [[ -f ${CTARGET}-${x}-${GCC_VERS} ]] ; then + rm -f ${CTARGET}-${x}-${GCC_VERS} + ln -sf ${CTARGET}-${x} ${CTARGET}-${x}-${GCC_VERS} + fi + done + + # I do not know if this will break gcj stuff, so I'll only do it for + # objc for now; basically "ffi.h" is the correct file to include, + # but it gets installed in .../GCCVER/include and yet it does + # "#include " which (correctly, as it's an "extra" file) + # is installed in .../GCCVER/include/libffi; the following fixes + # ffi.'s include of ffitarget.h - Armando Di Cianno + if [[ -d ${D}${LIBPATH}/include/libffi ]] ; then + mv -i "${D}"${LIBPATH}/include/libffi/* "${D}"${LIBPATH}/include || die + rm -r "${D}"${LIBPATH}/include/libffi || die + fi + + # Now do the fun stripping stuff + env RESTRICT="" CHOST=${CHOST} prepstrip "${D}${BINPATH}" + env RESTRICT="" CHOST=${CTARGET} prepstrip "${D}${LIBPATH}" + # gcc used to install helper binaries in lib/ but then moved to libexec/ + [[ -d ${ED}/usr/libexec/gcc ]] && \ + env RESTRICT="" CHOST=${CHOST} prepstrip "${ED}/usr/libexec/gcc/${CTARGET}/${GCC_VERS}" + + # prune empty dirs left behind + find "${ED}" -type d | xargs rmdir >& /dev/null + + # The gcc runtime libs have an invalid install_name; this is correct, + # as they are copied to the right location by gcc-config later. + QA_IGNORE_INSTALL_NAME_FILES=() + pushd "${ED}/usr/lib/gcc/${CTARGET}/${GCC_VERS}" > /dev/null + for file in *.dylib; do + QA_IGNORE_INSTALL_NAME_FILES+=( "${file}" ) + done + popd > /dev/null +} + +pkg_postinst() { + # beware this also switches when it's on another branch version of GCC + gcc-config ${CTARGET}-${GCC_VERS} +} + +pkg_postrm() { + # clean up the cruft left behind by cross-compilers + if is_crosscompile ; then + if [[ -z $(ls "${EROOT}"/etc/env.d/gcc/${CTARGET}* 2>/dev/null) ]] ; then + rm -f "${EROOT}"/etc/env.d/gcc/config-${CTARGET} + rm -f "${EROOT}"/etc/env.d/??gcc-${CTARGET} + rm -f "${EROOT}"/usr/bin/${CTARGET}-{gcc,{g,c}++}{,32,64} + fi + return 0 + fi +} diff --git a/sys-devel/gcc-apple/metadata.xml b/sys-devel/gcc-apple/metadata.xml new file mode 100644 index 000000000000..eb4d397c67f0 --- /dev/null +++ b/sys-devel/gcc-apple/metadata.xml @@ -0,0 +1,13 @@ + + + + + prefix@gentoo.org + Gentoo Prefix + + + Build support for the Objective C code language + Build support for the Objective C++ language + Run the testsuite and install the results (requires FEATURES=test) + + -- cgit v1.2.3