Update darwin14 patch with much better approach by Michael Weisner, not revbumping...
authorFabian Groffen <grobian@gentoo.org>
Sat, 31 Jan 2015 16:15:27 +0000 (16:15 +0000)
committerFabian Groffen <grobian@gentoo.org>
Sat, 31 Jan 2015 16:15:27 +0000 (16:15 +0000)
Package-Manager: portage-2.2.14-prefix/cvs/SunOS i386
Manifest-Sign-Key: 0x5F75F607C5C74E89

sys-devel/gcc-apple/ChangeLog
sys-devel/gcc-apple/Manifest
sys-devel/gcc-apple/files/gcc-apple-4.2.1_p5666-darwin14.patch
sys-devel/gcc-apple/gcc-apple-4.2.1_p5666-r2.ebuild

index 3bbafdf7e050d5306a0057e4fc0452923f65d726..c61e480da7e151a28d2febe99e60deafcd1a757e 100644 (file)
@@ -1,6 +1,11 @@
 # ChangeLog for sys-devel/gcc-apple
-# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc-apple/ChangeLog,v 1.30 2014/11/23 15:37:36 redlizard Exp $
+# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc-apple/ChangeLog,v 1.31 2015/01/31 16:15:23 grobian Exp $
+
+  31 Jan 2015; Fabian Groffen <grobian@gentoo.org>
+  files/gcc-apple-4.2.1_p5666-darwin14.patch, gcc-apple-4.2.1_p5666-r2.ebuild:
+  Update darwin14 patch with much better approach by Michael Weisner, not
+  revbumping because darwin14 bootstrapping should be broken anyway
 
   23 Nov 2014; redlizard <redlizard@gentoo.org> gcc-apple-4.2.1_p5666-r2.ebuild:
   Change the portage-2.2.14 dependency to a blocker, as the upgrade needs to
index 75f86c7dd329b1338ed11f1bcd5f68dcf720008d..e3e001589cac910583ca7aaf87779c094554092e 100644 (file)
@@ -9,7 +9,7 @@ AUX gcc-apple-4.2.1-prefix-search-dirs-r1.patch 1587 SHA256 87cc753a3e125a04e2a3
 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_p5646-gfortran.patch 38284 SHA256 c909a792b4e3ea76cbba6d8aefd712ef98506bd4e3dd275a144e5ed272c2ae22 SHA512 94b1c7d343b780e52bbbbc213987feda7d8f7e083d7c338ab244e89e69ba5c2fc74a9695c5f38f273e4e50683ef67b4de85abd4aa0c5c2fe3a28f7bf275dbf3a WHIRLPOOL 12da437da136b1d581b075b86d7a1ae8687e56fd811e0fc4b650faf2831746466358d63d34309bee9ab4254dff4f861685ecb0f5a20697ad7e77afc7cd0d7ef4
-AUX gcc-apple-4.2.1_p5666-darwin14.patch 1615 SHA256 e5db53a1da107d1dc621823f45526fe9662af1d1151b378aa58e66b609236faa SHA512 0b074fe56a332c0180e474e5c55c0e09d201173a2cc95d3bd8411a18be3d165f2073c2d169f40875378cc2e3386417ea75c4505cbe9bbabb802adec0969bf048 WHIRLPOOL 6742858760fbba68a4e5b50a46fe505ce46220f13a0f73ebb8306923b75ca79027aee87f83f4070205ae74416764b9bf4d34b8b01f02522fba1e9566f538bd32
+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-5493.tar.gz 40601890 SHA256 acdb2cc0abf049bfda433806fc82e235c6b6c5f86a0e8fd54f62ed3a8606452f SHA512 a874134e9fb11131d958c475a8d9ffeb659b30509e11b47d80b2d1bf6d1f9ec0dbbd338ff5754dc8dece7af8b486d554860469d240eb37dd480ede9fd6afc8fc WHIRLPOOL 327c554ebdd8b23392264fc4d5b00ad5eec4b4888c952051ef84d11f18bee463ff4b87711ddd8ce14708aa0fcb57209043d6d27973dda4f8dcb7ba14590b70a3
@@ -21,23 +21,13 @@ DIST libstdcxx-39.tar.gz 117081330 SHA256 aad6c0b7aa80b8117af1868d502f7aa4d042e5
 EBUILD gcc-apple-4.0.1_p5493.ebuild 8517 SHA256 9f17bcf4111fe9902d1625ba8193280900bbcb1858a3c278f6291999d83e1fb1 SHA512 a9061fce5774c510eacafbe0b5e455e97739a033028466fca2d5d31e9440b817816dba7df0f77d814169320ebd63127acb8f07575e3d50399758f77251951c9a WHIRLPOOL 08aa902370b077273ad92797a10a8082abf115b0c0ecc332beaeb101349975e6d1eda7aa57b4e252e210218a2c9a294985be4f3ad621bb6af40965d359d98457
 EBUILD gcc-apple-4.2.1_p5664.ebuild 11425 SHA256 68c7ab815bd8a1bbce1868fb62e026e6efd0bf1be4b5c8225e668ca0841af9dd SHA512 a661f92a526bf05883b84e417274536a577a56e7afddc8da91dbcf742479db0ad7ad28b4ce77d74fc6306f49b2ae1cf6acf011434c52c87b07c6e44704bd19a6 WHIRLPOOL 75404be35a5330e733822e58a51b8c5b26e54404b34f320dd1ff48a568ed898d6b33379dc104345288190d9b3c4c2350976488627b2a31cc2340dd71d3623dd5
 EBUILD gcc-apple-4.2.1_p5666-r1.ebuild 11832 SHA256 ded4d20283fd311db89e1b39ce8af5451366a2970225e9f83a751d21d444a999 SHA512 7ec067a697f7884152d798278c5079dfd19b1450895e9e9cf37eac00cc0b629a6ade3a9f0684ffca7f48dff73901b5b3111e4d35007906bc0e999f28dafbc956 WHIRLPOOL ef6b4a04c97adfe4cb2b28ca21ce13d787160376c18e1c0adba0b12ec11b49e972b09e0333d88dedce5d43ba65731d3fe4d158c1c6ad70cd2c4ce382412a28bb
