AUX 1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch 551 SHA256 dc17421bd12e4df5fed2fb1d113c9a8ca691b127631c48350aea1801c52360f1 SHA512 bdac189cbee2e4e91594bc8ea13f2477c3ab0dabec5a44bacf7a021f26d03ad5ceb813ffb38956b8a56e0791fc54c6396a909b9b40232476dd4cd6e0ee908bc0 WHIRLPOOL 035261b0659bdeeb24f6d45959dd1e218cde84dc6ded8d2ee8f9032b2311f7b5f32c6446f25aa81d6e80702d26ef8d4785e21e987282af737f6c9dfc57aa5bcf
AUX 1.9-scripts-location.patch 394 SHA256 d02ef738b6c82a7a671b50bdc5dc623887e97c3cb033c11ea997b88e6ccb8bdc SHA512 4566ff947ad79c1ab71fbe5999f262d045271e4ae30962ff93de0bf58d592b2d20b996ae6f6fea2139eeb2391fb33357ec9ecde2e600bad593901b391918d1f7 WHIRLPOOL 963306d68bb5d82d13da54452cbc824c82c1e45aa8eb9ff5dff8bc702b789dfbdb1f6b25daa2f40876a6dbf53a38dc61251dbb2386feb2abb38f64e6652aa239
AUX 2.3-21_all_distutils_c++.patch 14825 SHA256 99fc72d254a903a5445c991ac5e1f7ab95d1df6dde684250e145bd908131ebda SHA512 8b53016ae48cae39e9fee030fa18b9cebb72bf72b180be1a0a605a97ab6a0ad62d32317f459728a324f83179ec624885bd3cbe61ac0b5594690cca0c0e74c76e WHIRLPOOL 6718f3e998f0d7174e7088881c74d0e2063e935b5610e076eaf2233ee84f6478c0a1689f5d01de9aeb8f53a97ed73fb4957de16be4adc83045b21c48b93e8646
+AUX 2.5.0_all_distutils_cxx.patch 14852 SHA256 a920ec04b26cbcead3eea89e2b437be3ca70a5229d3da6ae8a56ea8f1047ff84 SHA512 0b1ec90e1603b0a2af000a43990df0a577ef79700c9707851b82b676531caec9b2f9c9b2c144724e4898dc1d7ea1d5779e932d01a18eaa2d4d9086e2a1b0c7f8 WHIRLPOOL e9648f08f8616fcad2fe2ce1788627adfa1aeb89b3f8b5d2857a73da987b2385ab467b3b3b576e82b02d3beafa4a62b217b7f90b59ed0332f325ebada0337f4e
DIST pypy-2.3.1-src.tar.bz2 15225332 SHA256 3fd10d97c0177c33ed358a78eb26f5bf1f91b266af853564b1a9d8c310a1e439 SHA512 86aab86c5f413cdd6a56680915605de5c1416255b43a8dce1b4dcf8f1febdb3275076a4a9c7de30002387d59e4171a52da2528436eb205d8d947de7edd049c65 WHIRLPOOL c78d41240f1803d9461f797fd0ef647a40a6990a4e3a504e80a0eaaf460d052bb60fe6240cacdb3ee8737500c9c7f418b1d55c619d01ac7b73aace3d82157aa6
DIST pypy-2.4.0-src.tar.bz2 15495214 SHA256 38810007aee4885ca0703b566db6594dd7649adaaa287df7a1012f10e067740f SHA512 91b41ed80a6ff0d7b2b134a7802f098de35ffd2068dc3e477d27b0bc821c6d329eb8bcad4db4a5ff9ff429830d4abfbeb435a2a2d2d9bbc2c36f2d21af0b2e0c WHIRLPOOL affb14b805b2dcb8b579dd421bfb8276e80d3b31cea41bf57ad5dd9260e2e27d838b0303e4a3af5ca38b0b4f08ac88b142d6f1db20753bec6f8cbfdfc482099b
+DIST pypy-2.5.1-src.tar.bz2 16740876 SHA256 ddb3a580b1ee99c5a699172d74be91c36dda9a38946d4731d8c6a63120a3ba2a SHA512 ac4cab47566d7d4e1a293a680e0dffa301c99a8329c2e68f645f186c0266cbe8f045a03e392c0cc2112a16178037cd978b7867ad073bf5dd957dd19f4c818067 WHIRLPOOL 6f16c4090780081dfe1d4642186262c66d4ac1a4b3b8311e573bfa6029eb7aac0483b3e48cad5ce03879391a4e316c0186d33fac5e86d0024ff20cc6d4dc0dd3
DIST pypy-bin-2.3.1-r1-amd64+bzip2+jit+ncurses+shadowstack.tar.xz 10724632 SHA256 e897fce8057d6ffd8a8f66ddd3736d82c4edae9e30bf0622b5695c083a5f249d SHA512 b3b9ccb63bf2922c734874d745a40c49d5af1e9d9a3a1188c31040fef20faf4fdc00ac1be90ed35848e09bf86dfe5552a720b7c5c4d845777fc85479b515dac6 WHIRLPOOL 583864f5923dc0e0ee59e2397d1ed0f7ecd027605470bb2462f70b40338167f932a235fc40bf0b7349d9facdb7b1a07d86ff46ccc296acc3bb0f21cf7f8709e9
DIST pypy-bin-2.3.1-r1-amd64+bzip2+jit+ncurses.tar.xz 12234132 SHA256 2169569b4f85869607d4ba7fa57852f954815a9bbb344da4fa842fbc59e4081a SHA512 7484fa22d79dfb1970c926fa27579184f3a38548d8072c49f239f31a8dc5549786776c27c0aa28583736f144e16ea0edb6fb8be81c0e394af783c6916e775cc1 WHIRLPOOL 3b1124526531cbf86e503933e8294ad7d11cb0993c1d103c59ced46830323e7e7c540194a13880d46b730e7b6498b1b48a1a902766948d28379ccf1020f05f35
DIST pypy-bin-2.3.1-r1-amd64+bzip2+ncurses.tar.xz 6893836 SHA256 e547e1c5674e53e955373f44ab2ef7ef81f0f3f27240070e634c72b666428456 SHA512 5cb35f6a88aea9e92a8bbbdd873235e8b0b5bcce52d749dd80f68ddb7127eae27122ece74e13c4a2360a0dd65449fa7207a5279f0195732946f7ce8f8aa54142 WHIRLPOOL 4eaa864a456fc29a3731801901f93b62b559eb1bd5867f790840f8f8de1c98fa63bc17bd3dec0f9de82d8f639c2ecf8d3831555503c0089a727ff820c525b24a
DIST pypy-bin-2.4.0-x86+bzip2+jit+ncurses+sse2.tar.xz 9511800 SHA256 5178ce53d9da16a0d989797dd909677aaec4a8d4a936a4d27d8be1ea248489d9 SHA512 4910c72ea0b0849245657772eebfc598779f4a3eb077cec7d6e735c8aae3564ab064f9462fb0576f18792df2459d6c8f372578803497a83e4525671ffe0f8054 WHIRLPOOL 1ae421817e5f5f30ae7e9c446b4afe024de7d271a4fd8185002240e942c96dae93d45e80f6fe794dcb4a1c542a5b2ba76ab1ee81702e501de53861901ba7092b
DIST pypy-bin-2.4.0-x86+bzip2+ncurses+sse2.tar.xz 5655980 SHA256 fcfbd71b903e9c6a26cd6590090d8d0c2f8c507e9f4650f7972f36a8ef86fcc6 SHA512 45d71f2d785a65091c9f25376bcb2f7f7e02cf1f00111fcb4b0a3bf0fc5e56947be7f66f5281744de31424f9e0b7249523a4bcd5fec7bf4f3c829b66598b02af WHIRLPOOL a9fef84296f9e77062b0e0cb17537615a02f3ba7d0ed804cf63cce9baf7c1ab843b326301bde5e5a33744b716ea0efd4619e9ba55c0387acfa1622aa11b875de
DIST pypy-bin-2.4.0-x86+bzip2+ncurses.tar.xz 5634780 SHA256 2d0494fdab270c26efbe84fa42118b822b3fc021940e2d260a5c39938dcbed8d SHA512 672468e436646ed0334352addeda824ddd76a4cf1ad46231983aec7b697ae6ef2cc2b9072ae5149b4b0987b06caade65ab8bf67ca1dea10219030a9b3fd5b4b4 WHIRLPOOL 003bf4ef085b01c6625f43d34bdcfc2fa035e93373197c67540548856b160db39aed8f0a319ff3f77063dbb8abd2b6a4b412dccbab8c6a70689cf701cf98c4cc
+DIST pypy-bin-2.5.1-amd64+bzip2+jit+ncurses+shadowstack.tar.xz 12366684 SHA256 14e7667b36da045c5eb6758e68d0647ba6eb9804125ad9bb9425891492012b5a SHA512 6b4abd9f8546a7e39670c8d0a00bd1f4eb5ee860eda5e6d16fc64a4b8259e8c784ac4ea567b4dad84d2ff3c72a48b07836720aaee8e608f7e7ecb2b2fcf20f89 WHIRLPOOL f2517cfd7d7d46208c8cfcdb2adcfed7c1782fd014179addc9da6842070d8d90c193bedecb20538a8330c9ae31df73fe1abf9b22727aebd0770fc3caa6e0163c
+DIST pypy-bin-2.5.1-amd64+bzip2+jit+ncurses.tar.xz 14282808 SHA256 be3f365d6250a600e7494b687f41f1632774fa08938dac09cf61da1cdc331079 SHA512 41d81febca05ad6df500e1a8ff712c77ef920ae244ea48523bf637022a0a6ea07663723c284c3b2d9c7893777be4dd2266369b51c583bee9c7e42d53f4bf5c10 WHIRLPOOL 7d3719ba751f5a9b7056aa2be341823a8bacffb851f549d873ad269bc15445a7805105d201b27429247402126c2ba207bad602532372baf7053372219fbda2b2
+DIST pypy-bin-2.5.1-amd64+bzip2+ncurses.tar.xz 7298184 SHA256 4f19b38509644ebf855eabf794f89fcf83fff22d7e8b50d471a7018ce4d98f80 SHA512 45ee8a21d106b035c98bb812664b3687cfeb5eb4dfd429d84b6ee66d035692f94ca6e23ce28e68dc2c243af7008287e1cfa8f76b32b166db0af40cc206ca7168 WHIRLPOOL 7f8f86a861beb297d4081681669ae900b0fd743c76d69b695194708f192d2e00741314cd35010d71c6a7838672e223896058c34d1665777c4e4b195d74bd8474
+DIST pypy-bin-2.5.1-x86+bzip2+jit+ncurses+shadowstack+sse2.tar.xz 9521220 SHA256 90fc72bd6333ef805bb996badc5a954fa1ecc7bb3d43ff655cba86db533ec8e7 SHA512 ece7fd6f126c8923854fdd5c05a343ec77a79a342f17588b66eb475ade9541190144d4beb7d57ab4437581109c4d74648fe941ec392bb939e325ee8f87bfd768 WHIRLPOOL 12b28e947a732bc5403a41638aa4c9167424ae70d4b620b91bfc2968daa449c03ebc8cc06e89992c4916e091987d9801b86dba9cf62a22b3a3965f547dec5602
+DIST pypy-bin-2.5.1-x86+bzip2+jit+ncurses+sse2.tar.xz 11702676 SHA256 ccd17d468a1e5a33e7f45ca542644d4ea4f24f8c070cc85264aea430c31b0f7c SHA512 70da9139476b1c0d05464b54001c276018ab70c41d2032d7b1b82a1ed88d697646f476a4589ec7b2ba1faca5a3ed751c22582939adb6f7bdcab93bc8b201d8ee WHIRLPOOL 4c816821c8c54d3762939a70718bcc0fbbd194e98b1efea25899e1dc1f31b037a798c02bb684c8d86ae1bfcb5a5f93ede3dd67c07fe6b112b1a99ced83b7999b
+DIST pypy-bin-2.5.1-x86+bzip2+ncurses+sse2.tar.xz 5687144 SHA256 bcb27dbd3c6158970c705be18c162442b0b655a09af564ea12e1492559ee4f0a SHA512 524a638373079789ca97d9a5dbbe2a68e5123945d2c730408cc3b693b5182c16223b320581936b644f2e54b1b37e8f8b9f4ab6b6834483ff6462fea2572cf180 WHIRLPOOL ba73cf944180a6925ff9d429f3f6c1404e7ba24c0257ac45b7e0d449bd73c95742cc0a41901d2420ed811e62012b5a7d177c9f724fe6bee010b21ad1b7906079
+DIST pypy-bin-2.5.1-x86+bzip2+ncurses.tar.xz 5725788 SHA256 668339be67618d47aaf7a64cca6900b53b74fc23e411afed9911ef5d12401de4 SHA512 56f0a200386ee97a1d4bacab43a2b0b71a9d8aae519b9b6480a982757852ef9aa8faa53490088704398507a559af05af590e778a0284c9adfbfe151c9da556b3 WHIRLPOOL 180aa2265fb2eb9b3db86e977bcc8c09d076facf17c42de0a6eb4b0a4a753643634fa742cef37aa52e814127d5d9dfee39cc71ee844482d7cb2ee29abc1c2c33
EBUILD pypy-bin-2.3.1-r2.ebuild 5638 SHA256 b62f330be9422b6c4e5ce0c633731cf922db68cc7f5e55e10b1822499dcd1581 SHA512 7742cf9946dcf207ca4c8d82c71c63750a1dbe40972c1c44eb4435a78a6a7c8e3ab4b1ac57ad9a4853f3a7b3d90875f7e2c0406758851c2a04af2d94d818ef51 WHIRLPOOL d9ad000a80304eec524f8878f06be32c3b5b98586189ecbaef084a424e136fe06fbc0bfd8806e8d46f4b6725170574782a92ad7371bf7807cfc35f32e8da6bd7
EBUILD pypy-bin-2.4.0.ebuild 5306 SHA256 e13bf5e1dce64d2e1a26ac9aa5cd0c7efa2dc8e8b52ccd15cb291224d55e7cb9 SHA512 132154abc01c9ea537dc1009e4bb15e15bc99404fa153f8878939f6ed332b33ff4bb2fbc92f6f134331d4222535a44316a1f30e890e86099013d24006e498686 WHIRLPOOL ff813c81a5dec2c6b7fd832643fa1454a45d4b88a76b6d69127be3d305b141eda4bb51218b6d5cf55e4e3837f921f255ed2008f3c3e9057465bacd010a66961c
-MISC ChangeLog 6624 SHA256 2f7f11cf8755f48fb41848a5dcfa546d360929c384aeb4efcf6651e48277c532 SHA512 36700db75bfd4244e035ce9ac9acdaad9b89b0b6dce3a376c9d9372e8c22f8a3e5f3ee5249df790ebe4ba8a9307f584478840bd73dd35d439259b1fa5b4187f0 WHIRLPOOL 14196a847bb02e1dcbb22b7019a1239cb2f0bed3564741745f4d6f4fddb47a5e19b72ce5fc01bbd60cdd37c20b2e72eaa2ec98810decf05983c0a093b0f2dd68
+EBUILD pypy-bin-2.5.1.ebuild 5305 SHA256 ab4381f1c88e7a3710a4569f0b440b1fd47320482739aaa6836091d66c5ca11f SHA512 e811d4f10158046a6de6ed3e26af1e71e46ec435b586c7d959f4dcb8d5a5d6b68bdb03623bcafcae0966733f8deca9670fdfe8281e972f64687a2f9dd098824f WHIRLPOOL 89d7fd461a05f51ddf3ec1490b580ee845abb59d84b5f308fe62159b874013a82472b7f0412dc0c57966145e437634f226cf2d4759daf11cc15790a7f3bb1ac5
+MISC ChangeLog 6803 SHA256 2b830e1b42d680679df564f957036f15c2db70c483a70f737fb62da0ae7e8212 SHA512 b73758200a88acc43bdbb9b07a1a387b67e70dbfe7df7f245497cf4f7329edc48a1a637fb236998a21f3df144046d651bb9e2f45ac855b446fa15108c7be60a5 WHIRLPOOL 6bbbc329f9cc05e279d7501e9fa65d9be1bf1dae64516f4267b9db960478a912925f92a0b2009d704d8c0e90d668348bafd543419328d77d37adde6ee3bcbc69
MISC metadata.xml 343 SHA256 95d26724aef1587cdf8b2a5c4fcd397d1d2f03333653687a827bfab66b15e164 SHA512 e3bf15f46274dd0d42c15c1aa79e802ca1d24cabb59132669d7ae178321a12adf5bf46945dc66a1d7c66e0311e07cb0813a35ad0df3bce346c3ee584eccc66e5 WHIRLPOOL b18339b350570979dcc032be56e61ac1a5a4790103fb2165941950da11f0ad17e6486e5553ad96b8a97e0d8c65d49f869389ed26f5c44e9e0ad119c1656d355d
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
-iQJ8BAEBCABmBQJVJOKJXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
+iQJ8BAEBCABmBQJVKpmjXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ2REJCMDdDQzRGMERBRDA2RUEwQUZFNDFC
-MDdBMUFFQUVGQjQ0NjRFAAoJELB6GurvtEZO7ugQAN9LOtp/5MkSa/dxA7+J+oD2
-6EqAYwWcd5mdqjcyrQhzLpIzRQyIolPxrCvFMNOzagVR8rrKN01t7dQCAGpy5dYb
-s/Riy318xzuJwxDtiXcHsWS0sejAFrWKqYR9fFTQWjVOPV2xpbol0ap6A9H9w9Of
-gr7P7WucwKJnczrcOsUg9TCvwWAr0LAMlnLq+cNtXlKUuWE+sWJ5Qrv4Ml5nxeTa
-Ob7uXQvN7zW8SvVXO7KF70Hut/PSH/1cMsd59L6obv5Bdc+/Is/XEh2rAXJZIzTy
-JH1/jrjf3/yj4VPZyW3HGtYYlXD+wSDzTOMMoi6O6Iv71FVfXGxrzqohyoDuwknn
-GftUchvtk2uyZZYRJMol3JMQO0qwjw8Rb8+JT10LItdzNZMDi1hRMHGoMC0XmsgY
-J83DQY5UxUTBWJS9+euM4LubbC5ZlLMi6X62hXLpXRQsitVuSypVEgXRyFDajNVQ
-oeP5NZJGpFBeVt73Hz8WfkwcIkaom/P13FJsltVuqxY7cb8/Syp4NCejzwLC42Wi
-nxeZYMYfrzmBQk3kqZ8+4LY0rHZDT3p0ewOer91OrGTfV9SA5D0DuDxR7tGZnN7q
-25Z0YkjPWNE5z/Qs9uEKoQ4tw515QjH/F71/PbW+BWdoqCUJI1AXOR49MfyR70q/
-lujh5GmkfvYxqXmqMU5x
-=i3Th
+MDdBMUFFQUVGQjQ0NjRFAAoJELB6GurvtEZOoH8QAIjj16lRDKDBBPE363WTi6oz
+gXdV3f1jcntot3lfcCZk2wlDIHfAxFw6mU6AIr9gDBtahSg1hi4lju/9r4IJs5YJ
+cPX697daOu2xqWlNFZnawBHraOQeayXuRsVZU+lCR+h9zueMiDeGZfhrhsf1sLJi
+qX4+JX1GzUl7Pv0INdACvCJ3Pdht7a+EUHDFKbs8DEm56c1Hop4PcWDTbwvq7hmw
+YruhjIi5nQA5rmHBFzJ7gezotz2NWsBSCA2dH62ZvI9rKFcO1zUaVdYjeZTeKwpb
+jyqyWkv92MuKPRBMmDkT7C+7ChPCpkp7ONpD0rGlOvm3xrgIht2NjEmzWldVsMhs
+exuh6Ofbp+sEU9I08PUEiaFBoqSF97yP2rprZyjvWjx53l2gB9X4M3sf4lTwt9Q1
+2jHrqwKwmCrkd3uUaDi4gI6n7MfbctyKqcfk1lq+AbWlgopHSFAveZXs2weD99mJ
+KBJHBL9shE+lnBBd9orOgnhiNXgqBqQT+th5PlX+R7VgY8xm03EkF60zK/xBd+KF
+02CIxrK+lAbQi1zZhmhfxZsrQacjFiNYDvqr+puPtlIuVqrocSEHhIOPAhBMCWdn
+J05F4dXD360b/govYd4lbaLeYzHlk5cEn5TODFxQRuGKMyxD4FI1L1D4uYxOdmuM
+KsPCoE9ymwtfbdUoCS55
+=kTsZ
-----END PGP SIGNATURE-----
--- /dev/null
+http://bugs.python.org/issue1222585
+
+--- _osx_support.py
++++ _osx_support.py
+@@ -14,13 +14,13 @@
+ # configuration variables that may contain universal build flags,
+ # like "-arch" or "-isdkroot", that may need customization for
+ # the user environment
+-_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS', 'BASECFLAGS',
+- 'BLDSHARED', 'LDSHARED', 'CC', 'CXX',
+- 'PY_CFLAGS', 'PY_LDFLAGS', 'PY_CPPFLAGS',
+- 'PY_CORE_CFLAGS')
++_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'CXXFLAGS', 'LDFLAGS', 'CPPFLAGS',
++ 'BASECFLAGS', 'BLDSHARED', 'LDSHARED', 'LDCXXSHARED',
++ 'CC', 'CXX', 'PY_CFLAGS', 'PY_LDFLAGS',
++ 'PY_CPPFLAGS', 'PY_CORE_CFLAGS')
+
+ # configuration variables that may contain compiler calls
+-_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'CC', 'CXX')
++_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'LDCXXSHARED', 'CC', 'CXX')
+
+ # prefix added to original configuration variable names
+ _INITPRE = '_OSX_SUPPORT_INITIAL_'
+--- distutils/sysconfig_pypy.py
++++ distutils/sysconfig_pypy.py
+@@ -123,7 +123,55 @@
+ optional C speedup components.
+ """
+ if compiler.compiler_type == "unix":
+- compiler.compiler_so.extend(['-O2', '-fPIC', '-Wimplicit'])
++ cc = ' '.join(compiler.compiler)
++ cxx = ' '.join(compiler.compiler_cxx)
++ ldshared = ' '.join(compiler.linker_so)
++ ldcxxshared = ' '.join(compiler.linker_so_cxx)
++
++ cflags = ''
++ cxxflags = ''
++ ccshared = '-fPIC'
++
++ if 'CC' in os.environ:
++ cc = os.environ['CC']
++ if 'CXX' in os.environ:
++ cxx = os.environ['CXX']
++ if 'LDSHARED' in os.environ:
++ ldshared = os.environ['LDSHARED']
++ if 'LDCXXSHARED' in os.environ:
++ ldcxxshared = os.environ['LDCXXSHARED']
++ if 'CPP' in os.environ:
++ cpp = os.environ['CPP']
++ else:
++ cpp = cc + " -E" # not always
++ if 'LDFLAGS' in os.environ:
++ ldshared = ldshared + ' ' + os.environ['LDFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
++ if 'CFLAGS' in os.environ:
++ cflags = os.environ['CFLAGS']
++ ldshared = ldshared + ' ' + os.environ['CFLAGS']
++ if 'CXXFLAGS' in os.environ:
++ cxxflags = os.environ['CXXFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
++ if 'CPPFLAGS' in os.environ:
++ cpp = cpp + ' ' + os.environ['CPPFLAGS']
++ cflags = cflags + ' ' + os.environ['CPPFLAGS']
++ cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
++ ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
++
++ cc_cmd = cc + ' ' + cflags
++ cxx_cmd = cxx + ' ' + cxxflags
++ compiler.set_executables(
++ preprocessor=cpp,
++ compiler=cc_cmd,
++ compiler_so=cc_cmd + ' ' + ccshared,
++ compiler_cxx=cxx_cmd,
++ compiler_so_cxx=cxx_cmd + ' ' + ccshared,
++ linker_so=ldshared,
++ linker_exe=cc,
++ linker_so_cxx=ldcxxshared,
++ linker_exe_cxx=cxx)
+ compiler.shared_lib_extension = get_config_var('SO')
+ if "CPPFLAGS" in os.environ:
+ cppflags = shlex.split(os.environ["CPPFLAGS"])
+--- distutils/cygwinccompiler.py
++++ distutils/cygwinccompiler.py
+@@ -117,8 +117,10 @@
+ # dllwrap 2.10.90 is buggy
+ if self.ld_version >= "2.10.90":
+ self.linker_dll = "gcc"
++ self.linker_dll_cxx = "g++"
+ else:
+ self.linker_dll = "dllwrap"
++ self.linker_dll_cxx = "dllwrap"
+
+ # ld_version >= "2.13" support -shared so use it instead of
+ # -mdll -static
+@@ -132,9 +134,13 @@
+ self.set_executables(compiler='gcc -mcygwin -O -Wall',
+ compiler_so='gcc -mcygwin -mdll -O -Wall',
+ compiler_cxx='g++ -mcygwin -O -Wall',
++ compiler_so_cxx='g++ -mcygwin -mdll -O -Wall',
+ linker_exe='gcc -mcygwin',
+ linker_so=('%s -mcygwin %s' %
+- (self.linker_dll, shared_option)))
++ (self.linker_dll, shared_option)),
++ linker_exe_cxx='g++ -mcygwin',
++ linker_so_cxx=('%s -mcygwin %s' %
++ (self.linker_dll_cxx, shared_option)))
+
+ # cygwin and mingw32 need different sets of libraries
+ if self.gcc_version == "2.91.57":
+@@ -160,8 +166,12 @@
+ raise CompileError, msg
+ else: # for other files use the C-compiler
+ try:
+- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
+- extra_postargs)
++ if self.detect_language(src) == 'c++':
++ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
++ extra_postargs)
++ else:
++ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
++ extra_postargs)
+ except DistutilsExecError, msg:
+ raise CompileError, msg
+
+@@ -327,9 +337,14 @@
+ self.set_executables(compiler='gcc%s -O -Wall' % no_cygwin,
+ compiler_so='gcc%s -mdll -O -Wall' % no_cygwin,
+ compiler_cxx='g++%s -O -Wall' % no_cygwin,
++ compiler_so_cxx='g++%s -mdll -O -Wall' % no_cygwin,
+ linker_exe='gcc%s' % no_cygwin,
+ linker_so='%s%s %s %s'
+ % (self.linker_dll, no_cygwin,
++ shared_option, entry_point),
++ linker_exe_cxx='g++%s' % no_cygwin,
++ linker_so_cxx='%s%s %s %s'
++ % (self.linker_dll_cxx, no_cygwin,
+ shared_option, entry_point))
+ # Maybe we should also append -mthreads, but then the finished
+ # dlls need another dll (mingwm10.dll see Mingw32 docs)
+http://bugs.python.org/issue1222585
+
+--- distutils/emxccompiler.py
++++ distutils/emxccompiler.py
+@@ -65,8 +65,12 @@
+ # XXX optimization, warnings etc. should be customizable.
+ self.set_executables(compiler='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
+ compiler_so='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
++ compiler_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
++ compiler_so_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
+ linker_exe='gcc -Zomf -Zmt -Zcrtdll',
+- linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll')
++ linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll',
++ linker_exe_cxx='g++ -Zomf -Zmt -Zcrtdll',
++ linker_so_cxx='g++ -Zomf -Zmt -Zcrtdll -Zdll')
+
+ # want the gcc library statically linked (so that we don't have
+ # to distribute a version dependent on the compiler we have)
+@@ -83,8 +87,12 @@
+ raise CompileError, msg
+ else: # for other files use the C-compiler
+ try:
+- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
+- extra_postargs)
++ if self.detect_language(src) == 'c++':
++ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
++ extra_postargs)
++ else:
++ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
++ extra_postargs)
+ except DistutilsExecError, msg:
+ raise CompileError, msg
+
+--- distutils/sysconfig_cpython.py
++++ distutils/sysconfig_cpython.py
+@@ -170,10 +170,12 @@
+ _osx_support.customize_compiler(_config_vars)
+ _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True'
+
+- (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
+- get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS',
+- 'CCSHARED', 'LDSHARED', 'SO', 'AR',
+- 'ARFLAGS')
++ (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext, ar, ar_flags) = \
++ get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED',
++ 'SO', 'AR', 'ARFLAGS')
++
++ cflags = ''
++ cxxflags = ''
+
+ if 'CC' in os.environ:
+ newcc = os.environ['CC']
+@@ -188,19 +190,27 @@
+ cxx = os.environ['CXX']
+ if 'LDSHARED' in os.environ:
+ ldshared = os.environ['LDSHARED']
++ if 'LDCXXSHARED' in os.environ:
++ ldcxxshared = os.environ['LDCXXSHARED']
+ if 'CPP' in os.environ:
+ cpp = os.environ['CPP']
+ else:
+ cpp = cc + " -E" # not always
+ if 'LDFLAGS' in os.environ:
+ ldshared = ldshared + ' ' + os.environ['LDFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
+ if 'CFLAGS' in os.environ:
+- cflags = opt + ' ' + os.environ['CFLAGS']
++ cflags = os.environ['CFLAGS']
+ ldshared = ldshared + ' ' + os.environ['CFLAGS']
++ if 'CXXFLAGS' in os.environ:
++ cxxflags = os.environ['CXXFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
+ if 'CPPFLAGS' in os.environ:
+ cpp = cpp + ' ' + os.environ['CPPFLAGS']
+ cflags = cflags + ' ' + os.environ['CPPFLAGS']
++ cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
+ ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
++ ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
+ if 'AR' in os.environ:
+ ar = os.environ['AR']
+ if 'ARFLAGS' in os.environ:
+@@ -209,13 +219,17 @@
+ archiver = ar + ' ' + ar_flags
+
+ cc_cmd = cc + ' ' + cflags
++ cxx_cmd = cxx + ' ' + cxxflags
+ compiler.set_executables(
+ preprocessor=cpp,
+ compiler=cc_cmd,
+ compiler_so=cc_cmd + ' ' + ccshared,
+- compiler_cxx=cxx,
++ compiler_cxx=cxx_cmd,
++ compiler_so_cxx=cxx_cmd + ' ' + ccshared,
+ linker_so=ldshared,
+ linker_exe=cc,
++ linker_so_cxx=ldcxxshared,
++ linker_exe_cxx=cxx,
+ archiver=archiver)
+
+ compiler.shared_lib_extension = so_ext
+--- distutils/unixccompiler.py
++++ distutils/unixccompiler.py
+@@ -55,14 +55,17 @@
+ # are pretty generic; they will probably have to be set by an outsider
+ # (eg. using information discovered by the sysconfig about building
+ # Python extensions).
+- executables = {'preprocessor' : None,
+- 'compiler' : ["cc"],
+- 'compiler_so' : ["cc"],
+- 'compiler_cxx' : ["c++"], # pypy: changed, 'cc' is bogus
+- 'linker_so' : ["cc", "-shared"],
+- 'linker_exe' : ["cc"],
+- 'archiver' : ["ar", "-cr"],
+- 'ranlib' : None,
++ executables = {'preprocessor' : None,
++ 'compiler' : ["cc"],
++ 'compiler_so' : ["cc"],
++ 'compiler_cxx' : ["c++"],
++ 'compiler_so_cxx' : ["c++"],
++ 'linker_so' : ["cc", "-shared"],
++ 'linker_exe' : ["cc"],
++ 'linker_so_cxx' : ["c++", "-shared"],
++ 'linker_exe_cxx' : ["c++"],
++ 'archiver' : ["ar", "-cr"],
++ 'ranlib' : None,
+ }
+
+ if sys.platform[:6] == "darwin":
+@@ -112,12 +115,19 @@
+
+ def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts):
+ compiler_so = self.compiler_so
++ compiler_so_cxx = self.compiler_so_cxx
+ if sys.platform == 'darwin':
+ compiler_so = _osx_support.compiler_fixup(compiler_so,
+ cc_args + extra_postargs)
++ compiler_so_cxx = _osx_support.compiler_fixup(compiler_so_cxx,
++ cc_args + extra_postargs)
+ try:
+- self.spawn(compiler_so + cc_args + [src, '-o', obj] +
+- extra_postargs)
++ if self.detect_language(src) == 'c++':
++ self.spawn(compiler_so_cxx + cc_args + [src, '-o', obj] +
++ extra_postargs)
++ else:
++ self.spawn(compiler_so + cc_args + [src, '-o', obj] +
++ extra_postargs)
+ except DistutilsExecError, msg:
+ raise CompileError, msg
+
+@@ -174,23 +184,16 @@
+ ld_args.extend(extra_postargs)
+ self.mkpath(os.path.dirname(output_filename))
+ try:
+- if target_desc == CCompiler.EXECUTABLE:
+- linker = self.linker_exe[:]
++ if target_lang == "c++":
++ if target_desc == CCompiler.EXECUTABLE:
++ linker = self.linker_exe_cxx[:]
++ else:
++ linker = self.linker_so_cxx[:]
+ else:
+- linker = self.linker_so[:]
+- if target_lang == "c++" and self.compiler_cxx:
+- # skip over environment variable settings if /usr/bin/env
+- # is used to set up the linker's environment.
+- # This is needed on OSX. Note: this assumes that the
+- # normal and C++ compiler have the same environment
+- # settings.
+- i = 0
+- if os.path.basename(linker[0]) == "env":
+- i = 1
+- while '=' in linker[i]:
+- i = i + 1
+-
+- linker[i] = self.compiler_cxx[i]
++ if target_desc == CCompiler.EXECUTABLE:
++ linker = self.linker_exe[:]
++ else:
++ linker = self.linker_so[:]
+
+ if sys.platform == 'darwin':
+ linker = _osx_support.compiler_fixup(linker, ld_args)
+
--- /dev/null
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-python/pypy-bin/pypy-bin-2.5.1.ebuild,v 1.1 2015/04/12 16:13:22 mgorny Exp $
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 pypy )
+inherit eutils multilib pax-utils python-any-r1 versionator
+
+BINHOST="http://dev.gentoo.org/~mgorny/dist/pypy-bin/${PV}"
+
+DESCRIPTION="A fast, compliant alternative implementation of the Python language (binary package)"
+HOMEPAGE="http://pypy.org/"
+SRC_URI="https://bitbucket.org/pypy/pypy/downloads/pypy-${PV}-src.tar.bz2
+ amd64? (
+ jit? ( shadowstack? (
+ ${BINHOST}/${P}-amd64+bzip2+jit+ncurses+shadowstack.tar.xz
+ ) )
+ jit? ( !shadowstack? (
+ ${BINHOST}/${P}-amd64+bzip2+jit+ncurses.tar.xz
+ ) )
+ !jit? ( !shadowstack? (
+ ${BINHOST}/${P}-amd64+bzip2+ncurses.tar.xz
+ ) )
+ )
+ x86? (
+ cpu_flags_x86_sse2? (
+ jit? ( shadowstack? (
+ ${BINHOST}/${P}-x86+bzip2+jit+ncurses+shadowstack+sse2.tar.xz
+ ) )
+ jit? ( !shadowstack? (
+ ${BINHOST}/${P}-x86+bzip2+jit+ncurses+sse2.tar.xz
+ ) )
+ !jit? ( !shadowstack? (
+ ${BINHOST}/${P}-x86+bzip2+ncurses+sse2.tar.xz
+ ) )
+ )
+ !cpu_flags_x86_sse2? (
+ !jit? ( !shadowstack? (
+ ${BINHOST}/${P}-x86+bzip2+ncurses.tar.xz
+ ) )
+ )
+ )"
+
+# Supported variants
+REQUIRED_USE="!jit? ( !shadowstack )
+ x86? ( !cpu_flags_x86_sse2? ( !jit !shadowstack ) )"
+
+LICENSE="MIT"
+SLOT="0/$(get_version_component_range 1-2 ${PV})"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc gdbm +jit shadowstack sqlite cpu_flags_x86_sse2 test tk"
+
+# yep, world would be easier if people started filling subslots...
+RDEPEND="
+ app-arch/bzip2:0
+ dev-libs/expat:0
+ dev-libs/libffi:0
+ dev-libs/openssl:0
+ sys-libs/glibc:2.2
+ sys-libs/ncurses:5
+ sys-libs/zlib:0
+ gdbm? ( sys-libs/gdbm:0= )
+ sqlite? ( dev-db/sqlite:3= )
+ tk? (
+ dev-lang/tk:0=
+ dev-tcltk/tix:0=
+ )
+ !dev-python/pypy:0"
+DEPEND="app-arch/xz-utils
+ doc? ( ${PYTHON_DEPS}
+ dev-python/sphinx )
+ test? ( ${RDEPEND} )"
+PDEPEND="app-admin/python-updater"
+
+S=${WORKDIR}/pypy-${PV}-src
+
+pkg_setup() {
+ use doc && python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/1.9-scripts-location.patch" \
+ "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
+
+ pushd lib-python/2.7 > /dev/null || die
+ epatch "${FILESDIR}"/2.5.0_all_distutils_cxx.patch
+ popd > /dev/null || die
+
+ epatch_user
+}
+
+src_compile() {
+ # Tadaam! PyPy compiled!
+ mv "${WORKDIR}"/${P}*/{libpypy-c.so,pypy-c} . || die
+ mv "${WORKDIR}"/${P}*/include/*.h include/ || die
+ mv pypy/module/cpyext/include/*.h include/ || die
+ mv pypy/module/cpyext/include/numpy include/ || die
+
+ use doc && emake -C pypy/doc/ html
+ #needed even without jit :( also needed in both compile and install phases
+ pax-mark m pypy-c
+
+ # ctypes config cache
+ # this one we need to do with python2 too...
+ ./pypy-c lib_pypy/ctypes_config_cache/rebuild.py \
+ || die "Failed to rebuild ctypes config cache"
+}
+
+# Doesn't work - pypy missing its own libs
+src_test() {
+ # (unset)
+ local -x PYTHONDONTWRITEBYTECODE
+
+ ./pypy-c ./pypy/test_all.py --pypy=./pypy-c lib-python || die
+}
+
+src_install() {
+ einfo "Installing PyPy ..."
+ insinto "/usr/$(get_libdir)/pypy"
+ doins -r include lib_pypy lib-python pypy-c libpypy-c.so
+ fperms a+x ${INSDESTTREE}/pypy-c ${INSDESTTREE}/libpypy-c.so
+ pax-mark m "${ED%/}${INSDESTTREE}/pypy-c" "${ED%/}${INSDESTTREE}/libpypy-c.so"
+ dosym ../$(get_libdir)/pypy/pypy-c /usr/bin/pypy
+ dodoc README.rst
+
+ if ! use gdbm; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib_pypy/gdbm.py \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_gdbm.py || die
+ fi
+ if ! use sqlite; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib-python/*2.7/sqlite3 \
+ "${ED%/}${INSDESTTREE}"/lib_pypy/_sqlite3.py \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_sqlite.py || die
+ fi
+ if ! use tk; then
+ rm -r "${ED%/}${INSDESTTREE}"/lib-python/*2.7/{idlelib,lib-tk} \
+ "${ED%/}${INSDESTTREE}"/lib_pypy/_tkinter \
+ "${ED%/}${INSDESTTREE}"/lib-python/*2.7/test/test_{tcl,tk,ttk*}.py || die
+ fi
+
+ # Install docs
+ use doc && dohtml -r pypy/doc/_build/html/
+
+ einfo "Generating caches and byte-compiling ..."
+
+ python_export pypy EPYTHON PYTHON PYTHON_SITEDIR
+ local PYTHON=${ED%/}${INSDESTTREE}/pypy-c
+ local -x LD_LIBRARY_PATH="${ED%/}${INSDESTTREE}"
+
+ echo "EPYTHON='${EPYTHON}'" > epython.py
+ python_domodule epython.py
+
+ # Generate Grammar and PatternGrammar pickles.
+ "${PYTHON}" -c "import lib2to3.pygram, lib2to3.patcomp; lib2to3.patcomp.PatternCompiler()" \
+ || die "Generation of Grammar and PatternGrammar pickles failed"
+
+ # Generate cffi cache
+ # Please keep in sync with pypy/tool/release/package.py!
+ "${PYTHON}" -c "import _curses" || die "Failed to import _curses (cffi)"
+ "${PYTHON}" -c "import syslog" || die "Failed to import syslog (cffi)"
+ if use gdbm; then
+ "${PYTHON}" -c "import gdbm" || die "Failed to import gdbm (cffi)"
+ fi
+ if use sqlite; then
+ "${PYTHON}" -c "import _sqlite3" || die "Failed to import _sqlite3 (cffi)"
+ fi
+ if use tk; then
+ "${PYTHON}" -c "import _tkinter" || die "Failed to import _tkinter (cffi)"
+ fi
+
+ # Cleanup temporary objects
+ find "${ED%/}${INSDESTTREE}" -name "_cffi_*.[co]" -delete || die
+ find "${ED%/}${INSDESTTREE}" -type d -empty -delete || die
+
+ # compile the installed modules
+ python_optimize "${ED%/}${INSDESTTREE}"
+}