-EBUILD gcc-apple-4.2.1_p5666-r2.ebuild 13092 SHA256 ff6d23d1c97716472d649ec15d0d6ded0db98837ab1b87bb18ebfb5d18f9ada9 SHA512 2584a436fffb4add0c3b72b8dd536b97bb27d71166ddb2adec0c82d101fc20bb60cc0c40b1327569190e3450a500161a41e278ae68396e100c8b57c74c03873b WHIRLPOOL ac557684c310d14922c1a915177402cf70e6237bdfc8b8406aa5a46d48751099bfa61a8c7aa4a50196ff77d5119697d8f96baf62e34cbfc4547885e0cf39973a
-MISC ChangeLog 15086 SHA256 37d10e10186f285e6c502e53a7af7d328ea5cbc9e643b963656e2fa5cb35e8c4 SHA512 c82021af4b734b7dd2fee289c835f7d13aa9f2b891f3145ef741602727f251ecc711c020986c6d31901856e20ab649647b57ab82291d682f7a4221ba3712c2c7 WHIRLPOOL e40ae8e93453c87a6c9a8bd2e054271c9bb88497668c979b6341b5616f2c15302f5b636f1d08d2bc07ab68c76fc1c5182a1fd761e358a2d20eae4857b1442a9f
+EBUILD gcc-apple-4.2.1_p5666-r2.ebuild 13047 SHA256 4e9d89417e0e5a15a1020f2d775329d2ee8e3850ec2373526a5c93bac0aff48a SHA512 481acb8c6607bcedf73ea933f7f5cbbc54906c0f62f4e3087f98dd7be996a897f3eb492b8c411148d0020c5b54882e332ee883348fb778af5e82f3312839ed51 WHIRLPOOL c291bbc7e6962aff1d8a19100be2617a1eac2b2658fa303365fa74cb0babc2594ab6c3fd21b2a8e57e915836b0a64140f9ee10ce92e7b071c8e510fb0b04f496
+MISC ChangeLog 15357 SHA256 6e2e08f391d298732348f05fb8fddad8c60f230ba69c3e33fc7dfffd5f0147cf SHA512 064619dabea75762d1c0ca0bb513a21d3da59ed2d3a0aab5ae1a8742d7a00912305d4d43eff9f11326531fbf591e1e671396a3067ad374dc8a63416ea7a882a3 WHIRLPOOL 787900a2a52b092392bd5e329a447da2c3db816990359fd87b8fb22a59286d19dc0283c2174130e3a2fe7c3c81a52e336340d62c325f57e00a53bd6958986f6b
 MISC metadata.xml 440 SHA256 fe55903cd5820f6651e134125cfc4eeadb1322a6a06e286a246ef0f70c55c517 SHA512 de8914eff3416b04021370098faa2df5d7c204119c6ba848ed89182549b200767b54ae45e9d4155cdcead8a9535a09e9d090f30c64554952f3de99885daab161 WHIRLPOOL e5120c4e39ad83dcaeab7fd820669e9be727cc9c4aafa05a7fc7f2541a7e3485f49ffc04b66092c355300f42a5cc9179187cd72806053be128abe20284dbd3ac
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
-iQIcBAEBCAAGBQJUcf9GAAoJEMcu9QQQ+wFrGAMP/RDiowOctykIy4QrEnhv0g3n
-R/sTwDSaBhg1MR5fDg7OP9TrRpLG39v2v2WPUKAH8erecRWLYRn+5GEeElEcprnA
-r0rDLDuzGYreZYaGhNMnjUztkJ9sCwubwf7ITe7WxT7oYIIhqmBudDHIbFRTINTg
-019MU6NorHlOkuH1g8Esy7Uqrbl6OeNJm28tV/k1LSUMxyebtWbt1Up3JNCNVKQi
-1qYpzB8iP73jjTo704gkc41EwHbOANec9v9mUneoPCqjMIN1Q6McV7rAQ6sjsYUc
-Mx7F1HFtPVB4t37lORl/ZAxdRcPkd2ryql518hPeEzIHh3HONblOhTJ/MHufe5T/
-scP1mMpTNqWW+nmaKk/HQHIURNp5ZUoJEP2GTurMhN6OexHVSmP3ZBzzJcbl6Ic0
-RFn0DzZLm16xiMMD10ZFWi/KH8fiic9jBpnVxwYNqzNyxRbh0Hs3srkQenqsdbwi
-ITLCKpPzCxGeW1MVNKlZF1RYnrhGefiY5/j37nBi8QEU2IYUpDMWjzWxKetBDbgJ
-O/sF0MEt9966KRY0vJEX7LoKFNx+pUDdsx+GfE77TBoe/0ZJk1s4LwLOkUA6mSd3
-mQh6akNgd0YbPS6u0QVk1hM60tLxJPd6elkATKWwjZQV+9yuMJq3QU8slwJiviTz
-5XDtm+gJVh40up9aeGmr
-=odGP
+iEYEAREIAAYFAlTM/50ACgkQX3X2B8XHTol04QCeMFMsQjF4zC8xzEmzo6NZ07cv
+/cgAn3oXu1ark9IPl2vs9FzLKKt6KsSA
+=LsEk
 -----END PGP SIGNATURE-----
index a06c78365578da4cf8c4ac7beacc6aad5b26aca2..fb785b0ad9c4c220fa363f1c512db4a67dde8961 100644 (file)
@@ -1,43 +1,16 @@
-Darwin 14 is 10.10, but the encoding scheme doesn't allow this, so
-encode everything from Darwin 14 and up as 10.9.
+https://537826.bugs.gentoo.org/attachment.cgi?id=394896
+https://bugs.gentoo.org/show_bug.cgi?id=537826
+Michael Weiser
 
-Darwin 14 has some newer preprocessor stuff in its headers, work around
-that.
+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/config/darwin-c.c
-+++ gcc/config/darwin-c.c
-@@ -945,6 +945,11 @@
-   result[2] = darwin_macosx_version_min[3];
-   if (darwin_macosx_version_min[4] != '\0')
-     {
-+      if (ISDIGIT(darwin_macosx_version_min[4]))
-+        {
-+                result[2] = '9';  /* latest version we can encode */
-+                result[3] = '0';
-+        } else {
-       if (darwin_macosx_version_min[4] != '.')
-       goto fail;
-       if (! ISDIGIT (darwin_macosx_version_min[5]))
-@@ -952,6 +956,7 @@
-       if (darwin_macosx_version_min[6] != '\0')
-       goto fail;
-       result[3] = darwin_macosx_version_min[5];
-+        }
-     }
-   else
-     result[3] = '0';
---- gcc/config/darwin-driver.c
-+++ gcc/config/darwin-driver.c
-@@ -174,8 +174,8 @@
-   version_p = osversion + 1;
-   if (ISDIGIT (*version_p))
-     major_vers = major_vers * 10 + (*version_p++ - '0');
-   if (major_vers > 4 + 9)
--    goto parse_failed;
-+    major_vers = 4 + 9;
-   if (*version_p++ != '.')
-     goto parse_failed;
-   version_pend = strchr(version_p, '.');
 --- gcc/libgcov.c
 +++ gcc/libgcov.c
 @@ -34,6 +34,14 @@
@@ -55,3 +28,121 @@ that.
  /* APPLE LOCAL begin instant off 6414141 */
  #if defined(__APPLE__) && !defined(__STATIC__) && !defined(__ppc__) && !defined(__ppc64__) && !defined(__arm__)
  #include <vproc.h>
+--- 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;
+ 
index 50c104a9a85d8f7696dd2c7f30b816a9531ba6a5..17f18efe1de97ded6f874849d60d3d57624ec78c 100644 (file)
@@ -1,6 +1,6 @@
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc-apple/gcc-apple-4.2.1_p5666-r2.ebuild,v 1.2 2014/11/23 15:37:36 redlizard Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc-apple/gcc-apple-4.2.1_p5666-r2.ebuild,v 1.3 2015/01/31 16:15:23 grobian Exp $
 
 EAPI="3"
 
@@ -119,9 +119,8 @@ src_prepare() {
        [[ ${CHOST} == *86*-apple-darwin8 ]] && \
                epatch "${FILESDIR}"/${PN}-${GCC_VERS}-dsymutil.patch
 
-       # Pseudo-support OS X 10.10
-       [[ ${CHOST} == *-darwin14 ]] && \
-               epatch "${FILESDIR}"/${P}-darwin14.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 \