From de49812990871e1705b64051c35161d5e6400269 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 24 Dec 2018 14:11:38 +0000 Subject: gentoo resync : 24.12.2018 --- sys-libs/Manifest.gz | Bin 15757 -> 15742 bytes sys-libs/binutils-libs/Manifest | 14 +- .../binutils-libs/binutils-libs-2.30-r2.ebuild | 106 -- .../binutils-libs/binutils-libs-2.30-r3.ebuild | 106 -- .../binutils-libs/binutils-libs-2.30-r4.ebuild | 2 +- .../binutils-libs/binutils-libs-2.31.1-r1.ebuild | 112 -- .../binutils-libs/binutils-libs-2.31.1-r2.ebuild | 113 ++ .../binutils-libs/binutils-libs-2.31.1-r3.ebuild | 113 ++ sys-libs/binutils-libs/binutils-libs-2.31.1.ebuild | 106 -- sys-libs/compiler-rt-sanitizers/Manifest | 16 +- .../compiler-rt-sanitizers-6.0.1.ebuild | 12 +- .../compiler-rt-sanitizers-7.0.0.ebuild | 16 +- .../compiler-rt-sanitizers-7.0.1.ebuild | 176 +++ .../compiler-rt-sanitizers-7.0.1_rc2.ebuild | 174 --- .../compiler-rt-sanitizers-7.0.9999.ebuild | 12 +- .../compiler-rt-sanitizers-9999.ebuild | 12 +- sys-libs/compiler-rt-sanitizers/metadata.xml | 4 + sys-libs/compiler-rt/Manifest | 6 +- sys-libs/compiler-rt/compiler-rt-7.0.0.ebuild | 4 +- sys-libs/compiler-rt/compiler-rt-7.0.1.ebuild | 109 ++ sys-libs/compiler-rt/compiler-rt-7.0.1_rc2.ebuild | 109 -- sys-libs/e2fsprogs-libs/Manifest | 6 +- .../e2fsprogs-libs/e2fsprogs-libs-1.44.2.ebuild | 70 - .../e2fsprogs-libs/e2fsprogs-libs-1.44.3.ebuild | 70 - .../e2fsprogs-libs/e2fsprogs-libs-1.44.5.ebuild | 94 ++ sys-libs/efivar/Manifest | 14 +- sys-libs/efivar/efivar-30.ebuild | 4 +- sys-libs/efivar/efivar-31.ebuild | 4 +- sys-libs/efivar/efivar-32-r1.ebuild | 4 +- sys-libs/efivar/efivar-32.ebuild | 4 +- sys-libs/efivar/efivar-35.ebuild | 4 +- sys-libs/efivar/efivar-36.ebuild | 4 +- sys-libs/efivar/efivar-37.ebuild | 38 + sys-libs/glibc/Manifest | 17 +- sys-libs/glibc/glibc-2.20-r2.ebuild | 149 -- sys-libs/glibc/glibc-2.27-r6.ebuild | 2 +- sys-libs/glibc/glibc-2.28-r1.ebuild | 1426 -------------------- sys-libs/glibc/glibc-2.28-r2.ebuild | 1426 -------------------- sys-libs/glibc/glibc-2.28-r3.ebuild | 1411 +++++++++++++++++++ sys-libs/glibc/glibc-2.28-r4.ebuild | 1411 +++++++++++++++++++ sys-libs/glibc/glibc-9999.ebuild | 52 +- sys-libs/libcap-ng/Manifest | 2 +- sys-libs/libcap-ng/libcap-ng-0.7.9.ebuild | 9 +- sys-libs/libcap/Manifest | 3 + sys-libs/libcap/files/libcap-2.26-no-perl.patch | 61 + sys-libs/libcap/libcap-2.26-r2.ebuild | 81 ++ sys-libs/libcxx/Manifest | 6 +- sys-libs/libcxx/libcxx-7.0.0.ebuild | 4 +- sys-libs/libcxx/libcxx-7.0.1.ebuild | 215 +++ sys-libs/libcxx/libcxx-7.0.1_rc2.ebuild | 215 --- sys-libs/libcxxabi/Manifest | 8 +- sys-libs/libcxxabi/libcxxabi-7.0.0.ebuild | 4 +- sys-libs/libcxxabi/libcxxabi-7.0.1.ebuild | 119 ++ sys-libs/libcxxabi/libcxxabi-7.0.1_rc2.ebuild | 119 -- sys-libs/libcxxrt/Manifest | 2 +- sys-libs/libcxxrt/libcxxrt-0.0_p20180311.ebuild | 6 +- sys-libs/libhx/Manifest | 2 + sys-libs/libhx/libhx-3.24.ebuild | 40 + sys-libs/libnih/Manifest | 2 +- sys-libs/libnih/libnih-1.0.3-r3.ebuild | 4 +- sys-libs/libomp/Manifest | 6 +- sys-libs/libomp/libomp-7.0.0.ebuild | 4 +- sys-libs/libomp/libomp-7.0.1.ebuild | 115 ++ sys-libs/libomp/libomp-7.0.1_rc2.ebuild | 115 -- sys-libs/libosinfo/Manifest | 4 +- sys-libs/libosinfo/libosinfo-1.1.0.ebuild | 58 - sys-libs/libosinfo/libosinfo-1.2.0.ebuild | 2 +- sys-libs/librtas/Manifest | 10 +- sys-libs/librtas/files/librtas-1.3.6-symlink.patch | 24 - sys-libs/librtas/files/librtas-1.3.8-symlink.patch | 20 - sys-libs/librtas/librtas-1.3.13.ebuild | 20 - sys-libs/librtas/librtas-1.3.6.ebuild | 21 - sys-libs/librtas/librtas-1.3.8.ebuild | 21 - sys-libs/librtas/librtas-2.0.2.ebuild | 4 +- sys-libs/libservicelog/Manifest | 8 +- sys-libs/libservicelog/libservicelog-1.0.1.ebuild | 4 +- sys-libs/libservicelog/libservicelog-1.1.15.ebuild | 4 +- sys-libs/libservicelog/libservicelog-1.1.16.ebuild | 4 +- sys-libs/libservicelog/libservicelog-1.1.18.ebuild | 33 + sys-libs/libvpd/Manifest | 9 +- .../libvpd/files/libvpd-2.2.6-localstatedir.patch | 21 + sys-libs/libvpd/libvpd-2.1.3.ebuild | 4 +- sys-libs/libvpd/libvpd-2.2.4.ebuild | 4 +- sys-libs/libvpd/libvpd-2.2.5.ebuild | 4 +- sys-libs/libvpd/libvpd-2.2.6.ebuild | 38 + sys-libs/llvm-libunwind/Manifest | 10 +- .../llvm-libunwind/llvm-libunwind-7.0.0.ebuild | 4 +- .../llvm-libunwind/llvm-libunwind-7.0.1.ebuild | 143 ++ .../llvm-libunwind/llvm-libunwind-7.0.1_rc2.ebuild | 143 -- sys-libs/newlib/Manifest | 16 +- sys-libs/newlib/newlib-2.0.0.ebuild | 3 +- sys-libs/newlib/newlib-2.1.0.ebuild | 3 +- sys-libs/newlib/newlib-2.2.0.20150423.ebuild | 3 +- sys-libs/newlib/newlib-2.2.0.ebuild | 3 +- sys-libs/newlib/newlib-2.3.0.20160104.ebuild | 3 +- sys-libs/newlib/newlib-2.4.0.ebuild | 3 +- sys-libs/newlib/newlib-2.5.0.ebuild | 3 +- sys-libs/newlib/newlib-9999.ebuild | 3 +- sys-libs/openipmi/Manifest | 6 +- .../openipmi/files/openipmi-2.0.26-readline.patch | 11 + .../openipmi/files/openipmi-2.0.26-tinfo.patch | 17 + sys-libs/openipmi/openipmi-2.0.24.ebuild | 108 -- sys-libs/openipmi/openipmi-2.0.26.ebuild | 106 ++ sys-libs/pam/Manifest | 2 +- sys-libs/pam/pam-1.3.1-r1.ebuild | 127 ++ sys-libs/pam/pam-1.3.1.ebuild | 126 -- sys-libs/timezone-data/Manifest | 2 +- .../timezone-data/timezone-data-2018g-r1.ebuild | 173 +++ sys-libs/timezone-data/timezone-data-2018g.ebuild | 169 --- sys-libs/uclibc-ng/Manifest | 10 +- sys-libs/uclibc-ng/metadata.xml | 2 +- sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild | 5 +- sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild | 5 +- sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild | 3 +- sys-libs/uclibc-ng/uclibc-ng-9999.ebuild | 5 +- 115 files changed, 4975 insertions(+), 5233 deletions(-) delete mode 100644 sys-libs/binutils-libs/binutils-libs-2.30-r2.ebuild delete mode 100644 sys-libs/binutils-libs/binutils-libs-2.30-r3.ebuild delete mode 100644 sys-libs/binutils-libs/binutils-libs-2.31.1-r1.ebuild create mode 100644 sys-libs/binutils-libs/binutils-libs-2.31.1-r2.ebuild create mode 100644 sys-libs/binutils-libs/binutils-libs-2.31.1-r3.ebuild delete mode 100644 sys-libs/binutils-libs/binutils-libs-2.31.1.ebuild create mode 100644 sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-7.0.1.ebuild delete mode 100644 sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-7.0.1_rc2.ebuild create mode 100644 sys-libs/compiler-rt/compiler-rt-7.0.1.ebuild delete mode 100644 sys-libs/compiler-rt/compiler-rt-7.0.1_rc2.ebuild delete mode 100644 sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.44.2.ebuild delete mode 100644 sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.44.3.ebuild create mode 100644 sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.44.5.ebuild create mode 100644 sys-libs/efivar/efivar-37.ebuild delete mode 100644 sys-libs/glibc/glibc-2.20-r2.ebuild delete mode 100644 sys-libs/glibc/glibc-2.28-r1.ebuild delete mode 100644 sys-libs/glibc/glibc-2.28-r2.ebuild create mode 100644 sys-libs/glibc/glibc-2.28-r3.ebuild create mode 100644 sys-libs/glibc/glibc-2.28-r4.ebuild create mode 100644 sys-libs/libcap/files/libcap-2.26-no-perl.patch create mode 100644 sys-libs/libcap/libcap-2.26-r2.ebuild create mode 100644 sys-libs/libcxx/libcxx-7.0.1.ebuild delete mode 100644 sys-libs/libcxx/libcxx-7.0.1_rc2.ebuild create mode 100644 sys-libs/libcxxabi/libcxxabi-7.0.1.ebuild delete mode 100644 sys-libs/libcxxabi/libcxxabi-7.0.1_rc2.ebuild create mode 100644 sys-libs/libhx/libhx-3.24.ebuild create mode 100644 sys-libs/libomp/libomp-7.0.1.ebuild delete mode 100644 sys-libs/libomp/libomp-7.0.1_rc2.ebuild delete mode 100644 sys-libs/libosinfo/libosinfo-1.1.0.ebuild delete mode 100644 sys-libs/librtas/files/librtas-1.3.6-symlink.patch delete mode 100644 sys-libs/librtas/files/librtas-1.3.8-symlink.patch delete mode 100644 sys-libs/librtas/librtas-1.3.13.ebuild delete mode 100644 sys-libs/librtas/librtas-1.3.6.ebuild delete mode 100644 sys-libs/librtas/librtas-1.3.8.ebuild create mode 100644 sys-libs/libservicelog/libservicelog-1.1.18.ebuild create mode 100644 sys-libs/libvpd/files/libvpd-2.2.6-localstatedir.patch create mode 100644 sys-libs/libvpd/libvpd-2.2.6.ebuild create mode 100644 sys-libs/llvm-libunwind/llvm-libunwind-7.0.1.ebuild delete mode 100644 sys-libs/llvm-libunwind/llvm-libunwind-7.0.1_rc2.ebuild create mode 100644 sys-libs/openipmi/files/openipmi-2.0.26-readline.patch create mode 100644 sys-libs/openipmi/files/openipmi-2.0.26-tinfo.patch delete mode 100644 sys-libs/openipmi/openipmi-2.0.24.ebuild create mode 100644 sys-libs/openipmi/openipmi-2.0.26.ebuild create mode 100644 sys-libs/pam/pam-1.3.1-r1.ebuild delete mode 100644 sys-libs/pam/pam-1.3.1.ebuild create mode 100644 sys-libs/timezone-data/timezone-data-2018g-r1.ebuild delete mode 100644 sys-libs/timezone-data/timezone-data-2018g.ebuild (limited to 'sys-libs') diff --git a/sys-libs/Manifest.gz b/sys-libs/Manifest.gz index 7edf427f646d..95d65b4695c5 100644 Binary files a/sys-libs/Manifest.gz and b/sys-libs/Manifest.gz differ diff --git a/sys-libs/binutils-libs/Manifest b/sys-libs/binutils-libs/Manifest index 03fd3a147dfb..6dab0e36783c 100644 --- a/sys-libs/binutils-libs/Manifest +++ b/sys-libs/binutils-libs/Manifest @@ -6,20 +6,16 @@ DIST binutils-2.28.1-patches-1.0.tar.xz 19772 BLAKE2B 146b393b49ba868c7c064c5827 DIST binutils-2.28.1.tar.bz2 28120394 BLAKE2B 3a0ed2bcf0c859638546b7460d9e6f0a55518402ff0c65c90ce462a318f5ae6690961616d188ce6cf0271c9f2fb8b7902782d32cf0e711068c53d3d06956d89e SHA512 5ec5212497b0fa8324f6a0884c284cb71c01942bbd39356d1ae745a5c9d97274c10f9d9c723f4bef6f0217662dfcd0c36e4e955a7599b11217658dc7b97553eb DIST binutils-2.29.1-patches-2.tar.xz 18528 BLAKE2B 514496d6c9609362782d66b6cecbe3fe617f96dfb86e174a80d0b9113cbd4fce9d760fa61660ba2cfafbe1e482e955391cb8d3ef78d2c166c82796416a7ee106 SHA512 b60a3af9cd6a681f32a59fc4a30602ee1290f75cc93c8ad38ab0de17a7f30538a751b801dbaf079e3d514b9671e34e91742c4c9c953a8c9794505b571b7e80f0 DIST binutils-2.29.1.tar.bz2 29123355 BLAKE2B 83de518a27bae0f13c57b1979493dd7f7cabae424cff5e8495d1f064da24b6ef9e1c19d1d1adad2dca7142372782023f66b4b4223170a49b96ba3834266fe878 SHA512 4063d34555526922376ccceb3f14b43e287442e82a8038cf50f4f51ad97d438c672c0e310ca4b856c9aff5aa9911073e256e8298a7a3f1844eeb60b90d955592 -DIST binutils-2.30-patches-2.tar.xz 490272 BLAKE2B a28a5b5bb8faa33fec269f2c69d6ed0e4e7d5a9169861aa4b3c45511794e1e749c216862a8258c2029f1b40c511dcb2a0aeaecda57e75d52418f10d6f345718f SHA512 1686d5b58ee968f2000647acab2bee4c263d1c85fd43fed8c820fccfc0d7024a01211e7853cd5ce452fa90da500bc17309edf6dbc901c7fd6fc7b3e3d6f42581 -DIST binutils-2.30-patches-3.tar.xz 548804 BLAKE2B 428a1750233ae3f019e20cb5ed1d8e6fe6455181e8f5961dbfe7b66493d1c42050f889e45c02c1fc1a84d545c9e61f81ad6ffd5afc0b1099a702ccc7637c3abe SHA512 c91e902d1d9fc2e9782df04c93173c3207c771f1c063e2ff12c9336593c954ea3f1b2474a8fc045927d72fe18f7401874059599d100c4a1fd152081f05913d03 DIST binutils-2.30-patches-5.tar.xz 590864 BLAKE2B 71de4d08f92ab1898ad576a21763f955067cbbed543250888e0c5d51f4ef77d0d829049e9a835691cf2de03965fbcc9bcfa092eb304c03f9b885e7a3dadab286 SHA512 029b3be6ae9b8620f8580a35701bd4517b4e0232ff3cf9983b3808475c7443cbf500b6cace2c052df0bd1e47202838f4d2453238db28709a947117071d9ae804 DIST binutils-2.30.tar.xz 20286700 BLAKE2B 2dd5436a15a601011a1950e6082ec00082f5916fb82ce95ceab424fd8dc19f6daa7ac32a149f222ccdcc603354165cc206fde070eaa44fe2cc5e57486efc7868 SHA512 e747ea20d8d79fcd21b9d9f6695059caa7189d60f19256da398e34b789fea9a133c32b192e9693b5828d27683739b0198431bf8b3e39fb3b04884cf89d9aa839 -DIST binutils-2.31.1-patches-2.tar.xz 11232 BLAKE2B b8ac65872017c063650d4e04855efa3fd3e9faa566e81fa9fb3ae777c1337627023c1af85b708a7933b577a69652451ff488340d7cc9f035d3a3a655da0fc8d6 SHA512 2d0ee2e727586fc39cdb8abc7251c12dd350d18dd84103ddacc08978db48d45445c05b7ea5f095842f6e0350db94d593270b23a38920a01ca59c363decaa2a58 -DIST binutils-2.31.1-patches-3.tar.xz 12640 BLAKE2B 3444b219dd02ad513e6c36214d649a8a74638382103c88ec8de76a579be0ee13f8d1450e3b8d82dfddad55f2f851b32aee910a99230c7d8673f8426fc79a4cd9 SHA512 67b23c17518305561d190a15cba4a1af18a0a3cf1d7e62583ac7667d2fa40e7c7ec024cc981009d5d1caf1939633ab55fc0a198b69af02dc7841be43ff1acd13 +DIST binutils-2.31.1-patches-4.tar.xz 63460 BLAKE2B 6507d03a3b75fe4b65b3c58377baaf377e07aa3e5dee4f6f4cd25336f53a15b4249e72a107213062611c8674be2bcd478a8f1406940385e0b0e58ad5a7c61cc0 SHA512 aa9f2a5b9c2189c528f34c55cd2609eae5fb47e46b51a8f9aa595b0a1e2c3f103880dcc8f07e48b10971d669e4c2a7ce8a41be4763a1ebf9e956e3f1eade8f22 +DIST binutils-2.31.1-patches-5.tar.xz 65896 BLAKE2B 7fb2c4c71336a77f3fef57a0430c511ef7326f8196d8f3a57a6d56aed464953172eeb0755f020387739cf27f709d0bc3de9c3c8b972a94f1480639465158e180 SHA512 c254f22b8ca662cf49cd5fc076d3e9b82d7f421420408c960c54310fc49462600325e7bc50f863cab7c8c49caebac3ac353dc24ab5947e8f01b98c11f43f57d2 DIST binutils-2.31.1.tar.xz 20467996 BLAKE2B 6b914df1fbb7cf54f2159f71b2c2b09f3f6a569b7a3cb4cf9790d0a3733a7548bc0ea32334a178ed3b56e8b97656ae99c7abaf212601beeaeae9a0884c0f6051 SHA512 0fca326feb1d5f5fe505a827b20237fe3ec9c13eaf7ec7e35847fd71184f605ba1cefe1314b1b8f8a29c0aa9d88162849ee1c1a3e70c2f7407d88339b17edb30 EBUILD binutils-libs-2.25.1-r2.ebuild 2725 BLAKE2B a4fe58fe79272a65c7703b3be801bd8ef197119cbb06b964a107b80eb7c3f38a65e2bb5de69a12b1eb939e04334c7767898d9adf6b853f622dfbb843fc3b7039 SHA512 8c610d03d282e72507e055fac6a3edb9b0fea10dda1934099a7b9b6577d90ce808c803ffc3e6b7378071bfa6d3fd8e1d6919031448d0d12bf86bd37dcbe4e53e EBUILD binutils-libs-2.27.ebuild 2847 BLAKE2B 3d02dfccc46d3398646d338e01f096de36a74fdf6d224a8ae221120fe8105cc674ed09840b01d84994ff11c4f73c88b39737b3ff484d32dbfb1183f20eb3a1a4 SHA512 629aeca9ec392f957fbbe7f2a3d5564016d096b7cbe63ef9337351e599722bced4c3eb190d8dd0f091eb3ff816e839b03f7a7662f22f9e22b36ef3e8e5bb93ae EBUILD binutils-libs-2.28.1.ebuild 2872 BLAKE2B f0ef199dfc0025b06dbdab74f76f0a1775ca47030bd26cf2cf4ce4f6b7f3c5325d1629b3713aa40a1f85b9b0151555cf0a978c0390bef48846b3b1eb0c89b05d SHA512 b00d0080957824bf447035172b4941fecfd358f2cbbdeb82a578e11e0a8b4c712091344b904d8f74840164032d210834b30ed8a90ac3dddb47dc9632d66f8a9b EBUILD binutils-libs-2.29.1-r1.ebuild 2921 BLAKE2B f38060716462c9c51bc84b98348b82952b6bb47cd33136d7eaaca822ba6e40504fad2b0c778a4a02989ca9e20f812d928d718295376141dd02e519e541a605a3 SHA512 8fc849244e3cdb9b1a35e9bed1f2e57e8bba210e6ab9aa7408904b5a04cc532dfff52a9840e866df5985f6b1d05c96ce7549c7514389a8dae9a4d5d798d48c8e -EBUILD binutils-libs-2.30-r2.ebuild 3198 BLAKE2B 02001b84f17d61382bfa152c31dc0e54f98b3db753a41efa7a4e658917c17b4927e5f868dd64af356867f0bd0d33f5de7315b1f260d5a6d655b7645ca7bc5c48 SHA512 f028499c94299f331dc597c87f4fd8d2f96393e55af73f85275ae1cdd30a74ba73004b7aef31b5e561ec56d157d1def72425e9de8a3fd70e44df33ad94739e58 -EBUILD binutils-libs-2.30-r3.ebuild 3211 BLAKE2B 7715a2ba111df9c62f3b00998ecb7d2b6d9aa42273195488fd121ea3f0d52554a7dd1a98e138d5b9870becfe9038ba57da8254c84720f5768af60822113386b8 SHA512 f08ecc65cb4ec222ae651ecb9fce48ebe2503ffb18204fb3183f18e802485721937e41f9140b54d56068bfa69468261d32aacaeffe595feb8788bcc837795c39 -EBUILD binutils-libs-2.30-r4.ebuild 3595 BLAKE2B 6a3fa4fde5bb14a5745fc1a88c20b33c801e7083f10691dbc32c97bf942d211c1fbca3183286d8f5d13b199fb50f3cb7c59c258109caceb3cc29f98849f5efdc SHA512 de3ca29773c643c339b220dd7e2386eb5314c3d891d5faaf268b596ea3e6a9d08dfde9988c521773ac74738c600d7ae02e698babbd96ca7ce36bdb71fa4a7a2d -EBUILD binutils-libs-2.31.1-r1.ebuild 3495 BLAKE2B e5c9ed2a14efb11e121cf853291f670c782e66584375b854f99e36dd9901b2fce09c6a58b355f517d0f8fe4297dee4b602a3ed4125650a9ed3bf12825bd1c239 SHA512 b4743dfff7d2781b0b6e5a566df944558e55c82287bc146a52551bbf762a1449ef198f04745714c0ca792e5288b07293a02c69b9e20248e6f36b52459539b564 -EBUILD binutils-libs-2.31.1.ebuild 3093 BLAKE2B da00f2d3a3d3d53fffd02f1d0236b6d8f2c5b184001d7ed47e5c91ae06b524e9f9b2cd85a3ce6877de9be609a75b784db0da2413bb4cabec626abe291b072939 SHA512 762534285aa25b69e981fc50a22baeb882ce758f9e62e42eda20612041aaf7fb04b89699979659850224b5d1403523a74c8f14db0360f12b012b596aeb66872e +EBUILD binutils-libs-2.30-r4.ebuild 3594 BLAKE2B 60b602ed843164cceee4c490fba486e38b4fe8272ec94dafc652aa891a2a148f4e8f69d88c9fb6ca6fa154cd1365bf1473ea73ce2f9bab4d1a36d08259eb7f89 SHA512 fed6718f162b379e381900b1b4c7fcfa3bfe0710f8d489e3ba19ff1d3accb51dfde7d44df5c608d8c9cf6f5d5cc92e7e518b7719ccb832b89d285507507022ee +EBUILD binutils-libs-2.31.1-r2.ebuild 3512 BLAKE2B 3c2ff410850fc97b5edd3e60cb6cc87ba8d3aef258e6f2354f1953c092f63ef1e57dca9a3fb7ebb8b086aa2a6d79062c74921034db2b53c47d2afc1de7070ea8 SHA512 24b156b93210ec004b25acfac7b936eeab08127bce9802e1f4c389d623e33f73367db2f47fc0021dc6fb15c7055ff527b6347ad37c013a946dc1d5c4cfe66c41 +EBUILD binutils-libs-2.31.1-r3.ebuild 3512 BLAKE2B 5c3f2c23d850d17336d45b498ca7f8453cf9081063e2177ddd1987eaaaffe4f9149917bd5571c2b6099907e1b045393df342c2babfde2c1307463e102a749a9b SHA512 e2d0cbf7c6fe9b18b97870a9c69b10ec67c0da4772744e995de54a29650e8b4da62a1d7ade81ef3f7fcc27aeb48992d3e7105f2aa746426d480b1abb308e7316 MISC metadata.xml 524 BLAKE2B 6f00793b2dc155b19d816b8acfd49e6bfc2ae35418ecc97fbbd3f9d0ed08b5f95a299b28fe6edad1a66f4d64abe99dc8a62a974fd70e28b535cd366239bf1cca SHA512 9db7c7a3082ee848ec4963831da06cced596d543e53660747fb56ac33998c219e1d7252892ffc32132d7db3c99ce9746fb6d9e85f866c3cba97552c31948342c diff --git a/sys-libs/binutils-libs/binutils-libs-2.30-r2.ebuild b/sys-libs/binutils-libs/binutils-libs-2.30-r2.ebuild deleted file mode 100644 index 74daf3c4a98b..000000000000 --- a/sys-libs/binutils-libs/binutils-libs-2.30-r2.ebuild +++ /dev/null @@ -1,106 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PATCH_VER=2 - -inherit eutils toolchain-funcs multilib-minimal - -MY_PN="binutils" -MY_P="${MY_PN}-${PV}" -PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}} -PATCH_DEV=${PATCH_DEV:-dilfridge} - -DESCRIPTION="Core binutils libraries (libbfd, libopcodes, libiberty) for external packages" -HOMEPAGE="https://sourceware.org/binutils/" -SRC_URI="mirror://gnu/binutils/${MY_P}.tar.xz - mirror://gentoo/${MY_PN}-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz" - -LICENSE="|| ( GPL-3 LGPL-3 )" -# The shared lib SONAMEs use the ${PV} in them. -SLOT="0/${PV}" -KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" -IUSE="64-bit-bfd multitarget nls static-libs" - -COMMON_DEPEND="sys-libs/zlib[${MULTILIB_USEDEP}]" -DEPEND="${COMMON_DEPEND} - >=sys-apps/texinfo-4.7 - nls? ( sys-devel/gettext )" -# Need a newer binutils-config that'll reset include/lib symlinks for us. -RDEPEND="${COMMON_DEPEND} - >=sys-devel/binutils-config-5 - nls? ( !=2.24) make this an explicit option. #497268 - --enable-install-libiberty - --disable-werror - --with-bugurl="https://bugs.gentoo.org/" - --with-pkgversion="$(pkgversion)" - $(use_enable static-libs static) - # The binutils eclass enables this flag for all bi-arch builds, - # but other tools often don't care about that support. Put it - # beyond a flag if people really want it, but otherwise leave - # it disabled as it can slow things down on 32bit arches. #438522 - $(use_enable 64-bit-bfd) - # This only disables building in the zlib subdir. - # For binutils itself, it'll use the system version. #591516 - --without-zlib - --with-system-zlib - # We only care about the libs, so disable programs. #528088 - --disable-{binutils,etc,ld,gas,gold,gprof} - # Disable modules that are in a combined binutils/gdb tree. #490566 - --disable-{gdb,libdecnumber,readline,sim} - # Strip out broken static link flags. - # https://gcc.gnu.org/PR56750 - --without-stage1-ldflags - ) - - # mips can't do hash-style=gnu ... - if [[ $(tc-arch) != mips ]] ; then - myconf+=( --enable-default-hash-style=gnu ) - fi - - use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd ) - - use nls \ - && myconf+=( --without-included-gettext ) \ - || myconf+=( --disable-nls ) - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" -} - -multilib_src_install() { - default - # Provide libiberty.h directly. - dosym libiberty/libiberty.h /usr/include/libiberty.h -} - -multilib_src_install_all() { - use static-libs || find "${ED}"/usr -name '*.la' -delete -} diff --git a/sys-libs/binutils-libs/binutils-libs-2.30-r3.ebuild b/sys-libs/binutils-libs/binutils-libs-2.30-r3.ebuild deleted file mode 100644 index cdcb554c0799..000000000000 --- a/sys-libs/binutils-libs/binutils-libs-2.30-r3.ebuild +++ /dev/null @@ -1,106 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PATCH_VER=3 - -inherit eutils toolchain-funcs multilib-minimal - -MY_PN="binutils" -MY_P="${MY_PN}-${PV}" -PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}} -PATCH_DEV=${PATCH_DEV:-dilfridge} - -DESCRIPTION="Core binutils libraries (libbfd, libopcodes, libiberty) for external packages" -HOMEPAGE="https://sourceware.org/binutils/" -SRC_URI="mirror://gnu/binutils/${MY_P}.tar.xz - mirror://gentoo/${MY_PN}-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz" - -LICENSE="|| ( GPL-3 LGPL-3 )" -# The shared lib SONAMEs use the ${PV} in them. -SLOT="0/${PV}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" -IUSE="64-bit-bfd multitarget nls static-libs" - -COMMON_DEPEND="sys-libs/zlib[${MULTILIB_USEDEP}]" -DEPEND="${COMMON_DEPEND} - >=sys-apps/texinfo-4.7 - nls? ( sys-devel/gettext )" -# Need a newer binutils-config that'll reset include/lib symlinks for us. -RDEPEND="${COMMON_DEPEND} - >=sys-devel/binutils-config-5 - nls? ( !=2.24) make this an explicit option. #497268 - --enable-install-libiberty - --disable-werror - --with-bugurl="https://bugs.gentoo.org/" - --with-pkgversion="$(pkgversion)" - $(use_enable static-libs static) - # The binutils eclass enables this flag for all bi-arch builds, - # but other tools often don't care about that support. Put it - # beyond a flag if people really want it, but otherwise leave - # it disabled as it can slow things down on 32bit arches. #438522 - $(use_enable 64-bit-bfd) - # This only disables building in the zlib subdir. - # For binutils itself, it'll use the system version. #591516 - --without-zlib - --with-system-zlib - # We only care about the libs, so disable programs. #528088 - --disable-{binutils,etc,ld,gas,gold,gprof} - # Disable modules that are in a combined binutils/gdb tree. #490566 - --disable-{gdb,libdecnumber,readline,sim} - # Strip out broken static link flags. - # https://gcc.gnu.org/PR56750 - --without-stage1-ldflags - ) - - # mips can't do hash-style=gnu ... - if [[ $(tc-arch) != mips ]] ; then - myconf+=( --enable-default-hash-style=gnu ) - fi - - use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd ) - - use nls \ - && myconf+=( --without-included-gettext ) \ - || myconf+=( --disable-nls ) - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" -} - -multilib_src_install() { - default - # Provide libiberty.h directly. - dosym libiberty/libiberty.h /usr/include/libiberty.h -} - -multilib_src_install_all() { - use static-libs || find "${ED}"/usr -name '*.la' -delete -} diff --git a/sys-libs/binutils-libs/binutils-libs-2.30-r4.ebuild b/sys-libs/binutils-libs/binutils-libs-2.30-r4.ebuild index 0bfdb080104c..e7a413d64f42 100644 --- a/sys-libs/binutils-libs/binutils-libs-2.30-r4.ebuild +++ b/sys-libs/binutils-libs/binutils-libs-2.30-r4.ebuild @@ -21,7 +21,7 @@ LICENSE="|| ( GPL-3 LGPL-3 )" # The shared lib SONAMEs use the ${PV} in them. # -r1 is a one-off subslot bump where SONAME changed for bug #666100 SLOT="0/${PV}-r1" -KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" IUSE="64-bit-bfd multitarget nls static-libs" COMMON_DEPEND="sys-libs/zlib[${MULTILIB_USEDEP}]" diff --git a/sys-libs/binutils-libs/binutils-libs-2.31.1-r1.ebuild b/sys-libs/binutils-libs/binutils-libs-2.31.1-r1.ebuild deleted file mode 100644 index 36cb8a4959cc..000000000000 --- a/sys-libs/binutils-libs/binutils-libs-2.31.1-r1.ebuild +++ /dev/null @@ -1,112 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PATCH_VER=3 - -inherit eutils toolchain-funcs multilib-minimal - -MY_PN="binutils" -MY_P="${MY_PN}-${PV}" -PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}} -PATCH_DEV=${PATCH_DEV:-slyfox} - -DESCRIPTION="Core binutils libraries (libbfd, libopcodes, libiberty) for external packages" -HOMEPAGE="https://sourceware.org/binutils/" -SRC_URI="mirror://gnu/binutils/${MY_P}.tar.xz - https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${MY_PN}-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz" - -LICENSE="|| ( GPL-3 LGPL-3 )" -# The shared lib SONAMEs use the ${PV} in them. -# -r1 is a one-off subslot bump where SONAME changed for bug #666100 -SLOT="0/${PV}-r1" -IUSE="64-bit-bfd multitarget nls static-libs" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd" - -COMMON_DEPEND="sys-libs/zlib[${MULTILIB_USEDEP}]" -DEPEND="${COMMON_DEPEND} - >=sys-apps/texinfo-4.7 - nls? ( sys-devel/gettext )" -# Need a newer binutils-config that'll reset include/lib symlinks for us. -RDEPEND="${COMMON_DEPEND} - >=sys-devel/binutils-config-5 - nls? ( !=2.24) make this an explicit option. #497268 - --enable-install-libiberty - --disable-werror - --with-bugurl="https://bugs.gentoo.org/" - --with-pkgversion="$(pkgversion)" - $(use_enable static-libs static) - # The binutils eclass enables this flag for all bi-arch builds, - # but other tools often don't care about that support. Put it - # beyond a flag if people really want it, but otherwise leave - # it disabled as it can slow things down on 32bit arches. #438522 - $(use_enable 64-bit-bfd) - # This only disables building in the zlib subdir. - # For binutils itself, it'll use the system version. #591516 - --without-zlib - --with-system-zlib - # We only care about the libs, so disable programs. #528088 - --disable-{binutils,etc,ld,gas,gold,gprof} - # Disable modules that are in a combined binutils/gdb tree. #490566 - --disable-{gdb,libdecnumber,readline,sim} - # Strip out broken static link flags. - # https://gcc.gnu.org/PR56750 - --without-stage1-ldflags - # We pull in all USE-flags that change ABI in an incompatible - # way. #666100 - # USE=multitarget change size of global arrays - # USE=64-bit-bfd changes data structures of exported API - --with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)-$(usex 64-bit-bfd 64 def) - ) - - # mips can't do hash-style=gnu ... - if [[ $(tc-arch) != mips ]] ; then - myconf+=( --enable-default-hash-style=gnu ) - fi - - use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd ) - - use nls \ - && myconf+=( --without-included-gettext ) \ - || myconf+=( --disable-nls ) - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" -} - -multilib_src_install() { - default - # Provide libiberty.h directly. - dosym libiberty/libiberty.h /usr/include/libiberty.h -} - -multilib_src_install_all() { - use static-libs || find "${ED}"/usr -name '*.la' -delete -} diff --git a/sys-libs/binutils-libs/binutils-libs-2.31.1-r2.ebuild b/sys-libs/binutils-libs/binutils-libs-2.31.1-r2.ebuild new file mode 100644 index 000000000000..f1b21d9e2c13 --- /dev/null +++ b/sys-libs/binutils-libs/binutils-libs-2.31.1-r2.ebuild @@ -0,0 +1,113 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PATCH_VER=4 +PATCH_DEV=dilfridge + +inherit eutils toolchain-funcs multilib-minimal + +MY_PN="binutils" +MY_P="${MY_PN}-${PV}" +PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}} +PATCH_DEV=${PATCH_DEV:-slyfox} + +DESCRIPTION="Core binutils libraries (libbfd, libopcodes, libiberty) for external packages" +HOMEPAGE="https://sourceware.org/binutils/" +SRC_URI="mirror://gnu/binutils/${MY_P}.tar.xz + https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${MY_PN}-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz" + +LICENSE="|| ( GPL-3 LGPL-3 )" +# The shared lib SONAMEs use the ${PV} in them. +# -r1 is a one-off subslot bump where SONAME changed for bug #666100 +SLOT="0/${PV}-r1" +IUSE="64-bit-bfd multitarget nls static-libs" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd" + +COMMON_DEPEND="sys-libs/zlib[${MULTILIB_USEDEP}]" +DEPEND="${COMMON_DEPEND} + >=sys-apps/texinfo-4.7 + nls? ( sys-devel/gettext )" +# Need a newer binutils-config that'll reset include/lib symlinks for us. +RDEPEND="${COMMON_DEPEND} + >=sys-devel/binutils-config-5 + nls? ( !=2.24) make this an explicit option. #497268 + --enable-install-libiberty + --disable-werror + --with-bugurl="https://bugs.gentoo.org/" + --with-pkgversion="$(pkgversion)" + $(use_enable static-libs static) + # The binutils eclass enables this flag for all bi-arch builds, + # but other tools often don't care about that support. Put it + # beyond a flag if people really want it, but otherwise leave + # it disabled as it can slow things down on 32bit arches. #438522 + $(use_enable 64-bit-bfd) + # This only disables building in the zlib subdir. + # For binutils itself, it'll use the system version. #591516 + --without-zlib + --with-system-zlib + # We only care about the libs, so disable programs. #528088 + --disable-{binutils,etc,ld,gas,gold,gprof} + # Disable modules that are in a combined binutils/gdb tree. #490566 + --disable-{gdb,libdecnumber,readline,sim} + # Strip out broken static link flags. + # https://gcc.gnu.org/PR56750 + --without-stage1-ldflags + # We pull in all USE-flags that change ABI in an incompatible + # way. #666100 + # USE=multitarget change size of global arrays + # USE=64-bit-bfd changes data structures of exported API + --with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)-$(usex 64-bit-bfd 64 def) + ) + + # mips can't do hash-style=gnu ... + if [[ $(tc-arch) != mips ]] ; then + myconf+=( --enable-default-hash-style=gnu ) + fi + + use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd ) + + use nls \ + && myconf+=( --without-included-gettext ) \ + || myconf+=( --disable-nls ) + + ECONF_SOURCE=${S} \ + econf "${myconf[@]}" +} + +multilib_src_install() { + default + # Provide libiberty.h directly. + dosym libiberty/libiberty.h /usr/include/libiberty.h +} + +multilib_src_install_all() { + use static-libs || find "${ED}"/usr -name '*.la' -delete +} diff --git a/sys-libs/binutils-libs/binutils-libs-2.31.1-r3.ebuild b/sys-libs/binutils-libs/binutils-libs-2.31.1-r3.ebuild new file mode 100644 index 000000000000..17c9385a65d9 --- /dev/null +++ b/sys-libs/binutils-libs/binutils-libs-2.31.1-r3.ebuild @@ -0,0 +1,113 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PATCH_VER=5 +PATCH_DEV=dilfridge + +inherit eutils toolchain-funcs multilib-minimal + +MY_PN="binutils" +MY_P="${MY_PN}-${PV}" +PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}} +PATCH_DEV=${PATCH_DEV:-slyfox} + +DESCRIPTION="Core binutils libraries (libbfd, libopcodes, libiberty) for external packages" +HOMEPAGE="https://sourceware.org/binutils/" +SRC_URI="mirror://gnu/binutils/${MY_P}.tar.xz + https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${MY_PN}-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz" + +LICENSE="|| ( GPL-3 LGPL-3 )" +# The shared lib SONAMEs use the ${PV} in them. +# -r1 is a one-off subslot bump where SONAME changed for bug #666100 +SLOT="0/${PV}-r1" +IUSE="64-bit-bfd multitarget nls static-libs" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd" + +COMMON_DEPEND="sys-libs/zlib[${MULTILIB_USEDEP}]" +DEPEND="${COMMON_DEPEND} + >=sys-apps/texinfo-4.7 + nls? ( sys-devel/gettext )" +# Need a newer binutils-config that'll reset include/lib symlinks for us. +RDEPEND="${COMMON_DEPEND} + >=sys-devel/binutils-config-5 + nls? ( !=2.24) make this an explicit option. #497268 + --enable-install-libiberty + --disable-werror + --with-bugurl="https://bugs.gentoo.org/" + --with-pkgversion="$(pkgversion)" + $(use_enable static-libs static) + # The binutils eclass enables this flag for all bi-arch builds, + # but other tools often don't care about that support. Put it + # beyond a flag if people really want it, but otherwise leave + # it disabled as it can slow things down on 32bit arches. #438522 + $(use_enable 64-bit-bfd) + # This only disables building in the zlib subdir. + # For binutils itself, it'll use the system version. #591516 + --without-zlib + --with-system-zlib + # We only care about the libs, so disable programs. #528088 + --disable-{binutils,etc,ld,gas,gold,gprof} + # Disable modules that are in a combined binutils/gdb tree. #490566 + --disable-{gdb,libdecnumber,readline,sim} + # Strip out broken static link flags. + # https://gcc.gnu.org/PR56750 + --without-stage1-ldflags + # We pull in all USE-flags that change ABI in an incompatible + # way. #666100 + # USE=multitarget change size of global arrays + # USE=64-bit-bfd changes data structures of exported API + --with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)-$(usex 64-bit-bfd 64 def) + ) + + # mips can't do hash-style=gnu ... + if [[ $(tc-arch) != mips ]] ; then + myconf+=( --enable-default-hash-style=gnu ) + fi + + use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd ) + + use nls \ + && myconf+=( --without-included-gettext ) \ + || myconf+=( --disable-nls ) + + ECONF_SOURCE=${S} \ + econf "${myconf[@]}" +} + +multilib_src_install() { + default + # Provide libiberty.h directly. + dosym libiberty/libiberty.h /usr/include/libiberty.h +} + +multilib_src_install_all() { + use static-libs || find "${ED}"/usr -name '*.la' -delete +} diff --git a/sys-libs/binutils-libs/binutils-libs-2.31.1.ebuild b/sys-libs/binutils-libs/binutils-libs-2.31.1.ebuild deleted file mode 100644 index be5ead46558d..000000000000 --- a/sys-libs/binutils-libs/binutils-libs-2.31.1.ebuild +++ /dev/null @@ -1,106 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PATCH_VER=2 - -inherit eutils toolchain-funcs multilib-minimal - -MY_PN="binutils" -MY_P="${MY_PN}-${PV}" -PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}} -PATCH_DEV=${PATCH_DEV:-slyfox} - -DESCRIPTION="Core binutils libraries (libbfd, libopcodes, libiberty) for external packages" -HOMEPAGE="https://sourceware.org/binutils/" -SRC_URI="mirror://gnu/binutils/${MY_P}.tar.xz - mirror://gentoo/${MY_PN}-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz" - -LICENSE="|| ( GPL-3 LGPL-3 )" -# The shared lib SONAMEs use the ${PV} in them. -SLOT="0/${PV}" -IUSE="64-bit-bfd multitarget nls static-libs" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd" - -COMMON_DEPEND="sys-libs/zlib[${MULTILIB_USEDEP}]" -DEPEND="${COMMON_DEPEND} - >=sys-apps/texinfo-4.7 - nls? ( sys-devel/gettext )" -# Need a newer binutils-config that'll reset include/lib symlinks for us. -RDEPEND="${COMMON_DEPEND} - >=sys-devel/binutils-config-5 - nls? ( !=2.24) make this an explicit option. #497268 - --enable-install-libiberty - --disable-werror - --with-bugurl="https://bugs.gentoo.org/" - --with-pkgversion="$(pkgversion)" - $(use_enable static-libs static) - # The binutils eclass enables this flag for all bi-arch builds, - # but other tools often don't care about that support. Put it - # beyond a flag if people really want it, but otherwise leave - # it disabled as it can slow things down on 32bit arches. #438522 - $(use_enable 64-bit-bfd) - # This only disables building in the zlib subdir. - # For binutils itself, it'll use the system version. #591516 - --without-zlib - --with-system-zlib - # We only care about the libs, so disable programs. #528088 - --disable-{binutils,etc,ld,gas,gold,gprof} - # Disable modules that are in a combined binutils/gdb tree. #490566 - --disable-{gdb,libdecnumber,readline,sim} - # Strip out broken static link flags. - # https://gcc.gnu.org/PR56750 - --without-stage1-ldflags - ) - - # mips can't do hash-style=gnu ... - if [[ $(tc-arch) != mips ]] ; then - myconf+=( --enable-default-hash-style=gnu ) - fi - - use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd ) - - use nls \ - && myconf+=( --without-included-gettext ) \ - || myconf+=( --disable-nls ) - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" -} - -multilib_src_install() { - default - # Provide libiberty.h directly. - dosym libiberty/libiberty.h /usr/include/libiberty.h -} - -multilib_src_install_all() { - use static-libs || find "${ED}"/usr -name '*.la' -delete -} diff --git a/sys-libs/compiler-rt-sanitizers/Manifest b/sys-libs/compiler-rt-sanitizers/Manifest index c4acc8cb56e5..6ae6d3d82c3c 100644 --- a/sys-libs/compiler-rt-sanitizers/Manifest +++ b/sys-libs/compiler-rt-sanitizers/Manifest @@ -6,19 +6,19 @@ DIST compiler-rt-4.0.1.src.tar.xz 1434100 BLAKE2B ca6bf78fc07f387b7244a52ef648b0 DIST compiler-rt-5.0.2.src.tar.xz 1543256 BLAKE2B 09fa84b8f3e9b8627a14387bc6eaa3d6b4588b9c8f1ac5a0114135fd830e3d45922408b237866789eb81bf38defde1186e0f7430a69f825bee12776b7cd9f74e SHA512 605a6d064877a860d6c9097e0220896dfceafed0a2392ad495c97aa347b97899d89f7e21932e29d3274f396615837414a3e730a915fe4f53eaa858ce3642a666 DIST compiler-rt-6.0.1.src.tar.xz 1686820 BLAKE2B 59fa3f6e478bd4d6dfa056c85dcdc4349cbce7cea7fc56519feddc9d66c88c9ca48bad7967432ceb81d754213577f12707035afd827cf630a58627575b73b798 SHA512 69850c1ad92c66977fa217cbfb42a6a3f502fbe3d1a08daa7fc4cfeb617a7736d231f8ad8d93b10b1ae29bd753315d2a2d70f9ff1f4d18a9a7cc81758d91f963 DIST compiler-rt-7.0.0.src.tar.xz 1815168 BLAKE2B b702e9f14ecf97fdc32476428d51db72398e1eb5a6817d8912b5beac2a31342b9456faa978365c13dc16c0a8211e27dfc4500a112c6c095a5ded197a4779199a SHA512 fb36aab38e7b7e3c23ad8598a54a5d7d36a30bc306c60c95b074029ffad48cb1d74fa5acde34b4affc50827562fd794969ae31067bd64e116281eb65ae4f4346 -DIST compiler-rt-7.0.1rc2.src.tar.xz 1863772 BLAKE2B 6523b63ab5887b440b8f3765a9fe39b90efeed9a3c3fa44b4a750770ac6c47ddad848f5cf03a746e6f121c084187083902f8f60f8191c9579b25ad6ee6a11837 SHA512 38e0582b6f8ef87370ad0e8b259928432b21493b5190ac3f0873958e29e9f293f02a2f9107aa00c4bd9c75808c3db879cedd91c4a2058f2c36ae50b4de091c35 +DIST compiler-rt-7.0.1.src.tar.xz 1864520 BLAKE2B 14f72aad4379387f4212fb5efef3456cb5e8a03c7a91f98de2368e9b5ff2d02aeaed05da4fba6978b9e4e8698eb34c9c0c4c2df8d43b8c11e8e9d65079c7fa41 SHA512 b94a2a1fb9a6d587cef59b04b951628747bb35bdbcb67de8825aad402a2ba875916a347eef7a9575ac27264e8372e2d67cd477fe2d750c0ed3ce7d67bbbc7dba DIST compiler-rt-sanitizers-4.0.1-patchset.tar.xz 2384 BLAKE2B 6f9eee711c83570767f0bb634d0f91c18ee7f2af93a478938b8d5b6ce6f2c2fbaadb7bd5c7ee94a14dc1834359a046187db6bc7005b7c2efa539325dc0701ad9 SHA512 72d7357b4c27bbf8fa8b34803ddea905a9f1054e8fc7bf99a4ead9dc00408989ea2709f04be9cf45a27eeb4b9386c89feeb25b53a84f3cac9739196b89813887 DIST compiler-rt-sanitizers-6.0.1-patchset.tar.xz 8820 BLAKE2B d53ca357e060d058c7f20c51e74684f4c032fdf3ccec4c9f227dc7a5757206f331b9eda25a72c5c66faf4c44b2cc63eb439bd21bdd55d37a93918ab428fd7cd4 SHA512 782a34c56134bd061da30c1f598ddb9e90cb34a4e4ef058fa9634f6da372fd8693ff5e6cf98b59700942273240f83052b89ee2736b22f4e19bc8b519fbec8cad DIST llvm-4.0.1.src.tar.xz 21065652 BLAKE2B 6327eed2d1feb108440f22d2581d1ff86c10a10c29793538d8d899c7e2dc83d3f7b147d3fd4bcce2bd2bf57c071b08c624aeafe40a3e7a3914506e7751727e6c SHA512 16adc39b34ddb628f81b171119a8e2a0e9138b25011e803ef0b688e2fbea116fc4953d3a1b61b90a98a75e33619f81566b7cb06a9a2ea4d04ac5e0eb303a2d1d DIST llvm-5.0.2.src.tar.xz 23451868 BLAKE2B b7082be2e4ad557b29b9f6869811f262adcf5c73d552faf91b339bede75cf5eab58afefa12fa779a38be71fe2b8f4ea297c3213ee4e8370cc01972c59249d91c SHA512 3588be5ed969c3f7f6f16f56a12a6af2814d3d3c960d4a36ffebb0446cc75f19220bccee7fc605f9b01f5d5c188a905a046193cc12dec42dd5922048b5c27fe1 DIST llvm-6.0.1.src.tar.xz 25306628 BLAKE2B 60232d4d22f8096b565cc8d81fea0639f24f14e8fc4f66ade69fa15479181f07f655f26dff3fa24bf105762b495da316c5c9352db234bd0af6b9c3fff6d4d881 SHA512 cbbb00eb99cfeb4aff623ee1a5ba075e7b5a76fc00c5f9f539ff28c108598f5708a0369d5bd92683def5a20c2fe60cab7827b42d628dbfcc79b57e0e91b84dd9 DIST llvm-7.0.0.src.tar.xz 28324368 BLAKE2B 10168ff9be8f68536db3b2263c85c1c98213ef03dc542b83628ff176542452582bc496bab236fdf40d4a6463a33f04b27f1458c072ad8b66b641f8df8d494046 SHA512 bdc9b851c158b17e1bbeb7ac5ae49821bfb1251a3826fe8a3932cd1a43f9fb0d620c3de67150c1d9297bf0b86fa917e75978da29c3f751b277866dc90395abec -DIST llvm-7.0.1rc2.src.tar.xz 28304444 BLAKE2B 245e45f77a2ec2d94b237d1015ccc1e409f0dc149dba3192c15293bc2d45ec40989081a930a5e55a4b0ebf906397c62afd910bc25c5c1eef7ea5e310d4172acb SHA512 cfc4d1926bae75f6f22350273ab76811f0b78ddad81717c9201d7814ebe7b902c5a9c6caa0232e2bdc14e819b008f914d055b23723e0ec4a5309809dc06c6bf4 +DIST llvm-7.0.1.src.tar.xz 28311056 BLAKE2B 737aa6144a415e41a4ff2c8bd5a727d6f14d7b1810c62cbefa5a25fe642c98cddf8a28e35c7e9783373aa3b96f5c0943229e229ad1b43e56e9ed6db0f27ab128 SHA512 ac43a3cb71a53deb55e3693653847cf20bf6f5d9056f224e6956c96d63bc59ebee9404f088eec9cabe65337b4607a905ef931354b373cf64e0004c6905a6b5df EBUILD compiler-rt-sanitizers-4.0.1.ebuild 4778 BLAKE2B 5689080c9783d288206a9a7f4d8cee487ef73a951d95baf7083719c89239b299a7cb71361e060876a7564701c353a857e9a640ff5e8f5054d76c6ede66523b5e SHA512 937fab2e9791bd122005469704e5cbbc8907d0f52cb277d779bd93451178e49c8f369be0dec5bff22338a7ed3920f0e125337e9ede02c957c123f968b69ec442 EBUILD compiler-rt-sanitizers-5.0.2.ebuild 5095 BLAKE2B 0f3348e8800d24d01231b2460025eb83a3211c44fd2987a0b0d4361372fe4af5695a131886d55029459121e8952e394c526120f12212d20a8a5c995847a04cb0 SHA512 cf13df0bad1be887c621c16f12639e385fff395985007b17a1bf14b00f0dd9dfd609e83287fc890f105d2bd586b3457b1efe3b6f687096a205b1a96f3fd1139e -EBUILD compiler-rt-sanitizers-6.0.1.ebuild 5248 BLAKE2B 02cd036059dc9a038a440dfc356f4b5a9d7bf2ec68790d95d391f05ec62404ecbcf422082d005a9b6a23f16e2500bdcb3bd606f2f5bc53ee04cfe3724caa0771 SHA512 22527b482c1e8fe80273de88e4bcef4fbdba7000149ab31e63fab6bd8b75587eed5ac5b01aaf1c257decfb9af96b3256f19dc462ca84ee5cbf40655328851337 -EBUILD compiler-rt-sanitizers-7.0.0.ebuild 5187 BLAKE2B 6e07adb76426a6c300a12bc5ba97235c11035cc8f7faeb5fcc53d03f0eaf68bd9f6bd5da6e8b0d36af725fe7dc85da069d3638a474a884cb5026984b89c407e1 SHA512 703acf5278cfc31efdb435d986b98269e3516f00b837da3401535063ff3b7ffeb45fc93014abea4422ea15328fb1878bdf5771e836e4fc6edf32c56a5b3af05e -EBUILD compiler-rt-sanitizers-7.0.1_rc2.ebuild 5193 BLAKE2B c693897015a9bbcba01e1d0f8cea65552a02bb75e0ebb1b81041174444f9dbf97983d529b25a809a967cb1a9c47389b6581098121858a35d31369e9e24160454 SHA512 5a839844deee6d75aff64c2b31a9de98083dab611d75374a1e15cb55d42e87a09b1e03866977469d5fbc15c069828f91d7e370dd0865ffe12e612879971fb393 -EBUILD compiler-rt-sanitizers-7.0.9999.ebuild 5130 BLAKE2B 3c9e496aeccc208d99f74a4c25763e02aa5a3060488908183afdb571acc969bf0016d0430d3550806013cb48997c8ac3d6e1204e9f98cc166f0248ab3467a5bc SHA512 42030fc7630767756952a58a0743db251bb98b7d7792d682be6009363ef6cc2633dab10eb1a1219b523deedbf302ba18789b813940aedbf57639f460d78338e1 -EBUILD compiler-rt-sanitizers-9999.ebuild 5097 BLAKE2B 51ca24c61730c556a130c923cd9bdda491dca251351c9f0e8ddd80dbd8f3e8de504ab19b21509e85b84dead62c2ba46dc7f09d961037b9b90998ee31ddd57d83 SHA512 27e5cdb3def5372476f5b762d60ec342482d25fa7839bd5e3aeab7787a1c1c9e264c64bd496a6268495b874c232ff74336f143533450592849ff8a0c7edfddc5 -MISC metadata.xml 333 BLAKE2B 24e417cb7b8ab7730b18a3e1e5e29d008042e4fd53cf1ba3cc9d18719160b0410854ddfae52315c690138e61fb0196015968fa09b98af6470cd8bdecc09205ef SHA512 97daa7452a696b7297c47f5f637a33425f82b51426060a75b3de6bc812f9ddcd3c70ae068bc3e88ce937ab1eb10d59b0ab48a2d2c0397a112b8b6a754e333bdc +EBUILD compiler-rt-sanitizers-6.0.1.ebuild 5453 BLAKE2B b643f95efc78b4aaa3ab4f05072397003d6e46793a763f91eb79f60c183d89e7265a53f6f96401dc87546bba5b8d21dd38dd0b8bceecdb652702685288465916 SHA512 c9b1dee74f1cbe7d6822589372389c2e3e6f3398211e26d83072dab290541797fa08c52c4c6ac581a59dac52fe5893a27812e5e46e175b9146f2c8348f170458 +EBUILD compiler-rt-sanitizers-7.0.0.ebuild 5394 BLAKE2B 17a09c24374945ed7f2fdde4d56248adb40d10678fed98e9f8835e38e994071a9e1a5705c604255f10cc4d6317f81446990fe36c1708cbf4addee9372130592b SHA512 bf9f30de196fad1ae3708a172054ff1cd28c4763ca0e05c554049e3a4d64c95aeca2c98a00762e9d75cf65b56658d8a03d655d97fdb479bba919b719ef407107 +EBUILD compiler-rt-sanitizers-7.0.1.ebuild 5410 BLAKE2B b93a8907f25f9a6864556787b0e0b86b2fad39c19136e93baa9d73df5b5001f9539c27b5227eb5ae40fd7c34ca343ed45de1c2cd71f1f9753953bff04ced8c5c SHA512 b70f6f3ad6764d9d6244ec51a07a1948864db899213d68947c904161312b4ea450c7eba8f2c1aa3f9b0ab25bb7a1ac3d5650551c37f48abf0bfafc232cc3a7ad +EBUILD compiler-rt-sanitizers-7.0.9999.ebuild 5335 BLAKE2B 2c1851ad178efe08bf96f342e1d2b02c269b395fd29a20532e54538060b09b6c9f7dda7a98f02bb50d309b57a69aff29ff06a5051a0aa28b24b40bba80cbf866 SHA512 7f3d61dfc5ac2087d6069d02cdd485367d0c8ec5b5e51384d1b1c6af4668548e5091ec05861569d4bbeb7bee149a5feb8621c8ba6370de5d250c59d37b8b81e5 +EBUILD compiler-rt-sanitizers-9999.ebuild 5302 BLAKE2B 6f0a715beb0734deb7b2d9795eb66632eae12c4cb7df768dcaa4fa2cb18e7adca30a865f93d2c61b160e28168f103075c9ed171d0124c92b780681138d4e1fc7 SHA512 56b252d8298dacb82274c652049df08299a8811d4991549f24a178e600f2580b1a7fb8a8600d65f667853464bb248b2f5b014e8ef12f8e456fb29350f68d0855 +MISC metadata.xml 547 BLAKE2B 6f9d8b65c12797fd3d168e9b3948c604265db135bda5493d9f1d8b1d01fd73a79d07e5241afc3a7fa1672827fac23d3d9dc4d7ae42371a0de892a900c8c28269 SHA512 fb73a96b1ffbc7ff2fecfba35c9acd3e54ade0154016ae04423217f5c000eee2b0b821cc626908647551a0aa7b7f462d42d56cde3993ddd52248bc373b117c3e diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-6.0.1.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-6.0.1.ebuild index ad5d4e784972..6fc9d6443c53 100644 --- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-6.0.1.ebuild +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-6.0.1.ebuild @@ -23,7 +23,9 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${MY_P}.tar.xz LICENSE="|| ( UoI-NCSA MIT )" SLOT="${PV%_*}" KEYWORDS="amd64 ~arm64 ~ppc64 x86 ~amd64-fbsd ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" -IUSE="+clang test elibc_glibc" +IUSE="+clang +libfuzzer +profile +sanitize test +xray elibc_glibc" +# FIXME: libfuzzer does not enable all its necessary dependencies +REQUIRED_USE="libfuzzer? ( || ( sanitize xray ) )" RESTRICT="!test? ( test ) !clang? ( test )" CLANG_SLOT=${SLOT%%.*} @@ -110,10 +112,10 @@ src_configure() { -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) # built-ins installed by sys-libs/compiler-rt -DCOMPILER_RT_BUILD_BUILTINS=OFF - -DCOMPILER_RT_BUILD_LIBFUZZER=ON - -DCOMPILER_RT_BUILD_PROFILE=ON - -DCOMPILER_RT_BUILD_SANITIZERS=ON - -DCOMPILER_RT_BUILD_XRAY=ON + -DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer) + -DCOMPILER_RT_BUILD_PROFILE=$(usex profile) + -DCOMPILER_RT_BUILD_SANITIZERS=$(usex sanitize) + -DCOMPILER_RT_BUILD_XRAY=$(usex xray) ) if use test; then mycmakeargs+=( diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-7.0.0.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-7.0.0.ebuild index 97f45a06894f..8d0f0255d2f2 100644 --- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-7.0.0.ebuild +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-7.0.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -21,8 +21,10 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${MY_P}.tar.xz LICENSE="|| ( UoI-NCSA MIT )" SLOT="${PV%_*}" -KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" -IUSE="+clang test elibc_glibc" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" +IUSE="+clang +libfuzzer +profile +sanitize test +xray elibc_glibc" +# FIXME: libfuzzer does not enable all its necessary dependencies +REQUIRED_USE="libfuzzer? ( || ( sanitize xray ) )" RESTRICT="!test? ( test ) !clang? ( test )" CLANG_SLOT=${SLOT%%.*} @@ -108,10 +110,10 @@ src_configure() { -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) # built-ins installed by sys-libs/compiler-rt -DCOMPILER_RT_BUILD_BUILTINS=OFF - -DCOMPILER_RT_BUILD_LIBFUZZER=ON - -DCOMPILER_RT_BUILD_PROFILE=ON - -DCOMPILER_RT_BUILD_SANITIZERS=ON - -DCOMPILER_RT_BUILD_XRAY=ON + -DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer) + -DCOMPILER_RT_BUILD_PROFILE=$(usex profile) + -DCOMPILER_RT_BUILD_SANITIZERS=$(usex sanitize) + -DCOMPILER_RT_BUILD_XRAY=$(usex xray) ) if use test; then mycmakeargs+=( diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-7.0.1.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-7.0.1.ebuild new file mode 100644 index 000000000000..de149ae7e0a9 --- /dev/null +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-7.0.1.ebuild @@ -0,0 +1,176 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python2_7 ) + +inherit check-reqs cmake-utils flag-o-matic llvm \ + multiprocessing python-any-r1 + +MY_P=compiler-rt-${PV/_/}.src +LLVM_P=llvm-${PV/_/}.src + +DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)" +HOMEPAGE="https://llvm.org/" +SRC_URI="https://releases.llvm.org/${PV/_//}/${MY_P}.tar.xz + test? ( https://releases.llvm.org/${PV/_//}/${LLVM_P}.tar.xz )" + +LICENSE="|| ( UoI-NCSA MIT )" +SLOT="${PV%_*}" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" +IUSE="+clang +libfuzzer +profile +sanitize test +xray elibc_glibc" +# FIXME: libfuzzer does not enable all its necessary dependencies +REQUIRED_USE="libfuzzer? ( || ( sanitize xray ) )" +RESTRICT="!test? ( test ) !clang? ( test )" + +CLANG_SLOT=${SLOT%%.*} +# llvm-6 for new lit options +DEPEND=" + >=sys-devel/llvm-6 + clang? ( sys-devel/clang ) + elibc_glibc? ( net-libs/libtirpc ) + test? ( + !=dev-python/lit-5[\${PYTHON_USEDEP}]") + =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} + sys-libs/compiler-rt:${SLOT} ) + ${PYTHON_DEPS}" + +S=${WORKDIR}/${MY_P} + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +check_space() { + if use test; then + local CHECKREQS_DISK_BUILD=11G + check-reqs_pkg_pretend + fi +} + +pkg_pretend() { + check_space +} + +pkg_setup() { + check_space + llvm_pkg_setup + python-any-r1_pkg_setup +} + +src_unpack() { + einfo "Unpacking ${MY_P}.tar.xz ..." + tar -xf "${DISTDIR}/${MY_P}.tar.xz" || die + + if use test; then + einfo "Unpacking parts of ${LLVM_P}.tar.xz ..." + tar -xf "${DISTDIR}/${LLVM_P}.tar.xz" \ + "${LLVM_P}"/utils/{lit,unittest} || die + mv "${LLVM_P}" llvm || die + fi +} + +src_prepare() { + cmake-utils_src_prepare + + # apply the fixes for new glibc / split tirpc + eapply "${FILESDIR}/7.0.9999/0001-sanitizer_common-Fix-using-libtirpc-on-Linux.patch" + eapply "${FILESDIR}/7.0.9999/0002-test-Support-using-libtirpc-on-Linux.patch" + + if use test; then + # remove tests that are (still) broken by new glibc + # https://bugs.llvm.org/show_bug.cgi?id=36065 + if use elibc_glibc && has_version '>=sys-libs/glibc-2.25'; then + rm test/lsan/TestCases/Linux/{fork_and_leak,use_tls_dynamic}.cc || die + rm test/msan/dtls_test.c || die + fi + fi +} + +src_configure() { + # pre-set since we need to pass it to cmake + BUILD_DIR=${WORKDIR}/${P}_build + + if use clang; then + local -x CC=${CHOST}-clang + local -x CXX=${CHOST}-clang++ + strip-unsupported-flags + fi + + local mycmakeargs=( + -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" + # use a build dir structure consistent with install + # this makes it possible to easily deploy test-friendly clang + -DCOMPILER_RT_OUTPUT_DIR="${BUILD_DIR}/lib/clang/${SLOT}" + + -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) + # built-ins installed by sys-libs/compiler-rt + -DCOMPILER_RT_BUILD_BUILTINS=OFF + -DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer) + -DCOMPILER_RT_BUILD_PROFILE=$(usex profile) + -DCOMPILER_RT_BUILD_SANITIZERS=$(usex sanitize) + -DCOMPILER_RT_BUILD_XRAY=$(usex xray) + ) + if use test; then + mycmakeargs+=( + -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}" + + # they are created during src_test() + -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang" + -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang++" + ) + + # same flags are passed for build & tests, so we need to strip + # them down to a subset supported by clang + CC=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang \ + CXX=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++ \ + strip-unsupported-flags + fi + + if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then + mycmakeargs+=( + # disable use of SDK for the system itself + -DDARWIN_macosx_CACHED_SYSROOT=/ + ) + fi + + cmake-utils_src_configure + + if use test; then + local sys_dir=( "${EPREFIX}"/usr/lib/clang/${SLOT}/lib/* ) + [[ -e ${sys_dir} ]] || die "Unable to find ${sys_dir}" + [[ ${#sys_dir[@]} -eq 1 ]] || die "Non-deterministic compiler-rt install: ${sys_dir[*]}" + + # copy clang over since resource_dir is located relatively to binary + # therefore, we can put our new libraries in it + mkdir -p "${BUILD_DIR}"/lib/{llvm/${CLANG_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die + cp "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/bin/clang{,++} \ + "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/bin/ || die + cp "${EPREFIX}"/usr/lib/clang/${SLOT}/include/*.h \ + "${BUILD_DIR}"/lib/clang/${SLOT}/include/ || die + cp "${sys_dir}"/*builtins*.a \ + "${BUILD_DIR}/lib/clang/${SLOT}/lib/${sys_dir##*/}/" || die + # we also need LLVMgold.so for gold-based tests + if [[ -f ${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so ]]; then + ln -s "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so \ + "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/$(get_libdir)/ || die + fi + fi +} + +src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + # disable sandbox to have it stop clobbering LD_PRELOAD + local -x SANDBOX_ON=0 + # wipe LD_PRELOAD to make ASAN happy + local -x LD_PRELOAD= + + cmake-utils_src_make check-all +} diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-7.0.1_rc2.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-7.0.1_rc2.ebuild deleted file mode 100644 index 9d4ca8434d1f..000000000000 --- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-7.0.1_rc2.ebuild +++ /dev/null @@ -1,174 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -: ${CMAKE_MAKEFILE_GENERATOR:=ninja} -# (needed due to CMAKE_BUILD_TYPE != Gentoo) -CMAKE_MIN_VERSION=3.7.0-r1 -PYTHON_COMPAT=( python2_7 ) - -inherit check-reqs cmake-utils flag-o-matic llvm \ - multiprocessing python-any-r1 - -MY_P=compiler-rt-${PV/_/}.src -LLVM_P=llvm-${PV/_/}.src - -DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)" -HOMEPAGE="https://llvm.org/" -SRC_URI="https://prereleases.llvm.org/${PV/_//}/${MY_P}.tar.xz - test? ( https://prereleases.llvm.org/${PV/_//}/${LLVM_P}.tar.xz )" - -LICENSE="|| ( UoI-NCSA MIT )" -SLOT="${PV%_*}" -KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" -IUSE="+clang test elibc_glibc" -RESTRICT="!test? ( test ) !clang? ( test )" - -CLANG_SLOT=${SLOT%%.*} -# llvm-6 for new lit options -DEPEND=" - >=sys-devel/llvm-6 - clang? ( sys-devel/clang ) - elibc_glibc? ( net-libs/libtirpc ) - test? ( - !=dev-python/lit-5[\${PYTHON_USEDEP}]") - =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} - sys-libs/compiler-rt:${SLOT} ) - ${PYTHON_DEPS}" - -S=${WORKDIR}/${MY_P} - -# least intrusive of all -CMAKE_BUILD_TYPE=RelWithDebInfo - -check_space() { - if use test; then - local CHECKREQS_DISK_BUILD=11G - check-reqs_pkg_pretend - fi -} - -pkg_pretend() { - check_space -} - -pkg_setup() { - check_space - llvm_pkg_setup - python-any-r1_pkg_setup -} - -src_unpack() { - einfo "Unpacking ${MY_P}.tar.xz ..." - tar -xf "${DISTDIR}/${MY_P}.tar.xz" || die - - if use test; then - einfo "Unpacking parts of ${LLVM_P}.tar.xz ..." - tar -xf "${DISTDIR}/${LLVM_P}.tar.xz" \ - "${LLVM_P}"/utils/{lit,unittest} || die - mv "${LLVM_P}" llvm || die - fi -} - -src_prepare() { - cmake-utils_src_prepare - - # apply the fixes for new glibc / split tirpc - eapply "${FILESDIR}/7.0.9999/0001-sanitizer_common-Fix-using-libtirpc-on-Linux.patch" - eapply "${FILESDIR}/7.0.9999/0002-test-Support-using-libtirpc-on-Linux.patch" - - if use test; then - # remove tests that are (still) broken by new glibc - # https://bugs.llvm.org/show_bug.cgi?id=36065 - if use elibc_glibc && has_version '>=sys-libs/glibc-2.25'; then - rm test/lsan/TestCases/Linux/use_tls_dynamic.cc || die - rm test/msan/dtls_test.c || die - fi - fi -} - -src_configure() { - # pre-set since we need to pass it to cmake - BUILD_DIR=${WORKDIR}/${P}_build - - if use clang; then - local -x CC=${CHOST}-clang - local -x CXX=${CHOST}-clang++ - strip-unsupported-flags - fi - - local mycmakeargs=( - -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" - # use a build dir structure consistent with install - # this makes it possible to easily deploy test-friendly clang - -DCOMPILER_RT_OUTPUT_DIR="${BUILD_DIR}/lib/clang/${SLOT}" - - -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) - # built-ins installed by sys-libs/compiler-rt - -DCOMPILER_RT_BUILD_BUILTINS=OFF - -DCOMPILER_RT_BUILD_LIBFUZZER=ON - -DCOMPILER_RT_BUILD_PROFILE=ON - -DCOMPILER_RT_BUILD_SANITIZERS=ON - -DCOMPILER_RT_BUILD_XRAY=ON - ) - if use test; then - mycmakeargs+=( - -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}" - - # they are created during src_test() - -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang" - -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang++" - ) - - # same flags are passed for build & tests, so we need to strip - # them down to a subset supported by clang - CC=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang \ - CXX=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++ \ - strip-unsupported-flags - fi - - if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then - mycmakeargs+=( - # disable use of SDK for the system itself - -DDARWIN_macosx_CACHED_SYSROOT=/ - ) - fi - - cmake-utils_src_configure - - if use test; then - local sys_dir=( "${EPREFIX}"/usr/lib/clang/${SLOT}/lib/* ) - [[ -e ${sys_dir} ]] || die "Unable to find ${sys_dir}" - [[ ${#sys_dir[@]} -eq 1 ]] || die "Non-deterministic compiler-rt install: ${sys_dir[*]}" - - # copy clang over since resource_dir is located relatively to binary - # therefore, we can put our new libraries in it - mkdir -p "${BUILD_DIR}"/lib/{llvm/${CLANG_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die - cp "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/bin/clang{,++} \ - "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/bin/ || die - cp "${EPREFIX}"/usr/lib/clang/${SLOT}/include/*.h \ - "${BUILD_DIR}"/lib/clang/${SLOT}/include/ || die - cp "${sys_dir}"/*builtins*.a \ - "${BUILD_DIR}/lib/clang/${SLOT}/lib/${sys_dir##*/}/" || die - # we also need LLVMgold.so for gold-based tests - if [[ -f ${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so ]]; then - ln -s "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so \ - "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/$(get_libdir)/ || die - fi - fi -} - -src_test() { - # respect TMPDIR! - local -x LIT_PRESERVES_TMP=1 - # disable sandbox to have it stop clobbering LD_PRELOAD - local -x SANDBOX_ON=0 - # wipe LD_PRELOAD to make ASAN happy - local -x LD_PRELOAD= - - cmake-utils_src_make check-all -} diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-7.0.9999.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-7.0.9999.ebuild index 051afd44649f..b15b2a7a43a2 100644 --- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-7.0.9999.ebuild +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-7.0.9999.ebuild @@ -22,7 +22,9 @@ LICENSE="|| ( UoI-NCSA MIT )" # Note: this needs to be updated to match version of clang-9999 SLOT="7.0.1" KEYWORDS="" -IUSE="+clang test elibc_glibc" +IUSE="+clang +libfuzzer +profile +sanitize test +xray elibc_glibc" +# FIXME: libfuzzer does not enable all its necessary dependencies +REQUIRED_USE="libfuzzer? ( || ( sanitize xray ) )" RESTRICT="!test? ( test ) !clang? ( test )" CLANG_SLOT=${SLOT%%.*} @@ -109,10 +111,10 @@ src_configure() { -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) # built-ins installed by sys-libs/compiler-rt -DCOMPILER_RT_BUILD_BUILTINS=OFF - -DCOMPILER_RT_BUILD_LIBFUZZER=ON - -DCOMPILER_RT_BUILD_PROFILE=ON - -DCOMPILER_RT_BUILD_SANITIZERS=ON - -DCOMPILER_RT_BUILD_XRAY=ON + -DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer) + -DCOMPILER_RT_BUILD_PROFILE=$(usex profile) + -DCOMPILER_RT_BUILD_SANITIZERS=$(usex sanitize) + -DCOMPILER_RT_BUILD_XRAY=$(usex xray) ) if use test; then mycmakeargs+=( diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9999.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9999.ebuild index e39d274e7f15..78884e8f13dc 100644 --- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9999.ebuild +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9999.ebuild @@ -21,7 +21,9 @@ LICENSE="|| ( UoI-NCSA MIT )" # Note: this needs to be updated to match version of clang-9999 SLOT="8.0.0" KEYWORDS="" -IUSE="+clang test elibc_glibc" +IUSE="+clang +libfuzzer +profile +sanitize test +xray elibc_glibc" +# FIXME: libfuzzer does not enable all its necessary dependencies +REQUIRED_USE="libfuzzer? ( || ( sanitize xray ) )" RESTRICT="!test? ( test ) !clang? ( test )" CLANG_SLOT=${SLOT%%.*} @@ -108,10 +110,10 @@ src_configure() { -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) # built-ins installed by sys-libs/compiler-rt -DCOMPILER_RT_BUILD_BUILTINS=OFF - -DCOMPILER_RT_BUILD_LIBFUZZER=ON - -DCOMPILER_RT_BUILD_PROFILE=ON - -DCOMPILER_RT_BUILD_SANITIZERS=ON - -DCOMPILER_RT_BUILD_XRAY=ON + -DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer) + -DCOMPILER_RT_BUILD_PROFILE=$(usex profile) + -DCOMPILER_RT_BUILD_SANITIZERS=$(usex sanitize) + -DCOMPILER_RT_BUILD_XRAY=$(usex xray) ) if use test; then mycmakeargs+=( diff --git a/sys-libs/compiler-rt-sanitizers/metadata.xml b/sys-libs/compiler-rt-sanitizers/metadata.xml index 3b996021381a..8f5cbb8b29ad 100644 --- a/sys-libs/compiler-rt-sanitizers/metadata.xml +++ b/sys-libs/compiler-rt-sanitizers/metadata.xml @@ -7,5 +7,9 @@ Force building using installed clang (rather than the default CC/CXX). + Build fuzzing runtime. + Build profiling runtime. + Build sanitizer runtimes. + Build XRay runtime. diff --git a/sys-libs/compiler-rt/Manifest b/sys-libs/compiler-rt/Manifest index eacd107dc565..8ec2df070233 100644 --- a/sys-libs/compiler-rt/Manifest +++ b/sys-libs/compiler-rt/Manifest @@ -2,12 +2,12 @@ DIST compiler-rt-4.0.1.src.tar.xz 1434100 BLAKE2B ca6bf78fc07f387b7244a52ef648b0 DIST compiler-rt-5.0.2.src.tar.xz 1543256 BLAKE2B 09fa84b8f3e9b8627a14387bc6eaa3d6b4588b9c8f1ac5a0114135fd830e3d45922408b237866789eb81bf38defde1186e0f7430a69f825bee12776b7cd9f74e SHA512 605a6d064877a860d6c9097e0220896dfceafed0a2392ad495c97aa347b97899d89f7e21932e29d3274f396615837414a3e730a915fe4f53eaa858ce3642a666 DIST compiler-rt-6.0.1.src.tar.xz 1686820 BLAKE2B 59fa3f6e478bd4d6dfa056c85dcdc4349cbce7cea7fc56519feddc9d66c88c9ca48bad7967432ceb81d754213577f12707035afd827cf630a58627575b73b798 SHA512 69850c1ad92c66977fa217cbfb42a6a3f502fbe3d1a08daa7fc4cfeb617a7736d231f8ad8d93b10b1ae29bd753315d2a2d70f9ff1f4d18a9a7cc81758d91f963 DIST compiler-rt-7.0.0.src.tar.xz 1815168 BLAKE2B b702e9f14ecf97fdc32476428d51db72398e1eb5a6817d8912b5beac2a31342b9456faa978365c13dc16c0a8211e27dfc4500a112c6c095a5ded197a4779199a SHA512 fb36aab38e7b7e3c23ad8598a54a5d7d36a30bc306c60c95b074029ffad48cb1d74fa5acde34b4affc50827562fd794969ae31067bd64e116281eb65ae4f4346 -DIST compiler-rt-7.0.1rc2.src.tar.xz 1863772 BLAKE2B 6523b63ab5887b440b8f3765a9fe39b90efeed9a3c3fa44b4a750770ac6c47ddad848f5cf03a746e6f121c084187083902f8f60f8191c9579b25ad6ee6a11837 SHA512 38e0582b6f8ef87370ad0e8b259928432b21493b5190ac3f0873958e29e9f293f02a2f9107aa00c4bd9c75808c3db879cedd91c4a2058f2c36ae50b4de091c35 +DIST compiler-rt-7.0.1.src.tar.xz 1864520 BLAKE2B 14f72aad4379387f4212fb5efef3456cb5e8a03c7a91f98de2368e9b5ff2d02aeaed05da4fba6978b9e4e8698eb34c9c0c4c2df8d43b8c11e8e9d65079c7fa41 SHA512 b94a2a1fb9a6d587cef59b04b951628747bb35bdbcb67de8825aad402a2ba875916a347eef7a9575ac27264e8372e2d67cd477fe2d750c0ed3ce7d67bbbc7dba EBUILD compiler-rt-4.0.1.ebuild 4144 BLAKE2B a89fa2681b1254b285aeab803103860efddb6990b33bbe725fe52f7ebba5652f4ba9ecebbced1f63adc84dac4dc7dd26b10a6e7863169bc08f8e95cc2ba868fa SHA512 f14a4a61cc42a37d62e6662aeb95c8d2c3534b0ffbee57cf788ce1df62ab1387af76e90a2d79708c50b8b70d073b00298b0d31c71e8d69e11f2e9204dcbaca4e EBUILD compiler-rt-5.0.2.ebuild 2840 BLAKE2B 4c6e6ca121bad66f69f272a1ddc8a5153196c8f2608da08b5326e264842fe60ae8a4cb1aa98e2907b141068e5af997fe81ae13708dfd148f8676bebf18b894d2 SHA512 3fcea6a7045c1dc666ad6cd9c575b1ba931719bf31457f7493bb7b9c7950bca8e1c5eb8ce4342c1098250d0c126e85ba86b56724b17a3f6bb43c2846fb765a1f EBUILD compiler-rt-6.0.1.ebuild 2911 BLAKE2B 9ee423b460c62366af5525ab3b32cd2980aff78331a65b5658a50e0f808c9cb694d2e5d85bd753d291e1b5f96ab9e6cbc6a6d9f0cddcd9f7f8521ed5280f8291 SHA512 ecce0303d9db8ec0c74b3d0b248547402c32b7bceef52a5bb999f076c8fa82e209d5d113e6c14a1511e99dbf04bfd4d79077da1c010d9069a1bd284a168b26e0 -EBUILD compiler-rt-7.0.0.ebuild 2914 BLAKE2B 5610113448d3135f3bdd72931c370e87998339f2e229df526b4f98278183ebbf6859a2af869289cfd50bb656d019eddf8004d9e289221765a726553a7885d011 SHA512 68ef30aec92877161e80cb9552c7bb3dca97d8f859d9429ca984a7fe48de6f720c21b9f118e7098d0b8becd63f289f2ff481bbf5a3930423e7a394e9a25d347c -EBUILD compiler-rt-7.0.1_rc2.ebuild 2917 BLAKE2B 901f528b44335746917bb03cf0a022946f496a1277058b622ce3597d06c21b4d8def07ac24500415d5d522f2d8508cfbf5b7ef5ed01be6ae6fe7dd93cb1382e3 SHA512 109069fce7e587a16e1fe3f9e924926612b92427f7d43a95d9a16481e5e5584fcd053d048cd43ff66c4b11ee3a0df77b6efb76b442580946842d18476668f2c0 +EBUILD compiler-rt-7.0.0.ebuild 2916 BLAKE2B 2ee4babc2459a1073c19b43831c1d51ed9a3a40a7a543c992999e9f9475bf20710e17eee8d860af65806038e93151b8449bffeb7352d2266e04728ab1fafaa2c SHA512 7d4ad62cc476d53c6bb0a6282e03b1809119cb0466e468095398151efa9097d177365abe51c454a5039e5c5550935b7ce8b745458e8d88e849760db936d36e2b +EBUILD compiler-rt-7.0.1.ebuild 2916 BLAKE2B 2ee4babc2459a1073c19b43831c1d51ed9a3a40a7a543c992999e9f9475bf20710e17eee8d860af65806038e93151b8449bffeb7352d2266e04728ab1fafaa2c SHA512 7d4ad62cc476d53c6bb0a6282e03b1809119cb0466e468095398151efa9097d177365abe51c454a5039e5c5550935b7ce8b745458e8d88e849760db936d36e2b EBUILD compiler-rt-7.0.9999.ebuild 2949 BLAKE2B a5c0f6cf82f2bfcf79d0982f9f05a4c93931c5f4fcb05b0eab1a97d87ad542755dd7f56f5b327440cd9cef4926ef17dc0932fcc32e60a83a1634ac3622f64de2 SHA512 acf6fa98a75065222b89a1da36ffc1752ab920ddf521a9bdf55a4407c6d65e141c6c30117748c6e0ba41aa6f39df8a301d575aac455f6179695c4c9ef889ff3f EBUILD compiler-rt-9999.ebuild 2924 BLAKE2B cf4a64f89ad620025fe423575b3117c69c64524d52ecd5d5a292f12c5c53eec23c631f7a7104ae101b6f5b38619d9b4480f92f922e5d36e399dd000617c36544 SHA512 5ef28c369a110e4423e346e128deb0b11805bd7086e5538b603a7644c62bc43e36a500c25ae9ee196622f24197b9bd94f405d487b62eb573208fba36d55d92ac MISC metadata.xml 333 BLAKE2B 24e417cb7b8ab7730b18a3e1e5e29d008042e4fd53cf1ba3cc9d18719160b0410854ddfae52315c690138e61fb0196015968fa09b98af6470cd8bdecc09205ef SHA512 97daa7452a696b7297c47f5f637a33425f82b51426060a75b3de6bc812f9ddcd3c70ae068bc3e88ce937ab1eb10d59b0ab48a2d2c0397a112b8b6a754e333bdc diff --git a/sys-libs/compiler-rt/compiler-rt-7.0.0.ebuild b/sys-libs/compiler-rt/compiler-rt-7.0.0.ebuild index 31d4c6152204..0013210ed8e6 100644 --- a/sys-libs/compiler-rt/compiler-rt-7.0.0.ebuild +++ b/sys-libs/compiler-rt/compiler-rt-7.0.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -17,7 +17,7 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz" LICENSE="|| ( UoI-NCSA MIT )" SLOT="${PV%_*}" -KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" IUSE="+clang test" RESTRICT="!test? ( test ) !clang? ( test )" diff --git a/sys-libs/compiler-rt/compiler-rt-7.0.1.ebuild b/sys-libs/compiler-rt/compiler-rt-7.0.1.ebuild new file mode 100644 index 000000000000..0013210ed8e6 --- /dev/null +++ b/sys-libs/compiler-rt/compiler-rt-7.0.1.ebuild @@ -0,0 +1,109 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python2_7 ) + +inherit cmake-utils flag-o-matic llvm multiprocessing \ + python-any-r1 toolchain-funcs + +DESCRIPTION="Compiler runtime library for clang (built-in part)" +HOMEPAGE="https://llvm.org/" +SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz" + +LICENSE="|| ( UoI-NCSA MIT )" +SLOT="${PV%_*}" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" +IUSE="+clang test" +RESTRICT="!test? ( test ) !clang? ( test )" + +CLANG_SLOT=${SLOT%%.*} +# llvm-6 for new lit options +DEPEND=" + >=sys-devel/llvm-6 + clang? ( sys-devel/clang ) + test? ( + $(python_gen_any_dep "dev-python/lit[\${PYTHON_USEDEP}]") + =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} ) + ${PYTHON_DEPS}" + +S=${WORKDIR}/${P/_/}.src + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +pkg_pretend() { + if ! use clang && ! tc-is-clang; then + ewarn "Building using a compiler other than clang may result in broken atomics" + ewarn "library. Enable USE=clang unless you have a very good reason not to." + fi +} + +pkg_setup() { + llvm_pkg_setup + python-any-r1_pkg_setup +} + +test_compiler() { + $(tc-getCC) ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \ + <<<'int main() { return 0; }' &>/dev/null +} + +src_configure() { + # pre-set since we need to pass it to cmake + BUILD_DIR=${WORKDIR}/${P}_build + + local nolib_flags=( -nodefaultlibs -lc ) + if use clang; then + local -x CC=${CHOST}-clang + local -x CXX=${CHOST}-clang++ + # ensure we can use clang before installing compiler-rt + local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" + strip-unsupported-flags + elif ! test_compiler; then + if test_compiler "${nolib_flags[@]}"; then + local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" + ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}" + fi + fi + + local mycmakeargs=( + -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" + + -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) + -DCOMPILER_RT_BUILD_LIBFUZZER=OFF + -DCOMPILER_RT_BUILD_PROFILE=OFF + -DCOMPILER_RT_BUILD_SANITIZERS=OFF + -DCOMPILER_RT_BUILD_XRAY=OFF + ) + + if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then + mycmakeargs+=( + # disable use of SDK for the system itself + -DDARWIN_macosx_CACHED_SYSROOT=/ + ) + fi + + if use test; then + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}" + + -DCOMPILER_RT_TEST_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang" + -DCOMPILER_RT_TEST_CXX_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++" + ) + fi + + cmake-utils_src_configure +} + +src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + + cmake-utils_src_make check-builtins +} diff --git a/sys-libs/compiler-rt/compiler-rt-7.0.1_rc2.ebuild b/sys-libs/compiler-rt/compiler-rt-7.0.1_rc2.ebuild deleted file mode 100644 index 717f5d93a30c..000000000000 --- a/sys-libs/compiler-rt/compiler-rt-7.0.1_rc2.ebuild +++ /dev/null @@ -1,109 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -: ${CMAKE_MAKEFILE_GENERATOR:=ninja} -# (needed due to CMAKE_BUILD_TYPE != Gentoo) -CMAKE_MIN_VERSION=3.7.0-r1 -PYTHON_COMPAT=( python2_7 ) - -inherit cmake-utils flag-o-matic llvm multiprocessing \ - python-any-r1 toolchain-funcs - -DESCRIPTION="Compiler runtime library for clang (built-in part)" -HOMEPAGE="https://llvm.org/" -SRC_URI="https://prereleases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz" - -LICENSE="|| ( UoI-NCSA MIT )" -SLOT="${PV%_*}" -KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" -IUSE="+clang test" -RESTRICT="!test? ( test ) !clang? ( test )" - -CLANG_SLOT=${SLOT%%.*} -# llvm-6 for new lit options -DEPEND=" - >=sys-devel/llvm-6 - clang? ( sys-devel/clang ) - test? ( - $(python_gen_any_dep "dev-python/lit[\${PYTHON_USEDEP}]") - =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} ) - ${PYTHON_DEPS}" - -S=${WORKDIR}/${P/_/}.src - -# least intrusive of all -CMAKE_BUILD_TYPE=RelWithDebInfo - -pkg_pretend() { - if ! use clang && ! tc-is-clang; then - ewarn "Building using a compiler other than clang may result in broken atomics" - ewarn "library. Enable USE=clang unless you have a very good reason not to." - fi -} - -pkg_setup() { - llvm_pkg_setup - python-any-r1_pkg_setup -} - -test_compiler() { - $(tc-getCC) ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \ - <<<'int main() { return 0; }' &>/dev/null -} - -src_configure() { - # pre-set since we need to pass it to cmake - BUILD_DIR=${WORKDIR}/${P}_build - - local nolib_flags=( -nodefaultlibs -lc ) - if use clang; then - local -x CC=${CHOST}-clang - local -x CXX=${CHOST}-clang++ - # ensure we can use clang before installing compiler-rt - local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" - strip-unsupported-flags - elif ! test_compiler; then - if test_compiler "${nolib_flags[@]}"; then - local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" - ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}" - fi - fi - - local mycmakeargs=( - -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" - - -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) - -DCOMPILER_RT_BUILD_LIBFUZZER=OFF - -DCOMPILER_RT_BUILD_PROFILE=OFF - -DCOMPILER_RT_BUILD_SANITIZERS=OFF - -DCOMPILER_RT_BUILD_XRAY=OFF - ) - - if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then - mycmakeargs+=( - # disable use of SDK for the system itself - -DDARWIN_macosx_CACHED_SYSROOT=/ - ) - fi - - if use test; then - mycmakeargs+=( - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}" - - -DCOMPILER_RT_TEST_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang" - -DCOMPILER_RT_TEST_CXX_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++" - ) - fi - - cmake-utils_src_configure -} - -src_test() { - # respect TMPDIR! - local -x LIT_PRESERVES_TMP=1 - - cmake-utils_src_make check-builtins -} diff --git a/sys-libs/e2fsprogs-libs/Manifest b/sys-libs/e2fsprogs-libs/Manifest index 4c8baca44966..7099a0a434c3 100644 --- a/sys-libs/e2fsprogs-libs/Manifest +++ b/sys-libs/e2fsprogs-libs/Manifest @@ -1,12 +1,10 @@ AUX e2fsprogs-libs-1.42.13-fix-build-cflags.patch 300 BLAKE2B a6cfc44d27991cb98b1cf94854dabb4bfefd0d44d7605cbca6353b27730dcc37ed65c1d4b35f2b7e5386a607056f7397afbf4e3dadc57efb0e3172a94287f5b7 SHA512 0c0a39a7cdf1930c2c8da0072f935eb02e15ce7a5202990b4ee5458a4ba7a5c1848a7b759e91e32c76f38ea419059179b04ff94fa336cbf77e4ecde55f9dc1d3 DIST e2fsprogs-1.44.4.tar.xz 5363496 BLAKE2B 8c7216bd63dbba0660c7383d6ed068be0a7016b50235d22f855283bb57d3355a3ea5bfa47294b71b67fcc5d4af28219abeb9cf4a6429595a43680d3d787bdf1a SHA512 52e39565dee30997b9c245b5d8791844067a903a570082f3a5ff9d9ef96624535322617bb21029056c88259fef46416eb1181bd7aec419e64fc021830887ec8f +DIST e2fsprogs-1.44.5.tar.xz 5375996 BLAKE2B a6069e7c4889cdd3a30d94994d179c024edf098205012446677c76ed206f18e71a0f241527ac33ee35eebdfa8fe87a81dde5228694186fc4e1e55e5b7bc87862 SHA512 c0faec90b2be81460d374c150be917cd6beb1d10dc7cd0c6c4747de19de9af1763e90d48aec5b3c0fbff1b59bf79a35f93536cd52e68d1e45d4db610e158bb2e DIST e2fsprogs-libs-1.43.6.tar.gz 595409 BLAKE2B a5edf65b637b7f3fab16174a695baa232b8aeab6e8d28140a3a68ed63eee309949ca85a28f33d15199068fffe9174ef76b28f403ec09118296a458611592a36e SHA512 80a643ba349aac79c88548e9692066f777c5f9e82e309b348606a8078de456171535e6e5df91f73ca3db9d03bb539b1a19883cf74615357bdf77f3bd20cc0b11 DIST e2fsprogs-libs-1.43.9.tar.gz 595452 BLAKE2B 2f4c8b07abe343f304f3217984ec03a38dca2d69765d7e9edef184c5b478fb0aa860fb0338a41e9d2d47c55780b0e44450efbe2528110403a77696af9e0c9d7c SHA512 c4b78000ace629a7e6f12d7c63f5ff36885bc7ba69a22654f95fd384bb347f0f28ba544644b40cdcbf14ec211e724901fbe44cc2b730f2dafba77632b3e2d0b1 -DIST e2fsprogs-libs-1.44.2.tar.gz 715214 BLAKE2B 696702563e30f877f1ced23c116240b6f5314987858492908396a5190019df095165e3e2995bc00330a1a3c19052773c483928db93bb2f9f01dc73de69858edd SHA512 c133c779b7ad4f51977d5c5627810f3808b0e40559726e99eadaa7beaecf08d09c6da6041c376148e71f94c60c2be185c9ed0b1c3fbdeda5e113a32f10b1b6c3 -DIST e2fsprogs-libs-1.44.3.tar.gz 716297 BLAKE2B 1b0b3434aa05027d3722e14a5825219be91f017f539dd6c9842776a49d2903227fad81866c03582aa119670f4fd66103016d88d062c318b2cb6097219d166f1a SHA512 934d9a4c056f60029b93727bba2ac9def080ee2a6c308267676379fea77510d93f2cd41551e5ed3707cfee1fa8a9a1de8df0af1f5c00aeaa66074b1f07e8d23a EBUILD e2fsprogs-libs-1.43.6.ebuild 1840 BLAKE2B a19251886cdef945b7ea5cfb7dfc48084bb716a4caa640a14f9bfde6b0477695cb441a580be4296a3aa8063940763d0f0a050904dc67e501990bdd12db754035 SHA512 5cf26cc9ccf3c3416f8723040aad5b487145d9bdabad8dd3518c287a92ddafdfb4deabfaa92424a709de9e7f794bc1c52d69839fd63e6c9ea687af9ba77e91e5 EBUILD e2fsprogs-libs-1.43.9.ebuild 1855 BLAKE2B c76037365439d40f9bb1f00c25149d124804897e46c90484d9661a71592559c727b7e2e1af526d7b5cce68ecb70bcf6fd99037548728598629dd9ab323d6649b SHA512 2f007b3f188fcafee57bb2631649991546fa247046341c4f3d50d9605180efbea87e1c03a7d7b3b39491d02e7fb59dc71034fe60f0697cda8ebfb13fa478db3d -EBUILD e2fsprogs-libs-1.44.2.ebuild 1867 BLAKE2B 1c435fc79eca49b10c990be667dfdf2c9b87d0c701528ffcbc22cb4251723cbf55b51ed1137782053a792de8388a67048bd6abd110c0e27979a7e69233c894cb SHA512 45a07b590cba4ab0b7a2a0b5659cec049343ef0d6a5dc3ea268c7285d6df9c44d4e9db06c635b81fee689ef136430a9a98d4ca04ed1e3a1edc4a40bef0d0cc12 -EBUILD e2fsprogs-libs-1.44.3.ebuild 1860 BLAKE2B c83d0f2c347b6b205f8804e87fb1774b6ddcdef726ed9f38f29483479ed42268e86f96557bf4c1f4140c80fa475bb7078ae4f49927f26e1a3d2031fa3c3e0ac3 SHA512 b168d0277a3c1691224682e27542dde51c757bf648990267796f782799872b8a06cf3e3805c3dffab1cfc0b408c07f74d3698b5c2112b37c5550d1caa09fdb56 EBUILD e2fsprogs-libs-1.44.4.ebuild 2423 BLAKE2B 2905555ceb779cd996118eac6282b97cb248d830b696d1197e355afe10bbdef34be3e03c3b35bc9efdf7c063cc3096cc6c4ea3d1e8a95c35d15865e597660a73 SHA512 eff53431600c9fdfdb918a28da5bb7c1c3abfbfab0abeadfb830ce8cc52e0aefde5efab1c28b51652562917ec89b558b2986d6b16e58f0f523e5de8ac44c29a2 +EBUILD e2fsprogs-libs-1.44.5.ebuild 2420 BLAKE2B 967772531a054b46dd1e7b28238c2a93f22bf236d4867f172ccdd5aef7942af34b23b26ed7b8ab1d0aaf0d4037286cf083d7d9cc0eff370e0f181af021770a8c SHA512 1b5e13c790c429cc5763241e011f48e9f7ac52d2d3e2f24973f34355abe788b8aff1c92d53af00a7bde1d2acf0440f4a7231145d8eb494351038127c5fd45454 MISC metadata.xml 329 BLAKE2B 03dc6edded63d4d10b064515402e963a4770ffc36e17de351d5617849ea138796e4bf20c7feb383cc8ca3a88fba1caaf68b5411241a2558db832f9b659193644 SHA512 39e1ddf508b648594e45cd4e72a41997ab4ae7b5cfdefa136a18a1e68ac5a2bfb1f6a12328f1faee5501fbeff0c61cd91417de717c4869f530a18a05ea5d4c71 diff --git a/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.44.2.ebuild b/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.44.2.ebuild deleted file mode 100644 index 69bd131fb604..000000000000 --- a/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.44.2.ebuild +++ /dev/null @@ -1,70 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -case ${PV} in -*_pre*) UP_PV="${PV%_pre*}-WIP-${PV#*_pre}" ;; -*) UP_PV=${PV} ;; -esac - -inherit toolchain-funcs eutils multilib-minimal - -DESCRIPTION="e2fsprogs libraries (common error and subsystem)" -HOMEPAGE="http://e2fsprogs.sourceforge.net/" -SRC_URI="mirror://sourceforge/e2fsprogs/${PN}-${UP_PV}.tar.gz - mirror://kernel/linux/kernel/people/tytso/e2fsprogs/v${UP_PV}/${PN}-${UP_PV}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~m68k-mint ~x86-solaris" -IUSE="nls static-libs" - -RDEPEND="!sys-libs/com_err - !sys-libs/ss - ! doc/Makefile.in # don't bother with docs #305613 - default -} - -multilib_src_configure() { - local myconf=( - $(tc-is-static-only || echo --enable-elf-shlibs) - $(tc-has-tls || echo --disable-tls) - $(use_enable nls) - ) - # we use blkid/uuid from util-linux now - if use kernel_linux ; then - export ac_cv_lib_{uuid_uuid_generate,blkid_blkid_get_cache}=yes - myconf+=( --disable-lib{blkid,uuid} ) - fi - ac_cv_path_LDCONFIG=: \ - ECONF_SOURCE="${S}" \ - CC="$(tc-getCC)" \ - BUILD_CC="$(tc-getBUILD_CC)" \ - BUILD_LD="$(tc-getBUILD_LD)" \ - econf "${myconf[@]}" -} - -multilib_src_compile() { - emake V=1 -} - -multilib_src_install() { - emake V=1 STRIP=: DESTDIR="${D}" install || die - gen_usr_ldscript -a com_err ss $(usex kernel_linux '' 'uuid blkid') - # configure doesn't have an option to disable static libs :/ - if ! use static-libs ; then - find "${ED}" -name '*.a' -delete || die - fi -} diff --git a/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.44.3.ebuild b/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.44.3.ebuild deleted file mode 100644 index 8cc622d1b473..000000000000 --- a/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.44.3.ebuild +++ /dev/null @@ -1,70 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -case ${PV} in -*_pre*) UP_PV="${PV%_pre*}-WIP-${PV#*_pre}" ;; -*) UP_PV=${PV} ;; -esac - -inherit toolchain-funcs multilib-minimal - -DESCRIPTION="e2fsprogs libraries (common error and subsystem)" -HOMEPAGE="http://e2fsprogs.sourceforge.net/" -SRC_URI="mirror://sourceforge/e2fsprogs/${PN}-${UP_PV}.tar.gz - mirror://kernel/linux/kernel/people/tytso/e2fsprogs/v${UP_PV}/${PN}-${UP_PV}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~m68k-mint ~x86-solaris" -IUSE="nls static-libs" - -RDEPEND="!sys-libs/com_err - !sys-libs/ss - ! doc/Makefile.in # don't bother with docs #305613 - default -} - -multilib_src_configure() { - local myconf=( - $(tc-is-static-only || echo --enable-elf-shlibs) - $(tc-has-tls || echo --disable-tls) - $(use_enable nls) - ) - # we use blkid/uuid from util-linux now - if use kernel_linux ; then - export ac_cv_lib_{uuid_uuid_generate,blkid_blkid_get_cache}=yes - myconf+=( --disable-lib{blkid,uuid} ) - fi - ac_cv_path_LDCONFIG=: \ - ECONF_SOURCE="${S}" \ - CC="$(tc-getCC)" \ - BUILD_CC="$(tc-getBUILD_CC)" \ - BUILD_LD="$(tc-getBUILD_LD)" \ - econf "${myconf[@]}" -} - -multilib_src_compile() { - emake V=1 -} - -multilib_src_install() { - emake V=1 STRIP=: DESTDIR="${D}" install || die - gen_usr_ldscript -a com_err ss $(usex kernel_linux '' 'uuid blkid') - # configure doesn't have an option to disable static libs :/ - if ! use static-libs ; then - find "${ED}" -name '*.a' -delete || die - fi -} diff --git a/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.44.5.ebuild b/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.44.5.ebuild new file mode 100644 index 000000000000..d9cb9c6a4463 --- /dev/null +++ b/sys-libs/e2fsprogs-libs/e2fsprogs-libs-1.44.5.ebuild @@ -0,0 +1,94 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +inherit toolchain-funcs multilib-minimal + +MY_PN=${PN%-libs} +MY_P="${MY_PN}-${PV}" + +DESCRIPTION="e2fsprogs libraries (common error and subsystem)" +HOMEPAGE="http://e2fsprogs.sourceforge.net/" +SRC_URI="mirror://sourceforge/e2fsprogs/${MY_P}.tar.xz + mirror://kernel/linux/kernel/people/tytso/e2fsprogs/v${PV}/${MY_P}.tar.xz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~m68k-mint ~x86-solaris" +IUSE="static-libs" + +RDEPEND="!sys-libs/com_err + !sys-libs/ss + ! 0, duh. -SLOT="2.2" - -# General: We need a new-enough binutils/gcc to match upstream baseline. -# arch: we need to make sure our binutils/gcc supports TLS. -DEPEND=">=app-misc/pax-utils-0.1.10 - !' | $(tc-getCPP ${CTARGET}) ${CFLAGS} 2>&1 | grep -o '[^"]*linux/version.h') - ALT_BUILD_HEADERS=${header_path%/linux/version.h} - fi - fi - fi - echo "${ALT_BUILD_HEADERS}" -} - -alt_libdir() { - echo $(alt_prefix)/$(get_libdir) -} -alt_usrlibdir() { - echo $(alt_prefix)/usr/$(get_libdir) -} - -builddir() { - echo "${WORKDIR}/build-${ABI}-${CTARGET}-$1" -} - -do_compile_test() { - local ret save_cflags=${CFLAGS} - CFLAGS+=" $1" - shift - - pushd "${T}" >/dev/null - - rm -f glibc-test* - printf '%b' "$*" > glibc-test.c - - nonfatal emake -s glibc-test - ret=$? - - popd >/dev/null - - CFLAGS=${save_cflags} - return ${ret} -} - -do_run_test() { - local ret - - if [[ ${MERGE_TYPE} == "binary" ]] ; then - # ignore build failures when installing a binary package #324685 - do_compile_test "" "$@" 2>/dev/null || return 0 - else - if ! do_compile_test "" "$@" ; then - ewarn "Simple build failed ... assuming this is desired #324685" - return 0 - fi - fi - - pushd "${T}" >/dev/null - - ./glibc-test - ret=$? - rm -f glibc-test* - - popd >/dev/null - - return ${ret} -} - -setup_target_flags() { - # This largely mucks with compiler flags. None of which should matter - # when building up just the headers. - just_headers && return 0 - - case $(tc-arch) in - x86) - # -march needed for #185404 #199334 - # TODO: When creating the first glibc cross-compile, this test will - # always fail as it does a full link which in turn requires glibc. - # Probably also applies when changing multilib profile settings (e.g. - # enabling x86 when the profile was amd64-only previously). - # We could change main to _start and pass -nostdlib here so that we - # only test the gcc code compilation. Or we could do a compile and - # then look for the symbol via scanelf. - if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n' 2>/dev/null ; then - local t=${CTARGET_OPT:-${CTARGET}} - t=${t%%-*} - filter-flags '-march=*' - export CFLAGS="-march=${t} ${CFLAGS}" - einfo "Auto adding -march=${t} to CFLAGS #185404" - fi - ;; - amd64) - # -march needed for #185404 #199334 - # Note: This test only matters when the x86 ABI is enabled, so we could - # optimize a bit and elide it. - # TODO: See cross-compile issues listed above for x86. - if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n' 2>/dev/null ; then - local t=${CTARGET_OPT:-${CTARGET}} - t=${t%%-*} - # Normally the target is x86_64-xxx, so turn that into the -march that - # gcc actually accepts. #528708 - [[ ${t} == "x86_64" ]] && t="x86-64" - filter-flags '-march=*' - # ugly, ugly, ugly. ugly. - CFLAGS_x86=$(CFLAGS=${CFLAGS_x86} filter-flags '-march=*'; echo "${CFLAGS}") - export CFLAGS_x86="${CFLAGS_x86} -march=${t}" - einfo "Auto adding -march=${t} to CFLAGS_x86 #185404" - fi - ;; - mips) - # The mips abi cannot support the GNU style hashes. #233233 - filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both - ;; - sparc) - # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. - filter-flags "-fcall-used-g7" - append-flags "-fcall-used-g6" - - # If the CHOST is the basic one (e.g. not sparcv9-xxx already), - # try to pick a better one so glibc can use cpu-specific .S files. - # We key off the CFLAGS to get a good value. Also need to handle - # version skew. - # We can't force users to set their CHOST to their exact machine - # as many of these are not recognized by config.sub/gcc and such :(. - # Note: If the mcpu values don't scale, we might try probing CPP defines. - # Note: Should we factor in -Wa,-AvXXX flags too ? Or -mvis/etc... ? - - local cpu - case ${CTARGET} in - sparc64-*) - case $(get-flag mcpu) in - niagara[234]) - if version_is_at_least 2.8 ; then - cpu="sparc64v2" - elif version_is_at_least 2.4 ; then - cpu="sparc64v" - elif version_is_at_least 2.2.3 ; then - cpu="sparc64b" - fi - ;; - niagara) - if version_is_at_least 2.4 ; then - cpu="sparc64v" - elif version_is_at_least 2.2.3 ; then - cpu="sparc64b" - fi - ;; - ultrasparc3) - cpu="sparc64b" - ;; - *) - # We need to force at least v9a because the base build doesn't - # work with just v9. - # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 - [[ -z ${cpu} ]] && append-flags "-Wa,-xarch=v9a" - ;; - esac - ;; - sparc-*) - case $(get-flag mcpu) in - niagara[234]) - if version_is_at_least 2.8 ; then - cpu="sparcv9v2" - elif version_is_at_least 2.4 ; then - cpu="sparcv9v" - elif version_is_at_least 2.2.3 ; then - cpu="sparcv9b" - else - cpu="sparcv9" - fi - ;; - niagara) - if version_is_at_least 2.4 ; then - cpu="sparcv9v" - elif version_is_at_least 2.2.3 ; then - cpu="sparcv9b" - else - cpu="sparcv9" - fi - ;; - ultrasparc3) - cpu="sparcv9b" - ;; - v9|ultrasparc) - cpu="sparcv9" - ;; - v8|supersparc|hypersparc|leon|leon3) - cpu="sparcv8" - ;; - esac - ;; - esac - [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" - ;; - esac -} - -setup_flags() { - # Make sure host make.conf doesn't pollute us - if is_crosscompile || tc-is-cross-compiler ; then - CHOST=${CTARGET} strip-unsupported-flags - fi - - # Store our CFLAGS because it's changed depending on which CTARGET - # we are building when pulling glibc on a multilib profile - CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} - CFLAGS=${CFLAGS_BASE} - CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} - CXXFLAGS=${CXXFLAGS_BASE} - ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} - ASFLAGS=${ASFLAGS_BASE} - - # Over-zealous CFLAGS can often cause problems. What may work for one - # person may not work for another. To avoid a large influx of bugs - # relating to failed builds, we strip most CFLAGS out to ensure as few - # problems as possible. - strip-flags - strip-unsupported-flags - filter-flags -m32 -m64 '-mabi=*' - - # glibc aborts if rpath is set by LDFLAGS - filter-ldflags '-Wl,-rpath=*' - - # #492892 - filter-flags -frecord-gcc-switches - - unset CBUILD_OPT CTARGET_OPT - if use multilib ; then - CTARGET_OPT=$(get_abi_CTARGET) - [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST) - fi - - setup_target_flags - - if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then - CBUILD_OPT=${CTARGET_OPT} - fi - - # Lock glibc at -O2; we want to be conservative here. - # -fno-strict-aliasing is to work around #155906. - filter-flags '-O?' - append-flags -O2 -fno-strict-aliasing - - filter-flags '-fstack-protector*' - - # Starting with gcc-6 (and fully upstreamed pie patches) we control - # default enabled/disabled pie via use flags. So nothing to do - # here then. #618160 - if [[ $(gcc-major-version) -lt 6 ]]; then - if use hardened && tc-enables-pie ; then - # Force PIC macro definition for all compilations since they're all - # either -fPIC or -fPIE with the default-PIE compiler. - append-cppflags -DPIC - else - # Don't build -fPIE without the default-PIE compiler and the - # hardened-pie patch - filter-flags -fPIE - fi - fi -} - -want_tls() { - # Archs that can use TLS (Thread Local Storage) - case $(tc-arch) in - x86) - # requires i486 or better #106556 - [[ ${CTARGET} == i[4567]86* ]] && return 0 - return 1 - ;; - esac - return 0 -} - -want__thread() { - want_tls || return 1 - - # For some reason --with-tls --with__thread is causing segfaults on sparc32. - [[ ${PROFILE_ARCH} == "sparc" ]] && return 1 - - [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD} - - # only test gcc -- can't test linking yet - tc-has-tls -c ${CTARGET} - WANT__THREAD=$? - - return ${WANT__THREAD} -} - -use_multiarch() { - # Allow user to disable runtime arch detection in multilib. - use multiarch || return 1 - # Make sure binutils is new enough to support indirect functions, - # #336792. This funky sed supports gold and bfd linkers. - local bver nver - bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') - case $(tc-arch ${CTARGET}) in - amd64|x86) nver="2.20" ;; - arm) nver="2.22" ;; - hppa) nver="2.23" ;; - ppc|ppc64) nver="2.20" ;; - # ifunc support was added in 2.23, but glibc also needs - # machinemode which is in 2.24. - s390) nver="2.24" ;; - sparc) nver="2.21" ;; - *) return 1 ;; - esac - version_is_at_least ${nver} ${bver} -} - -# Setup toolchain variables that had historically been defined in the -# profiles for these archs. -setup_env() { - # silly users - unset LD_RUN_PATH - unset LD_ASSUME_KERNEL - - if is_crosscompile || tc-is-cross-compiler ; then - multilib_env ${CTARGET_OPT:-${CTARGET}} - - if ! use multilib ; then - MULTILIB_ABIS=${DEFAULT_ABI} - else - MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} - fi - - # If the user has CFLAGS_ in their make.conf, use that, - # and fall back on CFLAGS. - local VAR=CFLAGS_${CTARGET//[-.]/_} - CFLAGS=${!VAR-${CFLAGS}} - einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" - fi - - setup_flags - - export ABI=${ABI:-${DEFAULT_ABI:-default}} - - if use headers-only ; then - # Avoid mixing host's CC and target's CFLAGS_${ABI}: - # At this bootstrap stage we have only binutils for - # target but not compiler yet. - einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." - return 0 - fi - local VAR=CFLAGS_${ABI} - # We need to export CFLAGS with abi information in them because glibc's - # configure script checks CFLAGS for some targets (like mips). Keep - # around the original clean value to avoid appending multiple ABIs on - # top of each other. - : ${__GLIBC_CC:=$(tc-getCC ${CTARGET_OPT:-${CTARGET}})} - export __GLIBC_CC CC="${__GLIBC_CC} ${!VAR}" - einfo " $(printf '%15s' 'Manual CC:') ${CC}" -} - -foreach_abi() { - setup_env - - local ret=0 - local abilist="" - if use multilib ; then - abilist=$(get_install_abis) - else - abilist=${DEFAULT_ABI} - fi - local -x ABI - for ABI in ${abilist:-default} ; do - setup_env - einfo "Running $1 for ABI ${ABI}" - $1 - : $(( ret |= $? )) - done - return ${ret} -} - -glibc_banner() { - local b="Gentoo ${PVR}" - [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" p${PATCH_VER}" - echo "${b}" -} - -check_devpts() { - # Make sure devpts is mounted correctly for use w/out setuid pt_chown. - - # If merely building the binary package, then there's nothing to verify. - [[ ${MERGE_TYPE} == "buildonly" ]] && return - - # Only sanity check when installing the native glibc. - [[ ${ROOT} != "/" ]] && return - - # If they're opting in to the old suid code, then no need to check. - use suid && return - - if awk '$3 == "devpts" && $4 ~ /[, ]gid=5[, ]/ { exit 1 }' /proc/mounts ; then - eerror "In order to use glibc with USE=-suid, you must make sure that" - eerror "you have devpts mounted at /dev/pts with the gid=5 option." - eerror "Openrc should do this for you, so you should check /etc/fstab" - eerror "and make sure you do not have any invalid settings there." - die "mount & fix your /dev/pts settings" - fi -} - -# The following Kernel version handling functions are mostly copied from portage -# source. It's better not to use linux-info.eclass here since a) it adds too -# much magic, see bug 326693 for some of the arguments, and b) some of the -# functions are just not provided. - -g_get_running_KV() { - uname -r - return $? -} - -g_KV_major() { - [[ -z $1 ]] && return 1 - local KV=$@ - echo "${KV%%.*}" -} - -g_KV_minor() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.} - echo "${KV%%.*}" -} - -g_KV_micro() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.*.} - echo "${KV%%[^[:digit:]]*}" -} - -g_KV_to_int() { - [[ -z $1 ]] && return 1 - local KV_MAJOR=$(g_KV_major "$1") - local KV_MINOR=$(g_KV_minor "$1") - local KV_MICRO=$(g_KV_micro "$1") - local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) - - # We make version 2.2.0 the minimum version we will handle as - # a sanity check ... if its less, we fail ... - if [[ ${KV_int} -ge 131584 ]] ; then - echo "${KV_int}" - return 0 - fi - return 1 -} - -g_int_to_KV() { - local version=$1 major minor micro - major=$((version / 65536)) - minor=$(((version % 65536) / 256)) - micro=$((version % 256)) - echo ${major}.${minor}.${micro} -} - -eend_KV() { - [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]] - eend $? -} - -get_kheader_version() { - printf '#include \nLINUX_VERSION_CODE\n' | \ - $(tc-getCPP ${CTARGET}) -I "${EPREFIX}/$(alt_build_headers)" - | \ - tail -n 1 -} - -# We collect all sanity checks here. Consistency is not guranteed between -# pkg_ and src_ phases, so we call this function both in pkg_pretend and in -# src_unpack. -sanity_prechecks() { - # Make sure devpts is mounted correctly for use w/out setuid pt_chown - check_devpts - - # Prevent native builds from downgrading - if [[ ${MERGE_TYPE} != "buildonly" ]] && \ - [[ ${ROOT} == "/" ]] && \ - [[ ${CBUILD} == ${CHOST} ]] && \ - [[ ${CHOST} == ${CTARGET} ]] ; then - - # The high rev # is to allow people to downgrade between -r# - # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 - # should be fine. Hopefully we never actually use a r# this - # high. - if has_version ">${CATEGORY}/${P}-r10000" ; then - eerror "Sanity check to keep you from breaking your system:" - eerror " Downgrading glibc is not supported and a sure way to destruction." - die "Aborting to save your system." - fi - - if ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then - eerror "Your old kernel is broken. You need to update it to a newer" - eerror "version as syscall() will break. See bug 279260." - die "Old and broken kernel." - fi - fi - - # Users have had a chance to phase themselves, time to give em the boot - if [[ -e ${EROOT}/etc/locale.gen ]] && [[ -e ${EROOT}/etc/locales.build ]] ; then - eerror "You still haven't deleted ${EROOT}/etc/locales.build." - eerror "Do so now after making sure ${EROOT}/etc/locale.gen is kosher." - die "Lazy upgrader detected" - fi - - if [[ ${CTARGET} == i386-* ]] ; then - eerror "i386 CHOSTs are no longer supported." - eerror "Chances are you don't actually want/need i386." - eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml" - die "Please fix your CHOST" - fi - - if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then - ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS." - ewarn "This will result in a 50% performance penalty when running with a 32bit" - ewarn "hypervisor, which is probably not what you want." - fi - - # Check for sanity of /etc/nsswitch.conf - if [[ -e ${EROOT}/etc/nsswitch.conf ]] ; then - local entry - for entry in passwd group shadow; do - if ! egrep -q "^[ \t]*${entry}:.*files" "${EROOT}"/etc/nsswitch.conf; then - eerror "Your ${EROOT}/etc/nsswitch.conf is out of date." - eerror "Please make sure you have 'files' entries for" - eerror "'passwd:', 'group:' and 'shadow:' databases." - eerror "For more details see:" - eerror " https://wiki.gentoo.org/wiki/Project:Toolchain/nsswitch.conf_in_glibc-2.26" - die "nsswitch.conf has no 'files' provider in '${entry}'." - fi - done - fi - - # ABI-specific checks follow here. Hey, we have a lot more specific conditions that - # we test for... - if ! is_crosscompile ; then - if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then - ebegin "Checking that IA32 emulation is enabled in the running kernel" - echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" - local STAT - if "${CC-${CHOST}-gcc}" ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then - "${T}/check-ia32-emulation.elf32" - STAT=$? - else - # Don't fail here to allow single->multi ABI switch - # or recover from breakage like bug #646424 - ewarn "Failed to compile the ABI test. Broken host glibc?" - STAT=0 - fi - rm -f "${T}/check-ia32-emulation.elf32" - eend $STAT - [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc." - fi - - fi - - # When we actually have to compile something... - if ! just_headers ; then - ebegin "Checking gcc for __thread support" - if ! eend $(want__thread ; echo $?) ; then - echo - eerror "Could not find a gcc that supports the __thread directive!" - eerror "Please update your binutils/gcc and try again." - die "No __thread support in gcc!" - fi - - if [[ ${CTARGET} == *-linux* ]] ; then - local run_kv build_kv want_kv - - run_kv=$(g_get_running_KV) - build_kv=$(g_int_to_KV $(get_kheader_version)) - want_kv=${MIN_KERN_VER} - - if ! is_crosscompile && ! tc-is-cross-compiler ; then - # Building fails on an non-supporting kernel - ebegin "Checking running kernel version (${run_kv} >= ${want_kv})" - if ! eend_KV ${run_kv} ${want_kv} ; then - echo - eerror "You need a kernel of at least ${want_kv}!" - die "Kernel version too low!" - fi - fi - - ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})" - if ! eend_KV ${build_kv} ${want_kv} ; then - echo - eerror "You need linux-headers of at least ${want_kv}!" - die "linux-headers version too low!" - fi - fi - fi -} - -# -# the phases -# - -# pkg_pretend - -pkg_pretend() { - # All the checks... - einfo "Checking general environment sanity." - sanity_prechecks -} - -# src_unpack - -src_unpack() { - # Consistency is not guaranteed between pkg_ and src_ ... - sanity_prechecks - - use multilib && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz - - setup_env - - if [[ -n ${EGIT_REPO_URI} ]] ; then - git-r3_src_unpack - else - unpack ${P}.tar.xz - fi - - cd "${S}" || die - touch locale/C-translit.h || die #185476 #218003 - - cd "${WORKDIR}" || die - unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz -} - -src_prepare() { - if ! use vanilla ; then - elog "Applying Gentoo Glibc Patchset ${RELEASE_VER}-${PATCH_VER}" - eapply "${WORKDIR}"/patches - einfo "Done." - fi - - default - - gnuconfig_update - - cd "${WORKDIR}" - find . -name configure -exec touch {} + - - eprefixify extra/locale/locale-gen - - # Fix permissions on some of the scripts. - chmod u+x "${S}"/scripts/*.sh - - cd "${S}" -} - -glibc_do_configure() { - # Glibc does not work with gold (for various reasons) #269274. - tc-ld-disable-gold - - # CXX isnt handled by the multilib system, so if we dont unset here - # we accumulate crap across abis - unset CXX - - einfo "Configuring glibc for nptl" - - if use doc ; then - export MAKEINFO=makeinfo - else - export MAKEINFO=/dev/null - fi - - local v - for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO ; do - einfo " $(printf '%15s' ${v}:) ${!v}" - done - - # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 - # To build .S (assembly) files with the same ABI-specific flags - # upstream currently recommends adding CFLAGS to CC/CXX: - # https://sourceware.org/PR23273 - # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS - # and breaks multiarch support. See 659030#c3 for an example. - # The glibc configure script doesn't properly use LDFLAGS all the time. - export CC="$(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS}" - einfo " $(printf '%15s' 'Manual CC:') ${CC}" - - # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 - export CXX="$(tc-getCXX ${CTARGET}) $(get_abi_CFLAGS) ${CFLAGS}" - einfo " $(printf '%15s' 'Manual CXX:') ${CXX}" - - echo - - local myconf=() - - case ${CTARGET} in - powerpc-*) - # Currently gcc on powerpc32 generates invalid code for - # __builtin_return_address(0) calls. Normally programs - # don't do that but malloc hooks in glibc do: - # https://gcc.gnu.org/PR81996 - # https://bugs.gentoo.org/629054 - myconf+=( --enable-stack-protector=no ) - ;; - *) - myconf+=( --enable-stack-protector=all ) - ;; - esac - myconf+=( --enable-stackguard-randomization ) - - # Keep a whitelist of targets supporing IFUNC. glibc's ./configure - # is not robust enough to detect proper support: - # https://bugs.gentoo.org/641216 - # https://sourceware.org/PR22634#c0 - case $(tc-arch ${CTARGET}) in - # Keep whitelist of targets where autodetection mostly works. - amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;; - # Blacklist everywhere else - *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; - esac - - # Enable Intel Control-flow Enforcement Technology on amd64 if requested - case ${CTARGET} in - x86_64-*) myconf+=( $(use_enable cet) ) ;; - *) ;; - esac - - [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) - - myconf+=( --enable-kernel=${MIN_KERN_VER} ) - - # Since SELinux support is only required for nscd, only enable it if: - # 1. USE selinux - # 2. only for the primary ABI on multilib systems - # 3. Not a crosscompile - if ! is_crosscompile && use selinux ; then - if use multilib ; then - if is_final_abi ; then - myconf+=( --with-selinux ) - else - myconf+=( --without-selinux ) - fi - else - myconf+=( --with-selinux ) - fi - else - myconf+=( --without-selinux ) - fi - - # Force a few tests where we always know the answer but - # configure is incapable of finding it. - if is_crosscompile ; then - export \ - libc_cv_c_cleanup=yes \ - libc_cv_forced_unwind=yes - fi - - myconf+=( - --without-cvs - --disable-werror - --enable-bind-now - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - $(use_enable profile) - $(use_with gd) - --with-headers=$(alt_build_headers) - --prefix="${EPREFIX}/usr" - --sysconfdir="${EPREFIX}/etc" - --localstatedir="${EPREFIX}/var" - --libdir='$(prefix)'/$(get_libdir) - --mandir='$(prefix)'/share/man - --infodir='$(prefix)'/share/info - --libexecdir='$(libdir)'/misc/glibc - --with-bugurl=https://bugs.gentoo.org/ - --with-pkgversion="$(glibc_banner)" - $(use_multiarch || echo --disable-multi-arch) - $(use_enable systemtap) - $(use_enable nscd) - ${EXTRA_ECONF} - ) - - # We rely on sys-libs/timezone-data for timezone tools normally. - myconf+=( $(use_enable vanilla timezone-tools) ) - - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) - ac_cv_lib_cap_cap_init=$(usex caps || echo no) - - # There is no configure option for this and we need to export it - # since the glibc build will re-run configure on itself - export libc_cv_rootsbindir="${EPREFIX}/sbin" - export libc_cv_slibdir="${EPREFIX}/$(get_libdir)" - - # We take care of patching our binutils to use both hash styles, - # and many people like to force gnu hash style only, so disable - # this overriding check. #347761 - export libc_cv_hashstyle=no - - local builddir=$(builddir nptl) - mkdir -p "${builddir}" - cd "${builddir}" - set -- "${S}"/configure "${myconf[@]}" - echo "$@" - "$@" || die "failed to configure glibc" - - # ia64 static cross-compilers are a pita in so much that they - # can't produce static ELFs (as the libgcc.a is broken). so - # disable building of the programs for those targets if it - # doesn't work. - # XXX: We could turn this into a compiler test, but ia64 is - # the only one that matters, so this should be fine for now. - if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then - sed -i '1i+link-static = touch $@' config.make - fi - - # If we're trying to migrate between ABI sets, we need - # to lie and use a local copy of gcc. Like if the system - # is built with MULTILIB_ABIS="amd64 x86" but we want to - # add x32 to it, gcc/glibc don't yet support x32. - # - if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib ; then - echo 'main(){}' > "${T}"/test.c - if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then - sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die - fi - fi -} - -glibc_headers_configure() { - export ABI=default - - local builddir=$(builddir "headers") - mkdir -p "${builddir}" - cd "${builddir}" - - # if we don't have a compiler yet, we can't really test it now ... - # hopefully they don't affect header generation, so let's hope for - # the best here ... - local v vars=( - ac_cv_header_cpuid_h=yes - libc_cv_{386,390,alpha,arm,hppa,ia64,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes - libc_cv_asm_cfi_directives=yes - libc_cv_broken_visibility_attribute=no - libc_cv_c_cleanup=yes - libc_cv_compiler_powerpc64le_binary128_ok=yes - libc_cv_forced_unwind=yes - libc_cv_gcc___thread=yes - libc_cv_mlong_double_128=yes - libc_cv_mlong_double_128ibm=yes - libc_cv_ppc_machine=yes - libc_cv_ppc_rel16=yes - libc_cv_predef_fortify_source=no - libc_cv_target_power8_ok=yes - libc_cv_visibility_attribute=yes - libc_cv_z_combreloc=yes - libc_cv_z_execstack=yes - libc_cv_z_initfirst=yes - libc_cv_z_nodelete=yes - libc_cv_z_nodlopen=yes - libc_cv_z_relro=yes - libc_mips_abi=${ABI} - libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=no - ac_cv_lib_cap_cap_init=no - ) - - einfo "Forcing cached settings:" - for v in "${vars[@]}" ; do - einfo " ${v}" - export ${v} - done - - local headers_only_arch_CPPFLAGS=() - - # Blow away some random CC settings that screw things up. #550192 - if [[ -d ${S}/sysdeps/mips ]]; then - pushd "${S}"/sysdeps/mips >/dev/null - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die - - # Force the mips ABI to the default. This is OK because the set of - # installed headers in this phase is the same between the 3 ABIs. - # If this ever changes, this hack will break, but that's unlikely - # as glibc discourages that behavior. - # https://crbug.com/647033 - sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die - - popd >/dev/null - fi - - case ${CTARGET} in - riscv*) - # RISC-V interrogates the compiler to determine which target to - # build. If building the headers then we don't strictly need a - # RISC-V compiler, so the built-in definitions that are provided - # along with all RISC-V compiler might not exist. This causes - # glibc's RISC-V preconfigure script to blow up. Since we're just - # building the headers any value will actually work here, so just - # pick the standard one (rv64g/lp64d) to make the build scripts - # happy for now -- the headers are all the same anyway so it - # doesn't matter. - headers_only_arch_CPPFLAGS+=( - -D__riscv_xlen=64 - -D__riscv_flen=64 - -D__riscv_float_abi_double=1 - -D__riscv_atomic=1 - ) ;; - esac - - local myconf=() - myconf+=( - --disable-sanity-checks - --enable-hacker-mode - --without-cvs - --disable-werror - --enable-bind-now - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - --with-headers=$(alt_build_headers) - --prefix="${EPREFIX}/usr" - ${EXTRA_ECONF} - ) - - # Nothing is compiled here which would affect the headers for the target. - # So forcing CC/CFLAGS is sane. - local headers_only_CC=$(tc-getBUILD_CC) - local headers_only_CFLAGS="-O1 -pipe" - local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" - local headers_only_LDFLAGS="" - set -- "${S}"/configure "${myconf[@]}" - echo \ - "CC=${headers_only_CC}" \ - "CFLAGS=${headers_only_CFLAGS}" \ - "CPPFLAGS=${headers_only_CPPFLAGS}" \ - "LDFLAGS=${headers_only_LDFLAGS}" \ - "$@" - CC=${headers_only_CC} \ - CFLAGS=${headers_only_CFLAGS} \ - CPPFLAGS=${headers_only_CPPFLAGS} \ - LDFLAGS="" \ - "$@" || die "failed to configure glibc" -} - -do_src_configure() { - if just_headers ; then - glibc_headers_configure - else - glibc_do_configure nptl - fi -} - -src_configure() { - foreach_abi do_src_configure -} - -do_src_compile() { - emake -C "$(builddir nptl)" || die "make nptl for ${ABI} failed" -} - -src_compile() { - if just_headers ; then - return - fi - - foreach_abi do_src_compile -} - -glibc_src_test() { - cd "$(builddir nptl)" - emake check -} - -do_src_test() { - local ret=0 - - glibc_src_test - : $(( ret |= $? )) - - return ${ret} -} - -src_test() { - if just_headers ; then - return - fi - - # Give tests more time to complete. - export TIMEOUTFACTOR=5 - - foreach_abi do_src_test || die "tests failed" -} - -run_locale_gen() { - # if the host locales.gen contains no entries, we'll install everything - local root="$1" - local locale_list="${root}/etc/locale.gen" - if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then - ewarn "Generating all locales; edit /etc/locale.gen to save time/space" - locale_list="${root}/usr/share/i18n/SUPPORTED" - fi - - locale-gen --jobs $(makeopts_jobs) --config "${locale_list}" \ - --destdir "${root}" -} - -glibc_do_src_install() { - local builddir=$(builddir nptl) - cd "${builddir}" - - emake install_root="${D}$(alt_prefix)" install || die - - # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support - # which come without headers etc. Only needed for binary packages since the - # external net-libs/libnsl has increased soversion. Keep only versioned libraries. - find "${D}" -name "libnsl.a" -delete - find "${D}" -name "libnsl.so" -delete - - # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need - # to infer upstream version: - # '#define VERSION "2.26.90"' -> '2.26.90' - local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) - - if [[ -e ${ED}$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then - # Move versioned .a file out of libdir to evade portage QA checks - # instead of using gen_usr_ldscript(). We fix ldscript as: - # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.a ..." - sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" "${ED}"$(alt_usrlibdir)/libm.a || die - dodir $(alt_usrlibdir)/${P} - mv "${ED}"$(alt_usrlibdir)/libm-${upstream_pv}.a "${ED}"$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die - fi - - # We'll take care of the cache ourselves - rm -f "${ED}"/etc/ld.so.cache - - # Everything past this point just needs to be done once ... - is_final_abi || return 0 - - # Make sure the non-native interp can be found on multilib systems even - # if the main library set isn't installed into the right place. Maybe - # we should query the active gcc for info instead of hardcoding it ? - local i ldso_abi ldso_name - local ldso_abi_list=( - # x86 - amd64 /lib64/ld-linux-x86-64.so.2 - x32 /libx32/ld-linux-x32.so.2 - x86 /lib/ld-linux.so.2 - # mips - o32 /lib/ld.so.1 - n32 /lib32/ld.so.1 - n64 /lib64/ld.so.1 - # powerpc - ppc /lib/ld.so.1 - ppc64 /lib64/ld64.so.1 - # s390 - s390 /lib/ld.so.1 - s390x /lib/ld64.so.1 - # sparc - sparc32 /lib/ld-linux.so.2 - sparc64 /lib64/ld-linux.so.2 - ) - case $(tc-endian) in - little) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64.so.1 - ) - ;; - big) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64_be.so.1 - ) - ;; - esac - if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then - dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib - fi - for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do - ldso_abi=${ldso_abi_list[i]} - has ${ldso_abi} $(get_install_abis) || continue - - ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" - if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then - dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} - fi - done - - # With devpts under Linux mounted properly, we do not need the pt_chown - # binary to be setuid. This is because the default owners/perms will be - # exactly what we want. - if ! use suid ; then - find "${ED}" -name pt_chown -exec chmod -s {} + - fi - - ################################################################# - # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # - # Make sure we install some symlink hacks so that when we build - # a 2nd stage cross-compiler, gcc finds the target system - # headers correctly. See gcc/doc/gccinstall.info - if is_crosscompile ; then - # We need to make sure that /lib and /usr/lib always exists. - # gcc likes to use relative paths to get to its multilibs like - # /usr/lib/../lib64/. So while we don't install any files into - # /usr/lib/, we do need it to exist. - keepdir $(alt_prefix)/lib - keepdir $(alt_prefix)/usr/lib - - dosym usr/include $(alt_prefix)/sys-include - return 0 - fi - - # Files for Debian-style locale updating - dodir /usr/share/i18n - sed \ - -e "/^#/d" \ - -e "/SUPPORTED-LOCALES=/d" \ - -e "s: \\\\::g" -e "s:/: :g" \ - "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ - || die "generating /usr/share/i18n/SUPPORTED failed" - cd "${WORKDIR}"/extra/locale - dosbin locale-gen - doman *.[0-8] - insinto /etc - doins locale.gen - - # Make sure all the ABI's can find the locales and so we only - # have to generate one set - local a - keepdir /usr/$(get_libdir)/locale - for a in $(get_install_abis) ; do - if [[ ! -e ${ED}/usr/$(get_abi_LIBDIR ${a})/locale ]] ; then - dosym ../$(get_libdir)/locale /usr/$(get_abi_LIBDIR ${a})/locale - fi - done - - cd "${S}" - - # Install misc network config files - insinto /etc - doins nscd/nscd.conf posix/gai.conf nss/nsswitch.conf - doins "${WORKDIR}"/extra/etc/*.conf - - if use nscd ; then - doinitd "$(prefixify_ro "${WORKDIR}"/extra/etc/nscd)" - - local nscd_args=( - -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" - ) - - sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd - - systemd_dounit nscd/nscd.service - systemd_newtmpfilesd nscd/nscd.tmpfiles nscd.conf - else - # Do this since extra/etc/*.conf above might have nscd.conf. - rm -f "${ED}"/etc/nscd.conf - fi - - echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc - doenvd "${T}"/00glibc - - for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do - [[ -s ${d} ]] && dodoc ${d} - done - dodoc -r ChangeLog.old - - # Prevent overwriting of the /etc/localtime symlink. We'll handle the - # creation of the "factory" symlink in pkg_postinst(). - rm -f "${ED}"/etc/localtime - - # Generate all locales if this is a native build as locale generation - if use compile-locales && ! is_crosscompile ; then - run_locale_gen "${ED}" - fi -} - -glibc_headers_install() { - local builddir=$(builddir "headers") - cd "${builddir}" - emake install_root="${D}$(alt_prefix)" install-headers - - insinto $(alt_headers)/gnu - doins "${S}"/include/gnu/stubs.h - - # Make sure we install the sys-include symlink so that when - # we build a 2nd stage cross-compiler, gcc finds the target - # system headers correctly. See gcc/doc/gccinstall.info - dosym usr/include $(alt_prefix)/sys-include -} - -src_strip() { - # gdb is lame and requires some debugging information to remain in - # libpthread, so we need to strip it by hand. libthread_db makes no - # sense stripped as it is only used when debugging. - local pthread=$(has splitdebug ${FEATURES} && echo "libthread_db" || echo "lib{pthread,thread_db}") - env \ - -uRESTRICT \ - CHOST=${CTARGET} \ - STRIP_MASK="/*/{,tls/}${pthread}*" \ - prepallstrip - # if user has stripping enabled and does not have split debug turned on, - # then leave the debugging sections in libpthread. - if ! has nostrip ${FEATURES} && ! has splitdebug ${FEATURES} ; then - ${STRIP:-${CTARGET}-strip} --strip-debug "${ED}"$(alt_prefix)/*/libpthread-*.so - fi -} - -src_install() { - if just_headers ; then - export ABI=default - glibc_headers_install - return - fi - - foreach_abi glibc_do_src_install - src_strip -} - -# Simple test to make sure our new glibc isn't completely broken. -# Make sure we don't test with statically built binaries since -# they will fail. Also, skip if this glibc is a cross compiler. -# -# If coreutils is built with USE=multicall, some of these files -# will just be wrapper scripts, not actual ELFs we can test. -glibc_sanity_check() { - cd / #228809 - - # We enter ${ED} so to avoid trouble if the path contains - # special characters; for instance if the path contains the - # colon character (:), then the linker will try to split it - # and look for the libraries in an unexpected place. This can - # lead to unsafe code execution if the generated prefix is - # within a world-writable directory. - # (e.g. /var/tmp/portage:${HOSTNAME}) - pushd "${ED}"/$(get_libdir) >/dev/null - - local x striptest - for x in cal date env free ls true uname uptime ; do - x=$(type -p ${x}) - [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue - striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue - case ${striptest} in - *"statically linked"*) continue;; - *"ASCII text"*) continue;; - esac - # We need to clear the locale settings as the upgrade might want - # incompatible locale data. This test is not for verifying that. - LC_ALL=C \ - ./ld-*.so --library-path . ${x} > /dev/null \ - || die "simple run test (${x}) failed" - done - - popd >/dev/null -} - -pkg_preinst() { - # nothing to do if just installing headers - just_headers && return - - # prepare /etc/ld.so.conf.d/ for files - mkdir -p "${EROOT}"/etc/ld.so.conf.d - - # Default /etc/hosts.conf:multi to on for systems with small dbs. - if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then - sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf - einfo "Defaulting /etc/host.conf:multi to on" - fi - - [[ ${ROOT} != "/" ]] && return 0 - [[ -d ${ED}/$(get_libdir) ]] || return 0 - [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check -} - -pkg_postinst() { - # nothing to do if just installing headers - just_headers && return - - if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then - # Generate fastloading iconv module configuration file. - "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}" - fi - - if ! is_crosscompile && [[ ${ROOT} == "/" ]] ; then - # Reload init ... if in a chroot or a diff init package, ignore - # errors from this step #253697 - /sbin/telinit U 2>/dev/null - - use compile-locales || run_locale_gen "${EROOT}" - fi - - # Check for sanity of /etc/nsswitch.conf, take 2 - if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then - local entry - for entry in passwd group shadow; do - if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then - ewarn "" - ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" - ewarn "removed from glibc and is now provided by the package" - ewarn " sys-auth/libnss-nis" - ewarn "Install it now to keep your NIS setup working." - ewarn "" - fi - done - fi -} diff --git a/sys-libs/glibc/glibc-2.28-r2.ebuild b/sys-libs/glibc/glibc-2.28-r2.ebuild deleted file mode 100644 index f0d43996eac4..000000000000 --- a/sys-libs/glibc/glibc-2.28-r2.ebuild +++ /dev/null @@ -1,1426 +0,0 @@ -# Copyright 1999-2018 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit prefix eutils versionator toolchain-funcs flag-o-matic gnuconfig \ - multilib systemd multiprocessing - -DESCRIPTION="GNU libc C library" -HOMEPAGE="https://www.gnu.org/software/libc/" -LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" -RESTRICT="strip" # Strip ourself #46186 -SLOT="2.2" - -EMULTILIB_PKG="true" - -if [[ ${PV} == 9999* ]]; then - EGIT_REPO_URI="https://sourceware.org/git/glibc.git" - inherit git-r3 -else - # KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" - KEYWORDS="" - SRC_URI="mirror://gnu/glibc/${P}.tar.xz" -fi - -RELEASE_VER=${PV} - -GCC_BOOTSTRAP_VER=20180511 - -# Gentoo patchset -PATCH_VER=3 - -SRC_URI+=" https://dev.gentoo.org/~dilfridge/distfiles/${P}-patches-${PATCH_VER}.tar.xz" -SRC_URI+=" multilib? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" - -IUSE="audit caps cet compile-locales doc gd hardened headers-only +multiarch multilib nscd profile selinux suid systemtap test vanilla" - -# Minimum kernel version that glibc requires -MIN_KERN_VER="3.2.0" - -# Here's how the cross-compile logic breaks down ... -# CTARGET - machine that will target the binaries -# CHOST - machine that will host the binaries -# CBUILD - machine that will build the binaries -# If CTARGET != CHOST, it means you want a libc for cross-compiling. -# If CHOST != CBUILD, it means you want to cross-compile the libc. -# CBUILD = CHOST = CTARGET - native build/install -# CBUILD != (CHOST = CTARGET) - cross-compile a native build -# (CBUILD = CHOST) != CTARGET - libc for cross-compiler -# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler -# For install paths: -# CHOST = CTARGET - install into / -# CHOST != CTARGET - install into /usr/CTARGET/ -# -export CBUILD=${CBUILD:-${CHOST}} -export CTARGET=${CTARGET:-${CHOST}} -if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi -fi - -# We need a new-enough binutils/gcc to match upstream baseline. -# Also we need to make sure our binutils/gcc supports TLS. -COMMON_DEPEND=" - nscd? ( selinux? ( - audit? ( sys-process/audit ) - caps? ( sys-libs/libcap ) - ) ) - suid? ( caps? ( sys-libs/libcap ) ) - selinux? ( sys-libs/libselinux ) - systemtap? ( dev-util/systemtap ) -" -DEPEND="${COMMON_DEPEND} - >=app-misc/pax-utils-0.1.10 - sys-devel/bison - !=net-dns/libidn2-2.0.5 ) -" -RDEPEND="${COMMON_DEPEND} - >=net-dns/libidn2-2.0.5 - sys-apps/gentoo-functions - !sys-kernel/ps3-sources - !sys-libs/nss-db -" - -if [[ ${CATEGORY} == cross-* ]] ; then - DEPEND+=" !headers-only? ( - >=${CATEGORY}/binutils-2.24 - >=${CATEGORY}/gcc-4.9 - )" - [[ ${CATEGORY} == *-linux* ]] && DEPEND+=" ${CATEGORY}/linux-headers" -else - DEPEND+=" - >=sys-devel/binutils-2.24 - >=sys-devel/gcc-4.9 - virtual/os-headers - " - RDEPEND+=" vanilla? ( !sys-libs/timezone-data )" - PDEPEND+=" !vanilla? ( sys-libs/timezone-data )" -fi - -# -# Small helper functions -# - -is_crosscompile() { - [[ ${CHOST} != ${CTARGET} ]] -} - -just_headers() { - is_crosscompile && use headers-only -} - -alt_prefix() { - is_crosscompile && echo /usr/${CTARGET} -} - -# We need to be able to set alternative headers for compiling for non-native -# platform. Will also become useful for testing kernel-headers without screwing -# up the whole system. -alt_headers() { - echo ${ALT_HEADERS:=$(alt_prefix)/usr/include} -} - -alt_build_headers() { - if [[ -z ${ALT_BUILD_HEADERS} ]] ; then - ALT_BUILD_HEADERS="${EPREFIX}$(alt_headers)" - if tc-is-cross-compiler ; then - ALT_BUILD_HEADERS=${SYSROOT}$(alt_headers) - if [[ ! -e ${ALT_BUILD_HEADERS}/linux/version.h ]] ; then - local header_path=$(echo '#include ' | $(tc-getCPP ${CTARGET}) ${CFLAGS} 2>&1 | grep -o '[^"]*linux/version.h') - ALT_BUILD_HEADERS=${header_path%/linux/version.h} - fi - fi - fi - echo "${ALT_BUILD_HEADERS}" -} - -alt_libdir() { - echo $(alt_prefix)/$(get_libdir) -} -alt_usrlibdir() { - echo $(alt_prefix)/usr/$(get_libdir) -} - -builddir() { - echo "${WORKDIR}/build-${ABI}-${CTARGET}-$1" -} - -do_compile_test() { - local ret save_cflags=${CFLAGS} - CFLAGS+=" $1" - shift - - pushd "${T}" >/dev/null - - rm -f glibc-test* - printf '%b' "$*" > glibc-test.c - - nonfatal emake -s glibc-test - ret=$? - - popd >/dev/null - - CFLAGS=${save_cflags} - return ${ret} -} - -do_run_test() { - local ret - - if [[ ${MERGE_TYPE} == "binary" ]] ; then - # ignore build failures when installing a binary package #324685 - do_compile_test "" "$@" 2>/dev/null || return 0 - else - if ! do_compile_test "" "$@" ; then - ewarn "Simple build failed ... assuming this is desired #324685" - return 0 - fi - fi - - pushd "${T}" >/dev/null - - ./glibc-test - ret=$? - rm -f glibc-test* - - popd >/dev/null - - return ${ret} -} - -setup_target_flags() { - # This largely mucks with compiler flags. None of which should matter - # when building up just the headers. - just_headers && return 0 - - case $(tc-arch) in - x86) - # -march needed for #185404 #199334 - # TODO: When creating the first glibc cross-compile, this test will - # always fail as it does a full link which in turn requires glibc. - # Probably also applies when changing multilib profile settings (e.g. - # enabling x86 when the profile was amd64-only previously). - # We could change main to _start and pass -nostdlib here so that we - # only test the gcc code compilation. Or we could do a compile and - # then look for the symbol via scanelf. - if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n' 2>/dev/null ; then - local t=${CTARGET_OPT:-${CTARGET}} - t=${t%%-*} - filter-flags '-march=*' - export CFLAGS="-march=${t} ${CFLAGS}" - einfo "Auto adding -march=${t} to CFLAGS #185404" - fi - ;; - amd64) - # -march needed for #185404 #199334 - # Note: This test only matters when the x86 ABI is enabled, so we could - # optimize a bit and elide it. - # TODO: See cross-compile issues listed above for x86. - if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n' 2>/dev/null ; then - local t=${CTARGET_OPT:-${CTARGET}} - t=${t%%-*} - # Normally the target is x86_64-xxx, so turn that into the -march that - # gcc actually accepts. #528708 - [[ ${t} == "x86_64" ]] && t="x86-64" - filter-flags '-march=*' - # ugly, ugly, ugly. ugly. - CFLAGS_x86=$(CFLAGS=${CFLAGS_x86} filter-flags '-march=*'; echo "${CFLAGS}") - export CFLAGS_x86="${CFLAGS_x86} -march=${t}" - einfo "Auto adding -march=${t} to CFLAGS_x86 #185404" - fi - ;; - mips) - # The mips abi cannot support the GNU style hashes. #233233 - filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both - ;; - sparc) - # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. - filter-flags "-fcall-used-g7" - append-flags "-fcall-used-g6" - - # If the CHOST is the basic one (e.g. not sparcv9-xxx already), - # try to pick a better one so glibc can use cpu-specific .S files. - # We key off the CFLAGS to get a good value. Also need to handle - # version skew. - # We can't force users to set their CHOST to their exact machine - # as many of these are not recognized by config.sub/gcc and such :(. - # Note: If the mcpu values don't scale, we might try probing CPP defines. - # Note: Should we factor in -Wa,-AvXXX flags too ? Or -mvis/etc... ? - - local cpu - case ${CTARGET} in - sparc64-*) - case $(get-flag mcpu) in - niagara[234]) - if version_is_at_least 2.8 ; then - cpu="sparc64v2" - elif version_is_at_least 2.4 ; then - cpu="sparc64v" - elif version_is_at_least 2.2.3 ; then - cpu="sparc64b" - fi - ;; - niagara) - if version_is_at_least 2.4 ; then - cpu="sparc64v" - elif version_is_at_least 2.2.3 ; then - cpu="sparc64b" - fi - ;; - ultrasparc3) - cpu="sparc64b" - ;; - *) - # We need to force at least v9a because the base build doesn't - # work with just v9. - # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 - [[ -z ${cpu} ]] && append-flags "-Wa,-xarch=v9a" - ;; - esac - ;; - sparc-*) - case $(get-flag mcpu) in - niagara[234]) - if version_is_at_least 2.8 ; then - cpu="sparcv9v2" - elif version_is_at_least 2.4 ; then - cpu="sparcv9v" - elif version_is_at_least 2.2.3 ; then - cpu="sparcv9b" - else - cpu="sparcv9" - fi - ;; - niagara) - if version_is_at_least 2.4 ; then - cpu="sparcv9v" - elif version_is_at_least 2.2.3 ; then - cpu="sparcv9b" - else - cpu="sparcv9" - fi - ;; - ultrasparc3) - cpu="sparcv9b" - ;; - v9|ultrasparc) - cpu="sparcv9" - ;; - v8|supersparc|hypersparc|leon|leon3) - cpu="sparcv8" - ;; - esac - ;; - esac - [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" - ;; - esac -} - -setup_flags() { - # Make sure host make.conf doesn't pollute us - if is_crosscompile || tc-is-cross-compiler ; then - CHOST=${CTARGET} strip-unsupported-flags - fi - - # Store our CFLAGS because it's changed depending on which CTARGET - # we are building when pulling glibc on a multilib profile - CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} - CFLAGS=${CFLAGS_BASE} - CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} - CXXFLAGS=${CXXFLAGS_BASE} - ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} - ASFLAGS=${ASFLAGS_BASE} - - # Over-zealous CFLAGS can often cause problems. What may work for one - # person may not work for another. To avoid a large influx of bugs - # relating to failed builds, we strip most CFLAGS out to ensure as few - # problems as possible. - strip-flags - strip-unsupported-flags - filter-flags -m32 -m64 '-mabi=*' - - # glibc aborts if rpath is set by LDFLAGS - filter-ldflags '-Wl,-rpath=*' - - # #492892 - filter-flags -frecord-gcc-switches - - unset CBUILD_OPT CTARGET_OPT - if use multilib ; then - CTARGET_OPT=$(get_abi_CTARGET) - [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST) - fi - - setup_target_flags - - if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then - CBUILD_OPT=${CTARGET_OPT} - fi - - # Lock glibc at -O2; we want to be conservative here. - # -fno-strict-aliasing is to work around #155906. - filter-flags '-O?' - append-flags -O2 -fno-strict-aliasing - - filter-flags '-fstack-protector*' - - # Starting with gcc-6 (and fully upstreamed pie patches) we control - # default enabled/disabled pie via use flags. So nothing to do - # here then. #618160 - if [[ $(gcc-major-version) -lt 6 ]]; then - if use hardened && tc-enables-pie ; then - # Force PIC macro definition for all compilations since they're all - # either -fPIC or -fPIE with the default-PIE compiler. - append-cppflags -DPIC - else - # Don't build -fPIE without the default-PIE compiler and the - # hardened-pie patch - filter-flags -fPIE - fi - fi -} - -want_tls() { - # Archs that can use TLS (Thread Local Storage) - case $(tc-arch) in - x86) - # requires i486 or better #106556 - [[ ${CTARGET} == i[4567]86* ]] && return 0 - return 1 - ;; - esac - return 0 -} - -want__thread() { - want_tls || return 1 - - # For some reason --with-tls --with__thread is causing segfaults on sparc32. - [[ ${PROFILE_ARCH} == "sparc" ]] && return 1 - - [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD} - - # only test gcc -- can't test linking yet - tc-has-tls -c ${CTARGET} - WANT__THREAD=$? - - return ${WANT__THREAD} -} - -use_multiarch() { - # Allow user to disable runtime arch detection in multilib. - use multiarch || return 1 - # Make sure binutils is new enough to support indirect functions, - # #336792. This funky sed supports gold and bfd linkers. - local bver nver - bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') - case $(tc-arch ${CTARGET}) in - amd64|x86) nver="2.20" ;; - arm) nver="2.22" ;; - hppa) nver="2.23" ;; - ppc|ppc64) nver="2.20" ;; - # ifunc support was added in 2.23, but glibc also needs - # machinemode which is in 2.24. - s390) nver="2.24" ;; - sparc) nver="2.21" ;; - *) return 1 ;; - esac - version_is_at_least ${nver} ${bver} -} - -# Setup toolchain variables that had historically been defined in the -# profiles for these archs. -setup_env() { - # silly users - unset LD_RUN_PATH - unset LD_ASSUME_KERNEL - - if is_crosscompile || tc-is-cross-compiler ; then - multilib_env ${CTARGET_OPT:-${CTARGET}} - - if ! use multilib ; then - MULTILIB_ABIS=${DEFAULT_ABI} - else - MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} - fi - - # If the user has CFLAGS_ in their make.conf, use that, - # and fall back on CFLAGS. - local VAR=CFLAGS_${CTARGET//[-.]/_} - CFLAGS=${!VAR-${CFLAGS}} - einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" - fi - - setup_flags - - export ABI=${ABI:-${DEFAULT_ABI:-default}} - - if use headers-only ; then - # Avoid mixing host's CC and target's CFLAGS_${ABI}: - # At this bootstrap stage we have only binutils for - # target but not compiler yet. - einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." - return 0 - fi - local VAR=CFLAGS_${ABI} - # We need to export CFLAGS with abi information in them because glibc's - # configure script checks CFLAGS for some targets (like mips). Keep - # around the original clean value to avoid appending multiple ABIs on - # top of each other. - : ${__GLIBC_CC:=$(tc-getCC ${CTARGET_OPT:-${CTARGET}})} - export __GLIBC_CC CC="${__GLIBC_CC} ${!VAR}" - einfo " $(printf '%15s' 'Manual CC:') ${CC}" -} - -foreach_abi() { - setup_env - - local ret=0 - local abilist="" - if use multilib ; then - abilist=$(get_install_abis) - else - abilist=${DEFAULT_ABI} - fi - local -x ABI - for ABI in ${abilist:-default} ; do - setup_env - einfo "Running $1 for ABI ${ABI}" - $1 - : $(( ret |= $? )) - done - return ${ret} -} - -glibc_banner() { - local b="Gentoo ${PVR}" - [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" p${PATCH_VER}" - echo "${b}" -} - -check_devpts() { - # Make sure devpts is mounted correctly for use w/out setuid pt_chown. - - # If merely building the binary package, then there's nothing to verify. - [[ ${MERGE_TYPE} == "buildonly" ]] && return - - # Only sanity check when installing the native glibc. - [[ ${ROOT} != "/" ]] && return - - # If they're opting in to the old suid code, then no need to check. - use suid && return - - if awk '$3 == "devpts" && $4 ~ /[, ]gid=5[, ]/ { exit 1 }' /proc/mounts ; then - eerror "In order to use glibc with USE=-suid, you must make sure that" - eerror "you have devpts mounted at /dev/pts with the gid=5 option." - eerror "Openrc should do this for you, so you should check /etc/fstab" - eerror "and make sure you do not have any invalid settings there." - die "mount & fix your /dev/pts settings" - fi -} - -# The following Kernel version handling functions are mostly copied from portage -# source. It's better not to use linux-info.eclass here since a) it adds too -# much magic, see bug 326693 for some of the arguments, and b) some of the -# functions are just not provided. - -g_get_running_KV() { - uname -r - return $? -} - -g_KV_major() { - [[ -z $1 ]] && return 1 - local KV=$@ - echo "${KV%%.*}" -} - -g_KV_minor() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.} - echo "${KV%%.*}" -} - -g_KV_micro() { - [[ -z $1 ]] && return 1 - local KV=$@ - KV=${KV#*.*.} - echo "${KV%%[^[:digit:]]*}" -} - -g_KV_to_int() { - [[ -z $1 ]] && return 1 - local KV_MAJOR=$(g_KV_major "$1") - local KV_MINOR=$(g_KV_minor "$1") - local KV_MICRO=$(g_KV_micro "$1") - local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) - - # We make version 2.2.0 the minimum version we will handle as - # a sanity check ... if its less, we fail ... - if [[ ${KV_int} -ge 131584 ]] ; then - echo "${KV_int}" - return 0 - fi - return 1 -} - -g_int_to_KV() { - local version=$1 major minor micro - major=$((version / 65536)) - minor=$(((version % 65536) / 256)) - micro=$((version % 256)) - echo ${major}.${minor}.${micro} -} - -eend_KV() { - [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]] - eend $? -} - -get_kheader_version() { - printf '#include \nLINUX_VERSION_CODE\n' | \ - $(tc-getCPP ${CTARGET}) -I "${EPREFIX}/$(alt_build_headers)" - | \ - tail -n 1 -} - -# We collect all sanity checks here. Consistency is not guranteed between -# pkg_ and src_ phases, so we call this function both in pkg_pretend and in -# src_unpack. -sanity_prechecks() { - # Make sure devpts is mounted correctly for use w/out setuid pt_chown - check_devpts - - # Prevent native builds from downgrading - if [[ ${MERGE_TYPE} != "buildonly" ]] && \ - [[ ${ROOT} == "/" ]] && \ - [[ ${CBUILD} == ${CHOST} ]] && \ - [[ ${CHOST} == ${CTARGET} ]] ; then - - # The high rev # is to allow people to downgrade between -r# - # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 - # should be fine. Hopefully we never actually use a r# this - # high. - if has_version ">${CATEGORY}/${P}-r10000" ; then - eerror "Sanity check to keep you from breaking your system:" - eerror " Downgrading glibc is not supported and a sure way to destruction." - die "Aborting to save your system." - fi - - if ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then - eerror "Your old kernel is broken. You need to update it to a newer" - eerror "version as syscall() will break. See bug 279260." - die "Old and broken kernel." - fi - fi - - # Users have had a chance to phase themselves, time to give em the boot - if [[ -e ${EROOT}/etc/locale.gen ]] && [[ -e ${EROOT}/etc/locales.build ]] ; then - eerror "You still haven't deleted ${EROOT}/etc/locales.build." - eerror "Do so now after making sure ${EROOT}/etc/locale.gen is kosher." - die "Lazy upgrader detected" - fi - - if [[ ${CTARGET} == i386-* ]] ; then - eerror "i386 CHOSTs are no longer supported." - eerror "Chances are you don't actually want/need i386." - eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml" - die "Please fix your CHOST" - fi - - if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then - ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS." - ewarn "This will result in a 50% performance penalty when running with a 32bit" - ewarn "hypervisor, which is probably not what you want." - fi - - # Check for sanity of /etc/nsswitch.conf - if [[ -e ${EROOT}/etc/nsswitch.conf ]] ; then - local entry - for entry in passwd group shadow; do - if ! egrep -q "^[ \t]*${entry}:.*files" "${EROOT}"/etc/nsswitch.conf; then - eerror "Your ${EROOT}/etc/nsswitch.conf is out of date." - eerror "Please make sure you have 'files' entries for" - eerror "'passwd:', 'group:' and 'shadow:' databases." - eerror "For more details see:" - eerror " https://wiki.gentoo.org/wiki/Project:Toolchain/nsswitch.conf_in_glibc-2.26" - die "nsswitch.conf has no 'files' provider in '${entry}'." - fi - done - fi - - # ABI-specific checks follow here. Hey, we have a lot more specific conditions that - # we test for... - if ! is_crosscompile ; then - if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then - ebegin "Checking that IA32 emulation is enabled in the running kernel" - echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" - local STAT - if "${CC-${CHOST}-gcc}" ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then - "${T}/check-ia32-emulation.elf32" - STAT=$? - else - # Don't fail here to allow single->multi ABI switch - # or recover from breakage like bug #646424 - ewarn "Failed to compile the ABI test. Broken host glibc?" - STAT=0 - fi - rm -f "${T}/check-ia32-emulation.elf32" - eend $STAT - [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc." - fi - - fi - - # When we actually have to compile something... - if ! just_headers ; then - ebegin "Checking gcc for __thread support" - if ! eend $(want__thread ; echo $?) ; then - echo - eerror "Could not find a gcc that supports the __thread directive!" - eerror "Please update your binutils/gcc and try again." - die "No __thread support in gcc!" - fi - - if [[ ${CTARGET} == *-linux* ]] ; then - local run_kv build_kv want_kv - - run_kv=$(g_get_running_KV) - build_kv=$(g_int_to_KV $(get_kheader_version)) - want_kv=${MIN_KERN_VER} - - if ! is_crosscompile && ! tc-is-cross-compiler ; then - # Building fails on an non-supporting kernel - ebegin "Checking running kernel version (${run_kv} >= ${want_kv})" - if ! eend_KV ${run_kv} ${want_kv} ; then - echo - eerror "You need a kernel of at least ${want_kv}!" - die "Kernel version too low!" - fi - fi - - ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})" - if ! eend_KV ${build_kv} ${want_kv} ; then - echo - eerror "You need linux-headers of at least ${want_kv}!" - die "linux-headers version too low!" - fi - fi - fi -} - -# -# the phases -# - -# pkg_pretend - -pkg_pretend() { - # All the checks... - einfo "Checking general environment sanity." - sanity_prechecks -} - -# src_unpack - -src_unpack() { - # Consistency is not guaranteed between pkg_ and src_ ... - sanity_prechecks - - use multilib && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz - - setup_env - - if [[ -n ${EGIT_REPO_URI} ]] ; then - git-r3_src_unpack - else - unpack ${P}.tar.xz - fi - - cd "${S}" || die - touch locale/C-translit.h || die #185476 #218003 - - cd "${WORKDIR}" || die - unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz -} - -src_prepare() { - if ! use vanilla ; then - elog "Applying Gentoo Glibc Patchset ${RELEASE_VER}-${PATCH_VER}" - eapply "${WORKDIR}"/patches - einfo "Done." - fi - - default - - gnuconfig_update - - cd "${WORKDIR}" - find . -name configure -exec touch {} + - - eprefixify extra/locale/locale-gen - - # Fix permissions on some of the scripts. - chmod u+x "${S}"/scripts/*.sh - - cd "${S}" -} - -glibc_do_configure() { - # Glibc does not work with gold (for various reasons) #269274. - tc-ld-disable-gold - - # CXX isnt handled by the multilib system, so if we dont unset here - # we accumulate crap across abis - unset CXX - - einfo "Configuring glibc for nptl" - - if use doc ; then - export MAKEINFO=makeinfo - else - export MAKEINFO=/dev/null - fi - - local v - for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO ; do - einfo " $(printf '%15s' ${v}:) ${!v}" - done - - # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 - # To build .S (assembly) files with the same ABI-specific flags - # upstream currently recommends adding CFLAGS to CC/CXX: - # https://sourceware.org/PR23273 - # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS - # and breaks multiarch support. See 659030#c3 for an example. - # The glibc configure script doesn't properly use LDFLAGS all the time. - export CC="$(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS}" - einfo " $(printf '%15s' 'Manual CC:') ${CC}" - - # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 - export CXX="$(tc-getCXX ${CTARGET}) $(get_abi_CFLAGS) ${CFLAGS}" - einfo " $(printf '%15s' 'Manual CXX:') ${CXX}" - - echo - - local myconf=() - - case ${CTARGET} in - powerpc-*) - # Currently gcc on powerpc32 generates invalid code for - # __builtin_return_address(0) calls. Normally programs - # don't do that but malloc hooks in glibc do: - # https://gcc.gnu.org/PR81996 - # https://bugs.gentoo.org/629054 - myconf+=( --enable-stack-protector=no ) - ;; - *) - myconf+=( --enable-stack-protector=all ) - ;; - esac - myconf+=( --enable-stackguard-randomization ) - - # Keep a whitelist of targets supporing IFUNC. glibc's ./configure - # is not robust enough to detect proper support: - # https://bugs.gentoo.org/641216 - # https://sourceware.org/PR22634#c0 - case $(tc-arch ${CTARGET}) in - # Keep whitelist of targets where autodetection mostly works. - amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;; - # Blacklist everywhere else - *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; - esac - - # Enable Intel Control-flow Enforcement Technology on amd64 if requested - case ${CTARGET} in - x86_64-*) myconf+=( $(use_enable cet) ) ;; - *) ;; - esac - - [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) - - myconf+=( --enable-kernel=${MIN_KERN_VER} ) - - # Since SELinux support is only required for nscd, only enable it if: - # 1. USE selinux - # 2. only for the primary ABI on multilib systems - # 3. Not a crosscompile - if ! is_crosscompile && use selinux ; then - if use multilib ; then - if is_final_abi ; then - myconf+=( --with-selinux ) - else - myconf+=( --without-selinux ) - fi - else - myconf+=( --with-selinux ) - fi - else - myconf+=( --without-selinux ) - fi - - # Force a few tests where we always know the answer but - # configure is incapable of finding it. - if is_crosscompile ; then - export \ - libc_cv_c_cleanup=yes \ - libc_cv_forced_unwind=yes - fi - - myconf+=( - --without-cvs - --disable-werror - --enable-bind-now - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - $(use_enable profile) - $(use_with gd) - --with-headers=$(alt_build_headers) - --prefix="${EPREFIX}/usr" - --sysconfdir="${EPREFIX}/etc" - --localstatedir="${EPREFIX}/var" - --libdir='$(prefix)'/$(get_libdir) - --mandir='$(prefix)'/share/man - --infodir='$(prefix)'/share/info - --libexecdir='$(libdir)'/misc/glibc - --with-bugurl=https://bugs.gentoo.org/ - --with-pkgversion="$(glibc_banner)" - $(use_multiarch || echo --disable-multi-arch) - $(use_enable systemtap) - $(use_enable nscd) - ${EXTRA_ECONF} - ) - - # We rely on sys-libs/timezone-data for timezone tools normally. - myconf+=( $(use_enable vanilla timezone-tools) ) - - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) - ac_cv_lib_cap_cap_init=$(usex caps || echo no) - - # There is no configure option for this and we need to export it - # since the glibc build will re-run configure on itself - export libc_cv_rootsbindir="${EPREFIX}/sbin" - export libc_cv_slibdir="${EPREFIX}/$(get_libdir)" - - # We take care of patching our binutils to use both hash styles, - # and many people like to force gnu hash style only, so disable - # this overriding check. #347761 - export libc_cv_hashstyle=no - - local builddir=$(builddir nptl) - mkdir -p "${builddir}" - cd "${builddir}" - set -- "${S}"/configure "${myconf[@]}" - echo "$@" - "$@" || die "failed to configure glibc" - - # ia64 static cross-compilers are a pita in so much that they - # can't produce static ELFs (as the libgcc.a is broken). so - # disable building of the programs for those targets if it - # doesn't work. - # XXX: We could turn this into a compiler test, but ia64 is - # the only one that matters, so this should be fine for now. - if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then - sed -i '1i+link-static = touch $@' config.make - fi - - # If we're trying to migrate between ABI sets, we need - # to lie and use a local copy of gcc. Like if the system - # is built with MULTILIB_ABIS="amd64 x86" but we want to - # add x32 to it, gcc/glibc don't yet support x32. - # - if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib ; then - echo 'main(){}' > "${T}"/test.c - if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then - sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die - fi - fi -} - -glibc_headers_configure() { - export ABI=default - - local builddir=$(builddir "headers") - mkdir -p "${builddir}" - cd "${builddir}" - - # if we don't have a compiler yet, we can't really test it now ... - # hopefully they don't affect header generation, so let's hope for - # the best here ... - local v vars=( - ac_cv_header_cpuid_h=yes - libc_cv_{386,390,alpha,arm,hppa,ia64,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes - libc_cv_asm_cfi_directives=yes - libc_cv_broken_visibility_attribute=no - libc_cv_c_cleanup=yes - libc_cv_compiler_powerpc64le_binary128_ok=yes - libc_cv_forced_unwind=yes - libc_cv_gcc___thread=yes - libc_cv_mlong_double_128=yes - libc_cv_mlong_double_128ibm=yes - libc_cv_ppc_machine=yes - libc_cv_ppc_rel16=yes - libc_cv_predef_fortify_source=no - libc_cv_target_power8_ok=yes - libc_cv_visibility_attribute=yes - libc_cv_z_combreloc=yes - libc_cv_z_execstack=yes - libc_cv_z_initfirst=yes - libc_cv_z_nodelete=yes - libc_cv_z_nodlopen=yes - libc_cv_z_relro=yes - libc_mips_abi=${ABI} - libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=no - ac_cv_lib_cap_cap_init=no - ) - - einfo "Forcing cached settings:" - for v in "${vars[@]}" ; do - einfo " ${v}" - export ${v} - done - - local headers_only_arch_CPPFLAGS=() - - # Blow away some random CC settings that screw things up. #550192 - if [[ -d ${S}/sysdeps/mips ]]; then - pushd "${S}"/sysdeps/mips >/dev/null - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die - sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die - - # Force the mips ABI to the default. This is OK because the set of - # installed headers in this phase is the same between the 3 ABIs. - # If this ever changes, this hack will break, but that's unlikely - # as glibc discourages that behavior. - # https://crbug.com/647033 - sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die - - popd >/dev/null - fi - - case ${CTARGET} in - riscv*) - # RISC-V interrogates the compiler to determine which target to - # build. If building the headers then we don't strictly need a - # RISC-V compiler, so the built-in definitions that are provided - # along with all RISC-V compiler might not exist. This causes - # glibc's RISC-V preconfigure script to blow up. Since we're just - # building the headers any value will actually work here, so just - # pick the standard one (rv64g/lp64d) to make the build scripts - # happy for now -- the headers are all the same anyway so it - # doesn't matter. - headers_only_arch_CPPFLAGS+=( - -D__riscv_xlen=64 - -D__riscv_flen=64 - -D__riscv_float_abi_double=1 - -D__riscv_atomic=1 - ) ;; - esac - - local myconf=() - myconf+=( - --disable-sanity-checks - --enable-hacker-mode - --without-cvs - --disable-werror - --enable-bind-now - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - --with-headers=$(alt_build_headers) - --prefix="${EPREFIX}/usr" - ${EXTRA_ECONF} - ) - - # Nothing is compiled here which would affect the headers for the target. - # So forcing CC/CFLAGS is sane. - local headers_only_CC=$(tc-getBUILD_CC) - local headers_only_CFLAGS="-O1 -pipe" - local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" - local headers_only_LDFLAGS="" - set -- "${S}"/configure "${myconf[@]}" - echo \ - "CC=${headers_only_CC}" \ - "CFLAGS=${headers_only_CFLAGS}" \ - "CPPFLAGS=${headers_only_CPPFLAGS}" \ - "LDFLAGS=${headers_only_LDFLAGS}" \ - "$@" - CC=${headers_only_CC} \ - CFLAGS=${headers_only_CFLAGS} \ - CPPFLAGS=${headers_only_CPPFLAGS} \ - LDFLAGS="" \ - "$@" || die "failed to configure glibc" -} - -do_src_configure() { - if just_headers ; then - glibc_headers_configure - else - glibc_do_configure nptl - fi -} - -src_configure() { - foreach_abi do_src_configure -} - -do_src_compile() { - emake -C "$(builddir nptl)" || die "make nptl for ${ABI} failed" -} - -src_compile() { - if just_headers ; then - return - fi - - foreach_abi do_src_compile -} - -glibc_src_test() { - cd "$(builddir nptl)" - emake check -} - -do_src_test() { - local ret=0 - - glibc_src_test - : $(( ret |= $? )) - - return ${ret} -} - -src_test() { - if just_headers ; then - return - fi - - # Give tests more time to complete. - export TIMEOUTFACTOR=5 - - foreach_abi do_src_test || die "tests failed" -} - -run_locale_gen() { - # if the host locales.gen contains no entries, we'll install everything - local root="$1" - local locale_list="${root}/etc/locale.gen" - if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then - ewarn "Generating all locales; edit /etc/locale.gen to save time/space" - locale_list="${root}/usr/share/i18n/SUPPORTED" - fi - - locale-gen --jobs $(makeopts_jobs) --config "${locale_list}" \ - --destdir "${root}" -} - -glibc_do_src_install() { - local builddir=$(builddir nptl) - cd "${builddir}" - - emake install_root="${D}$(alt_prefix)" install || die - - # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support - # which come without headers etc. Only needed for binary packages since the - # external net-libs/libnsl has increased soversion. Keep only versioned libraries. - find "${D}" -name "libnsl.a" -delete - find "${D}" -name "libnsl.so" -delete - - # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need - # to infer upstream version: - # '#define VERSION "2.26.90"' -> '2.26.90' - local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) - - if [[ -e ${ED}$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then - # Move versioned .a file out of libdir to evade portage QA checks - # instead of using gen_usr_ldscript(). We fix ldscript as: - # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.a ..." - sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" "${ED}"$(alt_usrlibdir)/libm.a || die - dodir $(alt_usrlibdir)/${P} - mv "${ED}"$(alt_usrlibdir)/libm-${upstream_pv}.a "${ED}"$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die - fi - - # We'll take care of the cache ourselves - rm -f "${ED}"/etc/ld.so.cache - - # Everything past this point just needs to be done once ... - is_final_abi || return 0 - - # Make sure the non-native interp can be found on multilib systems even - # if the main library set isn't installed into the right place. Maybe - # we should query the active gcc for info instead of hardcoding it ? - local i ldso_abi ldso_name - local ldso_abi_list=( - # x86 - amd64 /lib64/ld-linux-x86-64.so.2 - x32 /libx32/ld-linux-x32.so.2 - x86 /lib/ld-linux.so.2 - # mips - o32 /lib/ld.so.1 - n32 /lib32/ld.so.1 - n64 /lib64/ld.so.1 - # powerpc - ppc /lib/ld.so.1 - ppc64 /lib64/ld64.so.1 - # s390 - s390 /lib/ld.so.1 - s390x /lib/ld64.so.1 - # sparc - sparc32 /lib/ld-linux.so.2 - sparc64 /lib64/ld-linux.so.2 - ) - case $(tc-endian) in - little) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64.so.1 - ) - ;; - big) - ldso_abi_list+=( - # arm - arm64 /lib/ld-linux-aarch64_be.so.1 - ) - ;; - esac - if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then - dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib - fi - for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do - ldso_abi=${ldso_abi_list[i]} - has ${ldso_abi} $(get_install_abis) || continue - - ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" - if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then - dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} - fi - done - - # With devpts under Linux mounted properly, we do not need the pt_chown - # binary to be setuid. This is because the default owners/perms will be - # exactly what we want. - if ! use suid ; then - find "${ED}" -name pt_chown -exec chmod -s {} + - fi - - ################################################################# - # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # - # Make sure we install some symlink hacks so that when we build - # a 2nd stage cross-compiler, gcc finds the target system - # headers correctly. See gcc/doc/gccinstall.info - if is_crosscompile ; then - # We need to make sure that /lib and /usr/lib always exists. - # gcc likes to use relative paths to get to its multilibs like - # /usr/lib/../lib64/. So while we don't install any files into - # /usr/lib/, we do need it to exist. - keepdir $(alt_prefix)/lib - keepdir $(alt_prefix)/usr/lib - - dosym usr/include $(alt_prefix)/sys-include - return 0 - fi - - # Files for Debian-style locale updating - dodir /usr/share/i18n - sed \ - -e "/^#/d" \ - -e "/SUPPORTED-LOCALES=/d" \ - -e "s: \\\\::g" -e "s:/: :g" \ - "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ - || die "generating /usr/share/i18n/SUPPORTED failed" - cd "${WORKDIR}"/extra/locale - dosbin locale-gen - doman *.[0-8] - insinto /etc - doins locale.gen - - # Make sure all the ABI's can find the locales and so we only - # have to generate one set - local a - keepdir /usr/$(get_libdir)/locale - for a in $(get_install_abis) ; do - if [[ ! -e ${ED}/usr/$(get_abi_LIBDIR ${a})/locale ]] ; then - dosym ../$(get_libdir)/locale /usr/$(get_abi_LIBDIR ${a})/locale - fi - done - - cd "${S}" - - # Install misc network config files - insinto /etc - doins nscd/nscd.conf posix/gai.conf nss/nsswitch.conf - doins "${WORKDIR}"/extra/etc/*.conf - - if use nscd ; then - doinitd "$(prefixify_ro "${WORKDIR}"/extra/etc/nscd)" - - local nscd_args=( - -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" - ) - - sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd - - systemd_dounit nscd/nscd.service - systemd_newtmpfilesd nscd/nscd.tmpfiles nscd.conf - else - # Do this since extra/etc/*.conf above might have nscd.conf. - rm -f "${ED}"/etc/nscd.conf - fi - - echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc - doenvd "${T}"/00glibc - - for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do - [[ -s ${d} ]] && dodoc ${d} - done - dodoc -r ChangeLog.old - - # Prevent overwriting of the /etc/localtime symlink. We'll handle the - # creation of the "factory" symlink in pkg_postinst(). - rm -f "${ED}"/etc/localtime - - # Generate all locales if this is a native build as locale generation - if use compile-locales && ! is_crosscompile ; then - run_locale_gen "${ED}" - fi -} - -glibc_headers_install() { - local builddir=$(builddir "headers") - cd "${builddir}" - emake install_root="${D}$(alt_prefix)" install-headers - - insinto $(alt_headers)/gnu - doins "${S}"/include/gnu/stubs.h - - # Make sure we install the sys-include symlink so that when - # we build a 2nd stage cross-compiler, gcc finds the target - # system headers correctly. See gcc/doc/gccinstall.info - dosym usr/include $(alt_prefix)/sys-include -} - -src_strip() { - # gdb is lame and requires some debugging information to remain in - # libpthread, so we need to strip it by hand. libthread_db makes no - # sense stripped as it is only used when debugging. - local pthread=$(has splitdebug ${FEATURES} && echo "libthread_db" || echo "lib{pthread,thread_db}") - env \ - -uRESTRICT \ - CHOST=${CTARGET} \ - STRIP_MASK="/*/{,tls/}${pthread}*" \ - prepallstrip - # if user has stripping enabled and does not have split debug turned on, - # then leave the debugging sections in libpthread. - if ! has nostrip ${FEATURES} && ! has splitdebug ${FEATURES} ; then - ${STRIP:-${CTARGET}-strip} --strip-debug "${ED}"$(alt_prefix)/*/libpthread-*.so - fi -} - -src_install() { - if just_headers ; then - export ABI=default - glibc_headers_install - return - fi - - foreach_abi glibc_do_src_install - src_strip -} - -# Simple test to make sure our new glibc isn't completely broken. -# Make sure we don't test with statically built binaries since -# they will fail. Also, skip if this glibc is a cross compiler. -# -# If coreutils is built with USE=multicall, some of these files -# will just be wrapper scripts, not actual ELFs we can test. -glibc_sanity_check() { - cd / #228809 - - # We enter ${ED} so to avoid trouble if the path contains - # special characters; for instance if the path contains the - # colon character (:), then the linker will try to split it - # and look for the libraries in an unexpected place. This can - # lead to unsafe code execution if the generated prefix is - # within a world-writable directory. - # (e.g. /var/tmp/portage:${HOSTNAME}) - pushd "${ED}"/$(get_libdir) >/dev/null - - local x striptest - for x in cal date env free ls true uname uptime ; do - x=$(type -p ${x}) - [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue - striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue - case ${striptest} in - *"statically linked"*) continue;; - *"ASCII text"*) continue;; - esac - # We need to clear the locale settings as the upgrade might want - # incompatible locale data. This test is not for verifying that. - LC_ALL=C \ - ./ld-*.so --library-path . ${x} > /dev/null \ - || die "simple run test (${x}) failed" - done - - popd >/dev/null -} - -pkg_preinst() { - # nothing to do if just installing headers - just_headers && return - - # prepare /etc/ld.so.conf.d/ for files - mkdir -p "${EROOT}"/etc/ld.so.conf.d - - # Default /etc/hosts.conf:multi to on for systems with small dbs. - if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then - sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf - einfo "Defaulting /etc/host.conf:multi to on" - fi - - [[ ${ROOT} != "/" ]] && return 0 - [[ -d ${ED}/$(get_libdir) ]] || return 0 - [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check -} - -pkg_postinst() { - # nothing to do if just installing headers - just_headers && return - - if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then - # Generate fastloading iconv module configuration file. - "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}" - fi - - if ! is_crosscompile && [[ ${ROOT} == "/" ]] ; then - # Reload init ... if in a chroot or a diff init package, ignore - # errors from this step #253697 - /sbin/telinit U 2>/dev/null - - use compile-locales || run_locale_gen "${EROOT}" - fi - - # Check for sanity of /etc/nsswitch.conf, take 2 - if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then - local entry - for entry in passwd group shadow; do - if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then - ewarn "" - ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" - ewarn "removed from glibc and is now provided by the package" - ewarn " sys-auth/libnss-nis" - ewarn "Install it now to keep your NIS setup working." - ewarn "" - fi - done - fi -} diff --git a/sys-libs/glibc/glibc-2.28-r3.ebuild b/sys-libs/glibc/glibc-2.28-r3.ebuild new file mode 100644 index 000000000000..4f0bb6b191fd --- /dev/null +++ b/sys-libs/glibc/glibc-2.28-r3.ebuild @@ -0,0 +1,1411 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit prefix eutils eapi7-ver toolchain-funcs flag-o-matic gnuconfig \ + multilib systemd multiprocessing + +DESCRIPTION="GNU libc C library" +HOMEPAGE="https://www.gnu.org/software/libc/" +LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" +RESTRICT="strip" # Strip ourself #46186 +SLOT="2.2" + +EMULTILIB_PKG="true" + +if [[ ${PV} == 9999* ]]; then + EGIT_REPO_URI="https://sourceware.org/git/glibc.git" + inherit git-r3 +else + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" + SRC_URI="mirror://gnu/glibc/${P}.tar.xz" +fi + +RELEASE_VER=${PV} + +GCC_BOOTSTRAP_VER=20180511 + +# Gentoo patchset +PATCH_VER=5 + +SRC_URI+=" https://dev.gentoo.org/~dilfridge/distfiles/${P}-patches-${PATCH_VER}.tar.xz" +SRC_URI+=" multilib? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" + +IUSE="audit caps cet compile-locales doc gd headers-only +multiarch multilib nscd profile selinux suid systemtap test vanilla" + +# Minimum kernel version that glibc requires +MIN_KERN_VER="3.2.0" + +# Here's how the cross-compile logic breaks down ... +# CTARGET - machine that will target the binaries +# CHOST - machine that will host the binaries +# CBUILD - machine that will build the binaries +# If CTARGET != CHOST, it means you want a libc for cross-compiling. +# If CHOST != CBUILD, it means you want to cross-compile the libc. +# CBUILD = CHOST = CTARGET - native build/install +# CBUILD != (CHOST = CTARGET) - cross-compile a native build +# (CBUILD = CHOST) != CTARGET - libc for cross-compiler +# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler +# For install paths: +# CHOST = CTARGET - install into / +# CHOST != CTARGET - install into /usr/CTARGET/ +# +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +# We need a new-enough binutils/gcc to match upstream baseline. +# Also we need to make sure our binutils/gcc supports TLS, +# and that gcc already contains the hardened patches. +COMMON_DEPEND=" + nscd? ( selinux? ( + audit? ( sys-process/audit ) + caps? ( sys-libs/libcap ) + ) ) + suid? ( caps? ( sys-libs/libcap ) ) + selinux? ( sys-libs/libselinux ) + systemtap? ( dev-util/systemtap ) +" +DEPEND="${COMMON_DEPEND} + >=app-misc/pax-utils-0.1.10 + sys-devel/bison + !=net-dns/libidn2-2.0.5 ) +" +RDEPEND="${COMMON_DEPEND} + >=net-dns/libidn2-2.0.5 + sys-apps/gentoo-functions + !sys-kernel/ps3-sources + !sys-libs/nss-db +" + +if [[ ${CATEGORY} == cross-* ]] ; then + DEPEND+=" !headers-only? ( + >=${CATEGORY}/binutils-2.24 + >=${CATEGORY}/gcc-6 + )" + [[ ${CATEGORY} == *-linux* ]] && DEPEND+=" ${CATEGORY}/linux-headers" +else + DEPEND+=" + >=sys-devel/binutils-2.24 + >=sys-devel/gcc-6 + virtual/os-headers + " + RDEPEND+=" vanilla? ( !sys-libs/timezone-data )" + PDEPEND+=" !vanilla? ( sys-libs/timezone-data )" +fi + +# +# Small helper functions +# + +is_crosscompile() { + [[ ${CHOST} != ${CTARGET} ]] +} + +just_headers() { + is_crosscompile && use headers-only +} + +alt_prefix() { + is_crosscompile && echo /usr/${CTARGET} +} + +# We need to be able to set alternative headers for compiling for non-native +# platform. Will also become useful for testing kernel-headers without screwing +# up the whole system. +alt_headers() { + echo ${ALT_HEADERS:=$(alt_prefix)/usr/include} +} + +alt_build_headers() { + if [[ -z ${ALT_BUILD_HEADERS} ]] ; then + ALT_BUILD_HEADERS="${EPREFIX}$(alt_headers)" + if tc-is-cross-compiler ; then + ALT_BUILD_HEADERS=${SYSROOT}$(alt_headers) + if [[ ! -e ${ALT_BUILD_HEADERS}/linux/version.h ]] ; then + local header_path=$(echo '#include ' | $(tc-getCPP ${CTARGET}) ${CFLAGS} 2>&1 | grep -o '[^"]*linux/version.h') + ALT_BUILD_HEADERS=${header_path%/linux/version.h} + fi + fi + fi + echo "${ALT_BUILD_HEADERS}" +} + +alt_libdir() { + echo $(alt_prefix)/$(get_libdir) +} +alt_usrlibdir() { + echo $(alt_prefix)/usr/$(get_libdir) +} + +builddir() { + echo "${WORKDIR}/build-${ABI}-${CTARGET}-$1" +} + +do_compile_test() { + local ret save_cflags=${CFLAGS} + CFLAGS+=" $1" + shift + + pushd "${T}" >/dev/null + + rm -f glibc-test* + printf '%b' "$*" > glibc-test.c + + nonfatal emake -s glibc-test + ret=$? + + popd >/dev/null + + CFLAGS=${save_cflags} + return ${ret} +} + +do_run_test() { + local ret + + if [[ ${MERGE_TYPE} == "binary" ]] ; then + # ignore build failures when installing a binary package #324685 + do_compile_test "" "$@" 2>/dev/null || return 0 + else + if ! do_compile_test "" "$@" ; then + ewarn "Simple build failed ... assuming this is desired #324685" + return 0 + fi + fi + + pushd "${T}" >/dev/null + + ./glibc-test + ret=$? + rm -f glibc-test* + + popd >/dev/null + + return ${ret} +} + +setup_target_flags() { + # This largely mucks with compiler flags. None of which should matter + # when building up just the headers. + just_headers && return 0 + + case $(tc-arch) in + x86) + # -march needed for #185404 #199334 + # TODO: When creating the first glibc cross-compile, this test will + # always fail as it does a full link which in turn requires glibc. + # Probably also applies when changing multilib profile settings (e.g. + # enabling x86 when the profile was amd64-only previously). + # We could change main to _start and pass -nostdlib here so that we + # only test the gcc code compilation. Or we could do a compile and + # then look for the symbol via scanelf. + if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n' 2>/dev/null ; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + filter-flags '-march=*' + export CFLAGS="-march=${t} ${CFLAGS}" + einfo "Auto adding -march=${t} to CFLAGS #185404" + fi + ;; + amd64) + # -march needed for #185404 #199334 + # Note: This test only matters when the x86 ABI is enabled, so we could + # optimize a bit and elide it. + # TODO: See cross-compile issues listed above for x86. + if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n' 2>/dev/null ; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + # Normally the target is x86_64-xxx, so turn that into the -march that + # gcc actually accepts. #528708 + [[ ${t} == "x86_64" ]] && t="x86-64" + filter-flags '-march=*' + # ugly, ugly, ugly. ugly. + CFLAGS_x86=$(CFLAGS=${CFLAGS_x86} filter-flags '-march=*'; echo "${CFLAGS}") + export CFLAGS_x86="${CFLAGS_x86} -march=${t}" + einfo "Auto adding -march=${t} to CFLAGS_x86 #185404" + fi + ;; + mips) + # The mips abi cannot support the GNU style hashes. #233233 + filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both + ;; + sparc) + # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. + filter-flags "-fcall-used-g7" + append-flags "-fcall-used-g6" + + # If the CHOST is the basic one (e.g. not sparcv9-xxx already), + # try to pick a better one so glibc can use cpu-specific .S files. + # We key off the CFLAGS to get a good value. Also need to handle + # version skew. + # We can't force users to set their CHOST to their exact machine + # as many of these are not recognized by config.sub/gcc and such :(. + # Note: If the mcpu values don't scale, we might try probing CPP defines. + # Note: Should we factor in -Wa,-AvXXX flags too ? Or -mvis/etc... ? + + local cpu + case ${CTARGET} in + sparc64-*) + case $(get-flag mcpu) in + niagara[234]) + if ver_test -ge 2.8 ; then + cpu="sparc64v2" + elif ver_test -ge 2.4 ; then + cpu="sparc64v" + elif ver_test -ge 2.2.3 ; then + cpu="sparc64b" + fi + ;; + niagara) + if ver_test -ge 2.4 ; then + cpu="sparc64v" + elif ver_test -ge 2.2.3 ; then + cpu="sparc64b" + fi + ;; + ultrasparc3) + cpu="sparc64b" + ;; + *) + # We need to force at least v9a because the base build doesn't + # work with just v9. + # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 + [[ -z ${cpu} ]] && append-flags "-Wa,-xarch=v9a" + ;; + esac + ;; + sparc-*) + case $(get-flag mcpu) in + niagara[234]) + if ver_test -ge 2.8 ; then + cpu="sparcv9v2" + elif ver_test -ge 2.4 ; then + cpu="sparcv9v" + elif ver_test -ge 2.2.3 ; then + cpu="sparcv9b" + else + cpu="sparcv9" + fi + ;; + niagara) + if ver_test -ge 2.4 ; then + cpu="sparcv9v" + elif ver_test -ge 2.2.3 ; then + cpu="sparcv9b" + else + cpu="sparcv9" + fi + ;; + ultrasparc3) + cpu="sparcv9b" + ;; + v9|ultrasparc) + cpu="sparcv9" + ;; + v8|supersparc|hypersparc|leon|leon3) + cpu="sparcv8" + ;; + esac + ;; + esac + [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" + ;; + esac +} + +setup_flags() { + # Make sure host make.conf doesn't pollute us + if is_crosscompile || tc-is-cross-compiler ; then + CHOST=${CTARGET} strip-unsupported-flags + fi + + # Store our CFLAGS because it's changed depending on which CTARGET + # we are building when pulling glibc on a multilib profile + CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} + CFLAGS=${CFLAGS_BASE} + CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} + CXXFLAGS=${CXXFLAGS_BASE} + ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} + ASFLAGS=${ASFLAGS_BASE} + + # Over-zealous CFLAGS can often cause problems. What may work for one + # person may not work for another. To avoid a large influx of bugs + # relating to failed builds, we strip most CFLAGS out to ensure as few + # problems as possible. + strip-flags + strip-unsupported-flags + filter-flags -m32 -m64 '-mabi=*' + + # glibc aborts if rpath is set by LDFLAGS + filter-ldflags '-Wl,-rpath=*' + + # #492892 + filter-flags -frecord-gcc-switches + + unset CBUILD_OPT CTARGET_OPT + if use multilib ; then + CTARGET_OPT=$(get_abi_CTARGET) + [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST) + fi + + setup_target_flags + + if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then + CBUILD_OPT=${CTARGET_OPT} + fi + + # Lock glibc at -O2; we want to be conservative here. + # -fno-strict-aliasing is to work around #155906. + filter-flags '-O?' + append-flags -O2 -fno-strict-aliasing + + filter-flags '-fstack-protector*' +} + +want_tls() { + # Archs that can use TLS (Thread Local Storage) + case $(tc-arch) in + x86) + # requires i486 or better #106556 + [[ ${CTARGET} == i[4567]86* ]] && return 0 + return 1 + ;; + esac + return 0 +} + +want__thread() { + want_tls || return 1 + + # For some reason --with-tls --with__thread is causing segfaults on sparc32. + [[ ${PROFILE_ARCH} == "sparc" ]] && return 1 + + [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD} + + # only test gcc -- can't test linking yet + tc-has-tls -c ${CTARGET} + WANT__THREAD=$? + + return ${WANT__THREAD} +} + +use_multiarch() { + # Allow user to disable runtime arch detection in multilib. + use multiarch || return 1 + # Make sure binutils is new enough to support indirect functions, + # #336792. This funky sed supports gold and bfd linkers. + local bver nver + bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') + case $(tc-arch ${CTARGET}) in + amd64|x86) nver="2.20" ;; + arm) nver="2.22" ;; + hppa) nver="2.23" ;; + ppc|ppc64) nver="2.20" ;; + # ifunc support was added in 2.23, but glibc also needs + # machinemode which is in 2.24. + s390) nver="2.24" ;; + sparc) nver="2.21" ;; + *) return 1 ;; + esac + ver_test ${bver} -ge ${nver} +} + +# Setup toolchain variables that had historically been defined in the +# profiles for these archs. +setup_env() { + # silly users + unset LD_RUN_PATH + unset LD_ASSUME_KERNEL + + if is_crosscompile || tc-is-cross-compiler ; then + multilib_env ${CTARGET_OPT:-${CTARGET}} + + if ! use multilib ; then + MULTILIB_ABIS=${DEFAULT_ABI} + else + MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} + fi + + # If the user has CFLAGS_ in their make.conf, use that, + # and fall back on CFLAGS. + local VAR=CFLAGS_${CTARGET//[-.]/_} + CFLAGS=${!VAR-${CFLAGS}} + einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" + fi + + setup_flags + + export ABI=${ABI:-${DEFAULT_ABI:-default}} + + if use headers-only ; then + # Avoid mixing host's CC and target's CFLAGS_${ABI}: + # At this bootstrap stage we have only binutils for + # target but not compiler yet. + einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." + return 0 + fi + local VAR=CFLAGS_${ABI} + # We need to export CFLAGS with abi information in them because glibc's + # configure script checks CFLAGS for some targets (like mips). Keep + # around the original clean value to avoid appending multiple ABIs on + # top of each other. + : ${__GLIBC_CC:=$(tc-getCC ${CTARGET_OPT:-${CTARGET}})} + export __GLIBC_CC CC="${__GLIBC_CC} ${!VAR}" + einfo " $(printf '%15s' 'Manual CC:') ${CC}" +} + +foreach_abi() { + setup_env + + local ret=0 + local abilist="" + if use multilib ; then + abilist=$(get_install_abis) + else + abilist=${DEFAULT_ABI} + fi + local -x ABI + for ABI in ${abilist:-default} ; do + setup_env + einfo "Running $1 for ABI ${ABI}" + $1 + : $(( ret |= $? )) + done + return ${ret} +} + +glibc_banner() { + local b="Gentoo ${PVR}" + [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" p${PATCH_VER}" + echo "${b}" +} + +check_devpts() { + # Make sure devpts is mounted correctly for use w/out setuid pt_chown. + + # If merely building the binary package, then there's nothing to verify. + [[ ${MERGE_TYPE} == "buildonly" ]] && return + + # Only sanity check when installing the native glibc. + [[ ${ROOT} != "/" ]] && return + + # If they're opting in to the old suid code, then no need to check. + use suid && return + + if awk '$3 == "devpts" && $4 ~ /[, ]gid=5[, ]/ { exit 1 }' /proc/mounts ; then + eerror "In order to use glibc with USE=-suid, you must make sure that" + eerror "you have devpts mounted at /dev/pts with the gid=5 option." + eerror "Openrc should do this for you, so you should check /etc/fstab" + eerror "and make sure you do not have any invalid settings there." + die "mount & fix your /dev/pts settings" + fi +} + +# The following Kernel version handling functions are mostly copied from portage +# source. It's better not to use linux-info.eclass here since a) it adds too +# much magic, see bug 326693 for some of the arguments, and b) some of the +# functions are just not provided. + +g_get_running_KV() { + uname -r + return $? +} + +g_KV_major() { + [[ -z $1 ]] && return 1 + local KV=$@ + echo "${KV%%.*}" +} + +g_KV_minor() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.} + echo "${KV%%.*}" +} + +g_KV_micro() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.*.} + echo "${KV%%[^[:digit:]]*}" +} + +g_KV_to_int() { + [[ -z $1 ]] && return 1 + local KV_MAJOR=$(g_KV_major "$1") + local KV_MINOR=$(g_KV_minor "$1") + local KV_MICRO=$(g_KV_micro "$1") + local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) + + # We make version 2.2.0 the minimum version we will handle as + # a sanity check ... if its less, we fail ... + if [[ ${KV_int} -ge 131584 ]] ; then + echo "${KV_int}" + return 0 + fi + return 1 +} + +g_int_to_KV() { + local version=$1 major minor micro + major=$((version / 65536)) + minor=$(((version % 65536) / 256)) + micro=$((version % 256)) + echo ${major}.${minor}.${micro} +} + +eend_KV() { + [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]] + eend $? +} + +get_kheader_version() { + printf '#include \nLINUX_VERSION_CODE\n' | \ + $(tc-getCPP ${CTARGET}) -I "${EPREFIX}/$(alt_build_headers)" - | \ + tail -n 1 +} + +# We collect all sanity checks here. Consistency is not guranteed between +# pkg_ and src_ phases, so we call this function both in pkg_pretend and in +# src_unpack. +sanity_prechecks() { + # Make sure devpts is mounted correctly for use w/out setuid pt_chown + check_devpts + + # Prevent native builds from downgrading + if [[ ${MERGE_TYPE} != "buildonly" ]] && \ + [[ ${ROOT} == "/" ]] && \ + [[ ${CBUILD} == ${CHOST} ]] && \ + [[ ${CHOST} == ${CTARGET} ]] ; then + + # The high rev # is to allow people to downgrade between -r# + # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 + # should be fine. Hopefully we never actually use a r# this + # high. + if has_version ">${CATEGORY}/${P}-r10000" ; then + eerror "Sanity check to keep you from breaking your system:" + eerror " Downgrading glibc is not supported and a sure way to destruction." + die "Aborting to save your system." + fi + + if ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then + eerror "Your old kernel is broken. You need to update it to a newer" + eerror "version as syscall() will break. See bug 279260." + die "Old and broken kernel." + fi + fi + + # Users have had a chance to phase themselves, time to give em the boot + if [[ -e ${EROOT}/etc/locale.gen ]] && [[ -e ${EROOT}/etc/locales.build ]] ; then + eerror "You still haven't deleted ${EROOT}/etc/locales.build." + eerror "Do so now after making sure ${EROOT}/etc/locale.gen is kosher." + die "Lazy upgrader detected" + fi + + if [[ ${CTARGET} == i386-* ]] ; then + eerror "i386 CHOSTs are no longer supported." + eerror "Chances are you don't actually want/need i386." + eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml" + die "Please fix your CHOST" + fi + + if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then + ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS." + ewarn "This will result in a 50% performance penalty when running with a 32bit" + ewarn "hypervisor, which is probably not what you want." + fi + + # Check for sanity of /etc/nsswitch.conf + if [[ -e ${EROOT}/etc/nsswitch.conf ]] ; then + local entry + for entry in passwd group shadow; do + if ! egrep -q "^[ \t]*${entry}:.*files" "${EROOT}"/etc/nsswitch.conf; then + eerror "Your ${EROOT}/etc/nsswitch.conf is out of date." + eerror "Please make sure you have 'files' entries for" + eerror "'passwd:', 'group:' and 'shadow:' databases." + eerror "For more details see:" + eerror " https://wiki.gentoo.org/wiki/Project:Toolchain/nsswitch.conf_in_glibc-2.26" + die "nsswitch.conf has no 'files' provider in '${entry}'." + fi + done + fi + + # ABI-specific checks follow here. Hey, we have a lot more specific conditions that + # we test for... + if ! is_crosscompile ; then + if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then + ebegin "Checking that IA32 emulation is enabled in the running kernel" + echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" + local STAT + if "${CC-${CHOST}-gcc}" ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then + "${T}/check-ia32-emulation.elf32" + STAT=$? + else + # Don't fail here to allow single->multi ABI switch + # or recover from breakage like bug #646424 + ewarn "Failed to compile the ABI test. Broken host glibc?" + STAT=0 + fi + rm -f "${T}/check-ia32-emulation.elf32" + eend $STAT + [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc." + fi + + fi + + # When we actually have to compile something... + if ! just_headers ; then + ebegin "Checking gcc for __thread support" + if ! eend $(want__thread ; echo $?) ; then + echo + eerror "Could not find a gcc that supports the __thread directive!" + eerror "Please update your binutils/gcc and try again." + die "No __thread support in gcc!" + fi + + if [[ ${CTARGET} == *-linux* ]] ; then + local run_kv build_kv want_kv + + run_kv=$(g_get_running_KV) + build_kv=$(g_int_to_KV $(get_kheader_version)) + want_kv=${MIN_KERN_VER} + + if ! is_crosscompile && ! tc-is-cross-compiler ; then + # Building fails on an non-supporting kernel + ebegin "Checking running kernel version (${run_kv} >= ${want_kv})" + if ! eend_KV ${run_kv} ${want_kv} ; then + echo + eerror "You need a kernel of at least ${want_kv}!" + die "Kernel version too low!" + fi + fi + + ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})" + if ! eend_KV ${build_kv} ${want_kv} ; then + echo + eerror "You need linux-headers of at least ${want_kv}!" + die "linux-headers version too low!" + fi + fi + fi +} + +# +# the phases +# + +# pkg_pretend + +pkg_pretend() { + # All the checks... + einfo "Checking general environment sanity." + sanity_prechecks +} + +# src_unpack + +src_unpack() { + # Consistency is not guaranteed between pkg_ and src_ ... + sanity_prechecks + + use multilib && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz + + setup_env + + if [[ -n ${EGIT_REPO_URI} ]] ; then + git-r3_src_unpack + else + unpack ${P}.tar.xz + fi + + cd "${S}" || die + touch locale/C-translit.h || die #185476 #218003 + + cd "${WORKDIR}" || die + unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz +} + +src_prepare() { + if ! use vanilla ; then + elog "Applying Gentoo Glibc Patchset ${RELEASE_VER}-${PATCH_VER}" + eapply "${WORKDIR}"/patches + einfo "Done." + fi + + default + + gnuconfig_update + + cd "${WORKDIR}" + find . -name configure -exec touch {} + + + eprefixify extra/locale/locale-gen + + # Fix permissions on some of the scripts. + chmod u+x "${S}"/scripts/*.sh + + cd "${S}" +} + +glibc_do_configure() { + # Glibc does not work with gold (for various reasons) #269274. + tc-ld-disable-gold + + # CXX isnt handled by the multilib system, so if we dont unset here + # we accumulate crap across abis + unset CXX + + einfo "Configuring glibc for nptl" + + if use doc ; then + export MAKEINFO=makeinfo + else + export MAKEINFO=/dev/null + fi + + local v + for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO ; do + einfo " $(printf '%15s' ${v}:) ${!v}" + done + + # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 + # To build .S (assembly) files with the same ABI-specific flags + # upstream currently recommends adding CFLAGS to CC/CXX: + # https://sourceware.org/PR23273 + # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS + # and breaks multiarch support. See 659030#c3 for an example. + # The glibc configure script doesn't properly use LDFLAGS all the time. + export CC="$(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS}" + einfo " $(printf '%15s' 'Manual CC:') ${CC}" + + # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 + export CXX="$(tc-getCXX ${CTARGET}) $(get_abi_CFLAGS) ${CFLAGS}" + einfo " $(printf '%15s' 'Manual CXX:') ${CXX}" + + echo + + local myconf=() + + case ${CTARGET} in + powerpc-*) + # Currently gcc on powerpc32 generates invalid code for + # __builtin_return_address(0) calls. Normally programs + # don't do that but malloc hooks in glibc do: + # https://gcc.gnu.org/PR81996 + # https://bugs.gentoo.org/629054 + myconf+=( --enable-stack-protector=no ) + ;; + *) + myconf+=( --enable-stack-protector=all ) + ;; + esac + myconf+=( --enable-stackguard-randomization ) + + # Keep a whitelist of targets supporing IFUNC. glibc's ./configure + # is not robust enough to detect proper support: + # https://bugs.gentoo.org/641216 + # https://sourceware.org/PR22634#c0 + case $(tc-arch ${CTARGET}) in + # Keep whitelist of targets where autodetection mostly works. + amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;; + # Blacklist everywhere else + *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; + esac + + # Enable Intel Control-flow Enforcement Technology on amd64 if requested + case ${CTARGET} in + x86_64-*) myconf+=( $(use_enable cet) ) ;; + *) ;; + esac + + [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) + + myconf+=( --enable-kernel=${MIN_KERN_VER} ) + + # Since SELinux support is only required for nscd, only enable it if: + # 1. USE selinux + # 2. only for the primary ABI on multilib systems + # 3. Not a crosscompile + if ! is_crosscompile && use selinux ; then + if use multilib ; then + if is_final_abi ; then + myconf+=( --with-selinux ) + else + myconf+=( --without-selinux ) + fi + else + myconf+=( --with-selinux ) + fi + else + myconf+=( --without-selinux ) + fi + + # Force a few tests where we always know the answer but + # configure is incapable of finding it. + if is_crosscompile ; then + export \ + libc_cv_c_cleanup=yes \ + libc_cv_forced_unwind=yes + fi + + myconf+=( + --without-cvs + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + $(use_enable profile) + $(use_with gd) + --with-headers=$(alt_build_headers) + --prefix="${EPREFIX}/usr" + --sysconfdir="${EPREFIX}/etc" + --localstatedir="${EPREFIX}/var" + --libdir='$(prefix)'/$(get_libdir) + --mandir='$(prefix)'/share/man + --infodir='$(prefix)'/share/info + --libexecdir='$(libdir)'/misc/glibc + --with-bugurl=https://bugs.gentoo.org/ + --with-pkgversion="$(glibc_banner)" + $(use_multiarch || echo --disable-multi-arch) + $(use_enable systemtap) + $(use_enable nscd) + ${EXTRA_ECONF} + ) + + # We rely on sys-libs/timezone-data for timezone tools normally. + myconf+=( $(use_enable vanilla timezone-tools) ) + + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) + ac_cv_lib_cap_cap_init=$(usex caps || echo no) + + # There is no configure option for this and we need to export it + # since the glibc build will re-run configure on itself + export libc_cv_rootsbindir="${EPREFIX}/sbin" + export libc_cv_slibdir="${EPREFIX}/$(get_libdir)" + + # We take care of patching our binutils to use both hash styles, + # and many people like to force gnu hash style only, so disable + # this overriding check. #347761 + export libc_cv_hashstyle=no + + local builddir=$(builddir nptl) + mkdir -p "${builddir}" + cd "${builddir}" + set -- "${S}"/configure "${myconf[@]}" + echo "$@" + "$@" || die "failed to configure glibc" + + # ia64 static cross-compilers are a pita in so much that they + # can't produce static ELFs (as the libgcc.a is broken). so + # disable building of the programs for those targets if it + # doesn't work. + # XXX: We could turn this into a compiler test, but ia64 is + # the only one that matters, so this should be fine for now. + if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then + sed -i '1i+link-static = touch $@' config.make + fi + + # If we're trying to migrate between ABI sets, we need + # to lie and use a local copy of gcc. Like if the system + # is built with MULTILIB_ABIS="amd64 x86" but we want to + # add x32 to it, gcc/glibc don't yet support x32. + # + if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib ; then + echo 'main(){}' > "${T}"/test.c + if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then + sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die + fi + fi +} + +glibc_headers_configure() { + export ABI=default + + local builddir=$(builddir "headers") + mkdir -p "${builddir}" + cd "${builddir}" + + # if we don't have a compiler yet, we can't really test it now ... + # hopefully they don't affect header generation, so let's hope for + # the best here ... + local v vars=( + ac_cv_header_cpuid_h=yes + libc_cv_{386,390,alpha,arm,hppa,ia64,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes + libc_cv_asm_cfi_directives=yes + libc_cv_broken_visibility_attribute=no + libc_cv_c_cleanup=yes + libc_cv_compiler_powerpc64le_binary128_ok=yes + libc_cv_forced_unwind=yes + libc_cv_gcc___thread=yes + libc_cv_mlong_double_128=yes + libc_cv_mlong_double_128ibm=yes + libc_cv_ppc_machine=yes + libc_cv_ppc_rel16=yes + libc_cv_predef_fortify_source=no + libc_cv_target_power8_ok=yes + libc_cv_visibility_attribute=yes + libc_cv_z_combreloc=yes + libc_cv_z_execstack=yes + libc_cv_z_initfirst=yes + libc_cv_z_nodelete=yes + libc_cv_z_nodlopen=yes + libc_cv_z_relro=yes + libc_mips_abi=${ABI} + libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=no + ac_cv_lib_cap_cap_init=no + ) + + einfo "Forcing cached settings:" + for v in "${vars[@]}" ; do + einfo " ${v}" + export ${v} + done + + local headers_only_arch_CPPFLAGS=() + + # Blow away some random CC settings that screw things up. #550192 + if [[ -d ${S}/sysdeps/mips ]]; then + pushd "${S}"/sysdeps/mips >/dev/null + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die + + # Force the mips ABI to the default. This is OK because the set of + # installed headers in this phase is the same between the 3 ABIs. + # If this ever changes, this hack will break, but that's unlikely + # as glibc discourages that behavior. + # https://crbug.com/647033 + sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die + + popd >/dev/null + fi + + case ${CTARGET} in + riscv*) + # RISC-V interrogates the compiler to determine which target to + # build. If building the headers then we don't strictly need a + # RISC-V compiler, so the built-in definitions that are provided + # along with all RISC-V compiler might not exist. This causes + # glibc's RISC-V preconfigure script to blow up. Since we're just + # building the headers any value will actually work here, so just + # pick the standard one (rv64g/lp64d) to make the build scripts + # happy for now -- the headers are all the same anyway so it + # doesn't matter. + headers_only_arch_CPPFLAGS+=( + -D__riscv_xlen=64 + -D__riscv_flen=64 + -D__riscv_float_abi_double=1 + -D__riscv_atomic=1 + ) ;; + esac + + local myconf=() + myconf+=( + --disable-sanity-checks + --enable-hacker-mode + --without-cvs + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + --with-headers=$(alt_build_headers) + --prefix="${EPREFIX}/usr" + ${EXTRA_ECONF} + ) + + # Nothing is compiled here which would affect the headers for the target. + # So forcing CC/CFLAGS is sane. + local headers_only_CC=$(tc-getBUILD_CC) + local headers_only_CFLAGS="-O1 -pipe" + local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" + local headers_only_LDFLAGS="" + set -- "${S}"/configure "${myconf[@]}" + echo \ + "CC=${headers_only_CC}" \ + "CFLAGS=${headers_only_CFLAGS}" \ + "CPPFLAGS=${headers_only_CPPFLAGS}" \ + "LDFLAGS=${headers_only_LDFLAGS}" \ + "$@" + CC=${headers_only_CC} \ + CFLAGS=${headers_only_CFLAGS} \ + CPPFLAGS=${headers_only_CPPFLAGS} \ + LDFLAGS="" \ + "$@" || die "failed to configure glibc" +} + +do_src_configure() { + if just_headers ; then + glibc_headers_configure + else + glibc_do_configure nptl + fi +} + +src_configure() { + foreach_abi do_src_configure +} + +do_src_compile() { + emake -C "$(builddir nptl)" || die "make nptl for ${ABI} failed" +} + +src_compile() { + if just_headers ; then + return + fi + + foreach_abi do_src_compile +} + +glibc_src_test() { + cd "$(builddir nptl)" + emake check +} + +do_src_test() { + local ret=0 + + glibc_src_test + : $(( ret |= $? )) + + return ${ret} +} + +src_test() { + if just_headers ; then + return + fi + + # Give tests more time to complete. + export TIMEOUTFACTOR=5 + + foreach_abi do_src_test || die "tests failed" +} + +run_locale_gen() { + # if the host locales.gen contains no entries, we'll install everything + local root="$1" + local locale_list="${root}/etc/locale.gen" + if [[ $(locale-gen --list --config "${locale_list}") == "C.UTF-8" ]] ; then + ewarn "Generating all locales; edit /etc/locale.gen to save time/space" + locale_list="${root}/usr/share/i18n/SUPPORTED" + fi + + locale-gen --jobs $(makeopts_jobs) --config "${locale_list}" \ + --destdir "${root}" +} + +glibc_do_src_install() { + local builddir=$(builddir nptl) + cd "${builddir}" + + emake install_root="${D}$(alt_prefix)" install || die + + # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support + # which come without headers etc. Only needed for binary packages since the + # external net-libs/libnsl has increased soversion. Keep only versioned libraries. + find "${D}" -name "libnsl.a" -delete + find "${D}" -name "libnsl.so" -delete + + # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need + # to infer upstream version: + # '#define VERSION "2.26.90"' -> '2.26.90' + local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) + + if [[ -e ${ED}$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then + # Move versioned .a file out of libdir to evade portage QA checks + # instead of using gen_usr_ldscript(). We fix ldscript as: + # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.a ..." + sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" "${ED}"$(alt_usrlibdir)/libm.a || die + dodir $(alt_usrlibdir)/${P} + mv "${ED}"$(alt_usrlibdir)/libm-${upstream_pv}.a "${ED}"$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die + fi + + # We'll take care of the cache ourselves + rm -f "${ED}"/etc/ld.so.cache + + # Everything past this point just needs to be done once ... + is_final_abi || return 0 + + # Make sure the non-native interp can be found on multilib systems even + # if the main library set isn't installed into the right place. Maybe + # we should query the active gcc for info instead of hardcoding it ? + local i ldso_abi ldso_name + local ldso_abi_list=( + # x86 + amd64 /lib64/ld-linux-x86-64.so.2 + x32 /libx32/ld-linux-x32.so.2 + x86 /lib/ld-linux.so.2 + # mips + o32 /lib/ld.so.1 + n32 /lib32/ld.so.1 + n64 /lib64/ld.so.1 + # powerpc + ppc /lib/ld.so.1 + ppc64 /lib64/ld64.so.1 + # s390 + s390 /lib/ld.so.1 + s390x /lib/ld64.so.1 + # sparc + sparc32 /lib/ld-linux.so.2 + sparc64 /lib64/ld-linux.so.2 + ) + case $(tc-endian) in + little) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64.so.1 + ) + ;; + big) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64_be.so.1 + ) + ;; + esac + if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then + dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib + fi + for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do + ldso_abi=${ldso_abi_list[i]} + has ${ldso_abi} $(get_install_abis) || continue + + ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" + if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then + dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} + fi + done + + # With devpts under Linux mounted properly, we do not need the pt_chown + # binary to be setuid. This is because the default owners/perms will be + # exactly what we want. + if ! use suid ; then + find "${ED}" -name pt_chown -exec chmod -s {} + + fi + + ################################################################# + # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # + # Make sure we install some symlink hacks so that when we build + # a 2nd stage cross-compiler, gcc finds the target system + # headers correctly. See gcc/doc/gccinstall.info + if is_crosscompile ; then + # We need to make sure that /lib and /usr/lib always exists. + # gcc likes to use relative paths to get to its multilibs like + # /usr/lib/../lib64/. So while we don't install any files into + # /usr/lib/, we do need it to exist. + keepdir $(alt_prefix)/lib + keepdir $(alt_prefix)/usr/lib + + dosym usr/include $(alt_prefix)/sys-include + return 0 + fi + + # Files for Debian-style locale updating + dodir /usr/share/i18n + sed \ + -e "/^#/d" \ + -e "/SUPPORTED-LOCALES=/d" \ + -e "s: \\\\::g" -e "s:/: :g" \ + "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ + || die "generating /usr/share/i18n/SUPPORTED failed" + cd "${WORKDIR}"/extra/locale + dosbin locale-gen + doman *.[0-8] + insinto /etc + doins locale.gen + + # Make sure all the ABI's can find the locales and so we only + # have to generate one set + local a + keepdir /usr/$(get_libdir)/locale + for a in $(get_install_abis) ; do + if [[ ! -e ${ED}/usr/$(get_abi_LIBDIR ${a})/locale ]] ; then + dosym ../$(get_libdir)/locale /usr/$(get_abi_LIBDIR ${a})/locale + fi + done + + cd "${S}" + + # Install misc network config files + insinto /etc + doins nscd/nscd.conf posix/gai.conf nss/nsswitch.conf + doins "${WORKDIR}"/extra/etc/*.conf + + if use nscd ; then + doinitd "$(prefixify_ro "${WORKDIR}"/extra/etc/nscd)" + + local nscd_args=( + -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" + ) + + sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd + + systemd_dounit nscd/nscd.service + systemd_newtmpfilesd nscd/nscd.tmpfiles nscd.conf + else + # Do this since extra/etc/*.conf above might have nscd.conf. + rm -f "${ED}"/etc/nscd.conf + fi + + echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc + doenvd "${T}"/00glibc + + for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do + [[ -s ${d} ]] && dodoc ${d} + done + dodoc -r ChangeLog.old + + # Prevent overwriting of the /etc/localtime symlink. We'll handle the + # creation of the "factory" symlink in pkg_postinst(). + rm -f "${ED}"/etc/localtime + + # Generate all locales if this is a native build as locale generation + if use compile-locales && ! is_crosscompile ; then + run_locale_gen "${ED}" + fi +} + +glibc_headers_install() { + local builddir=$(builddir "headers") + cd "${builddir}" + emake install_root="${D}$(alt_prefix)" install-headers + + insinto $(alt_headers)/gnu + doins "${S}"/include/gnu/stubs.h + + # Make sure we install the sys-include symlink so that when + # we build a 2nd stage cross-compiler, gcc finds the target + # system headers correctly. See gcc/doc/gccinstall.info + dosym usr/include $(alt_prefix)/sys-include +} + +src_strip() { + # gdb is lame and requires some debugging information to remain in + # libpthread, so we need to strip it by hand. libthread_db makes no + # sense stripped as it is only used when debugging. + local pthread=$(has splitdebug ${FEATURES} && echo "libthread_db" || echo "lib{pthread,thread_db}") + env \ + -uRESTRICT \ + CHOST=${CTARGET} \ + STRIP_MASK="/*/{,tls/}${pthread}*" \ + prepallstrip + # if user has stripping enabled and does not have split debug turned on, + # then leave the debugging sections in libpthread. + if ! has nostrip ${FEATURES} && ! has splitdebug ${FEATURES} ; then + ${STRIP:-${CTARGET}-strip} --strip-debug "${ED}"$(alt_prefix)/*/libpthread-*.so + fi +} + +src_install() { + if just_headers ; then + export ABI=default + glibc_headers_install + return + fi + + foreach_abi glibc_do_src_install + src_strip +} + +# Simple test to make sure our new glibc isn't completely broken. +# Make sure we don't test with statically built binaries since +# they will fail. Also, skip if this glibc is a cross compiler. +# +# If coreutils is built with USE=multicall, some of these files +# will just be wrapper scripts, not actual ELFs we can test. +glibc_sanity_check() { + cd / #228809 + + # We enter ${ED} so to avoid trouble if the path contains + # special characters; for instance if the path contains the + # colon character (:), then the linker will try to split it + # and look for the libraries in an unexpected place. This can + # lead to unsafe code execution if the generated prefix is + # within a world-writable directory. + # (e.g. /var/tmp/portage:${HOSTNAME}) + pushd "${ED}"/$(get_libdir) >/dev/null + + local x striptest + for x in cal date env free ls true uname uptime ; do + x=$(type -p ${x}) + [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue + striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue + case ${striptest} in + *"statically linked"*) continue;; + *"ASCII text"*) continue;; + esac + # We need to clear the locale settings as the upgrade might want + # incompatible locale data. This test is not for verifying that. + LC_ALL=C \ + ./ld-*.so --library-path . ${x} > /dev/null \ + || die "simple run test (${x}) failed" + done + + popd >/dev/null +} + +pkg_preinst() { + # nothing to do if just installing headers + just_headers && return + + # prepare /etc/ld.so.conf.d/ for files + mkdir -p "${EROOT}"/etc/ld.so.conf.d + + # Default /etc/hosts.conf:multi to on for systems with small dbs. + if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then + sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf + einfo "Defaulting /etc/host.conf:multi to on" + fi + + [[ ${ROOT} != "/" ]] && return 0 + [[ -d ${ED}/$(get_libdir) ]] || return 0 + [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check +} + +pkg_postinst() { + # nothing to do if just installing headers + just_headers && return + + if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then + # Generate fastloading iconv module configuration file. + "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}" + fi + + if ! is_crosscompile && [[ ${ROOT} == "/" ]] ; then + # Reload init ... if in a chroot or a diff init package, ignore + # errors from this step #253697 + /sbin/telinit U 2>/dev/null + + use compile-locales || run_locale_gen "${EROOT}" + fi + + # Check for sanity of /etc/nsswitch.conf, take 2 + if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then + local entry + for entry in passwd group shadow; do + if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then + ewarn "" + ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" + ewarn "removed from glibc and is now provided by the package" + ewarn " sys-auth/libnss-nis" + ewarn "Install it now to keep your NIS setup working." + ewarn "" + fi + done + fi +} diff --git a/sys-libs/glibc/glibc-2.28-r4.ebuild b/sys-libs/glibc/glibc-2.28-r4.ebuild new file mode 100644 index 000000000000..bbe2505ad886 --- /dev/null +++ b/sys-libs/glibc/glibc-2.28-r4.ebuild @@ -0,0 +1,1411 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit prefix eutils eapi7-ver toolchain-funcs flag-o-matic gnuconfig \ + multilib systemd multiprocessing + +DESCRIPTION="GNU libc C library" +HOMEPAGE="https://www.gnu.org/software/libc/" +LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" +RESTRICT="strip" # Strip ourself #46186 +SLOT="2.2" + +EMULTILIB_PKG="true" + +if [[ ${PV} == 9999* ]]; then + EGIT_REPO_URI="https://sourceware.org/git/glibc.git" + inherit git-r3 +else + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" + SRC_URI="mirror://gnu/glibc/${P}.tar.xz" +fi + +RELEASE_VER=${PV} + +GCC_BOOTSTRAP_VER=20180511 + +# Gentoo patchset +PATCH_VER=6 + +SRC_URI+=" https://dev.gentoo.org/~dilfridge/distfiles/${P}-patches-${PATCH_VER}.tar.xz" +SRC_URI+=" multilib? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" + +IUSE="audit caps cet compile-locales doc gd headers-only +multiarch multilib nscd profile selinux suid systemtap test vanilla" + +# Minimum kernel version that glibc requires +MIN_KERN_VER="3.2.0" + +# Here's how the cross-compile logic breaks down ... +# CTARGET - machine that will target the binaries +# CHOST - machine that will host the binaries +# CBUILD - machine that will build the binaries +# If CTARGET != CHOST, it means you want a libc for cross-compiling. +# If CHOST != CBUILD, it means you want to cross-compile the libc. +# CBUILD = CHOST = CTARGET - native build/install +# CBUILD != (CHOST = CTARGET) - cross-compile a native build +# (CBUILD = CHOST) != CTARGET - libc for cross-compiler +# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler +# For install paths: +# CHOST = CTARGET - install into / +# CHOST != CTARGET - install into /usr/CTARGET/ +# +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +# We need a new-enough binutils/gcc to match upstream baseline. +# Also we need to make sure our binutils/gcc supports TLS, +# and that gcc already contains the hardened patches. +COMMON_DEPEND=" + nscd? ( selinux? ( + audit? ( sys-process/audit ) + caps? ( sys-libs/libcap ) + ) ) + suid? ( caps? ( sys-libs/libcap ) ) + selinux? ( sys-libs/libselinux ) + systemtap? ( dev-util/systemtap ) +" +DEPEND="${COMMON_DEPEND} + >=app-misc/pax-utils-0.1.10 + sys-devel/bison + !=net-dns/libidn2-2.0.5 ) +" +RDEPEND="${COMMON_DEPEND} + >=net-dns/libidn2-2.0.5 + sys-apps/gentoo-functions + !sys-kernel/ps3-sources + !sys-libs/nss-db +" + +if [[ ${CATEGORY} == cross-* ]] ; then + DEPEND+=" !headers-only? ( + >=${CATEGORY}/binutils-2.24 + >=${CATEGORY}/gcc-6 + )" + [[ ${CATEGORY} == *-linux* ]] && DEPEND+=" ${CATEGORY}/linux-headers" +else + DEPEND+=" + >=sys-devel/binutils-2.24 + >=sys-devel/gcc-6 + virtual/os-headers + " + RDEPEND+=" vanilla? ( !sys-libs/timezone-data )" + PDEPEND+=" !vanilla? ( sys-libs/timezone-data )" +fi + +# +# Small helper functions +# + +is_crosscompile() { + [[ ${CHOST} != ${CTARGET} ]] +} + +just_headers() { + is_crosscompile && use headers-only +} + +alt_prefix() { + is_crosscompile && echo /usr/${CTARGET} +} + +# We need to be able to set alternative headers for compiling for non-native +# platform. Will also become useful for testing kernel-headers without screwing +# up the whole system. +alt_headers() { + echo ${ALT_HEADERS:=$(alt_prefix)/usr/include} +} + +alt_build_headers() { + if [[ -z ${ALT_BUILD_HEADERS} ]] ; then + ALT_BUILD_HEADERS="${EPREFIX}$(alt_headers)" + if tc-is-cross-compiler ; then + ALT_BUILD_HEADERS=${SYSROOT}$(alt_headers) + if [[ ! -e ${ALT_BUILD_HEADERS}/linux/version.h ]] ; then + local header_path=$(echo '#include ' | $(tc-getCPP ${CTARGET}) ${CFLAGS} 2>&1 | grep -o '[^"]*linux/version.h') + ALT_BUILD_HEADERS=${header_path%/linux/version.h} + fi + fi + fi + echo "${ALT_BUILD_HEADERS}" +} + +alt_libdir() { + echo $(alt_prefix)/$(get_libdir) +} +alt_usrlibdir() { + echo $(alt_prefix)/usr/$(get_libdir) +} + +builddir() { + echo "${WORKDIR}/build-${ABI}-${CTARGET}-$1" +} + +do_compile_test() { + local ret save_cflags=${CFLAGS} + CFLAGS+=" $1" + shift + + pushd "${T}" >/dev/null + + rm -f glibc-test* + printf '%b' "$*" > glibc-test.c + + nonfatal emake -s glibc-test + ret=$? + + popd >/dev/null + + CFLAGS=${save_cflags} + return ${ret} +} + +do_run_test() { + local ret + + if [[ ${MERGE_TYPE} == "binary" ]] ; then + # ignore build failures when installing a binary package #324685 + do_compile_test "" "$@" 2>/dev/null || return 0 + else + if ! do_compile_test "" "$@" ; then + ewarn "Simple build failed ... assuming this is desired #324685" + return 0 + fi + fi + + pushd "${T}" >/dev/null + + ./glibc-test + ret=$? + rm -f glibc-test* + + popd >/dev/null + + return ${ret} +} + +setup_target_flags() { + # This largely mucks with compiler flags. None of which should matter + # when building up just the headers. + just_headers && return 0 + + case $(tc-arch) in + x86) + # -march needed for #185404 #199334 + # TODO: When creating the first glibc cross-compile, this test will + # always fail as it does a full link which in turn requires glibc. + # Probably also applies when changing multilib profile settings (e.g. + # enabling x86 when the profile was amd64-only previously). + # We could change main to _start and pass -nostdlib here so that we + # only test the gcc code compilation. Or we could do a compile and + # then look for the symbol via scanelf. + if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n' 2>/dev/null ; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + filter-flags '-march=*' + export CFLAGS="-march=${t} ${CFLAGS}" + einfo "Auto adding -march=${t} to CFLAGS #185404" + fi + ;; + amd64) + # -march needed for #185404 #199334 + # Note: This test only matters when the x86 ABI is enabled, so we could + # optimize a bit and elide it. + # TODO: See cross-compile issues listed above for x86. + if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n' 2>/dev/null ; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + # Normally the target is x86_64-xxx, so turn that into the -march that + # gcc actually accepts. #528708 + [[ ${t} == "x86_64" ]] && t="x86-64" + filter-flags '-march=*' + # ugly, ugly, ugly. ugly. + CFLAGS_x86=$(CFLAGS=${CFLAGS_x86} filter-flags '-march=*'; echo "${CFLAGS}") + export CFLAGS_x86="${CFLAGS_x86} -march=${t}" + einfo "Auto adding -march=${t} to CFLAGS_x86 #185404" + fi + ;; + mips) + # The mips abi cannot support the GNU style hashes. #233233 + filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both + ;; + sparc) + # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. + filter-flags "-fcall-used-g7" + append-flags "-fcall-used-g6" + + # If the CHOST is the basic one (e.g. not sparcv9-xxx already), + # try to pick a better one so glibc can use cpu-specific .S files. + # We key off the CFLAGS to get a good value. Also need to handle + # version skew. + # We can't force users to set their CHOST to their exact machine + # as many of these are not recognized by config.sub/gcc and such :(. + # Note: If the mcpu values don't scale, we might try probing CPP defines. + # Note: Should we factor in -Wa,-AvXXX flags too ? Or -mvis/etc... ? + + local cpu + case ${CTARGET} in + sparc64-*) + case $(get-flag mcpu) in + niagara[234]) + if ver_test -ge 2.8 ; then + cpu="sparc64v2" + elif ver_test -ge 2.4 ; then + cpu="sparc64v" + elif ver_test -ge 2.2.3 ; then + cpu="sparc64b" + fi + ;; + niagara) + if ver_test -ge 2.4 ; then + cpu="sparc64v" + elif ver_test -ge 2.2.3 ; then + cpu="sparc64b" + fi + ;; + ultrasparc3) + cpu="sparc64b" + ;; + *) + # We need to force at least v9a because the base build doesn't + # work with just v9. + # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 + [[ -z ${cpu} ]] && append-flags "-Wa,-xarch=v9a" + ;; + esac + ;; + sparc-*) + case $(get-flag mcpu) in + niagara[234]) + if ver_test -ge 2.8 ; then + cpu="sparcv9v2" + elif ver_test -ge 2.4 ; then + cpu="sparcv9v" + elif ver_test -ge 2.2.3 ; then + cpu="sparcv9b" + else + cpu="sparcv9" + fi + ;; + niagara) + if ver_test -ge 2.4 ; then + cpu="sparcv9v" + elif ver_test -ge 2.2.3 ; then + cpu="sparcv9b" + else + cpu="sparcv9" + fi + ;; + ultrasparc3) + cpu="sparcv9b" + ;; + v9|ultrasparc) + cpu="sparcv9" + ;; + v8|supersparc|hypersparc|leon|leon3) + cpu="sparcv8" + ;; + esac + ;; + esac + [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" + ;; + esac +} + +setup_flags() { + # Make sure host make.conf doesn't pollute us + if is_crosscompile || tc-is-cross-compiler ; then + CHOST=${CTARGET} strip-unsupported-flags + fi + + # Store our CFLAGS because it's changed depending on which CTARGET + # we are building when pulling glibc on a multilib profile + CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} + CFLAGS=${CFLAGS_BASE} + CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} + CXXFLAGS=${CXXFLAGS_BASE} + ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} + ASFLAGS=${ASFLAGS_BASE} + + # Over-zealous CFLAGS can often cause problems. What may work for one + # person may not work for another. To avoid a large influx of bugs + # relating to failed builds, we strip most CFLAGS out to ensure as few + # problems as possible. + strip-flags + strip-unsupported-flags + filter-flags -m32 -m64 '-mabi=*' + + # glibc aborts if rpath is set by LDFLAGS + filter-ldflags '-Wl,-rpath=*' + + # #492892 + filter-flags -frecord-gcc-switches + + unset CBUILD_OPT CTARGET_OPT + if use multilib ; then + CTARGET_OPT=$(get_abi_CTARGET) + [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST) + fi + + setup_target_flags + + if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then + CBUILD_OPT=${CTARGET_OPT} + fi + + # Lock glibc at -O2; we want to be conservative here. + # -fno-strict-aliasing is to work around #155906. + filter-flags '-O?' + append-flags -O2 -fno-strict-aliasing + + filter-flags '-fstack-protector*' +} + +want_tls() { + # Archs that can use TLS (Thread Local Storage) + case $(tc-arch) in + x86) + # requires i486 or better #106556 + [[ ${CTARGET} == i[4567]86* ]] && return 0 + return 1 + ;; + esac + return 0 +} + +want__thread() { + want_tls || return 1 + + # For some reason --with-tls --with__thread is causing segfaults on sparc32. + [[ ${PROFILE_ARCH} == "sparc" ]] && return 1 + + [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD} + + # only test gcc -- can't test linking yet + tc-has-tls -c ${CTARGET} + WANT__THREAD=$? + + return ${WANT__THREAD} +} + +use_multiarch() { + # Allow user to disable runtime arch detection in multilib. + use multiarch || return 1 + # Make sure binutils is new enough to support indirect functions, + # #336792. This funky sed supports gold and bfd linkers. + local bver nver + bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') + case $(tc-arch ${CTARGET}) in + amd64|x86) nver="2.20" ;; + arm) nver="2.22" ;; + hppa) nver="2.23" ;; + ppc|ppc64) nver="2.20" ;; + # ifunc support was added in 2.23, but glibc also needs + # machinemode which is in 2.24. + s390) nver="2.24" ;; + sparc) nver="2.21" ;; + *) return 1 ;; + esac + ver_test ${bver} -ge ${nver} +} + +# Setup toolchain variables that had historically been defined in the +# profiles for these archs. +setup_env() { + # silly users + unset LD_RUN_PATH + unset LD_ASSUME_KERNEL + + if is_crosscompile || tc-is-cross-compiler ; then + multilib_env ${CTARGET_OPT:-${CTARGET}} + + if ! use multilib ; then + MULTILIB_ABIS=${DEFAULT_ABI} + else + MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} + fi + + # If the user has CFLAGS_ in their make.conf, use that, + # and fall back on CFLAGS. + local VAR=CFLAGS_${CTARGET//[-.]/_} + CFLAGS=${!VAR-${CFLAGS}} + einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" + fi + + setup_flags + + export ABI=${ABI:-${DEFAULT_ABI:-default}} + + if use headers-only ; then + # Avoid mixing host's CC and target's CFLAGS_${ABI}: + # At this bootstrap stage we have only binutils for + # target but not compiler yet. + einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." + return 0 + fi + local VAR=CFLAGS_${ABI} + # We need to export CFLAGS with abi information in them because glibc's + # configure script checks CFLAGS for some targets (like mips). Keep + # around the original clean value to avoid appending multiple ABIs on + # top of each other. + : ${__GLIBC_CC:=$(tc-getCC ${CTARGET_OPT:-${CTARGET}})} + export __GLIBC_CC CC="${__GLIBC_CC} ${!VAR}" + einfo " $(printf '%15s' 'Manual CC:') ${CC}" +} + +foreach_abi() { + setup_env + + local ret=0 + local abilist="" + if use multilib ; then + abilist=$(get_install_abis) + else + abilist=${DEFAULT_ABI} + fi + local -x ABI + for ABI in ${abilist:-default} ; do + setup_env + einfo "Running $1 for ABI ${ABI}" + $1 + : $(( ret |= $? )) + done + return ${ret} +} + +glibc_banner() { + local b="Gentoo ${PVR}" + [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" p${PATCH_VER}" + echo "${b}" +} + +check_devpts() { + # Make sure devpts is mounted correctly for use w/out setuid pt_chown. + + # If merely building the binary package, then there's nothing to verify. + [[ ${MERGE_TYPE} == "buildonly" ]] && return + + # Only sanity check when installing the native glibc. + [[ ${ROOT} != "/" ]] && return + + # If they're opting in to the old suid code, then no need to check. + use suid && return + + if awk '$3 == "devpts" && $4 ~ /[, ]gid=5[, ]/ { exit 1 }' /proc/mounts ; then + eerror "In order to use glibc with USE=-suid, you must make sure that" + eerror "you have devpts mounted at /dev/pts with the gid=5 option." + eerror "Openrc should do this for you, so you should check /etc/fstab" + eerror "and make sure you do not have any invalid settings there." + die "mount & fix your /dev/pts settings" + fi +} + +# The following Kernel version handling functions are mostly copied from portage +# source. It's better not to use linux-info.eclass here since a) it adds too +# much magic, see bug 326693 for some of the arguments, and b) some of the +# functions are just not provided. + +g_get_running_KV() { + uname -r + return $? +} + +g_KV_major() { + [[ -z $1 ]] && return 1 + local KV=$@ + echo "${KV%%.*}" +} + +g_KV_minor() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.} + echo "${KV%%.*}" +} + +g_KV_micro() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.*.} + echo "${KV%%[^[:digit:]]*}" +} + +g_KV_to_int() { + [[ -z $1 ]] && return 1 + local KV_MAJOR=$(g_KV_major "$1") + local KV_MINOR=$(g_KV_minor "$1") + local KV_MICRO=$(g_KV_micro "$1") + local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) + + # We make version 2.2.0 the minimum version we will handle as + # a sanity check ... if its less, we fail ... + if [[ ${KV_int} -ge 131584 ]] ; then + echo "${KV_int}" + return 0 + fi + return 1 +} + +g_int_to_KV() { + local version=$1 major minor micro + major=$((version / 65536)) + minor=$(((version % 65536) / 256)) + micro=$((version % 256)) + echo ${major}.${minor}.${micro} +} + +eend_KV() { + [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]] + eend $? +} + +get_kheader_version() { + printf '#include \nLINUX_VERSION_CODE\n' | \ + $(tc-getCPP ${CTARGET}) -I "${EPREFIX}/$(alt_build_headers)" - | \ + tail -n 1 +} + +# We collect all sanity checks here. Consistency is not guranteed between +# pkg_ and src_ phases, so we call this function both in pkg_pretend and in +# src_unpack. +sanity_prechecks() { + # Make sure devpts is mounted correctly for use w/out setuid pt_chown + check_devpts + + # Prevent native builds from downgrading + if [[ ${MERGE_TYPE} != "buildonly" ]] && \ + [[ ${ROOT} == "/" ]] && \ + [[ ${CBUILD} == ${CHOST} ]] && \ + [[ ${CHOST} == ${CTARGET} ]] ; then + + # The high rev # is to allow people to downgrade between -r# + # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 + # should be fine. Hopefully we never actually use a r# this + # high. + if has_version ">${CATEGORY}/${P}-r10000" ; then + eerror "Sanity check to keep you from breaking your system:" + eerror " Downgrading glibc is not supported and a sure way to destruction." + die "Aborting to save your system." + fi + + if ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then + eerror "Your old kernel is broken. You need to update it to a newer" + eerror "version as syscall() will break. See bug 279260." + die "Old and broken kernel." + fi + fi + + # Users have had a chance to phase themselves, time to give em the boot + if [[ -e ${EROOT}/etc/locale.gen ]] && [[ -e ${EROOT}/etc/locales.build ]] ; then + eerror "You still haven't deleted ${EROOT}/etc/locales.build." + eerror "Do so now after making sure ${EROOT}/etc/locale.gen is kosher." + die "Lazy upgrader detected" + fi + + if [[ ${CTARGET} == i386-* ]] ; then + eerror "i386 CHOSTs are no longer supported." + eerror "Chances are you don't actually want/need i386." + eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml" + die "Please fix your CHOST" + fi + + if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then + ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS." + ewarn "This will result in a 50% performance penalty when running with a 32bit" + ewarn "hypervisor, which is probably not what you want." + fi + + # Check for sanity of /etc/nsswitch.conf + if [[ -e ${EROOT}/etc/nsswitch.conf ]] ; then + local entry + for entry in passwd group shadow; do + if ! egrep -q "^[ \t]*${entry}:.*files" "${EROOT}"/etc/nsswitch.conf; then + eerror "Your ${EROOT}/etc/nsswitch.conf is out of date." + eerror "Please make sure you have 'files' entries for" + eerror "'passwd:', 'group:' and 'shadow:' databases." + eerror "For more details see:" + eerror " https://wiki.gentoo.org/wiki/Project:Toolchain/nsswitch.conf_in_glibc-2.26" + die "nsswitch.conf has no 'files' provider in '${entry}'." + fi + done + fi + + # ABI-specific checks follow here. Hey, we have a lot more specific conditions that + # we test for... + if ! is_crosscompile ; then + if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then + ebegin "Checking that IA32 emulation is enabled in the running kernel" + echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" + local STAT + if "${CC-${CHOST}-gcc}" ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then + "${T}/check-ia32-emulation.elf32" + STAT=$? + else + # Don't fail here to allow single->multi ABI switch + # or recover from breakage like bug #646424 + ewarn "Failed to compile the ABI test. Broken host glibc?" + STAT=0 + fi + rm -f "${T}/check-ia32-emulation.elf32" + eend $STAT + [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc." + fi + + fi + + # When we actually have to compile something... + if ! just_headers ; then + ebegin "Checking gcc for __thread support" + if ! eend $(want__thread ; echo $?) ; then + echo + eerror "Could not find a gcc that supports the __thread directive!" + eerror "Please update your binutils/gcc and try again." + die "No __thread support in gcc!" + fi + + if [[ ${CTARGET} == *-linux* ]] ; then + local run_kv build_kv want_kv + + run_kv=$(g_get_running_KV) + build_kv=$(g_int_to_KV $(get_kheader_version)) + want_kv=${MIN_KERN_VER} + + if ! is_crosscompile && ! tc-is-cross-compiler ; then + # Building fails on an non-supporting kernel + ebegin "Checking running kernel version (${run_kv} >= ${want_kv})" + if ! eend_KV ${run_kv} ${want_kv} ; then + echo + eerror "You need a kernel of at least ${want_kv}!" + die "Kernel version too low!" + fi + fi + + ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})" + if ! eend_KV ${build_kv} ${want_kv} ; then + echo + eerror "You need linux-headers of at least ${want_kv}!" + die "linux-headers version too low!" + fi + fi + fi +} + +# +# the phases +# + +# pkg_pretend + +pkg_pretend() { + # All the checks... + einfo "Checking general environment sanity." + sanity_prechecks +} + +# src_unpack + +src_unpack() { + # Consistency is not guaranteed between pkg_ and src_ ... + sanity_prechecks + + use multilib && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz + + setup_env + + if [[ -n ${EGIT_REPO_URI} ]] ; then + git-r3_src_unpack + else + unpack ${P}.tar.xz + fi + + cd "${S}" || die + touch locale/C-translit.h || die #185476 #218003 + + cd "${WORKDIR}" || die + unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz +} + +src_prepare() { + if ! use vanilla ; then + elog "Applying Gentoo Glibc Patchset ${RELEASE_VER}-${PATCH_VER}" + eapply "${WORKDIR}"/patches + einfo "Done." + fi + + default + + gnuconfig_update + + cd "${WORKDIR}" + find . -name configure -exec touch {} + + + eprefixify extra/locale/locale-gen + + # Fix permissions on some of the scripts. + chmod u+x "${S}"/scripts/*.sh + + cd "${S}" +} + +glibc_do_configure() { + # Glibc does not work with gold (for various reasons) #269274. + tc-ld-disable-gold + + # CXX isnt handled by the multilib system, so if we dont unset here + # we accumulate crap across abis + unset CXX + + einfo "Configuring glibc for nptl" + + if use doc ; then + export MAKEINFO=makeinfo + else + export MAKEINFO=/dev/null + fi + + local v + for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO ; do + einfo " $(printf '%15s' ${v}:) ${!v}" + done + + # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 + # To build .S (assembly) files with the same ABI-specific flags + # upstream currently recommends adding CFLAGS to CC/CXX: + # https://sourceware.org/PR23273 + # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS + # and breaks multiarch support. See 659030#c3 for an example. + # The glibc configure script doesn't properly use LDFLAGS all the time. + export CC="$(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS}" + einfo " $(printf '%15s' 'Manual CC:') ${CC}" + + # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 + export CXX="$(tc-getCXX ${CTARGET}) $(get_abi_CFLAGS) ${CFLAGS}" + einfo " $(printf '%15s' 'Manual CXX:') ${CXX}" + + echo + + local myconf=() + + case ${CTARGET} in + powerpc-*) + # Currently gcc on powerpc32 generates invalid code for + # __builtin_return_address(0) calls. Normally programs + # don't do that but malloc hooks in glibc do: + # https://gcc.gnu.org/PR81996 + # https://bugs.gentoo.org/629054 + myconf+=( --enable-stack-protector=no ) + ;; + *) + myconf+=( --enable-stack-protector=all ) + ;; + esac + myconf+=( --enable-stackguard-randomization ) + + # Keep a whitelist of targets supporing IFUNC. glibc's ./configure + # is not robust enough to detect proper support: + # https://bugs.gentoo.org/641216 + # https://sourceware.org/PR22634#c0 + case $(tc-arch ${CTARGET}) in + # Keep whitelist of targets where autodetection mostly works. + amd64|x86|sparc|ppc|ppc64|arm|arm64|s390) ;; + # Blacklist everywhere else + *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; + esac + + # Enable Intel Control-flow Enforcement Technology on amd64 if requested + case ${CTARGET} in + x86_64-*) myconf+=( $(use_enable cet) ) ;; + *) ;; + esac + + [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) + + myconf+=( --enable-kernel=${MIN_KERN_VER} ) + + # Since SELinux support is only required for nscd, only enable it if: + # 1. USE selinux + # 2. only for the primary ABI on multilib systems + # 3. Not a crosscompile + if ! is_crosscompile && use selinux ; then + if use multilib ; then + if is_final_abi ; then + myconf+=( --with-selinux ) + else + myconf+=( --without-selinux ) + fi + else + myconf+=( --with-selinux ) + fi + else + myconf+=( --without-selinux ) + fi + + # Force a few tests where we always know the answer but + # configure is incapable of finding it. + if is_crosscompile ; then + export \ + libc_cv_c_cleanup=yes \ + libc_cv_forced_unwind=yes + fi + + myconf+=( + --without-cvs + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + $(use_enable profile) + $(use_with gd) + --with-headers=$(alt_build_headers) + --prefix="${EPREFIX}/usr" + --sysconfdir="${EPREFIX}/etc" + --localstatedir="${EPREFIX}/var" + --libdir='$(prefix)'/$(get_libdir) + --mandir='$(prefix)'/share/man + --infodir='$(prefix)'/share/info + --libexecdir='$(libdir)'/misc/glibc + --with-bugurl=https://bugs.gentoo.org/ + --with-pkgversion="$(glibc_banner)" + $(use_multiarch || echo --disable-multi-arch) + $(use_enable systemtap) + $(use_enable nscd) + ${EXTRA_ECONF} + ) + + # We rely on sys-libs/timezone-data for timezone tools normally. + myconf+=( $(use_enable vanilla timezone-tools) ) + + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) + ac_cv_lib_cap_cap_init=$(usex caps || echo no) + + # There is no configure option for this and we need to export it + # since the glibc build will re-run configure on itself + export libc_cv_rootsbindir="${EPREFIX}/sbin" + export libc_cv_slibdir="${EPREFIX}/$(get_libdir)" + + # We take care of patching our binutils to use both hash styles, + # and many people like to force gnu hash style only, so disable + # this overriding check. #347761 + export libc_cv_hashstyle=no + + local builddir=$(builddir nptl) + mkdir -p "${builddir}" + cd "${builddir}" + set -- "${S}"/configure "${myconf[@]}" + echo "$@" + "$@" || die "failed to configure glibc" + + # ia64 static cross-compilers are a pita in so much that they + # can't produce static ELFs (as the libgcc.a is broken). so + # disable building of the programs for those targets if it + # doesn't work. + # XXX: We could turn this into a compiler test, but ia64 is + # the only one that matters, so this should be fine for now. + if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then + sed -i '1i+link-static = touch $@' config.make + fi + + # If we're trying to migrate between ABI sets, we need + # to lie and use a local copy of gcc. Like if the system + # is built with MULTILIB_ABIS="amd64 x86" but we want to + # add x32 to it, gcc/glibc don't yet support x32. + # + if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib ; then + echo 'main(){}' > "${T}"/test.c + if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then + sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die + fi + fi +} + +glibc_headers_configure() { + export ABI=default + + local builddir=$(builddir "headers") + mkdir -p "${builddir}" + cd "${builddir}" + + # if we don't have a compiler yet, we can't really test it now ... + # hopefully they don't affect header generation, so let's hope for + # the best here ... + local v vars=( + ac_cv_header_cpuid_h=yes + libc_cv_{386,390,alpha,arm,hppa,ia64,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes + libc_cv_asm_cfi_directives=yes + libc_cv_broken_visibility_attribute=no + libc_cv_c_cleanup=yes + libc_cv_compiler_powerpc64le_binary128_ok=yes + libc_cv_forced_unwind=yes + libc_cv_gcc___thread=yes + libc_cv_mlong_double_128=yes + libc_cv_mlong_double_128ibm=yes + libc_cv_ppc_machine=yes + libc_cv_ppc_rel16=yes + libc_cv_predef_fortify_source=no + libc_cv_target_power8_ok=yes + libc_cv_visibility_attribute=yes + libc_cv_z_combreloc=yes + libc_cv_z_execstack=yes + libc_cv_z_initfirst=yes + libc_cv_z_nodelete=yes + libc_cv_z_nodlopen=yes + libc_cv_z_relro=yes + libc_mips_abi=${ABI} + libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=no + ac_cv_lib_cap_cap_init=no + ) + + einfo "Forcing cached settings:" + for v in "${vars[@]}" ; do + einfo " ${v}" + export ${v} + done + + local headers_only_arch_CPPFLAGS=() + + # Blow away some random CC settings that screw things up. #550192 + if [[ -d ${S}/sysdeps/mips ]]; then + pushd "${S}"/sysdeps/mips >/dev/null + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die + + # Force the mips ABI to the default. This is OK because the set of + # installed headers in this phase is the same between the 3 ABIs. + # If this ever changes, this hack will break, but that's unlikely + # as glibc discourages that behavior. + # https://crbug.com/647033 + sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die + + popd >/dev/null + fi + + case ${CTARGET} in + riscv*) + # RISC-V interrogates the compiler to determine which target to + # build. If building the headers then we don't strictly need a + # RISC-V compiler, so the built-in definitions that are provided + # along with all RISC-V compiler might not exist. This causes + # glibc's RISC-V preconfigure script to blow up. Since we're just + # building the headers any value will actually work here, so just + # pick the standard one (rv64g/lp64d) to make the build scripts + # happy for now -- the headers are all the same anyway so it + # doesn't matter. + headers_only_arch_CPPFLAGS+=( + -D__riscv_xlen=64 + -D__riscv_flen=64 + -D__riscv_float_abi_double=1 + -D__riscv_atomic=1 + ) ;; + esac + + local myconf=() + myconf+=( + --disable-sanity-checks + --enable-hacker-mode + --without-cvs + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + --with-headers=$(alt_build_headers) + --prefix="${EPREFIX}/usr" + ${EXTRA_ECONF} + ) + + # Nothing is compiled here which would affect the headers for the target. + # So forcing CC/CFLAGS is sane. + local headers_only_CC=$(tc-getBUILD_CC) + local headers_only_CFLAGS="-O1 -pipe" + local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" + local headers_only_LDFLAGS="" + set -- "${S}"/configure "${myconf[@]}" + echo \ + "CC=${headers_only_CC}" \ + "CFLAGS=${headers_only_CFLAGS}" \ + "CPPFLAGS=${headers_only_CPPFLAGS}" \ + "LDFLAGS=${headers_only_LDFLAGS}" \ + "$@" + CC=${headers_only_CC} \ + CFLAGS=${headers_only_CFLAGS} \ + CPPFLAGS=${headers_only_CPPFLAGS} \ + LDFLAGS="" \ + "$@" || die "failed to configure glibc" +} + +do_src_configure() { + if just_headers ; then + glibc_headers_configure + else + glibc_do_configure nptl + fi +} + +src_configure() { + foreach_abi do_src_configure +} + +do_src_compile() { + emake -C "$(builddir nptl)" || die "make nptl for ${ABI} failed" +} + +src_compile() { + if just_headers ; then + return + fi + + foreach_abi do_src_compile +} + +glibc_src_test() { + cd "$(builddir nptl)" + emake check +} + +do_src_test() { + local ret=0 + + glibc_src_test + : $(( ret |= $? )) + + return ${ret} +} + +src_test() { + if just_headers ; then + return + fi + + # Give tests more time to complete. + export TIMEOUTFACTOR=5 + + foreach_abi do_src_test || die "tests failed" +} + +run_locale_gen() { + # if the host locales.gen contains no entries, we'll install everything + local root="$1" + local locale_list="${root}/etc/locale.gen" + if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then + ewarn "Generating all locales; edit /etc/locale.gen to save time/space" + locale_list="${root}/usr/share/i18n/SUPPORTED" + fi + + locale-gen --jobs $(makeopts_jobs) --config "${locale_list}" \ + --destdir "${root}" +} + +glibc_do_src_install() { + local builddir=$(builddir nptl) + cd "${builddir}" + + emake install_root="${D}$(alt_prefix)" install || die + + # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support + # which come without headers etc. Only needed for binary packages since the + # external net-libs/libnsl has increased soversion. Keep only versioned libraries. + find "${D}" -name "libnsl.a" -delete + find "${D}" -name "libnsl.so" -delete + + # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need + # to infer upstream version: + # '#define VERSION "2.26.90"' -> '2.26.90' + local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) + + if [[ -e ${ED}$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then + # Move versioned .a file out of libdir to evade portage QA checks + # instead of using gen_usr_ldscript(). We fix ldscript as: + # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.a ..." + sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" "${ED}"$(alt_usrlibdir)/libm.a || die + dodir $(alt_usrlibdir)/${P} + mv "${ED}"$(alt_usrlibdir)/libm-${upstream_pv}.a "${ED}"$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die + fi + + # We'll take care of the cache ourselves + rm -f "${ED}"/etc/ld.so.cache + + # Everything past this point just needs to be done once ... + is_final_abi || return 0 + + # Make sure the non-native interp can be found on multilib systems even + # if the main library set isn't installed into the right place. Maybe + # we should query the active gcc for info instead of hardcoding it ? + local i ldso_abi ldso_name + local ldso_abi_list=( + # x86 + amd64 /lib64/ld-linux-x86-64.so.2 + x32 /libx32/ld-linux-x32.so.2 + x86 /lib/ld-linux.so.2 + # mips + o32 /lib/ld.so.1 + n32 /lib32/ld.so.1 + n64 /lib64/ld.so.1 + # powerpc + ppc /lib/ld.so.1 + ppc64 /lib64/ld64.so.1 + # s390 + s390 /lib/ld.so.1 + s390x /lib/ld64.so.1 + # sparc + sparc32 /lib/ld-linux.so.2 + sparc64 /lib64/ld-linux.so.2 + ) + case $(tc-endian) in + little) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64.so.1 + ) + ;; + big) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64_be.so.1 + ) + ;; + esac + if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then + dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib + fi + for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do + ldso_abi=${ldso_abi_list[i]} + has ${ldso_abi} $(get_install_abis) || continue + + ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" + if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then + dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} + fi + done + + # With devpts under Linux mounted properly, we do not need the pt_chown + # binary to be setuid. This is because the default owners/perms will be + # exactly what we want. + if ! use suid ; then + find "${ED}" -name pt_chown -exec chmod -s {} + + fi + + ################################################################# + # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # + # Make sure we install some symlink hacks so that when we build + # a 2nd stage cross-compiler, gcc finds the target system + # headers correctly. See gcc/doc/gccinstall.info + if is_crosscompile ; then + # We need to make sure that /lib and /usr/lib always exists. + # gcc likes to use relative paths to get to its multilibs like + # /usr/lib/../lib64/. So while we don't install any files into + # /usr/lib/, we do need it to exist. + keepdir $(alt_prefix)/lib + keepdir $(alt_prefix)/usr/lib + + dosym usr/include $(alt_prefix)/sys-include + return 0 + fi + + # Files for Debian-style locale updating + dodir /usr/share/i18n + sed \ + -e "/^#/d" \ + -e "/SUPPORTED-LOCALES=/d" \ + -e "s: \\\\::g" -e "s:/: :g" \ + "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ + || die "generating /usr/share/i18n/SUPPORTED failed" + cd "${WORKDIR}"/extra/locale + dosbin locale-gen + doman *.[0-8] + insinto /etc + doins locale.gen + + # Make sure all the ABI's can find the locales and so we only + # have to generate one set + local a + keepdir /usr/$(get_libdir)/locale + for a in $(get_install_abis) ; do + if [[ ! -e ${ED}/usr/$(get_abi_LIBDIR ${a})/locale ]] ; then + dosym ../$(get_libdir)/locale /usr/$(get_abi_LIBDIR ${a})/locale + fi + done + + cd "${S}" + + # Install misc network config files + insinto /etc + doins nscd/nscd.conf posix/gai.conf nss/nsswitch.conf + doins "${WORKDIR}"/extra/etc/*.conf + + if use nscd ; then + doinitd "$(prefixify_ro "${WORKDIR}"/extra/etc/nscd)" + + local nscd_args=( + -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" + ) + + sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd + + systemd_dounit nscd/nscd.service + systemd_newtmpfilesd nscd/nscd.tmpfiles nscd.conf + else + # Do this since extra/etc/*.conf above might have nscd.conf. + rm -f "${ED}"/etc/nscd.conf + fi + + echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc + doenvd "${T}"/00glibc + + for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do + [[ -s ${d} ]] && dodoc ${d} + done + dodoc -r ChangeLog.old + + # Prevent overwriting of the /etc/localtime symlink. We'll handle the + # creation of the "factory" symlink in pkg_postinst(). + rm -f "${ED}"/etc/localtime + + # Generate all locales if this is a native build as locale generation + if use compile-locales && ! is_crosscompile ; then + run_locale_gen "${ED}" + fi +} + +glibc_headers_install() { + local builddir=$(builddir "headers") + cd "${builddir}" + emake install_root="${D}$(alt_prefix)" install-headers + + insinto $(alt_headers)/gnu + doins "${S}"/include/gnu/stubs.h + + # Make sure we install the sys-include symlink so that when + # we build a 2nd stage cross-compiler, gcc finds the target + # system headers correctly. See gcc/doc/gccinstall.info + dosym usr/include $(alt_prefix)/sys-include +} + +src_strip() { + # gdb is lame and requires some debugging information to remain in + # libpthread, so we need to strip it by hand. libthread_db makes no + # sense stripped as it is only used when debugging. + local pthread=$(has splitdebug ${FEATURES} && echo "libthread_db" || echo "lib{pthread,thread_db}") + env \ + -uRESTRICT \ + CHOST=${CTARGET} \ + STRIP_MASK="/*/{,tls/}${pthread}*" \ + prepallstrip + # if user has stripping enabled and does not have split debug turned on, + # then leave the debugging sections in libpthread. + if ! has nostrip ${FEATURES} && ! has splitdebug ${FEATURES} ; then + ${STRIP:-${CTARGET}-strip} --strip-debug "${ED}"$(alt_prefix)/*/libpthread-*.so + fi +} + +src_install() { + if just_headers ; then + export ABI=default + glibc_headers_install + return + fi + + foreach_abi glibc_do_src_install + src_strip +} + +# Simple test to make sure our new glibc isn't completely broken. +# Make sure we don't test with statically built binaries since +# they will fail. Also, skip if this glibc is a cross compiler. +# +# If coreutils is built with USE=multicall, some of these files +# will just be wrapper scripts, not actual ELFs we can test. +glibc_sanity_check() { + cd / #228809 + + # We enter ${ED} so to avoid trouble if the path contains + # special characters; for instance if the path contains the + # colon character (:), then the linker will try to split it + # and look for the libraries in an unexpected place. This can + # lead to unsafe code execution if the generated prefix is + # within a world-writable directory. + # (e.g. /var/tmp/portage:${HOSTNAME}) + pushd "${ED}"/$(get_libdir) >/dev/null + + local x striptest + for x in cal date env free ls true uname uptime ; do + x=$(type -p ${x}) + [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue + striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue + case ${striptest} in + *"statically linked"*) continue;; + *"ASCII text"*) continue;; + esac + # We need to clear the locale settings as the upgrade might want + # incompatible locale data. This test is not for verifying that. + LC_ALL=C \ + ./ld-*.so --library-path . ${x} > /dev/null \ + || die "simple run test (${x}) failed" + done + + popd >/dev/null +} + +pkg_preinst() { + # nothing to do if just installing headers + just_headers && return + + # prepare /etc/ld.so.conf.d/ for files + mkdir -p "${EROOT}"/etc/ld.so.conf.d + + # Default /etc/hosts.conf:multi to on for systems with small dbs. + if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then + sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf + einfo "Defaulting /etc/host.conf:multi to on" + fi + + [[ ${ROOT} != "/" ]] && return 0 + [[ -d ${ED}/$(get_libdir) ]] || return 0 + [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check +} + +pkg_postinst() { + # nothing to do if just installing headers + just_headers && return + + if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then + # Generate fastloading iconv module configuration file. + "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}" + fi + + if ! is_crosscompile && [[ ${ROOT} == "/" ]] ; then + # Reload init ... if in a chroot or a diff init package, ignore + # errors from this step #253697 + /sbin/telinit U 2>/dev/null + + use compile-locales || run_locale_gen "${EROOT}" + fi + + # Check for sanity of /etc/nsswitch.conf, take 2 + if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then + local entry + for entry in passwd group shadow; do + if egrep -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then + ewarn "" + ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" + ewarn "removed from glibc and is now provided by the package" + ewarn " sys-auth/libnss-nis" + ewarn "Install it now to keep your NIS setup working." + ewarn "" + fi + done + fi +} diff --git a/sys-libs/glibc/glibc-9999.ebuild b/sys-libs/glibc/glibc-9999.ebuild index 9284afea8665..46dde2c6ce3a 100644 --- a/sys-libs/glibc/glibc-9999.ebuild +++ b/sys-libs/glibc/glibc-9999.ebuild @@ -3,7 +3,7 @@ EAPI=6 -inherit prefix eutils versionator toolchain-funcs flag-o-matic gnuconfig \ +inherit prefix eutils eapi7-ver toolchain-funcs flag-o-matic gnuconfig \ multilib systemd multiprocessing DESCRIPTION="GNU libc C library" @@ -18,7 +18,7 @@ if [[ ${PV} == 9999* ]]; then EGIT_REPO_URI="https://sourceware.org/git/glibc.git" inherit git-r3 else - # KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" KEYWORDS="" SRC_URI="mirror://gnu/glibc/${P}.tar.xz" fi @@ -28,12 +28,12 @@ RELEASE_VER=${PV} GCC_BOOTSTRAP_VER=20180511 # Gentoo patchset -PATCH_VER=8 +PATCH_VER=10 SRC_URI+=" https://dev.gentoo.org/~dilfridge/distfiles/${P}-patches-${PATCH_VER}.tar.xz" SRC_URI+=" multilib? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" -IUSE="audit caps cet compile-locales doc gd hardened headers-only +multiarch multilib nscd profile selinux suid systemtap test vanilla" +IUSE="audit caps cet compile-locales doc gd headers-only +multiarch multilib nscd profile selinux suid systemtap test vanilla" # Minimum kernel version that glibc requires MIN_KERN_VER="3.2.0" @@ -61,7 +61,8 @@ if [[ ${CTARGET} == ${CHOST} ]] ; then fi # We need a new-enough binutils/gcc to match upstream baseline. -# Also we need to make sure our binutils/gcc supports TLS. +# Also we need to make sure our binutils/gcc supports TLS, +# and that gcc already contains the hardened patches. COMMON_DEPEND=" nscd? ( selinux? ( audit? ( sys-process/audit ) @@ -91,13 +92,13 @@ RDEPEND="${COMMON_DEPEND} if [[ ${CATEGORY} == cross-* ]] ; then DEPEND+=" !headers-only? ( >=${CATEGORY}/binutils-2.24 - >=${CATEGORY}/gcc-4.9 + >=${CATEGORY}/gcc-6 )" [[ ${CATEGORY} == *-linux* ]] && DEPEND+=" ${CATEGORY}/linux-headers" else DEPEND+=" >=sys-devel/binutils-2.24 - >=sys-devel/gcc-4.9 + >=sys-devel/gcc-6 virtual/os-headers " RDEPEND+=" vanilla? ( !sys-libs/timezone-data )" @@ -259,18 +260,18 @@ setup_target_flags() { sparc64-*) case $(get-flag mcpu) in niagara[234]) - if version_is_at_least 2.8 ; then + if ver_test -ge 2.8 ; then cpu="sparc64v2" - elif version_is_at_least 2.4 ; then + elif ver_test -ge 2.4 ; then cpu="sparc64v" - elif version_is_at_least 2.2.3 ; then + elif ver_test -ge 2.2.3 ; then cpu="sparc64b" fi ;; niagara) - if version_is_at_least 2.4 ; then + if ver_test -ge 2.4 ; then cpu="sparc64v" - elif version_is_at_least 2.2.3 ; then + elif ver_test -ge 2.2.3 ; then cpu="sparc64b" fi ;; @@ -288,20 +289,20 @@ setup_target_flags() { sparc-*) case $(get-flag mcpu) in niagara[234]) - if version_is_at_least 2.8 ; then + if ver_test -ge 2.8 ; then cpu="sparcv9v2" - elif version_is_at_least 2.4 ; then + elif ver_test -ge 2.4 ; then cpu="sparcv9v" - elif version_is_at_least 2.2.3 ; then + elif ver_test -ge 2.2.3 ; then cpu="sparcv9b" else cpu="sparcv9" fi ;; niagara) - if version_is_at_least 2.4 ; then + if ver_test -ge 2.4 ; then cpu="sparcv9v" - elif version_is_at_least 2.2.3 ; then + elif ver_test -ge 2.2.3 ; then cpu="sparcv9b" else cpu="sparcv9" @@ -371,21 +372,6 @@ setup_flags() { append-flags -O2 -fno-strict-aliasing filter-flags '-fstack-protector*' - - # Starting with gcc-6 (and fully upstreamed pie patches) we control - # default enabled/disabled pie via use flags. So nothing to do - # here then. #618160 - if [[ $(gcc-major-version) -lt 6 ]]; then - if use hardened && tc-enables-pie ; then - # Force PIC macro definition for all compilations since they're all - # either -fPIC or -fPIE with the default-PIE compiler. - append-cppflags -DPIC - else - # Don't build -fPIE without the default-PIE compiler and the - # hardened-pie patch - filter-flags -fPIE - fi - fi } want_tls() { @@ -433,7 +419,7 @@ use_multiarch() { sparc) nver="2.21" ;; *) return 1 ;; esac - version_is_at_least ${nver} ${bver} + ver_test ${bver} -ge ${nver} } # Setup toolchain variables that had historically been defined in the diff --git a/sys-libs/libcap-ng/Manifest b/sys-libs/libcap-ng/Manifest index 4931926ee8d1..49a7c7b553e5 100644 --- a/sys-libs/libcap-ng/Manifest +++ b/sys-libs/libcap-ng/Manifest @@ -1,5 +1,5 @@ DIST libcap-ng-0.7.8.tar.gz 447946 BLAKE2B a26af2dcdd1af26cf03ca668dc95eed7bc1d0344729031497f46bba865bcb23ded2f1ea2ca5cb500b9419bbbd7ed75501921485257a3c8930d156a94e0a2c1c1 SHA512 c32a4c5780c183b13611615abe9061221fd8987188b08828d1617cdaee338ad8de67b3430aa83bde60128efc76449a688546bfbf697f0847b6a835cb1a868756 DIST libcap-ng-0.7.9.tar.gz 449038 BLAKE2B 3f84e5078d5d443cb61358c49405e4f16ff82a56e1c96d5127b522613b1b5c56a566a01b14b40055eca85f13b37f3d795248a506c54ac4612ab184a94addc365 SHA512 095edabaf76a943aab0645b843b14e20b1733ba1d47a8e34d82f6586ca9a1512ba2677d232b13dd3900b913837401bb58bf74481970e967ba19041959dc43259 EBUILD libcap-ng-0.7.8.ebuild 2299 BLAKE2B bc477123b519ff1156d1a16a03e4e8dcddc2c0e5ee2b2a14e47a95b76d6cfdeceff3b34fa929e4766397ed392fdad30c90d65a9652cec0a8f825f3e1a24a1a35 SHA512 5c0d35841195de32a67327b3e67243ed2e1c0281a7d0943e11a69a4a4e63b6ffdfa30cfeabce48d1ad9c0a0a2b7329a7f85e559c52c6d79f95ee8d0da4020648 -EBUILD libcap-ng-0.7.9.ebuild 2175 BLAKE2B decec584f613665ba61534c6783610b48b3bd4f384c84ae7443bccc39ce3ae1649a280e78b062fb34f6a7a150a44a5e8818d948462a9ea8fb047e7e3c1f78259 SHA512 88ac27c315131a08e47973f38946d35a3e0664d1c8544a2f414f4fb9e480dae5e972499d9a041db564dcd8e49848d851542623ff805796ad48a94d8ea75b4ed8 +EBUILD libcap-ng-0.7.9.ebuild 2204 BLAKE2B 076903a9bad16d5d1f1f94c3195cda98cb3d99bc6fb7b3fb5b8b12de02241b5e135f61a315b40fe2f99437c7c255e8efebd2d444a574403abcd9286bc3240b97 SHA512 2ed96aad46aced9dea0ad140aea68f43287733906fbd9cd325fae4d27177d59b25b3d33a697a1abf3d8ab7631802fd6639df93434a8fdc7c421ada1d025a0bed MISC metadata.xml 580 BLAKE2B 488341de9440c9cb0679acda14073496a0a1294380aa421496e4c622fa22a1c143b8bbce742214459fccf1825b9c1ef0004c9fec0fc3076b92a88bf557a63361 SHA512 51d670d97a94c8c668a4580bf6106a5b027b4d8d0c2f27ca88a508e60ece5a5390b619f0368c8111f2b843748a9ad31f1804c2a60df91ae1717a2c8b2a7aedc3 diff --git a/sys-libs/libcap-ng/libcap-ng-0.7.9.ebuild b/sys-libs/libcap-ng/libcap-ng-0.7.9.ebuild index 5ca28257fb80..6b134492aa9d 100644 --- a/sys-libs/libcap-ng/libcap-ng-0.7.9.ebuild +++ b/sys-libs/libcap-ng/libcap-ng-0.7.9.ebuild @@ -1,11 +1,11 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 -PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} ) +PYTHON_COMPAT=( python{2_7,3_{4,5,6,7}} ) -inherit flag-o-matic python-r1 +inherit autotools flag-o-matic python-r1 DESCRIPTION="POSIX 1003.1e capabilities" HOMEPAGE="https://people.redhat.com/sgrubb/libcap-ng/" @@ -26,13 +26,14 @@ src_prepare() { default if use prefix ; then sed -i "s@cat /usr@cat ${EPREFIX}/usr@" bindings/python*/Makefile.am || die + eautomake #668722 fi } src_configure() { use sparc && replace-flags -O? -O0 - local ECONF_SOURCE=${S} + local ECONF_SOURCE="${S}" local myconf=( $(use_enable static-libs static) diff --git a/sys-libs/libcap/Manifest b/sys-libs/libcap/Manifest index 8017bd00d633..64f7ba03a7d9 100644 --- a/sys-libs/libcap/Manifest +++ b/sys-libs/libcap/Manifest @@ -3,7 +3,10 @@ AUX libcap-2.22-no-perl.patch 2360 BLAKE2B f9ef0549a8f2f1f08f3b93e9a4234d8d01887 AUX libcap-2.25-build-system-fixes.patch 4705 BLAKE2B be3c05b5c798411cc03458c1ce71956ddf2996db71d349e6733a082ec90b264d6a24aa6abaff4b44a65502dc9cd49fe749f11d2fc41fa45879fa0cb6bde2b6ef SHA512 c99df67dfdceefeea3c3033a38e94a93cd7a9c4ed6e74f42c3b7198d66deee4b5d4aa91c540a48b12749ce3285c0ac3f11d0ecc33b913c3f0169578ae28745da AUX libcap-2.25-gperf.patch 620 BLAKE2B c870cd0d093df2e8f7498adc4d9b23f101089d80906eeba948982b599469c209e4dc4076efee04b37978b4226c3281ace2ee6ce751c27ee6719456657ebcdeda SHA512 1fd325160ebcf96f8a8f58e7f453241d15d2c968752cc050b52871536840f8ebbbfe1fa2bd03c19f86859e9739eb0059d30f157d2fa3a076da4a895fc32182e6 AUX libcap-2.25-ignore-RAISE_SETFCAP-install-failures.patch 988 BLAKE2B 63417032b843ff7cb704c9880cfca4db5083d05d479c71dd12925d729f22a4900c2ae277a20399d58830eaca969842d587a2ae0a646809d6b659a75d13678312 SHA512 ba573ce68858c1370f3d25ad03678a534e6f3052076694d09e795d1febf2f3d76a6a170658b71d9e31105521fd5d22dd72095585a5402286dba424937064b389 +AUX libcap-2.26-no-perl.patch 2483 BLAKE2B 34d20ca017119a40e31e2da64786a93c1d5468558e8dfcfb15f3758b6648aaad38bf333c11b35a2c8c4cb66d823e4daefed93b7073a0a65225fe9ef3494ff9ef SHA512 750a64c7b45fd145a043f29b8262c9f972aa4dcfb76afed9e440365c0e55d67d0103491e67a34f0f24ee580656e2fffd589b46b0c5a04b4c9e05b5dac6bbe994 DIST libcap-2.25.tar.xz 63672 BLAKE2B 205790dea83f15b585e5151814ea520ab1545661d18fa57f36e8c8e597a7c0f0ff1d7b5ccffc36e313eb28606f1e71678233a06896e29cb28e5559b190dd47ed SHA512 c3ab491885292adc171cde542b96f1295e84132febb50112a46575c3bde3a3eb6fcf733f7a756b4b656e013c0abb5ed6571db24799f8c0b23d8f759f992864f9 +DIST libcap-2.26.tar.xz 67172 BLAKE2B 9d1952bd03e1bba5ffa225a5088b8d841c2007219bbb9524f979ac65e472bf932db496acf93984fa77fe42e71d45b85cd603ca461a071fb4742526dfbc5f66eb SHA512 1c2d59f007226405a924950b2c2090393527e06f0692a84e6463e33915a070df61a9070b8f30a624d5630ddd39290eac117e5d440577d1edd48510195b9d12f0 EBUILD libcap-2.25-r1.ebuild 2014 BLAKE2B 4f3f2bf0f68703594aec5d4eccc4e0847deabf68c5d80437b7f99a0a61d7e63c7421d376b23258d9365bb783e7cbf5f703dd8161093969f20bef66accf74b77d SHA512 7858b3d5ac0aedbf9c973c535fa1c36d003a782b6c93e88310dab1f25fe7bd11105a418dc4e0ea0551fa2253a626dbc56bab09f8d08824a076579f9022d7bae7 EBUILD libcap-2.25.ebuild 1985 BLAKE2B 9b54adaecef1a90ec278fca89520259164c42cf119a40472d24a000c6123010c561d73ca5bcac50005187cb79a89fe4c480a6b49960eaee4eb120915ff886351 SHA512 8fa3587c008e1acf25283186f49a78484ab70cd41bc2d87161241688ee8b9640623abda097f66d9527f498b030cb113afb1babb3f07041d9b2230fd4ade0c8ad +EBUILD libcap-2.26-r2.ebuild 2024 BLAKE2B c97af87bad088092a8c0c62f4404e97ab31399e841d2102692e4aae0991e8f24dc46f1add51f65eeff0ab6666ce224c84d3851b97dfa0879d71f2854802c2807 SHA512 119f7b245d448a7da0bcad134534c6c8b79f148d6420940637d00a321fb44ee872f1c0191d4a6578df4c71f07dd39118ab24be911052a0d6090e54f70f9a20b4 MISC metadata.xml 253 BLAKE2B 295e9d6d93aaa12af413972e1590c67087801cc09c9aa6b59d4606c0f4106d1dacf2baa9858559083b4c6d91beeef218d0729e8593a33788958da6d2897e8ce2 SHA512 54a9069aeb4165d2dff3d473c8001bc51613aac9dff3f7f5e9971a9891a737a31511ffa11cbd523febe581ac1d9de2bdf2f40410f0c4239138f2ccca3ef15555 diff --git a/sys-libs/libcap/files/libcap-2.26-no-perl.patch b/sys-libs/libcap/files/libcap-2.26-no-perl.patch new file mode 100644 index 000000000000..55ee34ee71f9 --- /dev/null +++ b/sys-libs/libcap/files/libcap-2.26-no-perl.patch @@ -0,0 +1,61 @@ +From c15a25a61d64efe8f7b29c1e2d0a96885835ec59 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger +Date: Wed, 21 Nov 2018 11:00:54 +0100 +Subject: [PATCH] use awk/sed instead of perl for creating header files + +More systems should have awk/sed than perl. + +Signed-off-by: Mike Frysinger + +Forward ported from libcap-2.22 to libcap-2.26 +and incorporated the gperf-3.1 fix provided by Mike Gilbert + + +Signed-off-by: Lars Wendler +--- + libcap/Makefile | 21 +++++++++++++++++---- + 1 file changed, 17 insertions(+), 4 deletions(-) + +diff --git a/libcap/Makefile b/libcap/Makefile +index 77b26c5..a3f0507 100644 +--- a/libcap/Makefile ++++ b/libcap/Makefile +@@ -18,6 +18,8 @@ MAJLIBNAME=$(LIBNAME).$(VERSION) + MINLIBNAME=$(MAJLIBNAME).$(MINOR) + GPERF_OUTPUT = _caps_output.gperf + CFLAGS += -fPIC ++AWK = awk ++SED = sed + + all: $(MINLIBNAME) $(STALIBNAME) libcap.pc + +@@ -42,11 +44,22 @@ cap_names.h: _makenames + ./_makenames > cap_names.h + + $(GPERF_OUTPUT): cap_names.list.h +- perl -e 'print "struct __cap_token_s { const char *name; int index; };\n%{\nconst struct __cap_token_s *__cap_lookup_name(const char *, size_t);\n%}\n%%\n"; while ($$l = <>) { $$l =~ s/[\{\"]//g; $$l =~ s/\}.*// ; print $$l; }' < $< | gperf --ignore-case --language=ANSI-C --readonly --null-strings --global-table --hash-function-name=__cap_hash_name --lookup-function-name="__cap_lookup_name" -c -t -m20 $(INDENT) > $@ ++ (printf "%b" "struct __cap_token_s { const char *name; int index; };\n%%\n"; \ ++ $(SED) -e 's:["{}]::g' -e 's:,$$::' $<) | \ ++ gperf \ ++ --ignore-case \ ++ --language=ANSI-C \ ++ --includes \ ++ --readonly \ ++ --null-strings \ ++ --global-table \ ++ --hash-function-name=__cap_hash_name \ ++ --lookup-function-name="__cap_lookup_name" \ ++ -c -t -m20 $(INDENT) > $@ + +-cap_names.list.h: Makefile $(KERNEL_HEADERS)/linux/capability.h +- @echo "=> making $@ from $(KERNEL_HEADERS)/linux/capability.h" +- perl -e 'while ($$l=<>) { if ($$l =~ /^\#define[ \t](CAP[_A-Z]+)[ \t]+([0-9]+)\s+$$/) { $$tok=$$1; $$val=$$2; $$tok =~ tr/A-Z/a-z/; print "{\"$$tok\",$$val},\n"; } }' $(KERNEL_HEADERS)/linux/capability.h | fgrep -v 0x > $@ ++cap_names.list.h: $(KERNEL_HEADERS)/linux/capability.h Makefile ++ @echo "=> making $@ from $<" ++ $(AWK) '($$0 ~ /^#define[[:space:]]+CAP[_A-Z]+[[:space:]]+[0-9]+[[:space:]]*$$/) { printf "{\"%s\",%s},\n", tolower($$2), $$3 }' $< > $@ + + $(STALIBNAME): $(OBJS) + $(AR) rcs $@ $^ +-- +2.20.0.rc0 + diff --git a/sys-libs/libcap/libcap-2.26-r2.ebuild b/sys-libs/libcap/libcap-2.26-r2.ebuild new file mode 100644 index 000000000000..27c8f7ee0891 --- /dev/null +++ b/sys-libs/libcap/libcap-2.26-r2.ebuild @@ -0,0 +1,81 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit multilib multilib-minimal toolchain-funcs pam + +DESCRIPTION="POSIX 1003.1e capabilities" +HOMEPAGE="http://www.friedhoff.org/posixfilecaps.html" +SRC_URI="mirror://kernel/linux/libs/security/linux-privs/libcap2/${P}.tar.xz" + +# it's available under either of the licenses +LICENSE="|| ( GPL-2 BSD )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="pam static-libs" + +# While the build system optionally uses gperf, we don't DEPEND on it because +# the build automatically falls back when it's unavailable. #604802 +RDEPEND=">=sys-apps/attr-2.4.47-r1[${MULTILIB_USEDEP}] + pam? ( virtual/pam[${MULTILIB_USEDEP}] )" +DEPEND="${RDEPEND} + sys-kernel/linux-headers" + +# Requires test suite being run as root (via sudo) +RESTRICT="test" + +PATCHES=( + "${FILESDIR}"/${PN}-2.25-build-system-fixes.patch + "${FILESDIR}"/${PN}-2.26-no-perl.patch + "${FILESDIR}"/${PN}-2.25-ignore-RAISE_SETFCAP-install-failures.patch + "${FILESDIR}"/${PN}-2.21-include.patch +) + +src_prepare() { + default + multilib_copy_sources +} + +run_emake() { + local args=( + exec_prefix="${EPREFIX}" + lib_prefix="${EPREFIX}/usr" + lib="$(get_libdir)" + prefix="${EPREFIX}/usr" + PAM_CAP="$(usex pam yes no)" + DYNAMIC=yes + ) + emake "${args[@]}" "$@" +} + +multilib_src_compile() { + tc-export AR CC RANLIB + local BUILD_CC + tc-export_build_env BUILD_CC + + run_emake +} + +multilib_src_install() { + # no configure, needs explicit install line #444724#c3 + run_emake DESTDIR="${D}" install + + gen_usr_ldscript -a cap + if ! use static-libs ; then + rm "${ED%/}"/usr/$(get_libdir)/libcap.a || die + fi + + if [[ -d "${ED%/}"/usr/$(get_libdir)/security ]] ; then + rm -r "${ED%/}"/usr/$(get_libdir)/security || die + fi + + if use pam; then + dopammod pam_cap/pam_cap.so + dopamsecurity '' pam_cap/capability.conf + fi +} + +multilib_src_install_all() { + dodoc CHANGELOG README doc/capability.notes +} diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest index f1c33355db57..2ba7dde27dc3 100644 --- a/sys-libs/libcxx/Manifest +++ b/sys-libs/libcxx/Manifest @@ -9,14 +9,14 @@ DIST libcxx-4.0.1.src.tar.xz 1446380 BLAKE2B cd871eff4c4ca25a1fe4d27f778e913fe53 DIST libcxx-5.0.2.src.tar.xz 1530908 BLAKE2B e0c47d6803668267a71c75df873a136a2c3bec3732a08c365107b286f6dfef883edb81f9f4d22a0f312228865528bf1f15450c41803f8d3a8c8081fe12b62c25 SHA512 c77e0ea6bb3dc03270312de4a24fdd0d027448b2e182af31489031fd52f0997377c9049769930b80b2ba0062fe21317d8ae823c5e80e12128f8ae8e6f171be22 DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9fafc01a594d7b11f63d10b6f88eca67a3cdf90b8055e410ede358d9be1f63fbe427f308e1337833447c0260d96e1c8 SHA512 c04f628b0924d76f035f615b59d19ce42dfc19c9a8eea4fe2b22a95cfe5a037ebdb30943fd741443939df5b4cf692bc1e51c840fefefbd134e3afbe2a75fe875 DIST libcxx-7.0.0.src.tar.xz 1652496 BLAKE2B 7c8e4b7743a775a5f41ef1a2e511b44ca67af32be03f4fec9a4f70b49b540a442724afd69a312d68719ace3eee9e3d600c7596bda68496212827e140da5a258e SHA512 5ebf8418bc9d311c1744c257ab7a26cf2436a64a47451905df70ec64b12d25ec33acf99e1b9d552fd54ed850bed8f53dffde2ea20292ecd9976eaa31f144caf5 -DIST libcxx-7.0.1rc2.src.tar.xz 1641280 BLAKE2B fec5ab41c7cdcc70582c812bd10bdcf6b400f865756bc60afbe4b84029c8ced4b519f1b3919baa381f086a0ef93b99f9f7bc47ec480ac2c49ef9c0e9d77e55b7 SHA512 04f1a26e21e082a685050c2f7696078d56e5a3b48e3b3916d6eb425b9b0b75354714faa5a78a2c003b9842215de07424b2d2361a0bdb3e4d6761d7cd28d53ded +DIST libcxx-7.0.1.src.tar.xz 1638188 BLAKE2B 541d27c3801895d59ad06b15de5fe9ff0d9b5b3ef393a5fad05a12a52dd6453ecc530b0ce3129624a27e959d3c9c5f7066ebb57fd85caca538ebf4f990aa6967 SHA512 b3ad7ad95bdcf2d902b29de8a0b757d4dbc220bc1a22a813d6bcec15a34b3aa42e85c59f4cecbb318c799ca611550b44c328b37278f4349b984016ad4556c1d8 EBUILD libcxx-3.7.1.ebuild 5335 BLAKE2B 6f4dbbb8dbc7f6e8b97f05ff3e638bb037bad416feffe5207a9cba166a5c0e0c92c3cac954088cc04cdf2a9be62f17cd5d7ece472e4e20d3c0be5b3c1edb2f52 SHA512 f4e04906e7205cd3d2f3180a0b897c1a9eaf5c65249bdbb62ed32a0455132009c88ae6f080b52abe6973752073ca3bc32e37e3491db9de2fc030cf77e4ed91b0 EBUILD libcxx-3.9.1.ebuild 6954 BLAKE2B 041f1c1cbf105eace82b9d14ff2c4d1fbb55370cc0194896bf8a9ff2f43f9c2cab698402d0fc3833a0a73c09d8a4d76aed30133e3e36058aaf375112561484e7 SHA512 d8d080cd668a1d8833b1555def2d6383b63169e1091c54941f13707099627829246e70c94e8b070e429faab0b80b635e4a52b1a376eae110f7d818266b59937e EBUILD libcxx-4.0.1.ebuild 6592 BLAKE2B 79d1934e18efc7a221e235c372b15e13f71c0d58e41294385f1eaef39b9602336119aa6c1ca0ec608ee6497df14e3bcac9608cb8a01cb1f062eafcf7661145ce SHA512 a7cccd1799c55897ba0d116ef1cfeffe56d553429ea73618692b72de52e5d63d25417b518f0c9b2d96c30e7f6d0ed481d8e4d9d53046fe598f45de7473198c14 EBUILD libcxx-5.0.2.ebuild 6502 BLAKE2B d6b0b4b2fc3ca56858c2b785da51187964074d55d5e9a1e2f7c4b6c41f4a819f7548cf56cff9977e1f65afbf4e9c1c6a699b44d6188d16c0aa0f3a5c0795790f SHA512 05bd5dd8bae0fae0f18bd69bd328482d8fea2004a70bbab72a3600c9c20071dd5108bee4ad770403594e7aa10e393783cc6703ccd279755383b58afcfbbce3ab EBUILD libcxx-6.0.1.ebuild 6746 BLAKE2B 616128b9d49049ac6de90b84f89a48c7033f5927edc5e15674df5e3a2225630f59a99c8047c71d9128304d726241ceaa1cefabf8d44e4b2d6a491611f63bee88 SHA512 3df9e7e79b62893441212fe7baa51190ac69f0bf64332718ae53596a043dc3583b8125bbcf7339cca7cf9937aa870ea0d8b12670700962c1cb22892f706e3129 -EBUILD libcxx-7.0.0.ebuild 6882 BLAKE2B 33c21050c65ce4c3ea40b511a50c84bfba2dfbadc947183a8ef1fba057bc88fae1ca604f9a4f4dd3736f32c88b804bc130fd4fe10cdfd30369cd408e13a7a422 SHA512 1b9a4b280c72b546734d900e250eb0d39310ea6a0dec9715a89ce1dfe5c4833bdd60f5072575b135ee56bde725417766e3fd6fef282668100097480a304f01dd -EBUILD libcxx-7.0.1_rc2.ebuild 6751 BLAKE2B e6bd9859c9fdfb08d8eb90d19d14d607667796f7e4b2673eaef1c6b79b317283506455b89789e9c53e24a4dca61dd8d72561e5932d8998660ef2e38eefa083df SHA512 b9a08b5248801b2c73a1148b286dc9420626d1818af04f5a95c93ac338f310e4ede96dee71a9e57f703624163fd7707d01102d8029045c3e8854d20d44afb47b +EBUILD libcxx-7.0.0.ebuild 6884 BLAKE2B 916cf01e1e6c40ab41b513ec215c09f18aed4e3bd8794487a4cde35baf44f203bb0de6510f1cb4849a69de3c83eb6621ee8f9d7e2756101d19dbc947b62781f3 SHA512 22c44966e726451d1c0adbe090a96446cb16b8a02bcf1606bbc21619433e14587ef3e72058909f1c15b39beaef1e082a0bfe2c67b0fd1cafc2139670cf4b8422 +EBUILD libcxx-7.0.1.ebuild 6750 BLAKE2B 0052def7166376e81fdc4126220bc6749113e43b2fd66f6e447e020f6bbb6b63b7519e3656c79793837c5b105e2606f34b1d23e78bf4dcd2c892f79cc32b2101 SHA512 f16905c20b669428f1378185072563f855ed03520057039ba794fc717f0ca2cc44bc1c1a78aa24bca688946d5a32e2843163198e4085396e668f4c695f5e61e7 EBUILD libcxx-7.0.9999.ebuild 7047 BLAKE2B eb80753b38042cdb3ae3f01db2c4dc9bc7a588e00bcf1d7da85d3c30c73e941bbc1096d9b6be67c21dd47874354f909255a843371cb0fe9f479ee09d3439b292 SHA512 ae81c9c856f39dfef3dec1e66decab8b20987eb82c4093b6bfda2937c5111bc6a24058f95a92b3a3beb0b91df6f5bb83216ff4997a0be8fd7d28b8f29f91290f EBUILD libcxx-9999.ebuild 7019 BLAKE2B ea929ac8759c5b70e48fe32ade6ef24c2ce8830be6bb5a35411a654212c7b2d127ecaa2a94bebbbb01807ff57c7d814379f23047c206d265d917958478df54b6 SHA512 5dddc6b30accff0ad414953ec2cd177ee5b151106282113687a2977c00b1a85e7151f772000118d341d0074ae91875b8ef1bd0e03de1816875bcd289b03d14ef MISC metadata.xml 854 BLAKE2B f731ffbb07722face32cfe5ef0576c572fc45d93e8d78ec4adb46c43b95999dc4eb48f20311517fe08a397f2e5dec56c530bb6787a058358cfd1af8d79ffad90 SHA512 8ef3feab266e09442a42baced2d72667fa8b1290624c2c84bab7b173ead72669568847f6e995388fc1d7bc722381f60805d87b2a0cc2d04ae0c49e36bec3802a diff --git a/sys-libs/libcxx/libcxx-7.0.0.ebuild b/sys-libs/libcxx/libcxx-7.0.0.ebuild index 790f5dc12210..17b0722d40dc 100644 --- a/sys-libs/libcxx/libcxx-7.0.0.ebuild +++ b/sys-libs/libcxx/libcxx-7.0.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -19,7 +19,7 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz" LICENSE="|| ( UoI-NCSA MIT )" SLOT="0" -KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-fbsd" +KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd" IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test" REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) ) ?? ( libcxxabi libcxxrt )" diff --git a/sys-libs/libcxx/libcxx-7.0.1.ebuild b/sys-libs/libcxx/libcxx-7.0.1.ebuild new file mode 100644 index 000000000000..9dfc42c1c3d7 --- /dev/null +++ b/sys-libs/libcxx/libcxx-7.0.1.ebuild @@ -0,0 +1,215 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +# Ninja provides better scalability and cleaner verbose output, and is used +# throughout all LLVM projects. +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python2_7 ) + +inherit cmake-multilib llvm multiprocessing python-any-r1 \ + toolchain-funcs + +DESCRIPTION="New implementation of the C++ standard library, targeting C++11" +HOMEPAGE="https://libcxx.llvm.org/" +SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz" + +LICENSE="|| ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd" +IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test" +REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) ) + ?? ( libcxxabi libcxxrt )" +RESTRICT="!test? ( test )" + +RDEPEND=" + libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] ) + libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] ) + !libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )" +# llvm-6 for new lit options +# clang-3.9.0 installs necessary target symlinks unconditionally +# which removes the need for MULTILIB_USEDEP +DEPEND="${RDEPEND} + test? ( >=sys-devel/clang-3.9.0 + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') ) + app-arch/xz-utils + >=sys-devel/llvm-6" + +S=${WORKDIR}/${P/_/}.src + +DOCS=( CREDITS.TXT ) + +PATCHES=( + # Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a + # out-of-tree build. + "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch" +) + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + llvm_pkg_setup + use test && python-any-r1_pkg_setup + + if ! use libcxxabi && ! use libcxxrt && ! tc-is-gcc ; then + eerror "To build ${PN} against libsupc++, you have to use gcc. Other" + eerror "compilers are not supported. Please set CC=gcc and CXX=g++" + eerror "and try again." + die + fi + if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then + eerror "${PN} needs to be built with gcc-4.7 or later (or other" + eerror "conformant compilers). Please use gcc-config to switch to" + eerror "gcc-4.7 or later version." + die + fi +} + +test_compiler() { + $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \ + <<<'int main() { return 0; }' &>/dev/null +} + +src_configure() { + # note: we need to do this before multilib kicks in since it will + # alter the CHOST + local cxxabi cxxabi_incs + if use libcxxabi; then + cxxabi=libcxxabi + cxxabi_incs="${EPREFIX}/usr/include/libcxxabi" + elif use libcxxrt; then + cxxabi=libcxxrt + cxxabi_incs="${EPREFIX}/usr/include/libcxxrt" + else + local gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)" + cxxabi=libsupc++ + cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}" + fi + + multilib-minimal_src_configure +} + +multilib_src_configure() { + # we want -lgcc_s for unwinder, and for compiler runtime when using + # gcc, clang with gcc runtime (or any unknown compiler) + local extra_libs=() want_gcc_s=ON + if use libunwind; then + # work-around missing -lunwind upstream + extra_libs+=( -lunwind ) + # if we're using libunwind and clang with compiler-rt, we want + # to link to compiler-rt instead of -lgcc_s + if tc-is-clang; then + local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ + ${LDFLAGS} -print-libgcc-file-name) + if [[ ${compiler_rt} == *libclang_rt* ]]; then + want_gcc_s=OFF + extra_libs+=( "${compiler_rt}" ) + fi + fi + fi + + # bootstrap: cmake is unhappy if compiler can't link to stdlib + local nolib_flags=( -nodefaultlibs -lc ) + if ! test_compiler; then + if test_compiler "${nolib_flags[@]}"; then + local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" + ewarn "${CXX} seems to lack runtime, trying with ${nolib_flags[*]}" + fi + fi + + local libdir=$(get_libdir) + local mycmakeargs=( + -DLIBCXX_LIBDIR_SUFFIX=${libdir#lib} + -DLIBCXX_ENABLE_SHARED=ON + -DLIBCXX_ENABLE_STATIC=$(usex static-libs) + -DLIBCXX_CXX_ABI=${cxxabi} + -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi_incs} + # we're using our own mechanism for generating linker scripts + -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF + -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) + -DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s} + -DLIBCXX_INCLUDE_TESTS=$(usex test) + -DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}" + ) + + if use test; then + local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) + local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")} + + [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" + + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}" + ) + fi + cmake-utils_src_configure +} + +multilib_src_test() { + cmake-utils_src_make check-libcxx +} + +# Usage: deps +gen_ldscript() { + local output_format + output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p') + [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )" + + cat <<-END_LDSCRIPT +/* GNU ld script + Include missing dependencies +*/ +${output_format} +GROUP ( $@ ) +END_LDSCRIPT +} + +gen_static_ldscript() { + local libdir=$(get_libdir) + local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")") + + # Move it first. + mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${libdir}/libc++_static.a" || die + # Generate libc++.a ldscript for inclusion of its dependencies so that + # clang++ -stdlib=libc++ -static works out of the box. + local deps="libc++_static.a ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.a)" + # On Linux/glibc it does not link without libpthread or libdl. It is + # fine on FreeBSD. + use elibc_glibc && deps+=" libpthread.a libdl.a" + + gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.a" || die +} + +gen_shared_ldscript() { + local libdir=$(get_libdir) + # libsupc++ doesn't have a shared version + local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")") + + mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die + local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)" + + gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die +} + +multilib_src_install() { + cmake-utils_src_install + gen_shared_ldscript + use static-libs && gen_static_ldscript +} + +pkg_postinst() { + elog "This package (${PN}) is mainly intended as a replacement for the C++" + elog "standard library when using clang." + elog "To use it, instead of libstdc++, use:" + elog " clang++ -stdlib=libc++" + elog "to compile your C++ programs." +} diff --git a/sys-libs/libcxx/libcxx-7.0.1_rc2.ebuild b/sys-libs/libcxx/libcxx-7.0.1_rc2.ebuild deleted file mode 100644 index c6d4692fb7b2..000000000000 --- a/sys-libs/libcxx/libcxx-7.0.1_rc2.ebuild +++ /dev/null @@ -1,215 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -# Ninja provides better scalability and cleaner verbose output, and is used -# throughout all LLVM projects. -: ${CMAKE_MAKEFILE_GENERATOR:=ninja} -# (needed due to CMAKE_BUILD_TYPE != Gentoo) -CMAKE_MIN_VERSION=3.7.0-r1 -PYTHON_COMPAT=( python2_7 ) - -inherit cmake-multilib llvm multiprocessing python-any-r1 \ - toolchain-funcs - -DESCRIPTION="New implementation of the C++ standard library, targeting C++11" -HOMEPAGE="https://libcxx.llvm.org/" -SRC_URI="https://prereleases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz" - -LICENSE="|| ( UoI-NCSA MIT )" -SLOT="0" -KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-fbsd" -IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test" -REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) ) - ?? ( libcxxabi libcxxrt )" -RESTRICT="!test? ( test )" - -RDEPEND=" - libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] ) - libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] ) - !libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )" -# llvm-6 for new lit options -# clang-3.9.0 installs necessary target symlinks unconditionally -# which removes the need for MULTILIB_USEDEP -DEPEND="${RDEPEND} - test? ( >=sys-devel/clang-3.9.0 - $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') ) - app-arch/xz-utils - >=sys-devel/llvm-6" - -S=${WORKDIR}/${P/_/}.src - -DOCS=( CREDITS.TXT ) - -PATCHES=( - # Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a - # out-of-tree build. - "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch" -) - -# least intrusive of all -CMAKE_BUILD_TYPE=RelWithDebInfo - -python_check_deps() { - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -pkg_setup() { - llvm_pkg_setup - use test && python-any-r1_pkg_setup - - if ! use libcxxabi && ! use libcxxrt && ! tc-is-gcc ; then - eerror "To build ${PN} against libsupc++, you have to use gcc. Other" - eerror "compilers are not supported. Please set CC=gcc and CXX=g++" - eerror "and try again." - die - fi - if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then - eerror "${PN} needs to be built with gcc-4.7 or later (or other" - eerror "conformant compilers). Please use gcc-config to switch to" - eerror "gcc-4.7 or later version." - die - fi -} - -test_compiler() { - $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \ - <<<'int main() { return 0; }' &>/dev/null -} - -src_configure() { - # note: we need to do this before multilib kicks in since it will - # alter the CHOST - local cxxabi cxxabi_incs - if use libcxxabi; then - cxxabi=libcxxabi - cxxabi_incs="${EPREFIX}/usr/include/libcxxabi" - elif use libcxxrt; then - cxxabi=libcxxrt - cxxabi_incs="${EPREFIX}/usr/include/libcxxrt" - else - local gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)" - cxxabi=libsupc++ - cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}" - fi - - multilib-minimal_src_configure -} - -multilib_src_configure() { - # we want -lgcc_s for unwinder, and for compiler runtime when using - # gcc, clang with gcc runtime (or any unknown compiler) - local extra_libs=() want_gcc_s=ON - if use libunwind; then - # work-around missing -lunwind upstream - extra_libs+=( -lunwind ) - # if we're using libunwind and clang with compiler-rt, we want - # to link to compiler-rt instead of -lgcc_s - if tc-is-clang; then - local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ - ${LDFLAGS} -print-libgcc-file-name) - if [[ ${compiler_rt} == *libclang_rt* ]]; then - want_gcc_s=OFF - extra_libs+=( "${compiler_rt}" ) - fi - fi - fi - - # bootstrap: cmake is unhappy if compiler can't link to stdlib - local nolib_flags=( -nodefaultlibs -lc ) - if ! test_compiler; then - if test_compiler "${nolib_flags[@]}"; then - local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" - ewarn "${CXX} seems to lack runtime, trying with ${nolib_flags[*]}" - fi - fi - - local libdir=$(get_libdir) - local mycmakeargs=( - -DLIBCXX_LIBDIR_SUFFIX=${libdir#lib} - -DLIBCXX_ENABLE_SHARED=ON - -DLIBCXX_ENABLE_STATIC=$(usex static-libs) - -DLIBCXX_CXX_ABI=${cxxabi} - -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi_incs} - # we're using our own mechanism for generating linker scripts - -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF - -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) - -DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s} - -DLIBCXX_INCLUDE_TESTS=$(usex test) - -DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}" - ) - - if use test; then - local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) - local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")} - - [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" - - mycmakeargs+=( - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}" - ) - fi - cmake-utils_src_configure -} - -multilib_src_test() { - cmake-utils_src_make check-libcxx -} - -# Usage: deps -gen_ldscript() { - local output_format - output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p') - [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )" - - cat <<-END_LDSCRIPT -/* GNU ld script - Include missing dependencies -*/ -${output_format} -GROUP ( $@ ) -END_LDSCRIPT -} - -gen_static_ldscript() { - local libdir=$(get_libdir) - local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")") - - # Move it first. - mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${libdir}/libc++_static.a" || die - # Generate libc++.a ldscript for inclusion of its dependencies so that - # clang++ -stdlib=libc++ -static works out of the box. - local deps="libc++_static.a ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.a)" - # On Linux/glibc it does not link without libpthread or libdl. It is - # fine on FreeBSD. - use elibc_glibc && deps+=" libpthread.a libdl.a" - - gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.a" || die -} - -gen_shared_ldscript() { - local libdir=$(get_libdir) - # libsupc++ doesn't have a shared version - local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")") - - mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die - local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)" - - gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die -} - -multilib_src_install() { - cmake-utils_src_install - gen_shared_ldscript - use static-libs && gen_static_ldscript -} - -pkg_postinst() { - elog "This package (${PN}) is mainly intended as a replacement for the C++" - elog "standard library when using clang." - elog "To use it, instead of libstdc++, use:" - elog " clang++ -stdlib=libc++" - elog "to compile your C++ programs." -} diff --git a/sys-libs/libcxxabi/Manifest b/sys-libs/libcxxabi/Manifest index 38a1300a624d..88d33973040f 100644 --- a/sys-libs/libcxxabi/Manifest +++ b/sys-libs/libcxxabi/Manifest @@ -5,19 +5,19 @@ DIST libcxx-4.0.1.src.tar.xz 1446380 BLAKE2B cd871eff4c4ca25a1fe4d27f778e913fe53 DIST libcxx-5.0.2.src.tar.xz 1530908 BLAKE2B e0c47d6803668267a71c75df873a136a2c3bec3732a08c365107b286f6dfef883edb81f9f4d22a0f312228865528bf1f15450c41803f8d3a8c8081fe12b62c25 SHA512 c77e0ea6bb3dc03270312de4a24fdd0d027448b2e182af31489031fd52f0997377c9049769930b80b2ba0062fe21317d8ae823c5e80e12128f8ae8e6f171be22 DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9fafc01a594d7b11f63d10b6f88eca67a3cdf90b8055e410ede358d9be1f63fbe427f308e1337833447c0260d96e1c8 SHA512 c04f628b0924d76f035f615b59d19ce42dfc19c9a8eea4fe2b22a95cfe5a037ebdb30943fd741443939df5b4cf692bc1e51c840fefefbd134e3afbe2a75fe875 DIST libcxx-7.0.0.src.tar.xz 1652496 BLAKE2B 7c8e4b7743a775a5f41ef1a2e511b44ca67af32be03f4fec9a4f70b49b540a442724afd69a312d68719ace3eee9e3d600c7596bda68496212827e140da5a258e SHA512 5ebf8418bc9d311c1744c257ab7a26cf2436a64a47451905df70ec64b12d25ec33acf99e1b9d552fd54ed850bed8f53dffde2ea20292ecd9976eaa31f144caf5 -DIST libcxx-7.0.1rc2.src.tar.xz 1641280 BLAKE2B fec5ab41c7cdcc70582c812bd10bdcf6b400f865756bc60afbe4b84029c8ced4b519f1b3919baa381f086a0ef93b99f9f7bc47ec480ac2c49ef9c0e9d77e55b7 SHA512 04f1a26e21e082a685050c2f7696078d56e5a3b48e3b3916d6eb425b9b0b75354714faa5a78a2c003b9842215de07424b2d2361a0bdb3e4d6761d7cd28d53ded +DIST libcxx-7.0.1.src.tar.xz 1638188 BLAKE2B 541d27c3801895d59ad06b15de5fe9ff0d9b5b3ef393a5fad05a12a52dd6453ecc530b0ce3129624a27e959d3c9c5f7066ebb57fd85caca538ebf4f990aa6967 SHA512 b3ad7ad95bdcf2d902b29de8a0b757d4dbc220bc1a22a813d6bcec15a34b3aa42e85c59f4cecbb318c799ca611550b44c328b37278f4349b984016ad4556c1d8 DIST libcxxabi-3.9.1.src.tar.xz 510964 BLAKE2B a6abda1b92473781ea3029169c43547f15c1aa6e0ec6f9692ae633d109e050a6ff82ce8bceb0455375991b85c99784a4f06a568b8c77a4cf2865b9b2861e9595 SHA512 4f5603f1476b759c86d4784728fbdd212c59b30dc56d787c1834bf68a9cd83071fa22658d24e5a58beb94c0c656b0e4457d7da6e3048715dd36bd68380fc336e DIST libcxxabi-4.0.1.src.tar.xz 515820 BLAKE2B 7d9e0dee4f6cb3eaa22647d959f8bf3d86779f8c51c0738143ba3daca83881daacc0663a1d2463507c8c4b8a1b9e1d5c111b829e5af2cb5b6f86bae8f06a0d47 SHA512 e94315ba8a507d8481d70c33e7ab2d724d51726edb8412c70a1b5f59e3f15d5825f1502dc2db138b20e5293fb90a184050be94d5ac270fd7ce78b502efb9f86a DIST libcxxabi-5.0.2.src.tar.xz 521448 BLAKE2B e7e42908845f692cdb8709955eb46cbc18ee1f4ac9f0224b6e2a6bc2af998415eca5cda03ffcac27ef6a93cde928951bc38503bae9144b634abd17ec46ad96eb SHA512 304c0ef1b2fd26d52dae66013ea0051de4c3cb1e9c8d1308833f34aec1ad288fcfe5d583f00ceb84c8d271c5cd5f868aa135a93f007138d124c01b70c13e842e DIST libcxxabi-6.0.1.src.tar.xz 528356 BLAKE2B b301b750b2928864d3fc51e66cf91aab6837636ec2bce706b9a97296ec96af4bd2e80b1bf80c9b4afe449335ee12bbdd1905433c27e1770e16bc306baf206927 SHA512 bbb4c7b412e295cb735f637df48a83093eef45ed5444f7766790b4b047f75fd5fd634d8f3a8ac33a5c1407bd16fd450ba113f60a9bcc1d0a911fe0c54e9c81f2 DIST libcxxabi-7.0.0.src.tar.xz 535792 BLAKE2B caad3e2c9a89fcb8ba6b2dcaa23681b5a4f72330e77bdd8b48c6f1382d4414577b2ca130486cefce7a7ec2622712effd9aca0758d5f02d5ac23cedd0b5076be2 SHA512 95aa8f60477739e6d6eb6ba1e32c98928e1b8104d18d659336cf7f1c5bfd1ed505015077dfbe39329c0c9d2b5b428d853e5652b0106c0cde317d2d013ebd1cf0 -DIST libcxxabi-7.0.1rc2.src.tar.xz 535104 BLAKE2B 802bdada516a0dafceab55ecde19b88ba485f2254bc47af72e1caffc3c05f90fa721405c57bebaf8761c2c3ea1c1ae18afc10b3fbcd220d7f04699c8caa6de0c SHA512 acee0a8b782f351f7a4384a6c8054d7511a0a3af5a98973aab213363ead55a91673853b16f24cc6120c3420b089e86f9f4524491ceaba539e9414739fc6e1772 +DIST libcxxabi-7.0.1.src.tar.xz 535096 BLAKE2B 212330e8dbde98280b1bcd4f36ea3f30b69af9816e6c252bd9640c45501536ce38e8b57f3e82195d2a33cb1286651f7cad82713c71e8012e512e04c4ff7bad64 SHA512 92e8d28f329e9a8cce296f0fddd88324198f722db3a748bb2164b28ae8eca6047c89ed1e70af00bbedd93ce4285b2ab1e0307a65b88dc60e581eebfd6cbd2038 EBUILD libcxxabi-3.9.1.ebuild 2646 BLAKE2B a1f66067e57f09aca9d2f44735f3c7b01af38b381ecab526f9bae8ffbc5c96856c5a6d8c829b2d95f0a0afffefd319670c8484c826ce81b94a63c51bb53ed114 SHA512 4849fbfe11876cb403d78852abd6df27a0dbeada69c15fd1af6e7a20d742fcca064b227592e3ac69e32546cef94c790f28d63d40c8522213a9910f0b625ea379 EBUILD libcxxabi-4.0.1.ebuild 3328 BLAKE2B 2cc64e780a60b79a5eed18840b3048256a9cd5374abaa61594085587ee120c2ac134287ece9fbc5c58ed947657cd280c32520719e6c4996c2593be20ab19894c SHA512 822b5056c1e62d1dd116349f6cb47fa023a20899a7ef18f91b80e7440ff857d55500bdf8adb9286c1f3f3ba2a45a7a95ba78430b58267e3e70296201951c66d3 EBUILD libcxxabi-5.0.2.ebuild 3193 BLAKE2B b1157a436e40da0b67d012c903b9a137f3544a404e91a414a3d451be7f1b6c5e0a79c3e424f8c0cbf58b33166332988ecc13ee84a3c5840ad54de7c033770a97 SHA512 1330ec5b22bb11f5e142eea5acf03cbe6f1282a58206de9039453100a5fb72a30d46fe3ac3be6c52ddc07eb4b71486fd1be3e83a15a7ae76fa999fb2660cd908 EBUILD libcxxabi-6.0.1.ebuild 3172 BLAKE2B 0078aa6ca753285439a17dea5af0c66a991a1844b7bd487c0f51b95d9c8007a4d077515d3282cea8a044692a3d14f869f2b651bed3a7ba5e6acd20629bfd2e5b SHA512 b1168935e250e2a83356061456bef94635a1bb797abeb725f201298de3f6c90e285714799de4d79f30bd33f2a9ad9cfbdad2f4339100023485aee4554c36c133 -EBUILD libcxxabi-7.0.0.ebuild 3174 BLAKE2B 15e674f92e5388b16ee1e68f4ec99ad2c05fd1e0f80652f0fa1706c8e8303ff501203197e543644223cfd003c97ca99ccc1f7ea96e58be7d8aab8bd000dfb376 SHA512 44e004150486f6d270fec0dfa7f03e2c3a14ecf21d883250044f45ee6b2ea8828c51bda3b1f23dd867cb88acdf3c529a295d7882cde04184527f6fd8531aa1a9 -EBUILD libcxxabi-7.0.1_rc2.ebuild 3180 BLAKE2B 0d2b15aed3cae1b2b3f8ce0fbdd42c78b84f2e7a7ad68835db3899da1b12e69a434b45d28b947e041ab91b8f7c16cbc2ee56086be8aedf3bcee966ca0e4a3148 SHA512 0ee79211cfa0300fd3a788fcadbe6f0ba1749472188a768a32d31f5e1f2a6f38f7203a3c0b2fb9a27cfb03f143aac941d75ed26ce21844c457a8ef33a6ee00a7 +EBUILD libcxxabi-7.0.0.ebuild 3176 BLAKE2B c2993747161a2232090de704000d4002cd335c51404d580ab9787cd256b73eb487d19d3579ed22b46f9634c0dca8a20576a27e283d0843ba99cab0bc235b9908 SHA512 338dc004836e27f78f4956bcdbb8ba3d53327f59d2d3ac47290413a462a2752fe9d2b33ef3c7677e749004ff58b5526e7042ac9ccb1b56d92cc0e67511b83346 +EBUILD libcxxabi-7.0.1.ebuild 3176 BLAKE2B c2993747161a2232090de704000d4002cd335c51404d580ab9787cd256b73eb487d19d3579ed22b46f9634c0dca8a20576a27e283d0843ba99cab0bc235b9908 SHA512 338dc004836e27f78f4956bcdbb8ba3d53327f59d2d3ac47290413a462a2752fe9d2b33ef3c7677e749004ff58b5526e7042ac9ccb1b56d92cc0e67511b83346 EBUILD libcxxabi-7.0.9999.ebuild 3288 BLAKE2B 1c2f5f25a232d6e9a34fbb2b93a3d447542d770938fe8e8052a6e4e5e499e95e78033c259c674a1ebb3538577452c709c760f8a258d86c139a3b02857a63ec05 SHA512 add8b1705623bf5e4e6e504995f88cad05d1dbe57d5d803a45c13e49f77e8e45cd2c85e821d27ffc59d1ef8d7a216767f33019c6e8cb13e20f0075b0430f9e1d EBUILD libcxxabi-9999.ebuild 3263 BLAKE2B 26e1877ef423b0f869b6033601c584599c00f6f46b7296ba213ff080bb060c81995a2be2693b16b73e94c979c46fa5632b0fcf110ba2bc86c1b8f30bb548f74d SHA512 28ee56c5c823aa82e02e7fa680455e425d2ec5c4ae4c98c82a18f7afa1d0a663d22f4a85299fb44c3c10d5367bf33637f68a70516b02c6c206293038a65e22ef MISC metadata.xml 350 BLAKE2B 67b70b8d7292327882a845b76667ce24fee728cd84f27ed7e329bc7963631cba4c28bafce5e6a5fefb4ba1df5c7fd572b3b0d7a2b31ef649496f2f991b691bff SHA512 317dd7b59a711dd0461b5369f7e31ea196882b018e047e1dbae8077274d06cb68542c8762efb852cce0b8021bedea69c19aa0c124b9414a36cf1a9c00e0b9703 diff --git a/sys-libs/libcxxabi/libcxxabi-7.0.0.ebuild b/sys-libs/libcxxabi/libcxxabi-7.0.0.ebuild index 5c5a3146b60f..ef148c054bfb 100644 --- a/sys-libs/libcxxabi/libcxxabi-7.0.0.ebuild +++ b/sys-libs/libcxxabi/libcxxabi-7.0.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -20,7 +20,7 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${MY_P}.tar.xz LICENSE="|| ( UoI-NCSA MIT )" SLOT="0" -KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-fbsd" +KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd" IUSE="+libunwind +static-libs test elibc_musl" RESTRICT="!test? ( test )" diff --git a/sys-libs/libcxxabi/libcxxabi-7.0.1.ebuild b/sys-libs/libcxxabi/libcxxabi-7.0.1.ebuild new file mode 100644 index 000000000000..ef148c054bfb --- /dev/null +++ b/sys-libs/libcxxabi/libcxxabi-7.0.1.ebuild @@ -0,0 +1,119 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python2_7 ) + +inherit cmake-multilib llvm multiprocessing python-any-r1 + +MY_P=${P/_/}.src +LIBCXX_P=libcxx-${PV/_/}.src + +DESCRIPTION="Low level support for a standard C++ library" +HOMEPAGE="https://libcxxabi.llvm.org/" +SRC_URI="https://releases.llvm.org/${PV/_//}/${MY_P}.tar.xz + https://releases.llvm.org/${PV/_//}/${LIBCXX_P}.tar.xz" + +LICENSE="|| ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd" +IUSE="+libunwind +static-libs test elibc_musl" +RESTRICT="!test? ( test )" + +RDEPEND=" + libunwind? ( + || ( + >=sys-libs/libunwind-1.0.1-r1[static-libs?,${MULTILIB_USEDEP}] + >=sys-libs/llvm-libunwind-3.9.0-r1[static-libs?,${MULTILIB_USEDEP}] + ) + )" +# llvm-6 for new lit options +DEPEND="${RDEPEND} + >=sys-devel/llvm-6 + test? ( >=sys-devel/clang-3.9.0 + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )" + +S=${WORKDIR}/${MY_P} + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + llvm_pkg_setup + use test && python-any-r1_pkg_setup +} + +src_unpack() { + default + mv "${LIBCXX_P}" libcxx || die +} + +multilib_src_configure() { + local libdir=$(get_libdir) + local mycmakeargs=( + -DLIBCXXABI_LIBDIR_SUFFIX=${libdir#lib} + -DLIBCXXABI_ENABLE_SHARED=ON + -DLIBCXXABI_ENABLE_STATIC=$(usex static-libs) + -DLIBCXXABI_USE_LLVM_UNWINDER=$(usex libunwind) + -DLIBCXXABI_INCLUDE_TESTS=$(usex test) + + -DLIBCXXABI_LIBCXX_INCLUDES="${WORKDIR}"/libcxx/include + # upstream is omitting standard search path for this + # probably because gcc & clang are bundling their own unwind.h + -DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include + ) + if use test; then + local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) + local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")} + + [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" + + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}" + ) + fi + cmake-utils_src_configure +} + +build_libcxx() { + local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)" + local CMAKE_USE_DIR=${WORKDIR}/libcxx + local BUILD_DIR=${BUILD_DIR}/libcxx + local mycmakeargs=( + -DLIBCXX_LIBDIR_SUFFIX= + -DLIBCXX_ENABLE_SHARED=ON + -DLIBCXX_ENABLE_STATIC=OFF + -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF + -DLIBCXX_CXX_ABI=libcxxabi + -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${S}"/include + -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF + -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) + -DLIBCXX_HAS_GCC_S_LIB=OFF + -DLIBCXX_INCLUDE_TESTS=OFF + ) + + cmake-utils_src_configure + cmake-utils_src_compile +} + +multilib_src_test() { + # build a local copy of libc++ for testing to avoid circular dep + build_libcxx + mv "${BUILD_DIR}"/libcxx/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die + + cmake-utils_src_make check-libcxxabi +} + +multilib_src_install_all() { + insinto /usr/include/libcxxabi + doins -r include/. +} diff --git a/sys-libs/libcxxabi/libcxxabi-7.0.1_rc2.ebuild b/sys-libs/libcxxabi/libcxxabi-7.0.1_rc2.ebuild deleted file mode 100644 index 08b12511be67..000000000000 --- a/sys-libs/libcxxabi/libcxxabi-7.0.1_rc2.ebuild +++ /dev/null @@ -1,119 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -: ${CMAKE_MAKEFILE_GENERATOR:=ninja} -# (needed due to CMAKE_BUILD_TYPE != Gentoo) -CMAKE_MIN_VERSION=3.7.0-r1 -PYTHON_COMPAT=( python2_7 ) - -inherit cmake-multilib llvm multiprocessing python-any-r1 - -MY_P=${P/_/}.src -LIBCXX_P=libcxx-${PV/_/}.src - -DESCRIPTION="Low level support for a standard C++ library" -HOMEPAGE="https://libcxxabi.llvm.org/" -SRC_URI="https://prereleases.llvm.org/${PV/_//}/${MY_P}.tar.xz - https://prereleases.llvm.org/${PV/_//}/${LIBCXX_P}.tar.xz" - -LICENSE="|| ( UoI-NCSA MIT )" -SLOT="0" -KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-fbsd" -IUSE="+libunwind +static-libs test elibc_musl" -RESTRICT="!test? ( test )" - -RDEPEND=" - libunwind? ( - || ( - >=sys-libs/libunwind-1.0.1-r1[static-libs?,${MULTILIB_USEDEP}] - >=sys-libs/llvm-libunwind-3.9.0-r1[static-libs?,${MULTILIB_USEDEP}] - ) - )" -# llvm-6 for new lit options -DEPEND="${RDEPEND} - >=sys-devel/llvm-6 - test? ( >=sys-devel/clang-3.9.0 - $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )" - -S=${WORKDIR}/${MY_P} - -# least intrusive of all -CMAKE_BUILD_TYPE=RelWithDebInfo - -python_check_deps() { - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -pkg_setup() { - llvm_pkg_setup - use test && python-any-r1_pkg_setup -} - -src_unpack() { - default - mv "${LIBCXX_P}" libcxx || die -} - -multilib_src_configure() { - local libdir=$(get_libdir) - local mycmakeargs=( - -DLIBCXXABI_LIBDIR_SUFFIX=${libdir#lib} - -DLIBCXXABI_ENABLE_SHARED=ON - -DLIBCXXABI_ENABLE_STATIC=$(usex static-libs) - -DLIBCXXABI_USE_LLVM_UNWINDER=$(usex libunwind) - -DLIBCXXABI_INCLUDE_TESTS=$(usex test) - - -DLIBCXXABI_LIBCXX_INCLUDES="${WORKDIR}"/libcxx/include - # upstream is omitting standard search path for this - # probably because gcc & clang are bundling their own unwind.h - -DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include - ) - if use test; then - local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) - local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")} - - [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" - - mycmakeargs+=( - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}" - ) - fi - cmake-utils_src_configure -} - -build_libcxx() { - local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)" - local CMAKE_USE_DIR=${WORKDIR}/libcxx - local BUILD_DIR=${BUILD_DIR}/libcxx - local mycmakeargs=( - -DLIBCXX_LIBDIR_SUFFIX= - -DLIBCXX_ENABLE_SHARED=ON - -DLIBCXX_ENABLE_STATIC=OFF - -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF - -DLIBCXX_CXX_ABI=libcxxabi - -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${S}"/include - -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF - -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) - -DLIBCXX_HAS_GCC_S_LIB=OFF - -DLIBCXX_INCLUDE_TESTS=OFF - ) - - cmake-utils_src_configure - cmake-utils_src_compile -} - -multilib_src_test() { - # build a local copy of libc++ for testing to avoid circular dep - build_libcxx - mv "${BUILD_DIR}"/libcxx/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die - - cmake-utils_src_make check-libcxxabi -} - -multilib_src_install_all() { - insinto /usr/include/libcxxabi - doins -r include/. -} diff --git a/sys-libs/libcxxrt/Manifest b/sys-libs/libcxxrt/Manifest index 8a838dc337fb..1e1c8230c3ca 100644 --- a/sys-libs/libcxxrt/Manifest +++ b/sys-libs/libcxxrt/Manifest @@ -4,6 +4,6 @@ AUX prepare_snapshot.sh 428 BLAKE2B 5fab8d5ccc8aafbb4c5e9f729dad99b87d45c9973be7 DIST libcxxrt-0.0_p20170515.tar.xz 60488 BLAKE2B ae605dbd85a619886a3dca4ded06529bf51309d2c12028aaa4d27180efcbb6a6cd40e59fe731511cc920ba1e3c5786a5051a560186923d60c9aa7eae34b1679e SHA512 cf0539ca8f836adadf83195784ad008008faea2b0dd8953191fa1012d542f10f546eb58ecc42fa8e864c1113530a6bceb28a8005aa62276570343a3aaba09266 DIST libcxxrt-0.0_p20180311.tar.xz 60920 BLAKE2B c75bf5bb88e0f5c448a377a7ae58b33444e644c5e4ce7d6e0f5242c4ee61335be6a8b878bcc06f47bb44f9c48895845b174ca398c95aabb90182ebefd3d31815 SHA512 625aa0fab7d54c584faf4cf1e7f8f694776337fc0c6f441683f035743d00e3d18be3339a8ccfc8b61eb07819e4ccf7b1e5f3e7948fd584eefc5d61b200b32d50 EBUILD libcxxrt-0.0_p20170515.ebuild 2325 BLAKE2B 59c0d167aca188e5280d8928a142190233f72b3af8a10ee1663f0d8eb96437163ee6fd299cfea65bb6a7311becafd9be8fe6499c606b755467045781378687b1 SHA512 353079acc3e04ca1056f38242814d2858a33b97a297164eaa08ff4c50c3b5e181b96229edb5d2658b2505724382b4f37155a0b49c7ecdf9155d628a077bec54b -EBUILD libcxxrt-0.0_p20180311.ebuild 2318 BLAKE2B 36fc8c6af190ba47f5dc241651deb6d4e2b4d62b9422d1e8e517d67997b2a49eda16fcfe879376ca6d8862854b22d32278cbf17040295c1daf7a482d641290fc SHA512 0cdb8cba7788b7f41cbcd48e65ea27941359ec1b2d96fa604d6aa2172a8f133ab92a638faa3d4223084a387a9a3e120cbc630b827871c0d63e2d12ae4f2c32fb +EBUILD libcxxrt-0.0_p20180311.ebuild 2324 BLAKE2B 514d2334b8ac3df1425dcaa4a2a48b5f29836956ef162eb76acffcf979ef17b65808c1d0a3b895558475ee8f4446d7ec293565c7ed8ea3a97937899205961c7b SHA512 a30d19bd8b8b554521005a263bf0b4df5b116958aa5218d65f3ee4e0f252ef02b224a59faed3ec6d45accb2f00c83050e59ab669261aab58c91dd5e128e41e54 EBUILD libcxxrt-9999.ebuild 2318 BLAKE2B fd2c349bf8a84f19a3c76c0523623897797291d85062d2d9a58a9d105c32c65ff9e66a795b657693584256f9f292a4f1fb22c74403870c5fbf54ed0fbcbb5bd5 SHA512 7550563363686af25f2c9c81a795a972fe9b5599e5d2fc7462940b1be463fdddf32faba7e86e8c2d3bd60a6adaf20f400cf5bad3dcf8d814bb2f8feffc9b2c3f MISC metadata.xml 772 BLAKE2B 918a0b6a0d5d7c07b86a8157e08d66f1df42d38e74099c3c38a5dcb2757d55637426df7e0b61d893afde5cd15eb9d4ab78920ccde846a781c5e7ee285161f0c1 SHA512 2740f5561f530ec9053c2e3cc1c32af9b11b61d6b9b1e1babc39d135132bd7fbc0670bcdef274408126c9444e93c9e6f964f7c51316cac06b4a64e177263be7a diff --git a/sys-libs/libcxxrt/libcxxrt-0.0_p20180311.ebuild b/sys-libs/libcxxrt/libcxxrt-0.0_p20180311.ebuild index 9d7cbbce604a..610a1caceb7d 100644 --- a/sys-libs/libcxxrt/libcxxrt-0.0_p20180311.ebuild +++ b/sys-libs/libcxxrt/libcxxrt-0.0_p20180311.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=5 @@ -21,9 +21,9 @@ fi LICENSE="BSD-2" SLOT="0" if [ "${PV%9999}" = "${PV}" ] ; then - KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux" + KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux" else - KEYWORDS="" + KEYWORDS="~arm" fi IUSE="+libunwind +static-libs test" diff --git a/sys-libs/libhx/Manifest b/sys-libs/libhx/Manifest index 418121dbc7fa..5aaaf3ea80d1 100644 --- a/sys-libs/libhx/Manifest +++ b/sys-libs/libhx/Manifest @@ -1,7 +1,9 @@ AUX libhx-3.22-no-lyx.patch 495 BLAKE2B ae31b2ada8230a223413e4f7470b7743592191e829800b05124781660888bca1f153e287af5e79e106cd590539a64880e6d111054fb0ee31e9cd02cf65d59f01 SHA512 f4299755b65c7e3b64937df81feed58851bfe7e4938c4b47cd94f818bb7d5c80eecac34b7e80b1c051b07490b3730cc74d6f38cd47a7c4321882a8715ff4b802 DIST libHX-3.16.tar.xz 867336 BLAKE2B 2c70e792b8257081c587e983810c4e94170f0e035359ec29b526692cf49b415362301dbe3f00de9947962fc874439c6a10497fc8a2c48d6ea8ffc489189867dd SHA512 d5c6f4ac889f4d1043d58742305632c78143c683be09ddd4288c3911747d4c5c6b33b4c1517813066f7933d87dcb7b8cd1dfb015f08c7e7afccc718899cdd259 DIST libHX-3.22.tar.xz 875516 BLAKE2B 1a782834bb792898275ed549eff1b70b3356f9efe7b58e6aa48e34492b3ad8b5e8a66a142643ad6c13163e5eab6762fdcebd3fe4897d8b0d3f75c80f7ef60b6c SHA512 4a50b7171be9f60e1a1bfefb0641f74fa8879c0edb258533ee04ec89617802c48358dc244497fb18d02dc37f828f79f7c52dd5ce2a07d8a2f5e6e6f7b4e97646 +DIST libHX-3.24.tar.xz 876992 BLAKE2B 518b99e78acc0cb412f444c0dacaae830a853294a0ee549facfbe65a423a9f32d0388e30e255c87c3f5325102bea45e5e9d72d3fce5b89139b689fddcb299f93 SHA512 faf7af53b628efe1531568ccb2b7e9910db833b14583ab1487eb6a554b407a7546bc75348f7d2344c29ab53fd2df061f6f8de8db634bbd62c3672dc4347d27e4 EBUILD libhx-3.16.ebuild 562 BLAKE2B 4dee90b98349e676eecd4a5eaeb84e2740b1174588042c9d43d27e9ce66916e09eb6b2b108e50e6984a083954a66ca9f4149f4b78d8c6e3c375a0ae011761295 SHA512 54cb5f94b0da5796bd84d6f9ed825dcbce7b2c453107a2353514cbc0260299194c02d2bdd6f37543c875c11472d3f3f2f32bd04ddd28e1bce6e5c894b44a1649 EBUILD libhx-3.22-r1.ebuild 704 BLAKE2B 38a5567fb37d56a55c47d64667324fc4ea78d585247922ee2d1128f801e80911fc2e0704f154add5331b3c0bcc0c5363475a4adcb4f3e17bbc04fe0628bf52eb SHA512 b02728cf4b52e6739de5ac0aa232c43e020fbbcb38fe995033fdbee48ee3b606b2006a23c1bfd0401736d23aeb030209c1fdd69bf971a17062a11501782a2a84 EBUILD libhx-3.22.ebuild 565 BLAKE2B a78d16fbb551a64786290a61d492d630fb6fa7a5c27396c69924334080c39b3ddfcff11cfb4d89191a49d830bc3bcac8684aeb3a0d5aaf064742197c0b241fc5 SHA512 4c6e03bf3fc8fbb16ae64c02ae3f3293828ea0409aab2ec6f730a06b5131fdf5b5f9908b62c60ca6fc72e35cfc63c61d36987b8d28def5343977c84904ca923e +EBUILD libhx-3.24.ebuild 718 BLAKE2B 1fb5c07cb86d7fa58289a89eadc5e58a1557963b0361b82c448c99bf6fcff077dd6921933bd2854eed0ec7d8edea2b36b20b70a1d960c6b9bfb85e9ad6edaf95 SHA512 95e4296c181df331058d72bf29febf7dfb0d4d165d5154ca89977f2d7f6663dd5d0223e8ed8d69142b30eb8986d054a9a58871a8fa8b773bde061347d42d5077 MISC metadata.xml 398 BLAKE2B f72cf11453ffa182e00a8c32e0f1160e2d0ad9f5659ebc76e4139e5494eb3f7e4f5256a7a92e70ebe5b82912a57dd45ca02317557c789958091d2b68a28d884f SHA512 74a2fb87430a3e105fcfdacdbd594f9f64710749760ec4b49f6c7c3fec64f59641c5204b72481d436ae8abd46438b27d04d392ce7d93be68613608909c772fd0 diff --git a/sys-libs/libhx/libhx-3.24.ebuild b/sys-libs/libhx/libhx-3.24.ebuild new file mode 100644 index 000000000000..c1cf2e00fd1d --- /dev/null +++ b/sys-libs/libhx/libhx-3.24.ebuild @@ -0,0 +1,40 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools + +DESCRIPTION="Platform independent library providing basic system functions" +HOMEPAGE="http://libhx.sourceforge.net" +SRC_URI="mirror://sourceforge/${PN}/libHX-${PV}.tar.xz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86" +IUSE="doc" + +DEPEND="app-arch/xz-utils" +RDEPEND="" + +S="${WORKDIR}/libHX-${PV}" + +PATCHES=( "${FILESDIR}/${PN}-3.22-no-lyx.patch" ) + +src_prepare() { + default + eautoreconf +} + +src_install() { + default + + if use doc; then + dodoc doc/*.txt + else + dodoc doc/changelog.txt + rm "${ED}/usr/share/doc/${PF}/"*.pdf || die + fi + + find "${ED}" -name "*.la" -delete || die +} diff --git a/sys-libs/libnih/Manifest b/sys-libs/libnih/Manifest index de5ffc019f07..793c5ffb97ab 100644 --- a/sys-libs/libnih/Manifest +++ b/sys-libs/libnih/Manifest @@ -2,5 +2,5 @@ AUX libnih-1.0.3-optional-dbus.patch 1162 BLAKE2B 5c9178bdd193a7d3c2eb2e068712a6 AUX libnih-1.0.3-pkg-config.patch 2491 BLAKE2B 6308443ce8ee8c77564a0c9a64b6f0a31258db08faf926bda603faf372bd73b57b00a0b75111fc07bedce0ed40080cb66d9ababadb99f9d8c4d753bce48963a5 SHA512 b99d580f4487cf3d25fa37f3f7b62ce32d9df80c6c0b01ad04b6850215ec0cc24cfea48aaf8ff89afe28db239b5ed212f139e86353d9991152d488c6edce5017 AUX libnih-1.0.3-signal-race.patch 2081 BLAKE2B c11b900289e5fbb53b3d7e7f6a90d302bbb06a7d041b1b9b502ff585e440697f77b2ae5e2eb7ae40ff3817a052bd34da02766efd1ea021ce3ad78c4542307edd SHA512 5367cb0c6382004cc2a829b9b71f0c02a09e4983940afac90c4c5c0bfbda53fb36a6cc7e38ede7a895ce28f99a4f69e89392ebaadefdc536eb7efa90c2426ff8 DIST libnih-1.0.3.tar.gz 1187624 BLAKE2B f8f9fcdda86eabff39de0b0f92cd1f8c1c0eeb0c86ec4970e5bef1cc0dff0fda83db64975ece93d5d8ede5d0613d5f363dd7456c59fe966feb5e61e5b8913627 SHA512 fce40d2445b28c27b8838631681ca3206a4f053b2dd4fc488fc9ef98bbd3d933e3d62b82cf346be2ef1677f6457f692cf5544cd915a6bb1e5c618f98ffa101b4 -EBUILD libnih-1.0.3-r3.ebuild 1483 BLAKE2B 7cbff91bf9f0d3b04b5b02d9eeacf62c00c6b6f830ae38223fd2e08f4ade97d2b7696993a42e322ca74c661847a0d60991e22d9e97a366fef35c10cfaed2702b SHA512 e4986f22dd8460c14604cc3d7caba029ba8cb17d38593c5bc4f044613ccd1590b1cafab8c7593c8e3efb96b17597bcb3437b3993d7abb5296c131bdddbb20fba +EBUILD libnih-1.0.3-r3.ebuild 1485 BLAKE2B 414fb49275584fc99bf8cab0c44d59376c923ae5de73992e89c8c24cf0e4b678e4c16872f1296590039929306b6a682876cf60dc50b2d6adaa9759abce1a3b7f SHA512 cdf7a42d65ddeb397fa3e7639f506ff70627df3ff8b036171a5f32033bc6d101bae1292c9ca5687f1034d95d3683707b4b0757aa0424b7d79c665be9a2188177 MISC metadata.xml 241 BLAKE2B 02f7c7b912751df8725055416a093647e79dfdbf7f06c9f56246c67f6a1176997454dd3aaaa493ecf7d00d8ae295066e2861ac10bee860a94eef6085437561af SHA512 31e21c0bed310c4a025385f24c5b76f2e588999912fa548ca343947d95ad448b3a1232211cd4427607550c0f5de2e562e2b4e492415b6d207c954a516b811a84 diff --git a/sys-libs/libnih/libnih-1.0.3-r3.ebuild b/sys-libs/libnih/libnih-1.0.3-r3.ebuild index 5d3f7fd41060..32d0d66bcd16 100644 --- a/sys-libs/libnih/libnih-1.0.3-r3.ebuild +++ b/sys-libs/libnih/libnih-1.0.3-r3.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2017 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="4" @@ -11,7 +11,7 @@ SRC_URI="https://launchpad.net/${PN}/$(get_version_component_range 1-2)/${PV}/+d LICENSE="GPL-2" SLOT="0" -KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 sparc x86" +KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 s390 sparc x86" IUSE="+dbus nls static-libs +threads" # The configure phase will check for valgrind headers, and the tests will use diff --git a/sys-libs/libomp/Manifest b/sys-libs/libomp/Manifest index 1589f45d0232..2d38728bd51f 100644 --- a/sys-libs/libomp/Manifest +++ b/sys-libs/libomp/Manifest @@ -3,12 +3,12 @@ DIST openmp-4.0.1.src.tar.xz 2275240 BLAKE2B e63cf670c4cd2678afc4d7b96be85c3d157 DIST openmp-5.0.2.src.tar.xz 2081560 BLAKE2B fbe41c6aaf4c8e961253609a598bec531ab4685cd8c307ab2528b9d7553eaa38122ee02a2c4d481454f9233c062b3a24bb174a182702a183907a3d15a10a9655 SHA512 511895ca6049c17de81ad86c39dcb940a7c1a793005e16d33e58d72ad47f62b8cb61003c234a7544a88e79f25d2c86e9df834f90d37ccbd4b47f71c369e90437 DIST openmp-6.0.1.src.tar.xz 2048320 BLAKE2B 08b3a7051c985903f78331f55a1c6e928399b87c862c43c991e9bf78b66b6e412fc96f202b82c051176dbbe02422f8ceb7414f44ea8f3522f418e515c0f70c62 SHA512 abb956583e5d11d0c6f6d97183c081d658616a74933be884a591eaa3d8c4bb04f08f02016d2c86d7384c7ff1aa44fb949b0d967fc0ff50e3132aaba412e9add8 DIST openmp-7.0.0.src.tar.xz 910680 BLAKE2B c6bc47d67dbcff12d07e536cfc8135609ba7d72360c50c02b327c24ff74ef41dc1e79c2ad8f95e202b6f318d385cc19e631b53d649e301afb6352823198f09ce SHA512 bda383d62c822db41504d7774974809cd2af042b03a0b4ca450cc1478c5977682f5c646734801c1b7a16233141d62359c17e87e1435c48a222e159a8763f8857 -DIST openmp-7.0.1rc2.src.tar.xz 909276 BLAKE2B 165ce625b8825233cffec73b1965a4759f64d921582ee1ae02d02de0602d65ec570bb8d7d70b1193f4fc43da2770c57eb0b48ecb3d6f0267ab4f29187bd9f7e8 SHA512 6a85016108b74054a4174d2d24666e32e21894b1f4feeafda4574c3f8b14404d775a66189ada015a5ac9b22bfc4673ba0849d1a80c6b1b4d8d804f2d0f04c840 +DIST openmp-7.0.1.src.tar.xz 909316 BLAKE2B b8adbf67738b8d2d2d42b45b24aabd2f5e65a7b9cdda0d4a62511808c2101d9bb925b4904a9ecb98f77a1b7f38f13408fea6f724748183f9d5f5419c3fdeac54 SHA512 2062db8b87bce2c130bab528a6d654cb05b3de7641737552fc263724ceaa5e322afc2787796a0bddcda8d1bdf913a49f5a0180abcc57f8842b7e8ea8df4d6f51 EBUILD libomp-4.0.1.ebuild 2527 BLAKE2B be262aa449e8d3c2392793b8af597c7d9a02e624f0d57ad8b24ef822bd57f6d243200ccee1022c18dcc52fc2d198d6aa2cfe83a1224f614ce0b2305f3f6bff69 SHA512 ca34a666e1aa6e767cd979866bcdcaf55da75dc8faa80d062e718ceda56576c3ebec88972787ae5dc4532bfdeb2d7f34f233b8c4983bfb1bc89bbd443ac54ac7 EBUILD libomp-5.0.2.ebuild 2392 BLAKE2B 18b10357f48653d53a6a2ff6a8af75721a0fe774646365d730eae0afef6cb277218e79e26a6316ca2d5ff7a604941b46e3f1dd51c1924d69d3eb899356000749 SHA512 254569aaa7d2cd3952b9d9ace4303608a7fd73d174cccc4b69b8be80563b37792cc93273543fb4ca4732fa8f89772c4ce432e0769f42961bdb28f9d51d301481 EBUILD libomp-6.0.1.ebuild 3257 BLAKE2B 44eb78a362f0a88c2096e5dbda7e11f94fa02f08cc5919f533e9f19e09d573d4d9921a3939eebc776b40f777cea5676d270e5e91434bb8430e9d1f445edddba2 SHA512 99d7f400c7ff76cdcdc8609e733baa4b69e3f87a131355da3f353b5e8f244f531717372f146cf57dc6d5230a1be27cecd7e00069780c53c43edfb3152e793ac9 -EBUILD libomp-7.0.0.ebuild 3260 BLAKE2B 26713e991df85eca976a7c70e3284f0c5eea29335960469bf47d35930cdde475870bd132f699a2626df8dffd98dffac6ed372048b65647be43b827b51879fd2a SHA512 9b98ddaee2715189564386cc005dce152c9fc42bfa4873ccbf6ec5c48d61e4e25aae7d82ff85c960d04e6bf3cf6b67f09c5194298246f1002e9ae36da9b51ac8 -EBUILD libomp-7.0.1_rc2.ebuild 3263 BLAKE2B 43577795fe1e74b752a41d0e3c8a802b1a8fe5c3577ff8b3f431a23d1d41f3b4112902ede31ab716f7201b68b6ff9305a9541aad014bb807ed284e52d1dcfc99 SHA512 62439fff375159807e50c270e342f57e69eabead44836f86c011cc9ce42eb9b1f83d886e5ad8dcf5e95a92861d39c5e5206b3a34f0a31f157b4c5a804a6dc117 +EBUILD libomp-7.0.0.ebuild 3262 BLAKE2B cd2b359eb354dd9390f749c8b4a91ef07590ef7eab98c3e03252e25b8680206542334cd07e1bca95c250b381fe07834a99396b5593a2c80ac3ad3bede0bc4f6f SHA512 c4643617f58e135f9dc9b833d0cac8eefaf386eb2a92c6441a5d5fc34af60cf13969dd83dcbdba0e5c799afecc14ee5a2a5bd804f88ff2e3a109ebe938a787a7 +EBUILD libomp-7.0.1.ebuild 3262 BLAKE2B cd2b359eb354dd9390f749c8b4a91ef07590ef7eab98c3e03252e25b8680206542334cd07e1bca95c250b381fe07834a99396b5593a2c80ac3ad3bede0bc4f6f SHA512 c4643617f58e135f9dc9b833d0cac8eefaf386eb2a92c6441a5d5fc34af60cf13969dd83dcbdba0e5c799afecc14ee5a2a5bd804f88ff2e3a109ebe938a787a7 EBUILD libomp-7.0.9999.ebuild 3230 BLAKE2B 600cece5328bb4dfdf2a4f99f7d3ddd28334e41529f59c6379ea9e1a2a8661abdb14f2cb5b6ec3bc98979fb70e5be1f433fcb63dce5de57d47e955dcae172334 SHA512 84955824d6fc4f8f62cafcaa931940c99b0ee69b9c91fa2102b983a230a22a2a882f1f9d1840888ae317193eff3c9adb7906f68db1de7fcef52880d6c36b1ad6 EBUILD libomp-9999.ebuild 3205 BLAKE2B a8bca945602ba1b5045f473a2caed666242ec3ba75440ec6ef98ebdcf1fbf146c775baf142dfc47f676946b90c0a3cea797d7fdade4565d3467ef7b5b5481001 SHA512 4021e79b4057c3a86ce3f330f8532a3cc566ee64c9894c9f3c2bb402bf37431717105a5601b11c7413e71d965657dbdd6be2d215d4bafaba916fb0b371270cac MISC metadata.xml 825 BLAKE2B 07802144018f2f74b0927b53a346f99cbc7e36dbf501bb8dfc786f8d549c10eb688afafb1759f13d4d56d10f1bcae67dfa86cc2047cc39a9655a09a22e9a4260 SHA512 de43d5be94a5ea1cdfd3ae747d55b50d5d6ee577743f55d006d585d2d5acd5b3100845486ac415685f07361cd9985bae9347fff9c65417d198c49a61b4f6ba5e diff --git a/sys-libs/libomp/libomp-7.0.0.ebuild b/sys-libs/libomp/libomp-7.0.0.ebuild index 1c6bd76b19eb..c1cfe4c86a96 100644 --- a/sys-libs/libomp/libomp-7.0.0.ebuild +++ b/sys-libs/libomp/libomp-7.0.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -20,7 +20,7 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/openmp-${PV/_/}.src.tar.xz" LICENSE="|| ( UoI-NCSA MIT ) MIT LLVM-Grant" SLOT="0" -KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~x64-macos" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~x64-macos" IUSE="cuda hwloc kernel_linux offload ompt test" # CUDA works only with the x86_64 ABI REQUIRED_USE="offload? ( cuda? ( abi_x86_64 ) )" diff --git a/sys-libs/libomp/libomp-7.0.1.ebuild b/sys-libs/libomp/libomp-7.0.1.ebuild new file mode 100644 index 000000000000..c1cfe4c86a96 --- /dev/null +++ b/sys-libs/libomp/libomp-7.0.1.ebuild @@ -0,0 +1,115 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python2_7 ) + +inherit cmake-multilib linux-info multiprocessing python-any-r1 + +DESCRIPTION="OpenMP runtime library for LLVM/clang compiler" +HOMEPAGE="https://openmp.llvm.org" +SRC_URI="https://releases.llvm.org/${PV/_//}/openmp-${PV/_/}.src.tar.xz" + +# Additional licenses: +# - MIT-licensed Intel code, +# - LLVM Software Grant from Intel. + +LICENSE="|| ( UoI-NCSA MIT ) MIT LLVM-Grant" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~x64-macos" +IUSE="cuda hwloc kernel_linux offload ompt test" +# CUDA works only with the x86_64 ABI +REQUIRED_USE="offload? ( cuda? ( abi_x86_64 ) )" +RESTRICT="!test? ( test )" + +RDEPEND=" + hwloc? ( sys-apps/hwloc:0=[${MULTILIB_USEDEP}] ) + offload? ( + virtual/libelf:=[${MULTILIB_USEDEP}] + virtual/libffi:=[${MULTILIB_USEDEP}] + cuda? ( dev-util/nvidia-cuda-sdk:= ) + )" +# tests: +# - dev-python/lit provides the test runner +# - sys-devel/llvm provide test utils (e.g. FileCheck) +# - sys-devel/clang provides the compiler to run tests +DEPEND="${RDEPEND} + dev-lang/perl + offload? ( virtual/pkgconfig[${MULTILIB_USEDEP}] ) + test? ( + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') + >=sys-devel/clang-6 + )" + +S=${WORKDIR}/openmp-${PV/_/}.src + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +kernel_pds_check() { + if use kernel_linux && kernel_is -lt 4 15 && kernel_is -ge 4 13; then + local CONFIG_CHECK="~!SCHED_PDS" + local ERROR_SCHED_PDS="\ +PDS scheduler versions >= 0.98c < 0.98i (e.g. used in kernels >= 4.13-pf11 +< 4.14-pf9) do not implement sched_yield() call which may result in horrible +performance problems with libomp. If you are using one of the specified +kernel versions, you may want to disable the PDS scheduler." + + check_extra_config + fi +} + +pkg_pretend() { + kernel_pds_check +} + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +multilib_src_configure() { + local libdir="$(get_libdir)" + local mycmakeargs=( + -DOPENMP_LIBDIR_SUFFIX="${libdir#lib}" + + -DLIBOMP_USE_HWLOC=$(usex hwloc) + -DLIBOMP_OMPT_SUPPORT=$(usex ompt) + + -DOPENMP_ENABLE_LIBOMPTARGET=$(usex offload) + + # do not install libgomp.so & libiomp5.so aliases + -DLIBOMP_INSTALL_ALIASES=OFF + # disable unnecessary hack copying stuff back to srcdir + -DLIBOMP_COPY_EXPORTS=OFF + ) + use offload && mycmakeargs+=( + # this is non-fatal and libomp checks for CUDA conditionally + # to ABI, so we can just ignore passing the wrong value + # on non-amd64 ABIs + -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=$(usex !cuda) + ) + use test && mycmakeargs+=( + # this project does not use standard LLVM cmake macros + -DOPENMP_LLVM_LIT_EXECUTABLE="${EPREFIX}/usr/bin/lit" + -DOPENMP_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}" + + -DOPENMP_TEST_C_COMPILER="$(type -P "${CHOST}-clang")" + -DOPENMP_TEST_CXX_COMPILER="$(type -P "${CHOST}-clang++")" + ) + cmake-utils_src_configure +} + +multilib_src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + + cmake-utils_src_make check-libomp +} diff --git a/sys-libs/libomp/libomp-7.0.1_rc2.ebuild b/sys-libs/libomp/libomp-7.0.1_rc2.ebuild deleted file mode 100644 index 2c35eb63633e..000000000000 --- a/sys-libs/libomp/libomp-7.0.1_rc2.ebuild +++ /dev/null @@ -1,115 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -: ${CMAKE_MAKEFILE_GENERATOR:=ninja} -# (needed due to CMAKE_BUILD_TYPE != Gentoo) -CMAKE_MIN_VERSION=3.7.0-r1 -PYTHON_COMPAT=( python2_7 ) - -inherit cmake-multilib linux-info multiprocessing python-any-r1 - -DESCRIPTION="OpenMP runtime library for LLVM/clang compiler" -HOMEPAGE="https://openmp.llvm.org" -SRC_URI="https://prereleases.llvm.org/${PV/_//}/openmp-${PV/_/}.src.tar.xz" - -# Additional licenses: -# - MIT-licensed Intel code, -# - LLVM Software Grant from Intel. - -LICENSE="|| ( UoI-NCSA MIT ) MIT LLVM-Grant" -SLOT="0" -KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~x64-macos" -IUSE="cuda hwloc kernel_linux offload ompt test" -# CUDA works only with the x86_64 ABI -REQUIRED_USE="offload? ( cuda? ( abi_x86_64 ) )" -RESTRICT="!test? ( test )" - -RDEPEND=" - hwloc? ( sys-apps/hwloc:0=[${MULTILIB_USEDEP}] ) - offload? ( - virtual/libelf:=[${MULTILIB_USEDEP}] - virtual/libffi:=[${MULTILIB_USEDEP}] - cuda? ( dev-util/nvidia-cuda-sdk:= ) - )" -# tests: -# - dev-python/lit provides the test runner -# - sys-devel/llvm provide test utils (e.g. FileCheck) -# - sys-devel/clang provides the compiler to run tests -DEPEND="${RDEPEND} - dev-lang/perl - offload? ( virtual/pkgconfig[${MULTILIB_USEDEP}] ) - test? ( - $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') - >=sys-devel/clang-6 - )" - -S=${WORKDIR}/openmp-${PV/_/}.src - -# least intrusive of all -CMAKE_BUILD_TYPE=RelWithDebInfo - -python_check_deps() { - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -kernel_pds_check() { - if use kernel_linux && kernel_is -lt 4 15 && kernel_is -ge 4 13; then - local CONFIG_CHECK="~!SCHED_PDS" - local ERROR_SCHED_PDS="\ -PDS scheduler versions >= 0.98c < 0.98i (e.g. used in kernels >= 4.13-pf11 -< 4.14-pf9) do not implement sched_yield() call which may result in horrible -performance problems with libomp. If you are using one of the specified -kernel versions, you may want to disable the PDS scheduler." - - check_extra_config - fi -} - -pkg_pretend() { - kernel_pds_check -} - -pkg_setup() { - use test && python-any-r1_pkg_setup -} - -multilib_src_configure() { - local libdir="$(get_libdir)" - local mycmakeargs=( - -DOPENMP_LIBDIR_SUFFIX="${libdir#lib}" - - -DLIBOMP_USE_HWLOC=$(usex hwloc) - -DLIBOMP_OMPT_SUPPORT=$(usex ompt) - - -DOPENMP_ENABLE_LIBOMPTARGET=$(usex offload) - - # do not install libgomp.so & libiomp5.so aliases - -DLIBOMP_INSTALL_ALIASES=OFF - # disable unnecessary hack copying stuff back to srcdir - -DLIBOMP_COPY_EXPORTS=OFF - ) - use offload && mycmakeargs+=( - # this is non-fatal and libomp checks for CUDA conditionally - # to ABI, so we can just ignore passing the wrong value - # on non-amd64 ABIs - -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=$(usex !cuda) - ) - use test && mycmakeargs+=( - # this project does not use standard LLVM cmake macros - -DOPENMP_LLVM_LIT_EXECUTABLE="${EPREFIX}/usr/bin/lit" - -DOPENMP_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}" - - -DOPENMP_TEST_C_COMPILER="$(type -P "${CHOST}-clang")" - -DOPENMP_TEST_CXX_COMPILER="$(type -P "${CHOST}-clang++")" - ) - cmake-utils_src_configure -} - -multilib_src_test() { - # respect TMPDIR! - local -x LIT_PRESERVES_TMP=1 - - cmake-utils_src_make check-libomp -} diff --git a/sys-libs/libosinfo/Manifest b/sys-libs/libosinfo/Manifest index c574617b6eb9..a25851a09035 100644 --- a/sys-libs/libosinfo/Manifest +++ b/sys-libs/libosinfo/Manifest @@ -1,5 +1,3 @@ -DIST libosinfo-1.1.0.tar.gz 904154 BLAKE2B b34d1aaf2d53ac43613cfbdfd05bc12de505d37a743d64e43af379351f640759ad0ec2f30af74bf82a97b3e12b4a02b097bbdd6e0d3e83f7befa2af5340724a2 SHA512 c4f9e67bb5538e31e7d2ed3d764547ba0a2263da5bbf4d1ef930a32d5953fab59abc672e5f86a1f7f5ac1ebd0c5195986193f699a6b0efbcb6769917c0ed7102 DIST libosinfo-1.2.0.tar.gz 916787 BLAKE2B 652910ca1e70071d88adb771e458f0c19159a772eec1178c94ea5f65c5045bb00e4b1354b1ce4229d28821b6b1557424e419c1505b721883731a36b0761a1b5d SHA512 d98a107a08c5e2cddd746631b3ceac4278184ea5561ad2372d772b8ae253dc1363f217778d105387e5b5c5e86be9607668aa94929ad9b4ee48ab7abf50fb6a01 -EBUILD libosinfo-1.1.0.ebuild 1461 BLAKE2B 53a086589e8808da1c9188a04953568ad375f05e610ec99ef927056bb38abfe7b7e544460a48a4b2cc6941e370bf53aa13f160e39e21b9fccc92c99cfa466c6c SHA512 c4b9b5cece89019416028d47f92f6a5bec7a8da928e90a7a740fd10fcbcf2bd29446e01c12f18aff934520464b6c47f08d37dc4dbc5f74f4a754507fdab24d71 -EBUILD libosinfo-1.2.0.ebuild 1735 BLAKE2B 965b8d1c8b19b62aa2ddaeb266a3401b37917431ce3cf4c0c2f278b9d8a25c25e7e5541b3407bb4157fd3950de6db9d26a3610b3074e5abb96bb6f190aca7fc3 SHA512 8a315929bf13cdc334d7f5d904adf699fb23a6d5a4035e9a9d84516ebd31a805ac1eb56c646773d3c242f2731e255e5a44d9a5bba786f6bc62b41f41a9fc004a +EBUILD libosinfo-1.2.0.ebuild 1733 BLAKE2B 6d8f39bfe7139b5a9103922b61768f458a8ac5db914bb4b7cd4a13b897d5fb1b062adfd81a6aca778a97475ec95835a386904f2bf70a413a992bc3fa3f7c5b67 SHA512 331e01a546b7b81c1d88d2bec8984e15747924d40b6caac719680dae5af709d9816c06bc7eea9c19a9202648c3245191b107390a5097af7323e3c3910fb33dd2 MISC metadata.xml 249 BLAKE2B e71e1b95fee768c696704acbf7e3cf0e599ed2bc8de92bae0141d1194ef9e842bdc292798904487a9b90ddfda9b0e84abd3b76b1518576c1d288240e4e46f110 SHA512 c40662134899a5c9f0369a1017806f35adf3280a0b3c91726f7a8ca6012a073a8b471583f5bfb6fe95faac1dcf607e8e2e43f8c91d48ec46f4a8824e2f551506 diff --git a/sys-libs/libosinfo/libosinfo-1.1.0.ebuild b/sys-libs/libosinfo/libosinfo-1.1.0.ebuild deleted file mode 100644 index 6f21f3a179b6..000000000000 --- a/sys-libs/libosinfo/libosinfo-1.1.0.ebuild +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 1999-2018 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -VALA_USE_DEPEND="vapigen" - -inherit gnome2 udev vala - -DESCRIPTION="GObject library for managing information about real and virtual OSes" -HOMEPAGE="http://libosinfo.org/" -SRC_URI="https://releases.pagure.org/libosinfo/${P}.tar.gz" - -LICENSE="GPL-2 LGPL-2.1" -SLOT="0" - -IUSE="+introspection +vala test" -REQUIRED_USE="vala? ( introspection )" - -KEYWORDS="~alpha amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc x86" - -# Unsure about osinfo-db-tools rdep, but at least fedora does it too -RDEPEND=" - >=dev-libs/glib-2.36.0:2 - >=net-libs/libsoup-2.42:2.4 - >=dev-libs/libxml2-2.6.0 - >=dev-libs/libxslt-1.0.0 - sys-apps/hwids[pci,usb] - sys-apps/osinfo-db-tools - sys-apps/osinfo-db - introspection? ( >=dev-libs/gobject-introspection-0.9.7:= ) -" -# perl dep is for pod2man, and configure.ac checks for it too now -DEPEND="${RDEPEND} - dev-lang/perl - dev-libs/gobject-introspection-common - dev-util/glib-utils - >=dev-util/gtk-doc-am-1.10 - >=dev-util/intltool-0.40.0 - virtual/pkgconfig - test? ( dev-libs/check ) - vala? ( $(vala_depend) ) -" - -src_prepare() { - gnome2_src_prepare - use vala && vala_src_prepare -} - -src_configure() { - gnome2_src_configure \ - --with-usb-ids-path=/usr/share/misc/usb.ids \ - --with-pci-ids-path=/usr/share/misc/pci.ids \ - --disable-static \ - $(use_enable test tests) \ - $(use_enable introspection) \ - $(use_enable vala) \ - --disable-coverage -} diff --git a/sys-libs/libosinfo/libosinfo-1.2.0.ebuild b/sys-libs/libosinfo/libosinfo-1.2.0.ebuild index b4b476115c62..72e0867bd9fc 100644 --- a/sys-libs/libosinfo/libosinfo-1.2.0.ebuild +++ b/sys-libs/libosinfo/libosinfo-1.2.0.ebuild @@ -16,7 +16,7 @@ SLOT="0" IUSE="+introspection +vala test" REQUIRED_USE="vala? ( introspection )" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc x86" # Unsure about osinfo-db-tools rdep, but at least fedora does it too RDEPEND=" diff --git a/sys-libs/librtas/Manifest b/sys-libs/librtas/Manifest index f435bba0260f..70199d06e644 100644 --- a/sys-libs/librtas/Manifest +++ b/sys-libs/librtas/Manifest @@ -1,11 +1,3 @@ -AUX librtas-1.3.6-symlink.patch 928 BLAKE2B fc7dd07dd1797729eed19beed9c212f28214b8d119267a808c927553922d8f5838f0dbdb02e76fbef19f7c6b0b1a5e223a1505fcf740b473029e990d6426b37b SHA512 b62c4deb72b2040f839a480133e2837ac4d7b988833621b3b1683f31d65d5ee2f4ecb4c65ff73d89228cd97e78ca7ab80f743e04773627ae204904b8077f39fd -AUX librtas-1.3.8-symlink.patch 803 BLAKE2B 40af3d42726ed3c44ca5aa81989d9dc818d588c659a7e268216be2b5e910c23295f372c69a3cc45acbe226242ad7a84165084b2cc6f9eabc9d7887432f281552 SHA512 cfd8ab71c098b2a7d69ca55008e4b483ba6e540c7dbfc38aa055baa8de85a4822da477eddcd6c1156392c4ed65abffe061a2710239e5ad1951108cf512491ac0 -DIST librtas-1.3.13.tar.gz 90959 BLAKE2B 03ca39e9c3e0e7ff8c1de864f1e4e08a9f3cefa8b062eb1fecdb6e5a21e09948b9889f85a95478265982fa25acce923980a65b92dce8506babda1c6f802d79d6 SHA512 1cd0dec624aff2fdf3e851913246d89a98c94c09ab9fe3ca80c3fca53a5d6ca5589e0680216c3722560e5701827b52a283ddefe7ab04228b352f5535f63a85c1 -DIST librtas-1.3.6.tar.gz 83828 BLAKE2B 3ef68a980a060e3a882007244b8ee13f0164c304eed1c98b34a0559c84a52641201001a4505d5afa4286248484a18a6d35d3ec0b0a42d263e0cbd740198c0422 SHA512 f81271cf524218395c488aee6625b9f39c9acb81d7c109ca0dec9c7349ad013a6eb17e5324cc5243caf9f5c32b755831afd9bb74c6a2505ccc50d400734b26fa -DIST librtas-1.3.8.tar.gz 221684 BLAKE2B eed2bc5640271b59109a168e45b0a7c1531a2d2ff3a13ce84b527ea2ee12fd8802fae3b30f4b777f9235b20a33d69924904d7c6ea20ebbe2505880dfd94164a1 SHA512 bb68369a10f0fb35e8631dc440fe68bb02b13d971be420539bb3fc0d29328421702a43f489941e90b20bff35863269a0d8fd159f65a18467d22cea7cfeed2cd2 DIST librtas-2.0.2.tar.gz 91627 BLAKE2B 1455af1af4a932fb81815ba67d1d1d8eeb0866bcf49fdcced622c1982121b5bb3ddeaf78f121a6540ec6c60d641991a87342713478a5be5232128db35d272059 SHA512 112d355bc486657289a186d9f1b8c576af55422f1527259a0cd680c07d6fa787aef2dc0cb6322721dc4aa1c5bd1de669f5c4d05e6a07de65262e9e3d4d0283c7 -EBUILD librtas-1.3.13.ebuild 495 BLAKE2B 0bad9d6ce9d39968941afd350a73e7ef812454609f5839a942c75ee0a9a9514e9ea33e0bfab85630372abb9460127dfb6461740e3e35dc99803d70c7d54ad8e4 SHA512 54844c83026e3d392e586faed15f5b6983379b49942bda7a3377b45602e346d04df40b8388de9edb4a5eeaeec27015ffd4adf69f2a6258c3b60dff17094edaa9 -EBUILD librtas-1.3.6.ebuild 494 BLAKE2B 0368c08c367f063063a45d500dc75b8c09f44de5b741f1060664bf035c208de47c9dc705605ee0396f493dc81dbaceb2a34825e7df830ec57f076d738af66cbe SHA512 1333210cb31df41e6eebfe6fb2aba840b007b161a2528a42c2e83489f85fa6e5241a415bb0e8fad6e4f2810ebdc14e05aef25f79ad2ca4dc1a281482eaea7dc2 -EBUILD librtas-1.3.8.ebuild 496 BLAKE2B 140b26909e1dd1f20e55587c533ddd49e18233798e81269083c69198c36bebe70d254732cd28173c561e00fd37ee603e2e7ced921ba7b333d18eb9b8142a72ef SHA512 3eebb86f83d7e9efa8cf85c0fe438f472666d271858e043112615b3fa696f8b831e806d91414a733a03333a4a6f345252b91be4c65438d0fc08a1507b47a35b1 -EBUILD librtas-2.0.2.ebuild 494 BLAKE2B 39bde667630ec3842b6f9f99fbc197b339d6b8ed3e049417e2138f8b8653a4b0ad7ac204a40e018157be8ec4c961568fca7ce3a7fd75cd877e87f96f6d15576b SHA512 d83d5d0b6228030a6a051eb62ec146edfd358fcb6cdba4638d0f608089384613323ccdf29bd9bfaad2475c6634f30d7e38e2c793ec1574c7c926fe70dd25d4fb +EBUILD librtas-2.0.2.ebuild 497 BLAKE2B 803c54b2b4629223cb6d338011cff7a20cc6cc035027809a4f4232007652fc585c7141106c2242d985d54a77275dfd3e0f87ab9cad739dca56b82a72a3076566 SHA512 18eb31d06078293bfb79eed13af2ea6f3637141a852610fd25e5fe373eb2a6463d65ee92a03072bd137a2f9fa72a07f2f905439a7645b307e56664d05ac52922 MISC metadata.xml 340 BLAKE2B d84ae6cde9ffd7cc2476c3ef90d6125e65946795711e4c5a422e244a2369ac059fc0f22e038c687c5e871370e4384694b5d464abcb76097ab065149de35ef17e SHA512 54fcb0b54320053eb1f68f11107e8027a618351a78d539de2dffaad678aabe9b20972700af6ac2ba4bfa589c91e1cd2d91df517ab745ad365b1ad1ba7a4b0f3e diff --git a/sys-libs/librtas/files/librtas-1.3.6-symlink.patch b/sys-libs/librtas/files/librtas-1.3.6-symlink.patch deleted file mode 100644 index f9536f427492..000000000000 --- a/sys-libs/librtas/files/librtas-1.3.6-symlink.patch +++ /dev/null @@ -1,24 +0,0 @@ -QA Notice: Missing soname symlink(s): -usr/lib64/libofdt.so.1 -> libofdt.so.1.3.6 -usr/lib64/librtas.so.1 -> librtas.so.1.3.6 - ---- libofdt_src/Makefile -+++ libofdt_src/Makefile -@@ -27,6 +27,7 @@ - @$(call install_lib,$(LIBOFDT),$(DESTDIR)) - @$(call install_inc,$(LIBOFDT_SHIP_HDR),$(DESTDIR)) - @ln -sf $(LIBOFDT) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBOFDT))/$(LIBOFDT_SONAME) -+ @ln -sf $(LIBOFDT) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBOFDT))/$(LIBOFDT_SONAME).1 - - uninstall: - @$(call uninstall_lib,$(LIBOFDT),$(DESTDIR)) ---- librtas_src/Makefile -+++ librtas_src/Makefile -@@ -33,6 +33,7 @@ - @$(call install_lib,$(LIBRTAS),$(DESTDIR)) - @$(call install_inc,$(HEADERS),$(DESTDIR)) - @ln -sf $(LIBRTAS) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBRTAS))/$(LIBRTAS_SONAME) -+ @ln -sf $(LIBRTAS) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBRTAS))/$(LIBRTAS_SONAME).1 - - uninstall: - @$(call uninstall_lib,$(LIBRTAS),$(DESTDIR)) diff --git a/sys-libs/librtas/files/librtas-1.3.8-symlink.patch b/sys-libs/librtas/files/librtas-1.3.8-symlink.patch deleted file mode 100644 index c3faeaf41e22..000000000000 --- a/sys-libs/librtas/files/librtas-1.3.8-symlink.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- libofdt_src/Makefile -+++ libofdt_src/Makefile -@@ -27,6 +27,7 @@ - @$(call install_lib,$(LIBOFDT),$(DESTDIR)) - @$(call install_inc,$(LIBOFDT_SHIP_HDR),$(DESTDIR)) - @ln -sf $(LIBOFDT) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBOFDT))/$(LIBOFDT_SONAME) -+ @ln -sf $(LIBOFDT) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBOFDT))/$(LIBOFDT_SONAME).1 - - uninstall: - @$(call uninstall_lib,$(LIBOFDT),$(DESTDIR)) ---- librtas_src/Makefile -+++ librtas_src/Makefile -@@ -33,6 +33,7 @@ - @$(call install_lib,$(LIBRTAS),$(DESTDIR)) - @$(call install_inc,$(HEADERS),$(DESTDIR)) - @ln -sf $(LIBRTAS) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBRTAS))/$(LIBRTAS_SONAME) -+ @ln -sf $(LIBRTAS) $(DESTDIR)/$(LIB_DIR)$(call is_lib64,$(LIBRTAS))/$(LIBRTAS_SONAME).1 - - uninstall: - @$(call uninstall_lib,$(LIBRTAS),$(DESTDIR)) diff --git a/sys-libs/librtas/librtas-1.3.13.ebuild b/sys-libs/librtas/librtas-1.3.13.ebuild deleted file mode 100644 index 97bb5bc07d27..000000000000 --- a/sys-libs/librtas/librtas-1.3.13.ebuild +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=5 -inherit eutils - -DESCRIPTION="A set of libraries for userspace access to RTAS on the PowerPC platform(s)" -HOMEPAGE="https://sourceforge.net/projects/librtas/" -SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" - -LICENSE="IBM" -SLOT="0" -KEYWORDS="~ppc ~ppc64" - -DOCS="README" - -src_prepare() { - epatch "${FILESDIR}"/${PN}-1.3.8-symlink.patch - sed -i -e '/install_doc/d' Makefile || die -} diff --git a/sys-libs/librtas/librtas-1.3.6.ebuild b/sys-libs/librtas/librtas-1.3.6.ebuild deleted file mode 100644 index 6abf168d6c43..000000000000 --- a/sys-libs/librtas/librtas-1.3.6.ebuild +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 1999-2013 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=4 -inherit eutils - -DESCRIPTION="A set of libraries for userspace access to RTAS on the PowerPC platform(s)" -HOMEPAGE="https://sourceforge.net/projects/librtas/" -SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" - -LICENSE="IBM" -SLOT="0" -KEYWORDS="ppc ppc64" -IUSE="" - -DOCS="README" - -src_prepare() { - epatch "${FILESDIR}"/${P}-symlink.patch - sed -i -e '/install_doc/d' Makefile || die -} diff --git a/sys-libs/librtas/librtas-1.3.8.ebuild b/sys-libs/librtas/librtas-1.3.8.ebuild deleted file mode 100644 index 6609d3be98db..000000000000 --- a/sys-libs/librtas/librtas-1.3.8.ebuild +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 1999-2013 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=4 -inherit eutils - -DESCRIPTION="A set of libraries for userspace access to RTAS on the PowerPC platform(s)" -HOMEPAGE="https://sourceforge.net/projects/librtas/" -SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" - -LICENSE="IBM" -SLOT="0" -KEYWORDS="~ppc ~ppc64" -IUSE="" - -DOCS="README" - -src_prepare() { - epatch "${FILESDIR}"/${P}-symlink.patch - sed -i -e '/install_doc/d' Makefile || die -} diff --git a/sys-libs/librtas/librtas-2.0.2.ebuild b/sys-libs/librtas/librtas-2.0.2.ebuild index 42b86f3bb0d9..ab22e30e38a5 100644 --- a/sys-libs/librtas/librtas-2.0.2.ebuild +++ b/sys-libs/librtas/librtas-2.0.2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -8,7 +8,7 @@ DESCRIPTION="A set of libraries for userspace access to RTAS on the PowerPC plat HOMEPAGE="https://github.com/ibm-power-utilities/librtas" SRC_URI="https://github.com/ibm-power-utilities/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" -LICENSE="IBM" +LICENSE="LGPL-2.1+" SLOT="0" KEYWORDS="ppc ppc64" IUSE="" diff --git a/sys-libs/libservicelog/Manifest b/sys-libs/libservicelog/Manifest index 30790a6723ce..2afd955a78ed 100644 --- a/sys-libs/libservicelog/Manifest +++ b/sys-libs/libservicelog/Manifest @@ -2,7 +2,9 @@ AUX libservicelog-1.0.1.patch 479 BLAKE2B 1bdebaed553372f76e4d42c8299d42ecd23d88 DIST libservicelog-1.0.1.tar.gz 673264 BLAKE2B 4ea60f194513dd2aeeb0f8f6c991d85d0b00438beec58515866e93c85f28e148d3bb9b6dae69a8c156f9209b1ec26da3ca8fc72b18d10e2d6078bf3bd3e1a356 SHA512 a4b2eaad7d382440767f33aded804732acc2828466e83a4596cc66a98ccfd53d048e9af5984b71a45b937bebf3526062d96f5c10be27d44dbbc808b980c1d7db DIST libservicelog-1.1.15.tar.gz 392259 BLAKE2B 886bbf4aa6d41b35fb978f2155a1025069dbffa98dc31add58687260ec503ebdd8b2d6802b473634a65dd9c429a4a307159a918361be057226b7ae9dc14422da SHA512 70cdf8340a8b0df39bc5669976feab022917b5884256370281ed3356633100cc9c7e69c6cc1bd0784bfedc65d388d9ecc50f6dd37e6ed19f796bb7f55bb436f7 DIST libservicelog-1.1.16.tar.gz 396055 BLAKE2B 2874acc4c6b405d5a16150de0d66f95e55d8ae375d2f8d3bda4daf4a9d7d34e7b2d52bc9c270880daf747664c740ee72d81d47978e73f2d7640efcb6b92a1e78 SHA512 7008a26c8b143b2e498b05cfb5da0c7b76b0ee56106e1d261e202b8ebc0c93abce719230b037fd6bcade078daa5c464428ea2adb466269f30951e909211ae307 -EBUILD libservicelog-1.0.1.ebuild 621 BLAKE2B 7089305141ea969aaced701af3e184ff4c42ee86aa889a1248592ca0b143361274cecbf49785f70508cfcd74ed26fdff0df1477c26b90a87d04a3d3c0a5439b5 SHA512 d2f801036ec9643dab72f32eb2f430280a58960c3e17d2a624ea6c36b30634ebfaf00127c8b11e276fc245b2af91cb6fc4e43f3670b4b51dac600c0f83788b84 -EBUILD libservicelog-1.1.15.ebuild 592 BLAKE2B ce044cdb0486083667e1573cfc8cc05a9f108e39c82919516509145b679aa03900497425a1a69a393944f568e8d6411691ac0350662abb1bdb6aa7e47fb669b8 SHA512 f55d9b77c760b770522a123b12ff0288eb0d4a9fa41366ebc56dd30325d4199f2cc033fa953217d2a7662e9857abd1c24dbdfa7ab5859c013365f0c7b6bbe8f1 -EBUILD libservicelog-1.1.16.ebuild 592 BLAKE2B ce044cdb0486083667e1573cfc8cc05a9f108e39c82919516509145b679aa03900497425a1a69a393944f568e8d6411691ac0350662abb1bdb6aa7e47fb669b8 SHA512 f55d9b77c760b770522a123b12ff0288eb0d4a9fa41366ebc56dd30325d4199f2cc033fa953217d2a7662e9857abd1c24dbdfa7ab5859c013365f0c7b6bbe8f1 +DIST libservicelog-1.1.18.tar.gz 453645 BLAKE2B bacbd3c24d97a563cc3d51872dd349780416914c8f300ba63cf43b666e18f3fc7693556ecfbb21cbb2d66e14ac2d26259f0a587a21cc70ad660626838fd4281f SHA512 a9c4a8c778c257cf9df3d35652d707ef5ff1df1bf40484a7c23bd547127d2eb0f3465ae524e2c4ab3cd67946431ed98ec876e8b4332b5f27df2e927309fd05f2 +EBUILD libservicelog-1.0.1.ebuild 624 BLAKE2B 8c2192ec4119c94a872c546963b5b6e422cf80e6b08443983c493bbd2b5572c5853bd3c5cc0f38dcb8581362fdcf9ca0e62e8c97dd1b7ffee63d9b548c4a8645 SHA512 12dbb28d4e203983a6768a0d5182d9966881ed95f3a3f79a27c4d34096f4ec2fccdd91ff8e1019d75c0446abef1e6d62eeb3e2279f2012072489375211725350 +EBUILD libservicelog-1.1.15.ebuild 595 BLAKE2B 2b5cd55655b168922c83db3797b6f79e2b4363ae33d1ac2e47d1139014610dcd448eda3cb1b5b5ead905ef3e5deb2deb763bf411d3f24359b1c66c65d7624024 SHA512 73be0a4926fc7e5dde1c137e10b63da37cb8b5f8cbf9886e5de0a13094895accc6df7a849b3c7d371e0373d176c1c44e1dc24f96ccc949668acdc90295eee6d1 +EBUILD libservicelog-1.1.16.ebuild 595 BLAKE2B 2b5cd55655b168922c83db3797b6f79e2b4363ae33d1ac2e47d1139014610dcd448eda3cb1b5b5ead905ef3e5deb2deb763bf411d3f24359b1c66c65d7624024 SHA512 73be0a4926fc7e5dde1c137e10b63da37cb8b5f8cbf9886e5de0a13094895accc6df7a849b3c7d371e0373d176c1c44e1dc24f96ccc949668acdc90295eee6d1 +EBUILD libservicelog-1.1.18.ebuild 600 BLAKE2B a7f55dc562daa645b011ad48e7dbfb4251112067242be2468e5cd1ce990498233593976e4afd9bfb663aa59affcb4dbb58110fd2d942a523f7caa5e45fefa9d2 SHA512 18506aee1d19f2cbbc3f061d6267b24f9c4e24773bba1423e6d9909f6bf70af8b7389b11a42dbe98ff251f04d243c70a3e44355f3641a65f7ee8bbda9302c169 MISC metadata.xml 343 BLAKE2B 88ff852b7b901d0f81c494ab49f283835edb7e312965526050fde66fcf0b259c197e0b1b312e09910a77257e4e1b8d8f3fd6c465b95a9fbe7288b8d64a4a6659 SHA512 42f1b8b76a107cfa61ae9db8b900aed22a3bc8e8d3573dbb3c507ebde688ef2c50f7f79847eb345e738365fbb99ba22d99aee56e302c6eed064379ddc1e3a710 diff --git a/sys-libs/libservicelog/libservicelog-1.0.1.ebuild b/sys-libs/libservicelog/libservicelog-1.0.1.ebuild index e8b758cffb27..938c0e483a31 100644 --- a/sys-libs/libservicelog/libservicelog-1.0.1.ebuild +++ b/sys-libs/libservicelog/libservicelog-1.0.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=0 @@ -10,7 +10,7 @@ SRC_URI="mirror://sourceforge/linux-diag/${P}.tar.gz" HOMEPAGE="http://linux-diag.sourceforge.net/servicelog/" SLOT="0" -LICENSE="IBM" +LICENSE="LGPL-2.1+" KEYWORDS="ppc ppc64" IUSE="" diff --git a/sys-libs/libservicelog/libservicelog-1.1.15.ebuild b/sys-libs/libservicelog/libservicelog-1.1.15.ebuild index a0b3fce98f48..1685e3e64c58 100644 --- a/sys-libs/libservicelog/libservicelog-1.1.15.ebuild +++ b/sys-libs/libservicelog/libservicelog-1.1.15.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2015 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=5 @@ -9,7 +9,7 @@ SRC_URI="mirror://sourceforge/linux-diag/${P}.tar.gz" HOMEPAGE="http://linux-diag.sourceforge.net/servicelog/" SLOT="0" -LICENSE="IBM" +LICENSE="LGPL-2.1+" KEYWORDS="~ppc ~ppc64" IUSE="static-libs" diff --git a/sys-libs/libservicelog/libservicelog-1.1.16.ebuild b/sys-libs/libservicelog/libservicelog-1.1.16.ebuild index a0b3fce98f48..1685e3e64c58 100644 --- a/sys-libs/libservicelog/libservicelog-1.1.16.ebuild +++ b/sys-libs/libservicelog/libservicelog-1.1.16.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2015 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=5 @@ -9,7 +9,7 @@ SRC_URI="mirror://sourceforge/linux-diag/${P}.tar.gz" HOMEPAGE="http://linux-diag.sourceforge.net/servicelog/" SLOT="0" -LICENSE="IBM" +LICENSE="LGPL-2.1+" KEYWORDS="~ppc ~ppc64" IUSE="static-libs" diff --git a/sys-libs/libservicelog/libservicelog-1.1.18.ebuild b/sys-libs/libservicelog/libservicelog-1.1.18.ebuild new file mode 100644 index 000000000000..d5fece7827ce --- /dev/null +++ b/sys-libs/libservicelog/libservicelog-1.1.18.ebuild @@ -0,0 +1,33 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DESCRIPTION="Provides a library for logging service-related events" +SRC_URI="mirror://sourceforge/linux-diag/${P}.tar.gz" +HOMEPAGE="http://linux-diag.sourceforge.net/servicelog/" + +SLOT="0" +LICENSE="LGPL-2.1+" +KEYWORDS="~ppc ~ppc64" +IUSE="static-libs" + +DEPEND=" + dev-db/sqlite:= + sys-libs/librtas +" +RDEPEND=" + ${DEPEND} + virtual/logger +" + +DOCS=( ChangeLog ) + +src_configure() { + econf $(use_enable static-libs static) +} + +src_install() { + default + find "${D}" -name '*.la' -delete || die +} diff --git a/sys-libs/libvpd/Manifest b/sys-libs/libvpd/Manifest index 81e5bf49f91c..42103b14ce93 100644 --- a/sys-libs/libvpd/Manifest +++ b/sys-libs/libvpd/Manifest @@ -1,7 +1,10 @@ +AUX libvpd-2.2.6-localstatedir.patch 688 BLAKE2B e1674fd78b6b863310a4f6a0c2f0f031a7e5009cf3e392fa373ef4b6a8de950632839cd5111876f1337527471c61bce34dea9c4f33259fad5607d65dd72c0493 SHA512 8ce3f73d5ef84922dfb7574cbf01adc9fd0d2eb34b9e9f56a57aa888944ef66cd4b35286b559dd4d0769a024693622896900adbfec391d316e20b533781dbe49 DIST libvpd-2.1.3.tar.gz 116493 BLAKE2B 12647984c54042d77944cdeb4132a2ddeaa51502a919d790d6bd5d479efb09c06a2dde983386d62a206f0b2c7eeeb8713ac53af20cc0f53e9c24bc18073d24fb SHA512 f5aac9253752552674ac6c54dd3e6dbdd7ff79867740076d6e19782940b809e53736a11e668978d8d73bf636d92d1daeb78080e5fd31c4febc2257e5497c373c DIST libvpd-2.2.4.tar.gz 374665 BLAKE2B d27cdf647c69cae2478b9286f255a9722d46c2817817da8f805f3385ece754df77505bb02e624babff66fc111ba80c26175e276ac35b7796c4a977b538ea81cb SHA512 89f7e235e957393fe33e484b23fce15fbf36274db6115e7245027a17b7535e387f835c048a7063f317f10de2351a78acf2ca72b10adee0020ce62a035bfe787e DIST libvpd-2.2.5.tar.gz 374311 BLAKE2B 1d0d793b958c46d6795097f5bd2f7bac3f9f9167aee0b21535d3a37114290f39cfdfb10f3789f995267312b898447f230263a0b08916f11490d56c2dd0573b4a SHA512 06969e61d2882a30ebff13b6432397edb0119adc0b0f8ea603973c6ef439320c39c1cbc218fab154d595fadc966bfef07a4a9c4e4ec8fd772cf7d396000864b0 -EBUILD libvpd-2.1.3.ebuild 624 BLAKE2B ea9a5f71c67d29e36b4795566f045e276e61f4f4a1b1f8f0885d6332cba023f7f5b557475f17577535dc542edbba85c476751f687545e9cb36f53d8fb70f99d4 SHA512 6cdc971a2aa280ce24825440c08c695282140983166767f27631bfc8f439400c1e51dbb7dc843be2690d0ed17744015c971e07442490cce657eb1bc3f98c2964 -EBUILD libvpd-2.2.4.ebuild 820 BLAKE2B 5dbed73b26d5f9228843594106c80d828707ba8c63a195287104744f0dd4e5cd533f8c6454db46b4ab36e88c7553ff492cffef308d98b6295e6ce8f6e9ccf26f SHA512 d3fae1e5629c32f8fc6bd8b36c0886a067d492373430a2a104566601c91132228b1f258dbe44e6d1443e042f18d31ef2006538a60571e10f8a38dca95b0834fb -EBUILD libvpd-2.2.5.ebuild 820 BLAKE2B 5dbed73b26d5f9228843594106c80d828707ba8c63a195287104744f0dd4e5cd533f8c6454db46b4ab36e88c7553ff492cffef308d98b6295e6ce8f6e9ccf26f SHA512 d3fae1e5629c32f8fc6bd8b36c0886a067d492373430a2a104566601c91132228b1f258dbe44e6d1443e042f18d31ef2006538a60571e10f8a38dca95b0834fb +DIST libvpd-2.2.6.tar.gz 374262 BLAKE2B b7741948aa62ad6221d28a674f765d085e1446c0bb45d7aa7a5f08599471023b2bb794ad5645c3b70af5806cd48cc87f117f9b4021e0f8c872ca48b748cc1e60 SHA512 17046eeb6ccc5372d465848eff7135cf6e9f876a2d82862e1d01a9f674b691958942e119f846bc3220c1e8f7eb549c5c7867d5d5e896072c733f400d202abc1d +EBUILD libvpd-2.1.3.ebuild 627 BLAKE2B f42721e2516d4548d78e1518a1f8da4b352580e70e763655802f424451c2c4c94d8234c36e21488c34d6142d9f42ab02a19dc0d56dfdd32ae2dded77c6c59fe9 SHA512 fe4edfc877569c9e2e09ecd54b85cf243e798a95bca7d08e7f9bea6410dbfdd81dfd0287b943a1426ef245334d775b1f88c871b6bf0faba2d1c66393cf548cf1 +EBUILD libvpd-2.2.4.ebuild 823 BLAKE2B 8ce15bbe055364f54d3255fd6d491806fd8cd8eaf5d4b4113931c3c6cd0115fd47c83cd1511ee48b2a0263408e64b4802e6a6693e02601df2c79ee8cf21c37a4 SHA512 ea4e275ec0248c3fe73303b41b9d4230c7e18b695ab9dcd574b684d2ca90acb5e15624894d1d85dc0902757703db09596b5bc34bbac77fbc427e1be3d4a9c4e3 +EBUILD libvpd-2.2.5.ebuild 823 BLAKE2B 8ce15bbe055364f54d3255fd6d491806fd8cd8eaf5d4b4113931c3c6cd0115fd47c83cd1511ee48b2a0263408e64b4802e6a6693e02601df2c79ee8cf21c37a4 SHA512 ea4e275ec0248c3fe73303b41b9d4230c7e18b695ab9dcd574b684d2ca90acb5e15624894d1d85dc0902757703db09596b5bc34bbac77fbc427e1be3d4a9c4e3 +EBUILD libvpd-2.2.6.ebuild 897 BLAKE2B 437dd60bd69a395ca74becc05d8f944dc73430acc0cf673d6597a05fbb420b5b9728b01688457ceac4a455579a43622e55204ab84629fee479476de47462ff99 SHA512 4277aca7fc9c1641949c766171df37fe1c116d1619eb817e30b5d8897bbbd828a2ec65ea457cfdb0018cbcbc8b33aa1690fd70e0bee577db61ba689889bf4574 MISC metadata.xml 343 BLAKE2B 88ff852b7b901d0f81c494ab49f283835edb7e312965526050fde66fcf0b259c197e0b1b312e09910a77257e4e1b8d8f3fd6c465b95a9fbe7288b8d64a4a6659 SHA512 42f1b8b76a107cfa61ae9db8b900aed22a3bc8e8d3573dbb3c507ebde688ef2c50f7f79847eb345e738365fbb99ba22d99aee56e302c6eed064379ddc1e3a710 diff --git a/sys-libs/libvpd/files/libvpd-2.2.6-localstatedir.patch b/sys-libs/libvpd/files/libvpd-2.2.6-localstatedir.patch new file mode 100644 index 000000000000..78a44a6351c6 --- /dev/null +++ b/sys-libs/libvpd/files/libvpd-2.2.6-localstatedir.patch @@ -0,0 +1,21 @@ +--- a/Makefile.am ++++ b/Makefile.am +@@ -66,6 +66,6 @@ + + install-exec-hook: + mkdir -p $(DESTDIR)/${sysconfdir}/udev/rules.d/ +- mkdir -p $(DESTDIR)/${localstatedir}/lib/lsvpd/ ++ mkdir -p $(DESTDIR)/${localstatedir}/lsvpd/ + install -D --mode=644 90-vpdupdate.rules \ + ${DESTDIR}/${sysconfdir}/udev/rules.d/90-vpdupdate.rules +--- a/Makefile.in ++++ b/Makefile.in +@@ -1046,7 +1046,7 @@ + + install-exec-hook: + mkdir -p $(DESTDIR)/${sysconfdir}/udev/rules.d/ +- mkdir -p $(DESTDIR)/${localstatedir}/lib/lsvpd/ ++ mkdir -p $(DESTDIR)/${localstatedir}/lsvpd/ + install -D --mode=644 90-vpdupdate.rules \ + ${DESTDIR}/${sysconfdir}/udev/rules.d/90-vpdupdate.rules + diff --git a/sys-libs/libvpd/libvpd-2.1.3.ebuild b/sys-libs/libvpd/libvpd-2.1.3.ebuild index 27e6ba634462..fc751d0e4407 100644 --- a/sys-libs/libvpd/libvpd-2.1.3.ebuild +++ b/sys-libs/libvpd/libvpd-2.1.3.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2013 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=4 @@ -7,7 +7,7 @@ DESCRIPTION="Library implementation for listing vpds" HOMEPAGE="https://sourceforge.net/projects/linux-diag/" SRC_URI="https://sourceforge.net/projects/linux-diag/files/libvpd/${PV}/libvpd-${PV}.tar.gz" -LICENSE="IBM" +LICENSE="LGPL-2.1+" SLOT="0" KEYWORDS="ppc ppc64" IUSE="" diff --git a/sys-libs/libvpd/libvpd-2.2.4.ebuild b/sys-libs/libvpd/libvpd-2.2.4.ebuild index 5c1e86328768..4f122900c089 100644 --- a/sys-libs/libvpd/libvpd-2.2.4.ebuild +++ b/sys-libs/libvpd/libvpd-2.2.4.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2015 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=5 @@ -8,7 +8,7 @@ DESCRIPTION="Library implementation for listing vpds" HOMEPAGE="https://sourceforge.net/projects/linux-diag/" SRC_URI="https://sourceforge.net/projects/linux-diag/files/libvpd/${PV}/libvpd-${PV}.tar.gz" -LICENSE="IBM" +LICENSE="LGPL-2.1+" SLOT="0" KEYWORDS="~ppc ~ppc64" IUSE="static-libs" diff --git a/sys-libs/libvpd/libvpd-2.2.5.ebuild b/sys-libs/libvpd/libvpd-2.2.5.ebuild index 5c1e86328768..4f122900c089 100644 --- a/sys-libs/libvpd/libvpd-2.2.5.ebuild +++ b/sys-libs/libvpd/libvpd-2.2.5.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2015 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=5 @@ -8,7 +8,7 @@ DESCRIPTION="Library implementation for listing vpds" HOMEPAGE="https://sourceforge.net/projects/linux-diag/" SRC_URI="https://sourceforge.net/projects/linux-diag/files/libvpd/${PV}/libvpd-${PV}.tar.gz" -LICENSE="IBM" +LICENSE="LGPL-2.1+" SLOT="0" KEYWORDS="~ppc ~ppc64" IUSE="static-libs" diff --git a/sys-libs/libvpd/libvpd-2.2.6.ebuild b/sys-libs/libvpd/libvpd-2.2.6.ebuild new file mode 100644 index 000000000000..a85c190bf64e --- /dev/null +++ b/sys-libs/libvpd/libvpd-2.2.6.ebuild @@ -0,0 +1,38 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +inherit udev + +DESCRIPTION="Library implementation for listing vpds" +HOMEPAGE="https://sourceforge.net/projects/linux-diag/" +SRC_URI="https://sourceforge.net/projects/linux-diag/files/libvpd/${PV}/libvpd-${PV}.tar.gz" + +LICENSE="LGPL-2.1+" +SLOT="0" +KEYWORDS="~ppc ~ppc64" +IUSE="static-libs" + +DEPEND=" + >=dev-db/sqlite-3.7.8 + sys-libs/zlib +" +RDEPEND="${DEPEND}" +PATCHES=( + "${FILESDIR}"/${PN}-2.2.6-localstatedir.patch +) + +src_configure() { + # sysconfdir is used only to establish where the udev rules file should go + # unfortunately it also adds the subdirs on its own so we strip it down to + # dirname + econf \ + $(use_enable static-libs static) \ + --sysconfdir="$( dirname $(get_udevdir) )" +} + +src_install(){ + default + keepdir /var/lib/lsvpd + find "${D}" -name '*.la' -delete || die +} diff --git a/sys-libs/llvm-libunwind/Manifest b/sys-libs/llvm-libunwind/Manifest index 99a8dd26d503..839543a3a63f 100644 --- a/sys-libs/llvm-libunwind/Manifest +++ b/sys-libs/llvm-libunwind/Manifest @@ -1,19 +1,19 @@ DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9fafc01a594d7b11f63d10b6f88eca67a3cdf90b8055e410ede358d9be1f63fbe427f308e1337833447c0260d96e1c8 SHA512 c04f628b0924d76f035f615b59d19ce42dfc19c9a8eea4fe2b22a95cfe5a037ebdb30943fd741443939df5b4cf692bc1e51c840fefefbd134e3afbe2a75fe875 DIST libcxx-7.0.0.src.tar.xz 1652496 BLAKE2B 7c8e4b7743a775a5f41ef1a2e511b44ca67af32be03f4fec9a4f70b49b540a442724afd69a312d68719ace3eee9e3d600c7596bda68496212827e140da5a258e SHA512 5ebf8418bc9d311c1744c257ab7a26cf2436a64a47451905df70ec64b12d25ec33acf99e1b9d552fd54ed850bed8f53dffde2ea20292ecd9976eaa31f144caf5 -DIST libcxx-7.0.1rc2.src.tar.xz 1641280 BLAKE2B fec5ab41c7cdcc70582c812bd10bdcf6b400f865756bc60afbe4b84029c8ced4b519f1b3919baa381f086a0ef93b99f9f7bc47ec480ac2c49ef9c0e9d77e55b7 SHA512 04f1a26e21e082a685050c2f7696078d56e5a3b48e3b3916d6eb425b9b0b75354714faa5a78a2c003b9842215de07424b2d2361a0bdb3e4d6761d7cd28d53ded +DIST libcxx-7.0.1.src.tar.xz 1638188 BLAKE2B 541d27c3801895d59ad06b15de5fe9ff0d9b5b3ef393a5fad05a12a52dd6453ecc530b0ce3129624a27e959d3c9c5f7066ebb57fd85caca538ebf4f990aa6967 SHA512 b3ad7ad95bdcf2d902b29de8a0b757d4dbc220bc1a22a813d6bcec15a34b3aa42e85c59f4cecbb318c799ca611550b44c328b37278f4349b984016ad4556c1d8 DIST libcxxabi-6.0.1.src.tar.xz 528356 BLAKE2B b301b750b2928864d3fc51e66cf91aab6837636ec2bce706b9a97296ec96af4bd2e80b1bf80c9b4afe449335ee12bbdd1905433c27e1770e16bc306baf206927 SHA512 bbb4c7b412e295cb735f637df48a83093eef45ed5444f7766790b4b047f75fd5fd634d8f3a8ac33a5c1407bd16fd450ba113f60a9bcc1d0a911fe0c54e9c81f2 DIST libcxxabi-7.0.0.src.tar.xz 535792 BLAKE2B caad3e2c9a89fcb8ba6b2dcaa23681b5a4f72330e77bdd8b48c6f1382d4414577b2ca130486cefce7a7ec2622712effd9aca0758d5f02d5ac23cedd0b5076be2 SHA512 95aa8f60477739e6d6eb6ba1e32c98928e1b8104d18d659336cf7f1c5bfd1ed505015077dfbe39329c0c9d2b5b428d853e5652b0106c0cde317d2d013ebd1cf0 -DIST libcxxabi-7.0.1rc2.src.tar.xz 535104 BLAKE2B 802bdada516a0dafceab55ecde19b88ba485f2254bc47af72e1caffc3c05f90fa721405c57bebaf8761c2c3ea1c1ae18afc10b3fbcd220d7f04699c8caa6de0c SHA512 acee0a8b782f351f7a4384a6c8054d7511a0a3af5a98973aab213363ead55a91673853b16f24cc6120c3420b089e86f9f4524491ceaba539e9414739fc6e1772 +DIST libcxxabi-7.0.1.src.tar.xz 535096 BLAKE2B 212330e8dbde98280b1bcd4f36ea3f30b69af9816e6c252bd9640c45501536ce38e8b57f3e82195d2a33cb1286651f7cad82713c71e8012e512e04c4ff7bad64 SHA512 92e8d28f329e9a8cce296f0fddd88324198f722db3a748bb2164b28ae8eca6047c89ed1e70af00bbedd93ce4285b2ab1e0307a65b88dc60e581eebfd6cbd2038 DIST libunwind-4.0.1.src.tar.xz 63388 BLAKE2B f49772beabaa8519a5f8dbbaef9c2d6554468a66b89a5f012946d59f772fe864809a5c95b726bcb4c059ca551a4eb023a88f4fa618756b34fef2058e272467e6 SHA512 8a0552a8ab830010d81420f4b778a3b831bff85b19bcce972958fc30e1ba5a2fa26a3deba499985a43dd7a103690775f6a20e7b3edda55f4eaff3541002d6b59 DIST libunwind-5.0.2.src.tar.xz 72340 BLAKE2B 8a62bd91f6decae1a9a51df19f708fcdf72a6fe6e57a5848c5dd0d36ff2dc64db8a0b3af469cdd5e787b9301f2718df0981f91857ecbc7a5f5d95a1a053652bc SHA512 137c4b269bff053d532a373e9f696ca68ad0bbf606a18dc98597e00fcfc6ce21d74bc2a0c03b96444654d688fa97d544c6f6b70822fcf7e190ed96f193ddc6ba DIST libunwind-6.0.1.src.tar.xz 77036 BLAKE2B b6c293285896c8ff1f64bb56eee5a88b102b7ed9902d46436ee3cb79f204f230fd08a07d39c7fa9aeeddd093036f2bb9af38dd54268099ea9e51e12a71ff4adb SHA512 78568c28720abdd1f8471c462421df9965e05e1db048689d16ac85378716c4080ec1723af78e9f61d133b0ff82ac8c1f0dde7fd42d194485f62c1a17c02db37f DIST libunwind-7.0.0.src.tar.xz 79316 BLAKE2B 2062e4c8fe00b8a72df5cc6a1ae688e2a142687a713d9181764f7d103c67ad1c06c62cb962d35fd3f99e4d058808188a40198d8de6635147fc06873ac489bcee SHA512 9ee573089f4d0bfb57bd9012e3ad3308fe53216a8e6745aa35dfaa16e56c1adbfc419e336e235a8e76f57b01b9e6e6c9ceff624bd99a90f519137e62f141738d -DIST libunwind-7.0.1rc2.src.tar.xz 79804 BLAKE2B a287946deef0ad9cd3b7ef8883559163cbc9154d6f31271544fe728bc89f80c298c2d9efd197143559793ccffd56470e90d1c0b02a5475ebb96ded12e6d47a12 SHA512 6eadd4a7375f1f474005a054d92552029602a5fc25293e0e9934f92313cce6b70006c9f9e99b7c417e36ba3da2e8cccac15125613c9f8b4de3d1bb870ec166d8 +DIST libunwind-7.0.1.src.tar.xz 79784 BLAKE2B c426ef661d1c5ba8abfdb7c155b44d8c9301e2254031cff9fcb0634f61d7374779095be3118c0a29c69e60c63a32405334242413625ece8c5c9130d58bedd865 SHA512 e6203e77691c7039496da09e55d27a994a0e273ab0ef10df2f0b9345fead11d855413342a7ccc7b641c3f06053210a8822ba39e9f5b8624384bf1fa456deb969 EBUILD llvm-libunwind-4.0.1.ebuild 1094 BLAKE2B dec5d0847983833e461635ac5711b5d253963650aed87678277bec86d1334ae9348d26605e20acf2a8d2405e891dd10c9303abf7d243ed86e36c8f3e3f12b83b SHA512 3fb7283eea0b4282c549d7cf2cee1aea0f9d28b7689f5b83a32893c32ebfabc703eb0328593109db96a86351b639bc3e60572c7de93fbed18dd359a14b352386 EBUILD llvm-libunwind-5.0.2.ebuild 1094 BLAKE2B 3378498096da36b9cbd6e70c9f2646cf6215f6d964e0a991e389c33af1a1614bc0c0dd404b58141d64513a22709e1755c79f4466b3cf7b43515f623927f766f0 SHA512 cd9740fad0a59488d543fa2af2a2908457180840999d463071bb557d45214e0cf04069f922e90e0a3b3f8144b8966d2f3564c098561a2ae0511264d1eb2b104a EBUILD llvm-libunwind-6.0.1.ebuild 3742 BLAKE2B a2e7fc30c8084cf48c4fd795c78351081cd58408eb8f60fe8c09bf8b87196c9e4fbb471da223f36369a25eecd8cdd6d92abae5cd7544729c50c47c55f0232c6a SHA512 6367327da3e0fae97282370e2762382588daf6e59d9f8ec882d52b974cb9bcd5209dd1f37a7c9e94d15cc411f4212b94b332aac5dd3d652ebb38893f74df8391 -EBUILD llvm-libunwind-7.0.0.ebuild 3744 BLAKE2B bd6b480a65c15c7d38043a4267bf1e02435a403a87b3280716e2de1e5dcf3bde6318bf7e361e309c3382b47a690b2a6fc42fd73c5c428ab0c70bbed62ad46ac6 SHA512 3095db45a2689d0a9fa6cc5550f5a897d2de00e3cbd07417e71e52dec301850d90a8e1f9dfd202c9f6485a9941d194704cf69825ff3e6252ebd73d32635c9a17 -EBUILD llvm-libunwind-7.0.1_rc2.ebuild 3753 BLAKE2B 009b92481b33126c88f44c6972d6e67f1da4115cce5650ed1d2d189b48c2cb2d973ffb587621bdd588cd29f5d99237aeac69956e4a608691d7a1d44ce97ccb21 SHA512 84969ebbd820798ba0bd56b2bb821057dad992d1fd6dab7df85e24e1addd58f03b8df11d81490cdb81608b5aff7c0c1d4bffc4e7be81276f13781da4eb63dad0 +EBUILD llvm-libunwind-7.0.0.ebuild 3746 BLAKE2B 5f063fb9affa4730b2310d4c79d04699744a18cf0470e4a7463372f94933df9604727ad0e6d68097d830b48f0bb66228a5601a30655004e3cf648c00684cbaad SHA512 87766c87aaa2fa5c186fae3aa97692448da5cfca29510b428c8d69e0803e37a8d41b03dba68b8cf734f7229bb023e444fe6e3f26966909dfd2857068351b9205 +EBUILD llvm-libunwind-7.0.1.ebuild 3746 BLAKE2B 5f063fb9affa4730b2310d4c79d04699744a18cf0470e4a7463372f94933df9604727ad0e6d68097d830b48f0bb66228a5601a30655004e3cf648c00684cbaad SHA512 87766c87aaa2fa5c186fae3aa97692448da5cfca29510b428c8d69e0803e37a8d41b03dba68b8cf734f7229bb023e444fe6e3f26966909dfd2857068351b9205 EBUILD llvm-libunwind-7.0.9999.ebuild 3885 BLAKE2B b4b67285b574900596fe96caaa7733569686e2ddf898eb506b509de25895798e5521377c06503c8206517016a11060913399584072758114b9f0ce9c9f00cf66 SHA512 0e47757fb33b1b59cd8d989953b34ec22f01f993ce5e91d3390551a6b8b83df7678c4e747f297dbd1c76a21f99d1a1309b024b754d60e9b8fe8b3e606bc3cec0 EBUILD llvm-libunwind-9999.ebuild 3860 BLAKE2B 177f9e223b61e3bd3a6fec78ff0b3d2efa1220228d55f78eb41a200518441d8b617998f13642338e91ff3f56dd224c1e1382df5031060c1783440ad20223d069 SHA512 b0cdcbe531188ffa9f7e294136a9238a79441b0768144116784fbf3e647b3fef11eb6a4e5569f08e7e7092d4aec46843c15a1c2b3b96ec63ee64028a0fb29c83 MISC metadata.xml 302 BLAKE2B 1cdee7813ed9a3766b2eddccd14f9e0576ba5cc7f812d7af4f35c8c2e5991790f3800c6473c37da90d72804832fd9af969a2e3bf7aa625f0d3a32da1dbcefacf SHA512 3afaef82e6a495a81e221524ae7604dc170ef5c103333728674faf0417c45ba7996118c10466eaa24f8feef9ed8f0fc60d535a5195462317d61c61a531c8a285 diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-7.0.0.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-7.0.0.ebuild index a276429001f4..a0c7316b8bb5 100644 --- a/sys-libs/llvm-libunwind/llvm-libunwind-7.0.0.ebuild +++ b/sys-libs/llvm-libunwind/llvm-libunwind-7.0.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -22,7 +22,7 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${MY_P}.tar.xz LICENSE="|| ( UoI-NCSA MIT )" SLOT="0" -KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-fbsd" +KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd" IUSE="debug +static-libs test" RESTRICT="!test? ( test )" diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-7.0.1.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-7.0.1.ebuild new file mode 100644 index 000000000000..a0c7316b8bb5 --- /dev/null +++ b/sys-libs/llvm-libunwind/llvm-libunwind-7.0.1.ebuild @@ -0,0 +1,143 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} ) +inherit cmake-multilib llvm multiprocessing python-any-r1 + +MY_P=libunwind-${PV/_/}.src +LIBCXX_P=libcxx-${PV/_/}.src +LIBCXXABI_P=libcxxabi-${PV/_/}.src + +DESCRIPTION="C++ runtime stack unwinder from LLVM" +HOMEPAGE="https://github.com/llvm-mirror/libunwind" +SRC_URI="https://releases.llvm.org/${PV/_//}/${MY_P}.tar.xz + test? ( + https://releases.llvm.org/${PV/_//}/${LIBCXX_P}.tar.xz + https://releases.llvm.org/${PV/_//}/${LIBCXXABI_P}.tar.xz )" + +LICENSE="|| ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd" +IUSE="debug +static-libs test" +RESTRICT="!test? ( test )" + +RDEPEND="!sys-libs/libunwind" +# llvm-6 for new lit options +DEPEND=" + >=sys-devel/llvm-6 + test? ( >=sys-devel/clang-3.9.0 + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )" + +S=${WORKDIR}/${MY_P} + +# least intrusive of all +CMAKE_BUILD_TYPE=RelWithDebInfo + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +src_unpack() { + default + + if use test; then + mv "${LIBCXX_P}" libcxx || die + mv "${LIBCXXABI_P}" libcxxabi || die + fi +} + +multilib_src_configure() { + local libdir=$(get_libdir) + + local mycmakeargs=( + -DLLVM_LIBDIR_SUFFIX=${libdir#lib} + -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug) + -DLIBUNWIND_ENABLE_STATIC=$(usex static-libs) + -DLLVM_INCLUDE_TESTS=$(usex test) + + # support non-native unwinding; given it's small enough, + # enable it unconditionally + -DLIBUNWIND_ENABLE_CROSS_UNWINDING=ON + ) + if use test; then + local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) + local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")} + + [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" + + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}" + -DLIBUNWIND_LIBCXX_PATH="${WORKDIR}"/libcxx + ) + fi + + cmake-utils_src_configure +} + +build_libcxxabi() { + local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)" + local CMAKE_USE_DIR=${WORKDIR}/libcxxabi + local BUILD_DIR=${BUILD_DIR}/libcxxabi + local mycmakeargs=( + -DLIBCXXABI_LIBDIR_SUFFIX= + -DLIBCXXABI_ENABLE_SHARED=ON + -DLIBCXXABI_ENABLE_STATIC=OFF + -DLIBCXXABI_USE_LLVM_UNWINDER=ON + -DLIBCXXABI_INCLUDE_TESTS=OFF + + -DLIBCXXABI_LIBCXX_INCLUDES="${WORKDIR}"/libcxx/include + -DLIBCXXABI_LIBUNWIND_INCLUDES="${S}"/include + ) + + cmake-utils_src_configure + cmake-utils_src_compile +} + +build_libcxx() { + local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/libcxxabi/lib -L${BUILD_DIR}/$(get_libdir)" + local CMAKE_USE_DIR=${WORKDIR}/libcxx + local BUILD_DIR=${BUILD_DIR}/libcxx + local mycmakeargs=( + -DLIBCXX_LIBDIR_SUFFIX= + -DLIBCXX_ENABLE_SHARED=ON + -DLIBCXX_ENABLE_STATIC=OFF + -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF + -DLIBCXXABI_USE_LLVM_UNWINDER=ON + -DLIBCXX_CXX_ABI=libcxxabi + -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${WORKDIR}"/libcxxabi/include + -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF + -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) + -DLIBCXX_HAS_GCC_S_LIB=OFF + -DLIBCXX_INCLUDE_TESTS=OFF + ) + + cmake-utils_src_configure + cmake-utils_src_compile +} + +multilib_src_test() { + # build local copies of libc++ & libc++abi for testing to avoid + # circular deps + build_libcxxabi + build_libcxx + mv "${BUILD_DIR}"/libcxx*/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die + + cmake-utils_src_make check-unwind +} + +multilib_src_install() { + cmake-utils_src_install + + # install headers like sys-libs/libunwind + doheader "${S}"/include/*.h +} diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-7.0.1_rc2.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-7.0.1_rc2.ebuild deleted file mode 100644 index f2c9b67e6c7e..000000000000 --- a/sys-libs/llvm-libunwind/llvm-libunwind-7.0.1_rc2.ebuild +++ /dev/null @@ -1,143 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -: ${CMAKE_MAKEFILE_GENERATOR:=ninja} -# (needed due to CMAKE_BUILD_TYPE != Gentoo) -CMAKE_MIN_VERSION=3.7.0-r1 -PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} ) -inherit cmake-multilib llvm multiprocessing python-any-r1 - -MY_P=libunwind-${PV/_/}.src -LIBCXX_P=libcxx-${PV/_/}.src -LIBCXXABI_P=libcxxabi-${PV/_/}.src - -DESCRIPTION="C++ runtime stack unwinder from LLVM" -HOMEPAGE="https://github.com/llvm-mirror/libunwind" -SRC_URI="https://prereleases.llvm.org/${PV/_//}/${MY_P}.tar.xz - test? ( - https://prereleases.llvm.org/${PV/_//}/${LIBCXX_P}.tar.xz - https://prereleases.llvm.org/${PV/_//}/${LIBCXXABI_P}.tar.xz )" - -LICENSE="|| ( UoI-NCSA MIT )" -SLOT="0" -KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-fbsd" -IUSE="debug +static-libs test" -RESTRICT="!test? ( test )" - -RDEPEND="!sys-libs/libunwind" -# llvm-6 for new lit options -DEPEND=" - >=sys-devel/llvm-6 - test? ( >=sys-devel/clang-3.9.0 - $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )" - -S=${WORKDIR}/${MY_P} - -# least intrusive of all -CMAKE_BUILD_TYPE=RelWithDebInfo - -python_check_deps() { - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -pkg_setup() { - use test && python-any-r1_pkg_setup -} - -src_unpack() { - default - - if use test; then - mv "${LIBCXX_P}" libcxx || die - mv "${LIBCXXABI_P}" libcxxabi || die - fi -} - -multilib_src_configure() { - local libdir=$(get_libdir) - - local mycmakeargs=( - -DLLVM_LIBDIR_SUFFIX=${libdir#lib} - -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug) - -DLIBUNWIND_ENABLE_STATIC=$(usex static-libs) - -DLLVM_INCLUDE_TESTS=$(usex test) - - # support non-native unwinding; given it's small enough, - # enable it unconditionally - -DLIBUNWIND_ENABLE_CROSS_UNWINDING=ON - ) - if use test; then - local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) - local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")} - - [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" - - mycmakeargs+=( - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}" - -DLIBUNWIND_LIBCXX_PATH="${WORKDIR}"/libcxx - ) - fi - - cmake-utils_src_configure -} - -build_libcxxabi() { - local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)" - local CMAKE_USE_DIR=${WORKDIR}/libcxxabi - local BUILD_DIR=${BUILD_DIR}/libcxxabi - local mycmakeargs=( - -DLIBCXXABI_LIBDIR_SUFFIX= - -DLIBCXXABI_ENABLE_SHARED=ON - -DLIBCXXABI_ENABLE_STATIC=OFF - -DLIBCXXABI_USE_LLVM_UNWINDER=ON - -DLIBCXXABI_INCLUDE_TESTS=OFF - - -DLIBCXXABI_LIBCXX_INCLUDES="${WORKDIR}"/libcxx/include - -DLIBCXXABI_LIBUNWIND_INCLUDES="${S}"/include - ) - - cmake-utils_src_configure - cmake-utils_src_compile -} - -build_libcxx() { - local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/libcxxabi/lib -L${BUILD_DIR}/$(get_libdir)" - local CMAKE_USE_DIR=${WORKDIR}/libcxx - local BUILD_DIR=${BUILD_DIR}/libcxx - local mycmakeargs=( - -DLIBCXX_LIBDIR_SUFFIX= - -DLIBCXX_ENABLE_SHARED=ON - -DLIBCXX_ENABLE_STATIC=OFF - -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF - -DLIBCXXABI_USE_LLVM_UNWINDER=ON - -DLIBCXX_CXX_ABI=libcxxabi - -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${WORKDIR}"/libcxxabi/include - -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF - -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) - -DLIBCXX_HAS_GCC_S_LIB=OFF - -DLIBCXX_INCLUDE_TESTS=OFF - ) - - cmake-utils_src_configure - cmake-utils_src_compile -} - -multilib_src_test() { - # build local copies of libc++ & libc++abi for testing to avoid - # circular deps - build_libcxxabi - build_libcxx - mv "${BUILD_DIR}"/libcxx*/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die - - cmake-utils_src_make check-unwind -} - -multilib_src_install() { - cmake-utils_src_install - - # install headers like sys-libs/libunwind - doheader "${S}"/include/*.h -} diff --git a/sys-libs/newlib/Manifest b/sys-libs/newlib/Manifest index 6764bca24de2..d43499d3230e 100644 --- a/sys-libs/newlib/Manifest +++ b/sys-libs/newlib/Manifest @@ -6,12 +6,12 @@ DIST newlib-2.2.0.tar.gz 16521910 BLAKE2B 530290c8f219774885e3c408889b7f58bbeefe DIST newlib-2.3.0.20160104.tar.gz 17674117 BLAKE2B abdfd902e502da32862d8151bf11bd778548cc930bcd2e0e546f5b23c075d6448f3f85e7b4388d64fbf255a5f3b893ace6e13405115a7dc0e3ac5c8846722429 SHA512 d83ce298b1b72eabf92e4ec14af3afdf3122e34aff5e320295a398df077235a78aa87148895b441a4f7de3047815e7ce13ea06a06135dd86b69a200236514293 DIST newlib-2.4.0.tar.gz 17574364 BLAKE2B d97be2fe2fe93629230a2b0b1dbf23b2062fab54921e658bae9438fb42a1af975d763f2643352b5dbc3027faffa76ff97170aed9f5d6fb33ae4c6d947f1b608b SHA512 c60665e793dce2368a5baf23560beb50f641e1831854d702d1d7629fb6e9200cf814527f29796792a3d2dff81afee4255723df99ceb0732f99dd9580a17d2ac0 DIST newlib-2.5.0.tar.gz 17912392 BLAKE2B bc89491758d59f3529c72308e963c5b3e39044d6d586ef3814cc19cf55aee33948656c544df7dfcbe3915105e7373f53d7b2baf96b9b8147e3af780c1d08e670 SHA512 4c99e8dfcb4a7ad0769b9e173ff06628d82e4993ef87d3adf9d6b5578626b14de81b4b3c5f0673ddbb49dc9f3d3628f9f8d4432dcded91f5cd3d27b7d44343cd -EBUILD newlib-2.0.0.ebuild 1598 BLAKE2B c6a79f7150464d3998c31c0413c1a265266c170d49974ef3d03bbc7e672f456fff261f18597bcdbe0eaeef6a66660c1484ebbc4c97f8ab2b5c3871905ab1b0b0 SHA512 cb691c209bc9089ae55e0a2418b24a509524e1547814c28092da85e918a7820c88a57034f6f32453f5d9671390b375feb1e418384e8f92cc4e6812600c31fc45 -EBUILD newlib-2.1.0.ebuild 1693 BLAKE2B 02e62abf711192dad669a15cd560f077818c4acf2a736647ef80c8206b848c6a40862a89f10c52e65d0cd4f0f85cc7d056a0fba4406d4fd7cc563bab06c45ccb SHA512 77e0e9d6c31bc1fb0dc9507006b82720a862c85fc8b0bd77598c3cafb31edb9c6d60f8ad8379ac02275e097b57dd576ee3dff41531cfff8cacbe1c1eef5b6437 -EBUILD newlib-2.2.0.20150423.ebuild 1810 BLAKE2B 6fa6c3eef0952bbf86fe6d0e14701e4b96bc673e317f5b1a00f7b6dae154f4e95f85b11e849f60680dde7d78b514abf72bcffc1445f75240fae53662297c381b SHA512 291a186ffc821c70241c71051f5fa84305ed7721ef3c54e8e5ab8ee5fee055094d5095953be252bf2b672a65c656f4ae63539f363df2cb096b6fe527809f646b -EBUILD newlib-2.2.0.ebuild 1828 BLAKE2B 0421266bc2227bffe4a7a0a7ea16a05ad60adafc5c3096e2a417533f304049d6e9e7de5ba4c128ae22718710faaed1ab7c82a6f2a6183af93582be7ea962acbd SHA512 b243506f0b0cd7cebe1fee7270f9f7acc11557c4a211274f9578bd224e4a2b2a8f8dc26dd06ef4be60ce75b7b6dd315130b3944d2d786439b31a5801fe9cfc38 -EBUILD newlib-2.3.0.20160104.ebuild 1812 BLAKE2B a26ce8367ca5d6a37175918a045e221af0458e8f2f03ebc5d9ac7534b07b9c7404138c8fe793abd0f9cca999c53aa39176cc9911d425f1c8c37dea9e37bc407b SHA512 703cf1eeb333bbf1b701d8d68a9fc9146fb61a213defaa38592f88c343f6ef145af34d8e2b7cd08bdbc1afc9e1641d43c9ad57cfb20b3e5df38fd9638e5652e9 -EBUILD newlib-2.4.0.ebuild 2005 BLAKE2B 74bb441de26a3ad3ac654acc6a144888820d3b38e0f02cdbbc9ba43f5491d5e8dc7e4c2d980b37610cdc03bc2a437256e74b2c6dacd2e316a73ee422018f485b SHA512 23013ed713a7353c25f19c8dee4a2e7f9b905c8e692cc3b5ab17e0420675997edf1c05ebbfceb2ffbc4bccbe431a14b96738c819fca8b3351bde20dfac32c6f4 -EBUILD newlib-2.5.0.ebuild 4090 BLAKE2B 61bbefc5bff09cdf703584b98717a326cc73b8675c3f6a84f5ee8bf29883f1d29c3bacd40136ff2d5add73e1fee73901213f06526dc5620a5c751f82f755a27f SHA512 880a2741bc78097b7908a4aa38d867b18ca0eb9d3797de1ff3b7930c602d2c5d39d796d30bf5d067e74cd858e9d3efb0b0ec7dbdf022c16ec3810455a3977e93 -EBUILD newlib-9999.ebuild 4090 BLAKE2B 61bbefc5bff09cdf703584b98717a326cc73b8675c3f6a84f5ee8bf29883f1d29c3bacd40136ff2d5add73e1fee73901213f06526dc5620a5c751f82f755a27f SHA512 880a2741bc78097b7908a4aa38d867b18ca0eb9d3797de1ff3b7930c602d2c5d39d796d30bf5d067e74cd858e9d3efb0b0ec7dbdf022c16ec3810455a3977e93 +EBUILD newlib-2.0.0.ebuild 1548 BLAKE2B 5ada6e1c520dc24259411de2cdc772fec78dda6d236ded8606195b9cac5b9224c317d79a959c7f866bffb76f7b201785f532418b94ccaedb66270eb0ff7339b9 SHA512 088ba22e37489af8607b6443fe205eb38ba169e42890d2b2b07e2c551726c20fddf96e682c2678613e762a18a99ab0a19635eb1526df566e312c269790b6f0df +EBUILD newlib-2.1.0.ebuild 1643 BLAKE2B ef0b8e3f5d02317b3baf60c278ccf9f86e7092a295ce022215605d890be0e91fafdf91c71f35420d892e6b5842bbe7def02e2d2f8675dd7e728bdb8a63ea2cfe SHA512 33d38543359ee921ad764baded7830f26414fc6b7032084c3b991d87a79a6d07496ca093219fd2e637d4de5c19dcdc4e0c2c739809b43d3fe8e91174dff7f352 +EBUILD newlib-2.2.0.20150423.ebuild 1760 BLAKE2B 3b08f9790d34ec9c928e1abe4befa5e273f96d95dc6702e4df733d6d4654d44161cea48c3abdfe0836119411fc5e4fcef8645c98d5de12390b1ced739053576b SHA512 6ca9287a28ef3374c2d6d2887251ca58682dcda6785365cf66baa177038eb0d4553d906c267b2ec3ec84bf74b0beea2fab21ae5c4b6c9f6352000703f70d912f +EBUILD newlib-2.2.0.ebuild 1778 BLAKE2B 1b2808f9adf45af3f55ea1d7d52d1e129424d01d2511020ddb9908163a439c96b400c0d4ff01dd5fa695fd560a0375c1fec16773db4523091f5e5ba21ac3ad89 SHA512 f2d7f9d926db20b2b3c36a244d4ebe95818d7b0accb87b1b0f073aa53ff866d58d5fd92ee82999f130fe590ee42918c3693636d809f68c5ddc389973d42a9de6 +EBUILD newlib-2.3.0.20160104.ebuild 1762 BLAKE2B 59b4544ef0f48831064e427dd9e2fdb29dfed749c2a87ac3f8b7e1c88d7e2e1a6cc4f137648d9d3d82fb2089a85f572149467e4ebca6f1c8ce86c84b9b88d0b9 SHA512 d0f28b3298942ac6a182b953f19f61ee6fcef13fd62a74e23d2c65cac06c33a06c84801a32e760b541b53c7bf467dbce664c7904ec89d9359ebecd937035c841 +EBUILD newlib-2.4.0.ebuild 1955 BLAKE2B 76bfb9237a4171f26e3e0756864e9c432a7f8856e61f712ac581874b41e11d1024f86fb15666d2f4254918fb87d65d3c4f124d05a01b42273a4f00f2c541fdc5 SHA512 53e7012a782b3004e1636beb759c5dc1872ab52c68bd7fb42b1ebd1c810bb57e2fd67492bed4edc5595fd2bcc9c473b516612cea93f6d98cb39dcce43b75fd54 +EBUILD newlib-2.5.0.ebuild 4040 BLAKE2B 89d2eea47609958ae3a6fe32f527ed7cdff94b430f40fe4bdd12714e72dfcdce4dcc59d8e2a8971d54d0a880d227ac557741f374c30d53e84e59b73ee8fe72fd SHA512 e9c40057893176881fe811d84eb6e1ff5bb82c02cbf3bc1d4cfbb346a1960dacdce183d9e5c10df1cf23daa2bfd01d72712b811f4a1719436a4109a9e904df51 +EBUILD newlib-9999.ebuild 4040 BLAKE2B 89d2eea47609958ae3a6fe32f527ed7cdff94b430f40fe4bdd12714e72dfcdce4dcc59d8e2a8971d54d0a880d227ac557741f374c30d53e84e59b73ee8fe72fd SHA512 e9c40057893176881fe811d84eb6e1ff5bb82c02cbf3bc1d4cfbb346a1960dacdce183d9e5c10df1cf23daa2bfd01d72712b811f4a1719436a4109a9e904df51 MISC metadata.xml 413 BLAKE2B 03320244c40182ff9d503fd1d9c7c3847209eeb91081e7d4a3285ed43eba6a42e0f361f6b7601966df420dde2d4e93ca458816198c2f9ebaec82790359ce868b SHA512 37e46d117243b93e189177ada64acedc0d798dfe4859f29a7ef70b22fe44e6364a3445e345def7e48264cb2bf3047ac78637759bc04d9ed3d7ea339432adf7e4 diff --git a/sys-libs/newlib/newlib-2.0.0.ebuild b/sys-libs/newlib/newlib-2.0.0.ebuild index 053d58f02482..480700b42b49 100644 --- a/sys-libs/newlib/newlib-2.0.0.ebuild +++ b/sys-libs/newlib/newlib-2.0.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="4" @@ -62,7 +62,6 @@ src_compile() { src_install() { cd "${NEWLIBBUILD}" emake -j1 DESTDIR="${D}" install -# env -uRESTRICT CHOST=${CTARGET} prepallstrip # minor hack to keep things clean rm -fR "${D}"/usr/share/info rm -fR "${D}"/usr/info diff --git a/sys-libs/newlib/newlib-2.1.0.ebuild b/sys-libs/newlib/newlib-2.1.0.ebuild index fdf7d10a2f68..5b7a8941d191 100644 --- a/sys-libs/newlib/newlib-2.1.0.ebuild +++ b/sys-libs/newlib/newlib-2.1.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="4" @@ -67,7 +67,6 @@ src_compile() { src_install() { cd "${NEWLIBBUILD}" emake -j1 DESTDIR="${D}" install -# env -uRESTRICT CHOST=${CTARGET} prepallstrip # minor hack to keep things clean rm -fR "${D}"/usr/share/info rm -fR "${D}"/usr/info diff --git a/sys-libs/newlib/newlib-2.2.0.20150423.ebuild b/sys-libs/newlib/newlib-2.2.0.20150423.ebuild index c851572aa12a..b8982d522c94 100644 --- a/sys-libs/newlib/newlib-2.2.0.20150423.ebuild +++ b/sys-libs/newlib/newlib-2.2.0.20150423.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="4" @@ -74,7 +74,6 @@ src_compile() { src_install() { cd "${NEWLIBBUILD}" emake -j1 DESTDIR="${D}" install -# env -uRESTRICT CHOST=${CTARGET} prepallstrip # minor hack to keep things clean rm -fR "${D}"/usr/share/info rm -fR "${D}"/usr/info diff --git a/sys-libs/newlib/newlib-2.2.0.ebuild b/sys-libs/newlib/newlib-2.2.0.ebuild index a583773e9351..06ec36dcc2cb 100644 --- a/sys-libs/newlib/newlib-2.2.0.ebuild +++ b/sys-libs/newlib/newlib-2.2.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="4" @@ -75,7 +75,6 @@ src_compile() { src_install() { cd "${NEWLIBBUILD}" emake -j1 DESTDIR="${D}" install -# env -uRESTRICT CHOST=${CTARGET} prepallstrip # minor hack to keep things clean rm -fR "${D}"/usr/share/info rm -fR "${D}"/usr/info diff --git a/sys-libs/newlib/newlib-2.3.0.20160104.ebuild b/sys-libs/newlib/newlib-2.3.0.20160104.ebuild index 70750a911182..29a9d5b95949 100644 --- a/sys-libs/newlib/newlib-2.3.0.20160104.ebuild +++ b/sys-libs/newlib/newlib-2.3.0.20160104.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="4" @@ -74,7 +74,6 @@ src_compile() { src_install() { cd "${NEWLIBBUILD}" emake -j1 DESTDIR="${D}" install -# env -uRESTRICT CHOST=${CTARGET} prepallstrip # minor hack to keep things clean rm -fR "${D}"/usr/share/info rm -fR "${D}"/usr/info diff --git a/sys-libs/newlib/newlib-2.4.0.ebuild b/sys-libs/newlib/newlib-2.4.0.ebuild index 724e01a55fa8..120357a4dcaf 100644 --- a/sys-libs/newlib/newlib-2.4.0.ebuild +++ b/sys-libs/newlib/newlib-2.4.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="4" @@ -79,7 +79,6 @@ src_compile() { src_install() { cd "${NEWLIBBUILD}" emake -j1 DESTDIR="${D}" install -# env -uRESTRICT CHOST=${CTARGET} prepallstrip # minor hack to keep things clean rm -fR "${D}"/usr/share/info rm -fR "${D}"/usr/info diff --git a/sys-libs/newlib/newlib-2.5.0.ebuild b/sys-libs/newlib/newlib-2.5.0.ebuild index e59c79299cbf..6575c24051a7 100644 --- a/sys-libs/newlib/newlib-2.5.0.ebuild +++ b/sys-libs/newlib/newlib-2.5.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="6" @@ -115,7 +115,6 @@ src_compile() { src_install() { cd "${NEWLIBBUILD}" || die emake -j1 DESTDIR="${D}" install -# env -uRESTRICT CHOST=${CTARGET} prepallstrip if use nano ; then cd "${NEWLIBNANOBUILD}" || die diff --git a/sys-libs/newlib/newlib-9999.ebuild b/sys-libs/newlib/newlib-9999.ebuild index e59c79299cbf..6575c24051a7 100644 --- a/sys-libs/newlib/newlib-9999.ebuild +++ b/sys-libs/newlib/newlib-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="6" @@ -115,7 +115,6 @@ src_compile() { src_install() { cd "${NEWLIBBUILD}" || die emake -j1 DESTDIR="${D}" install -# env -uRESTRICT CHOST=${CTARGET} prepallstrip if use nano ; then cd "${NEWLIBNANOBUILD}" || die diff --git a/sys-libs/openipmi/Manifest b/sys-libs/openipmi/Manifest index 3bce2d2463b6..aac9ed076657 100644 --- a/sys-libs/openipmi/Manifest +++ b/sys-libs/openipmi/Manifest @@ -1,9 +1,11 @@ AUX openipmi-2.0.16-pthreads.patch 546 BLAKE2B 53d2f7473b0a5705eed3ff4acd3b635befe0a57041e06dd2c4660a1c04af307c0f40a0a5c89770b77442aa8386ce84e3006cd1bb88cc432b55f81cc8cec9c37e SHA512 cadbcb8a1c08b467ca550e2b8510a415ca50749e752baf3fe8cc59c67c0d6bce0009850510e02d36b306894cb1e84aac3e4d2f947c75d56f8e7443315e4f8902 AUX openipmi-2.0.21-tinfo.patch 818 BLAKE2B 5d647663899cc6b55c2c412d8bd8164ceddfdeeee42863b40781ee7317f3f23b1b6e0d466001ead51beba286ddfe195683fc36bdadb3f279da0a881f058aa028 SHA512 2b3f7f10f6f7f1a71973f0f8f125171c33ad9149bdcd808b9b76571ac2d5a403db0b23bde0fbcb7763fba6101b5015775a3563ed77197f4a50d7ca98812f6d6d +AUX openipmi-2.0.26-readline.patch 291 BLAKE2B 82885b89bda01db81472e6dd72883450dc83e78a2a8f6f49d0909d828009897f2bcd7218fbfc971c4f2a0e368e1a80024040ce17f23a3d349a1da7a56ea146dd SHA512 f2d401bfcc155f0488cf1f23942a177e29de6439b42a8521ff35e9cc61601ce00cd7e458f651e422ab8cee2f901b85431414dd8e2bcf41f633e0f09c82d27b23 +AUX openipmi-2.0.26-tinfo.patch 808 BLAKE2B fc7545b3610c9ba6a2d8d7075a8db3384659945bd7d85758342438f261fedce67bace7795a74ff6010f68d04d8ae33936b6c60780986c9e0d66e93061577132f SHA512 2deae71fd039126cb3dd0a348658ddbf568345c782c2467a4712d36006217f86eaf86950c821d36a400aea4cf18409684e8abd3b1e504928f5bc6d4cf943c4bb DIST OpenIPMI-2.0.22.tar.gz 3081893 BLAKE2B 6ec5ec7f61f3033a9d953df4b091522fa5bd891a93dfe648f807548e3dc0f5ffc0d15af9b687379e6749d7b97ee2fd6c7f9e713aaa7423b82bf099fb2d0fb6b8 SHA512 78017fc0b52ce6a83db45f595f50170410120c9f7394429869c177ee40ea5b924bcc0e36bb60f9368a75a2f78ff71c70ae3631ba55a207cfb6eb4f62aa44ff89 -DIST OpenIPMI-2.0.24.tar.gz 3211633 BLAKE2B 56658e0c06ae2d192415fb5d71fe13afc5819a7b2412af8f51d829a11f3ad10faf592b5da4cb51e43667303385ca2c1f8413045bc444f045d6f3e0f6dc553682 SHA512 de1e0a46d7e25af06e07a0f5b8e23deac14d2bca854fbe09b221e776b46b5cf13b5af6b7ee1e8d0984eb792aa4bd095d66d98775674809feafe0a357ca95d677 DIST OpenIPMI-2.0.25.tar.gz 3212723 BLAKE2B eb0872fe4b06b84cdb6a4e301d4c80940351d8bf14d50e5cd67525a09ba98674cd890852d4692d6b77c4e935646f3bbd5e84202b8b619e65daef99034d7fb016 SHA512 5d89deb5d0d0ff44d6f62a9759577dba92aa58c208477e317aecbd01e71ccf7ba0dab138a1d8feff22d523c85d6ceaee9e478e26834ffcd91949b81d2d9c1f86 +DIST OpenIPMI-2.0.26.tar.gz 3124706 BLAKE2B 08afeae1063b404dec3d6f9e5decdf9ac516c0096d8db3c42ff275c280267aa6a202cf4c63c5044cf1d24a95ecd617ad36c15e5c98c6b9cdad2647227f649ae6 SHA512 ffd1ea60727973238461c95373c71e28da04e2fd163bfcb8f5ef9a8ac197b554773231c064cac71c64fc7ccd720085a781fe3c6c8ed3c9dc5cc8ca88fff6f2d0 EBUILD openipmi-2.0.22.ebuild 2739 BLAKE2B e6e55f84f94eff0f39eb041fe7b1d82f81bcaab2f0eb55c0010bde1e2ace70f4d493663a44ff9b859851556c7e78f7f4835ce8f4df96db2d8cb1a04a0f4ccdda SHA512 43e979f877e17c82ca317ea41d73e84cc9af65496b198b5b0c4f81251f0b47713022de672b105ba447f6e880d42546fa2140ca9dc4fe60f90cdf5c709eb3f5dc -EBUILD openipmi-2.0.24.ebuild 2664 BLAKE2B ff7eba5bbcfddae292fef31f6af242eec6121673170501fd812f85230aba1a3cb19baab753fcb7ad98cfa0d816b6834f4fe55541b857ed1a92aa09185efa70ca SHA512 6f519bab6f691853867e93969f5b8c90c93f8b17c6fa7f38d9f283b247f5ceb994a322a1a0fed7cd0d77f6ab8c907513bea67942566e04550395af588c2bac91 EBUILD openipmi-2.0.25.ebuild 2482 BLAKE2B 07716bb39ccca6ebd4128d4a7f6aa2ac1e0ac2cf30ae19c80240ca15cfee903db1566a9ae560aa02f9dd11189501e91bd417c64528418cf6ed4cd5ebb8e43bd7 SHA512 1f726abce948f14e4b0ad036b5dbb9a7540edd9a692c1de6071fb23a135b0a5e0bb30970c0c0b37f323dd3ec1d34d138280c60e8e822669d4b78e6f4df6a2822 +EBUILD openipmi-2.0.26.ebuild 2516 BLAKE2B 820f7ab46b15c91eeab0f06816734ba78b6bc886d9e5167108c447b19270d392751e0604a7164e8817a75fc8a7042f194a7b51375ed74c8542c37ea843d125d7 SHA512 bcfe9b02a75d659aecc223e4da7ef2039f2e282c9ad6de2b62ba6e8b954cb9961038960d2324ca8bca3302562340fb51d4806c66335c138b9b004dae64331c9e MISC metadata.xml 347 BLAKE2B 4857bbfde0e588b4ad2ac893f826affe46d77ead16c7565fa775580c23fdd35df745a9050b599d0ff333290a155b48cf6d571065abd8b2fe5cc4b2e136f3efc1 SHA512 f67b97714b2b543109c2bc90d8f474df13e8915b7a14fdc3a16b62f1dfbc59ac27c8e64d19429b87a63ee2c1e4812cee26d8fb797591028484b2072b1951231f diff --git a/sys-libs/openipmi/files/openipmi-2.0.26-readline.patch b/sys-libs/openipmi/files/openipmi-2.0.26-readline.patch new file mode 100644 index 000000000000..79fc640ab5ad --- /dev/null +++ b/sys-libs/openipmi/files/openipmi-2.0.26-readline.patch @@ -0,0 +1,11 @@ +--- OpenIPMI-2.0.26/sample/ipmi_serial_bmc_emu.c ++++ OpenIPMI-2.0.26/sample/ipmi_serial_bmc_emu.c +@@ -42,7 +42,7 @@ + #include + #include + #include +-#include ++#include + + #define _GNU_SOURCE + #include diff --git a/sys-libs/openipmi/files/openipmi-2.0.26-tinfo.patch b/sys-libs/openipmi/files/openipmi-2.0.26-tinfo.patch new file mode 100644 index 000000000000..ed0436a26c00 --- /dev/null +++ b/sys-libs/openipmi/files/openipmi-2.0.26-tinfo.patch @@ -0,0 +1,17 @@ +--- OpenIPMI-2.0.26/configure.ac ++++ OpenIPMI-2.0.26/configure.ac +@@ -763,10 +763,12 @@ + [epoll_pwait], [This platform supports epoll(7) with epoll_pwait(2)], + [HAVE_EPOLL_PWAIT], [This platform supports epoll(7) with epoll_pwait(2).]) + +-AC_CHECK_LIB(curses, tgetent, TERM_LIBS=-lcurses, ++PKG_CHECK_MODULES(ncurses, ncurses, TERM_LIBS=$ncurses_LIBS, ++ [AC_CHECK_LIB(tinfo, tgetent, TERM_LIBS=-ltinfo, ++ [AC_CHECK_LIB(curses, tgetent, TERM_LIBS=-lcurses, + [AC_CHECK_LIB(ncursesw, tgetent, TERM_LIBS=-lncursesw, + [AC_CHECK_LIB(ncurses, tgetent, TERM_LIBS=-lncurses, +- [AC_MSG_ERROR([libtermcap, libcurses or libncurses are required!])])] )] ) ++ [AC_MSG_ERROR([libtinfo, libtermcap, libcurses or libncurses are required!])])] )] )] )] ) + AC_SUBST(TERM_LIBS) + + AC_CHECK_FUNCS(cfmakeraw) diff --git a/sys-libs/openipmi/openipmi-2.0.24.ebuild b/sys-libs/openipmi/openipmi-2.0.24.ebuild deleted file mode 100644 index caa0c823d905..000000000000 --- a/sys-libs/openipmi/openipmi-2.0.24.ebuild +++ /dev/null @@ -1,108 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PYTHON_COMPAT=( python2_7 ) - -inherit eutils autotools python-single-r1 - -DESCRIPTION="Library interface to IPMI" -HOMEPAGE="https://sourceforge.net/projects/openipmi/" -MY_PN="OpenIPMI" -MY_P="${MY_PN}-${PV/_/-}" -SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz" - -LICENSE="LGPL-2.1 GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~hppa ~ia64 ~ppc ~x86" -IUSE="crypt snmp perl python tcl" -S="${WORKDIR}/${MY_P}" -RESTRICT='test' - -RDEPEND=" - dev-libs/glib:2 - sys-libs/gdbm:= - sys-libs/ncurses:0= - crypt? ( dev-libs/openssl:0= ) - snmp? ( net-analyzer/net-snmp ) - perl? ( dev-lang/perl ) - python? ( ${PYTHON_DEPS} ) - tcl? ( dev-lang/tcl:0= )" -DEPEND="${RDEPEND} - >=dev-lang/swig-1.3.21 - virtual/pkgconfig" -# Gui is broken! -# python? ( tcl? ( tk? ( dev-lang/tk dev-tcltk/tix ) ) )" - -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -PATCHES=( - # Bug #338499: The installed OpenIPMIpthread.pc depends on a non-existing - # pthread.pc. We patch it to link -lpthread directly instead. - "${FILESDIR}/${PN}-2.0.16-pthreads.patch" - - # https://bugs.gentoo.org/501510 - "${FILESDIR}/${PN}-2.0.21-tinfo.patch" -) - -pkg_setup() { - use python && python-single-r1_pkg_setup -} - -src_prepare() { - default - - # Bug #290763: The buildsys tries to compile+optimize the py file during - # install, when the .so might not be been added yet. We just skip the files - # and use python_optimize ourselves later instead. - sed -r -i \ - -e '/INSTALL.*\.py[oc] /d' \ - -e '/install-exec-local/s,OpenIPMI.pyc OpenIPMI.pyo,,g' \ - swig/python/Makefile.{am,in} - - # Bug #298250: parallel install fix. - sed -r -i \ - -e '/^install-data-local:/s,$, install-exec-am,g' \ - cmdlang/Makefile.{am,in} - - # We touch the .in and .am above because if we use the below, the Perl stuff - # is very fragile, and often fails to link. - #cd "${S}" - eautoreconf -} - -src_configure() { - local myconf=( - # these binaries are for root! - --bindir=/usr/sbin - --with-glib - --with-glibver=2.0 - --with-swig - --without-tkinter - $(use_with snmp ucdsnmp yes) - $(use_with crypt openssl yes) - $(use_with perl perl yes) - $(use_with tcl tcl yes) - $(use_with python python yes) - ) - - # GUI is broken - #use tk && use python && use !tcl && \ - # ewarn "Not building Tk GUI because it needs both Python AND Tcl" - #if use python && use tcl; then - # myconf+=( $(use_with tk tkinter) ) - #else - # myconf+=( --without-tkinter ) - #fi - - econf "${myconf[@]}" -} - -src_install() { - emake DESTDIR="${D}" install - dodoc README* FAQ ChangeLog TODO doc/IPMI.pdf lanserv/README.vm - newdoc cmdlang/README README.cmdlang - - use python && python_optimize -} diff --git a/sys-libs/openipmi/openipmi-2.0.26.ebuild b/sys-libs/openipmi/openipmi-2.0.26.ebuild new file mode 100644 index 000000000000..8a5328f22d64 --- /dev/null +++ b/sys-libs/openipmi/openipmi-2.0.26.ebuild @@ -0,0 +1,106 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python2_7 ) + +inherit autotools python-single-r1 + +DESCRIPTION="Library interface to IPMI" +HOMEPAGE="https://sourceforge.net/projects/openipmi/" +MY_PN="OpenIPMI" +MY_P="${MY_PN}-${PV/_/-}" +SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz" + +LICENSE="LGPL-2.1 GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~hppa ~ia64 ~ppc ~x86" +IUSE="crypt snmp perl python tcl" +S="${WORKDIR}/${MY_P}" +RESTRICT='test' + +RDEPEND=" + dev-libs/glib:2 + sys-libs/gdbm:= + sys-libs/ncurses:0= + crypt? ( dev-libs/openssl:0= ) + snmp? ( net-analyzer/net-snmp ) + perl? ( dev-lang/perl ) + python? ( ${PYTHON_DEPS} ) + tcl? ( dev-lang/tcl:0= )" +DEPEND="${RDEPEND} + >=dev-lang/swig-1.3.21 + virtual/pkgconfig" +# Gui is broken! +# python? ( tcl? ( tk? ( dev-lang/tk dev-tcltk/tix ) ) )" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +PATCHES=( + # https://bugs.gentoo.org/501510 + "${FILESDIR}/${PN}-2.0.26-tinfo.patch" + + "${FILESDIR}/${PN}-2.0.26-readline.patch" +) + +pkg_setup() { + use python && python-single-r1_pkg_setup +} + +src_prepare() { + default + + # Bug #290763: The buildsys tries to compile+optimize the py file during + # install, when the .so might not be been added yet. We just skip the files + # and use python_optimize ourselves later instead. + sed -r -i \ + -e '/INSTALL.*\.py[oc] /d' \ + -e '/install-exec-local/s,OpenIPMI.pyc OpenIPMI.pyo,,g' \ + swig/python/Makefile.{am,in} + + # Bug #298250: parallel install fix. + sed -r -i \ + -e '/^install-data-local:/s,$, install-exec-am,g' \ + cmdlang/Makefile.{am,in} + + # We touch the .in and .am above because if we use the below, the Perl stuff + # is very fragile, and often fails to link. + #cd "${S}" + eautoreconf +} + +src_configure() { + local myconf=( + # these binaries are for root! + --bindir=/usr/sbin + --with-glib + --with-glibver=2.0 + --with-swig + --without-tkinter + $(use_with snmp ucdsnmp yes) + $(use_with crypt openssl yes) + $(use_with perl perl yes) + $(use_with tcl tcl yes) + $(use_with python python yes) + ) + + # GUI is broken + #use tk && use python && use !tcl && \ + # ewarn "Not building Tk GUI because it needs both Python AND Tcl" + #if use python && use tcl; then + # myconf+=( $(use_with tk tkinter) ) + #else + # myconf+=( --without-tkinter ) + #fi + + econf "${myconf[@]}" +} + +src_install() { + emake DESTDIR="${D}" install + dodoc README* FAQ ChangeLog TODO doc/IPMI.pdf lanserv/README.vm + newdoc cmdlang/README README.cmdlang + + use python && python_optimize +} diff --git a/sys-libs/pam/Manifest b/sys-libs/pam/Manifest index d0a194aa1733..31f08599185a 100644 --- a/sys-libs/pam/Manifest +++ b/sys-libs/pam/Manifest @@ -6,5 +6,5 @@ DIST Linux-PAM-1.3.0.tar.bz2 1302820 BLAKE2B 0ed5553308e8bc4bef91746a1c79db41bf5 DIST pam-1.3.1.tar.gz 749997 BLAKE2B 3b44c41daaa5810c53e3e2baeac1ab58463768fde433f874b9bd09c7c28cfd55e0f227c9a0c318e66444a3adb23c112a2db32d5c7211b07c84c2d4600a47ca5c SHA512 0c5019493b2ac42180ee9c4974a51329a2395a44f5f892c1ca567ec9b43cc3a9bce0212861d4dfb82eb236c5eaa682b27189ce672ed6cafa37d8801d059a944d EBUILD pam-1.2.1-r2.ebuild 6111 BLAKE2B fe4c0f339a51a041932d25426845ab48b2d73789a17f950cb9a7bcbb13657677da3ebbf3f9f92a7ff91d1fcf106b54bd3a5403d212f1e3d7474367dbb8eb3045 SHA512 3024bdb42d6dba4831e3b7dc80b017184907422d34750c2895897fe6a066be139fa8b688d0f0874b6d788c54f680d29b532615ed10b3ab8e82984fc5a582d8af EBUILD pam-1.3.0-r2.ebuild 5987 BLAKE2B 532105561700adc457cf26b95d83fa89a8bc6a2694688335a1c16fc470f2e43460a9e3e490c2724fd4d142376c66a20033f1ebf68055fd769ca1ab0de88124d2 SHA512 a417c8a2710e6ccdfe60ea6a76dc9dc4a9d268afbdaea16f479b5587fcd0c08fa4e4ef147fba935f994d25fcce4df3b3dfb8722094701d6516b035bb834564f5 -EBUILD pam-1.3.1.ebuild 3682 BLAKE2B ff4750e0a084a0ae199ca729eb08f47daef9747746f3889dba38460a4ec4fda67b7897f9e68897a140d1777f7e475d684ea78dabacf378961b2fca02942158ec SHA512 8b830ac4815d499c7773289bc470e95e2cc26717ab2103cf7fee1b7ad53eba905cde75f8bd449005a56f51022b1e02d18808546fb7eb538045ec09b65946ea98 +EBUILD pam-1.3.1-r1.ebuild 3742 BLAKE2B 2498e9da3c98de0ea0451c01caa2237d9f5820228c27be873afdb100cfa04d86d5c5e54412e69725cb008cf461587150b1b09fb5d65906073aa0fed8dd5c5a93 SHA512 64d4c09bbab9855606928ecaa9a432f3f1990b7a8927bef5b8f48f0e28f7e5be838e426e36805b933b7624ec90824e8ccb3f75d82d63a13f8ddbd34d308d5397 MISC metadata.xml 1187 BLAKE2B 10a98ba0eb29e16429e80c982bbcfabf5e13d357c79dcd8c9b29edb78c95d640c24a0e6dd765c681c9a3e0d53236d8593fd60a023a15a368268b6cf857c74e0c SHA512 a259f44cac488c66bc07ac28448200251bfa9fa12d696bc6ba4e98456c2d96ae90236017d3c7cd9364c6b9a46e3742bb2c5fa995fe178d38453bcbbb58c527a2 diff --git a/sys-libs/pam/pam-1.3.1-r1.ebuild b/sys-libs/pam/pam-1.3.1-r1.ebuild new file mode 100644 index 000000000000..8389d15b5a33 --- /dev/null +++ b/sys-libs/pam/pam-1.3.1-r1.ebuild @@ -0,0 +1,127 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools db-use fcaps multilib-minimal toolchain-funcs + +DESCRIPTION="Linux-PAM (Pluggable Authentication Modules)" +HOMEPAGE="https://github.com/linux-pam/linux-pam" +SRC_URI="https://github.com/linux-pam/linux-pam/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="|| ( BSD GPL-2 )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="audit berkdb +cracklib debug nis nls +pie selinux static-libs" + +BDEPEND="app-text/docbook-xml-dtd:4.1.2 + app-text/docbook-xml-dtd:4.3 + app-text/docbook-xml-dtd:4.4 + app-text/docbook-xml-dtd:4.5 + dev-libs/libxslt + sys-devel/flex + virtual/pkgconfig[${MULTILIB_USEDEP}] + nls? ( sys-devel/gettext )" +DEPEND=" + audit? ( >=sys-process/audit-2.2.2[${MULTILIB_USEDEP}] ) + berkdb? ( >=sys-libs/db-4.8.30-r1:=[${MULTILIB_USEDEP}] ) + cracklib? ( >=sys-libs/cracklib-2.9.1-r1[${MULTILIB_USEDEP}] ) + selinux? ( >=sys-libs/libselinux-2.2.2-r4[${MULTILIB_USEDEP}] ) + nis? ( >=net-libs/libtirpc-0.2.4-r2[${MULTILIB_USEDEP}] ) + nls? ( >=virtual/libintl-0-r1[${MULTILIB_USEDEP}] )" +RDEPEND="${DEPEND} + !sys-auth/openpam + !sys-auth/pam_userdb" + +PDEPEND="sys-auth/pambase" + +S="${WORKDIR}/linux-${P}" + +src_prepare() { + default + eapply "${FILESDIR}/${PN}-remove-browsers.patch" + touch ChangeLog || die + eautoreconf +} + +multilib_src_configure() { + # Do not let user's BROWSER setting mess us up. #549684 + unset BROWSER + + # Disable automatic detection of libxcrypt; we _don't_ want the + # user to link libxcrypt in by default, since we won't track the + # dependency and allow to break PAM this way. + + export ac_cv_header_xcrypt_h=no + + local myconf=( + --with-db-uniquename=-$(db_findver sys-libs/db) + --enable-securedir="${EPREFIX}"/$(get_libdir)/security + --libdir=/usr/$(get_libdir) + --disable-prelude + $(use_enable audit) + $(use_enable berkdb db) + $(use_enable cracklib) + $(use_enable debug) + $(use_enable nis) + $(use_enable nls) + $(use_enable pie) + $(use_enable selinux) + $(use_enable static-libs static) + --enable-isadir='.' #464016 + ) + ECONF_SOURCE="${S}" econf ${myconf[@]} +} + +multilib_src_compile() { + emake sepermitlockdir="${EPREFIX}/run/sepermit" +} + +multilib_src_install() { + emake DESTDIR="${D}" install \ + sepermitlockdir="${EPREFIX}/run/sepermit" + + local prefix + if multilib_is_native_abi; then + prefix= + gen_usr_ldscript -a pam pamc pam_misc + else + prefix=/usr + fi + + # create extra symlinks just in case something depends on them... + local lib + for lib in pam pamc pam_misc; do + if ! [[ -f "${ED}"${prefix}/$(get_libdir)/lib${lib}$(get_libname) ]]; then + dosym lib${lib}$(get_libname 0) ${prefix}/$(get_libdir)/lib${lib}$(get_libname) + fi + done +} + +multilib_src_install_all() { + find "${ED}" -type f -name '*.la' -delete || die + + if use selinux; then + dodir /usr/lib/tmpfiles.d + cat - > "${D}"/usr/lib/tmpfiles.d/${CATEGORY}:${PN}:${SLOT}.conf < "${D}"/usr/lib/tmpfiles.d/${CATEGORY}:${PN}:${SLOT}.conf < "${c}.c" + if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} ${LDFLAGS} "${c}.c" -o "${c}" -lintl 2>/dev/null ; then + LDLIBS+=" -lintl" + fi + fi +} + +_emake() { + emake \ + REDO=$(usex leaps_timezone posix_right posix_only) \ + TZDATA_TEXT= \ + TOPDIR="${EPREFIX}" \ + ZICDIR='$(TOPDIR)/usr/bin' \ + "$@" +} + +src_compile() { + _emake \ + AR="$(tc-getAR)" \ + cc="$(tc-getCC)" \ + RANLIB="$(tc-getRANLIB)" \ + CFLAGS="${CFLAGS} -std=gnu99 ${CPPFLAGS}" \ + LDFLAGS="${LDFLAGS}" \ + LDLIBS="${LDLIBS}" + if tc-is-cross-compiler ; then + _emake -C "${S}"-native \ + AR="$(tc-getBUILD_AR)" \ + cc="$(tc-getBUILD_CC)" \ + RANLIB="$(tc-getBUILD_RANLIB)" \ + CFLAGS="${BUILD_CFLAGS} ${BUILD_CPPFLAGS}" \ + LDFLAGS="${BUILD_LDFLAGS}" \ + LDLIBS="${LDLIBS}" \ + zic + fi +} + +src_test() { + # VALIDATE_ENV is used for extended/web based tests. Punt on them. + emake -j1 check VALIDATE_ENV=true +} + +src_install() { + local zic="" + tc-is-cross-compiler && zic="zic=${S}-native/zic" + _emake install ${zic} DESTDIR="${D}" LIBDIR="/nukeit" + rm -rf "${D}/nukeit" "${ED}/etc" || die + + insinto /usr/share/zoneinfo + doins "${S}"/leap-seconds.list + + # Delete man pages installed by man-pages package. + rm "${ED}"/usr/share/man/man5/tzfile.5* "${ED}"/usr/share/man/man8/{tzselect,zdump,zic}.8 || die + dodoc CONTRIBUTING README NEWS *.html +} + +get_TIMEZONE() { + local tz src="${EROOT}etc/timezone" + if [[ -e ${src} ]] ; then + tz=$(sed -e 's:#.*::' -e 's:[[:space:]]*::g' -e '/^$/d' "${src}") + else + tz="FOOKABLOIE" + fi + [[ -z ${tz} ]] && return 1 || echo "${tz}" +} + +pkg_preinst() { + local tz=$(get_TIMEZONE) + if [[ ${tz} == right/* || ${tz} == posix/* ]] ; then + eerror "The right & posix subdirs are no longer installed as subdirs -- they have been" + eerror "relocated to match upstream paths as sibling paths. Further, posix/xxx is the" + eerror "same as xxx, so you should simply drop the posix/ prefix. You also should not" + eerror "be using right/xxx for the system timezone as it breaks programs." + die "Please fix your timezone setting" + fi + + # Trim the symlink by hand to avoid portage's automatic protection checks. + rm -f "${EROOT}"/usr/share/zoneinfo/posix + + if has_version "<=${CATEGORY}/${PN}-2015c" ; then + elog "Support for accessing posix/ and right/ directly has been dropped to match" + elog "upstream. There is no need to set TZ=posix/xxx as it is the same as TZ=xxx." + elog "For TZ=right/, you can use TZ=../zoneinfo-leaps/xxx instead. See this post" + elog "for details: https://mm.icann.org/pipermail/tz/2015-February/022024.html" + fi +} + +configure_tz_data() { + # make sure the /etc/localtime file does not get stale #127899 + local tz src="${EROOT}etc/timezone" etc_lt="${EROOT}etc/localtime" + + # If it's a symlink, assume the user knows what they're doing and + # they're managing it themselves. #511474 + if [[ -L ${etc_lt} ]] ; then + einfo "Assuming your ${etc_lt} symlink is what you want; skipping update." + return 0 + fi + + if ! tz=$(get_TIMEZONE) ; then + einfo "Assuming your empty ${etc_lt} file is what you want; skipping update." + return 0 + fi + if [[ ${tz} == "FOOKABLOIE" ]] ; then + elog "You do not have TIMEZONE set in ${src}." + + if [[ ! -e ${etc_lt} ]] ; then + cp -f "${EROOT}"/usr/share/zoneinfo/Factory "${etc_lt}" + elog "Setting ${etc_lt} to Factory." + else + elog "Skipping auto-update of ${etc_lt}." + fi + return 0 + fi + + if [[ ! -e ${EROOT}/usr/share/zoneinfo/${tz} ]] ; then + elog "You have an invalid TIMEZONE setting in ${src}" + elog "Your ${etc_lt} has been reset to Factory; enjoy!" + tz="Factory" + fi + einfo "Updating ${etc_lt} with ${EROOT}usr/share/zoneinfo/${tz}" + cp -f "${EROOT}"/usr/share/zoneinfo/"${tz}" "${etc_lt}" +} + +pkg_config() { + configure_tz_data +} + +pkg_postinst() { + configure_tz_data +} diff --git a/sys-libs/timezone-data/timezone-data-2018g.ebuild b/sys-libs/timezone-data/timezone-data-2018g.ebuild deleted file mode 100644 index 88028b632cff..000000000000 --- a/sys-libs/timezone-data/timezone-data-2018g.ebuild +++ /dev/null @@ -1,169 +0,0 @@ -# Copyright 1999-2018 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="6" - -inherit toolchain-funcs flag-o-matic - -code_ver=${PV} -data_ver=${PV} -DESCRIPTION="Timezone data (/usr/share/zoneinfo) and utilities (tzselect/zic/zdump)" -HOMEPAGE="https://www.iana.org/time-zones http://www.twinsun.com/tz/tz-link.htm" -SRC_URI="https://www.iana.org/time-zones/repository/releases/tzdata${data_ver}.tar.gz - https://www.iana.org/time-zones/repository/releases/tzcode${code_ver}.tar.gz" - -LICENSE="BSD public-domain" -SLOT="0" -KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris" -IUSE="nls leaps_timezone elibc_FreeBSD" - -DEPEND="nls? ( virtual/libintl )" -RDEPEND="${DEPEND} - !sys-libs/glibc[vanilla(+)]" - -S=${WORKDIR} - -src_prepare() { - default - tc-is-cross-compiler && cp -pR "${S}" "${S}"-native -} - -src_configure() { - tc-export CC - - append-lfs-flags #471102 - - if use elibc_FreeBSD || use elibc_Darwin ; then - append-cppflags -DSTD_INSPIRED #138251 - fi - - append-cppflags -DHAVE_GETTEXT=$(usex nls 1 0) -DTZ_DOMAIN='\"libc\"' - LDLIBS="" - if use nls ; then - # See if an external libintl is available. #154181 #578424 - local c="${T}/test" - echo 'main(){}' > "${c}.c" - if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} ${LDFLAGS} "${c}.c" -o "${c}" -lintl 2>/dev/null ; then - LDLIBS+=" -lintl" - fi - fi -} - -_emake() { - emake \ - REDO=$(usex leaps_timezone posix_right posix_only) \ - TZDATA_TEXT= \ - TOPDIR="${EPREFIX}" \ - ZICDIR='$(TOPDIR)/usr/bin' \ - "$@" -} - -src_compile() { - _emake \ - AR="$(tc-getAR)" \ - cc="$(tc-getCC)" \ - RANLIB="$(tc-getRANLIB)" \ - CFLAGS="${CFLAGS} -std=gnu99 ${CPPFLAGS}" \ - LDFLAGS="${LDFLAGS}" \ - LDLIBS="${LDLIBS}" - if tc-is-cross-compiler ; then - _emake -C "${S}"-native \ - AR="$(tc-getBUILD_AR)" \ - cc="$(tc-getBUILD_CC)" \ - RANLIB="$(tc-getBUILD_RANLIB)" \ - CFLAGS="${BUILD_CFLAGS} ${BUILD_CPPFLAGS}" \ - LDFLAGS="${BUILD_LDFLAGS}" \ - LDLIBS="${LDLIBS}" \ - zic - fi -} - -src_test() { - # VALIDATE_ENV is used for extended/web based tests. Punt on them. - emake -j1 check VALIDATE_ENV=true -} - -src_install() { - local zic="" - tc-is-cross-compiler && zic="zic=${S}-native/zic" - _emake install ${zic} DESTDIR="${D}" LIBDIR="/nukeit" - rm -rf "${D}/nukeit" "${ED}/etc" || die - # Delete man pages installed by man-pages package. - rm "${ED}"/usr/share/man/man5/tzfile.5* "${ED}"/usr/share/man/man8/{tzselect,zdump,zic}.8 || die - dodoc CONTRIBUTING README NEWS *.html -} - -get_TIMEZONE() { - local tz src="${EROOT}etc/timezone" - if [[ -e ${src} ]] ; then - tz=$(sed -e 's:#.*::' -e 's:[[:space:]]*::g' -e '/^$/d' "${src}") - else - tz="FOOKABLOIE" - fi - [[ -z ${tz} ]] && return 1 || echo "${tz}" -} - -pkg_preinst() { - local tz=$(get_TIMEZONE) - if [[ ${tz} == right/* || ${tz} == posix/* ]] ; then - eerror "The right & posix subdirs are no longer installed as subdirs -- they have been" - eerror "relocated to match upstream paths as sibling paths. Further, posix/xxx is the" - eerror "same as xxx, so you should simply drop the posix/ prefix. You also should not" - eerror "be using right/xxx for the system timezone as it breaks programs." - die "Please fix your timezone setting" - fi - - # Trim the symlink by hand to avoid portage's automatic protection checks. - rm -f "${EROOT}"/usr/share/zoneinfo/posix - - if has_version "<=${CATEGORY}/${PN}-2015c" ; then - elog "Support for accessing posix/ and right/ directly has been dropped to match" - elog "upstream. There is no need to set TZ=posix/xxx as it is the same as TZ=xxx." - elog "For TZ=right/, you can use TZ=../zoneinfo-leaps/xxx instead. See this post" - elog "for details: https://mm.icann.org/pipermail/tz/2015-February/022024.html" - fi -} - -configure_tz_data() { - # make sure the /etc/localtime file does not get stale #127899 - local tz src="${EROOT}etc/timezone" etc_lt="${EROOT}etc/localtime" - - # If it's a symlink, assume the user knows what they're doing and - # they're managing it themselves. #511474 - if [[ -L ${etc_lt} ]] ; then - einfo "Assuming your ${etc_lt} symlink is what you want; skipping update." - return 0 - fi - - if ! tz=$(get_TIMEZONE) ; then - einfo "Assuming your empty ${etc_lt} file is what you want; skipping update." - return 0 - fi - if [[ ${tz} == "FOOKABLOIE" ]] ; then - elog "You do not have TIMEZONE set in ${src}." - - if [[ ! -e ${etc_lt} ]] ; then - cp -f "${EROOT}"/usr/share/zoneinfo/Factory "${etc_lt}" - elog "Setting ${etc_lt} to Factory." - else - elog "Skipping auto-update of ${etc_lt}." - fi - return 0 - fi - - if [[ ! -e ${EROOT}/usr/share/zoneinfo/${tz} ]] ; then - elog "You have an invalid TIMEZONE setting in ${src}" - elog "Your ${etc_lt} has been reset to Factory; enjoy!" - tz="Factory" - fi - einfo "Updating ${etc_lt} with ${EROOT}usr/share/zoneinfo/${tz}" - cp -f "${EROOT}"/usr/share/zoneinfo/"${tz}" "${etc_lt}" -} - -pkg_config() { - configure_tz_data -} - -pkg_postinst() { - configure_tz_data -} diff --git a/sys-libs/uclibc-ng/Manifest b/sys-libs/uclibc-ng/Manifest index 865411f7e140..8d5165ba4c75 100644 --- a/sys-libs/uclibc-ng/Manifest +++ b/sys-libs/uclibc-ng/Manifest @@ -3,8 +3,8 @@ AUX uclibc-ng-1.0.30-fix-ld.so.cache.patch 1515 BLAKE2B 20f317c623cf66f835191563 DIST uClibc-ng-1.0.26.tar.bz2 2285709 BLAKE2B 6276f1d080f0c90b5a0ce4a4fc3556070852ad157b9c0a15305108b2f46a2d0f5371dde12ac0a8f05cad7db942cceb8057b5ef351e100a52609f2ebdc6b19634 SHA512 48c37ab2000af13848ef007ce89f226bded5188f37839c11371bab48497670d30d39fda2a031c6aff95f429a4abadc431ddd77c0e023810a341e2c2d2645f71b DIST uClibc-ng-1.0.30.tar.bz2 2302796 BLAKE2B 21888dfe5a68f83b7ba56bb557ecc5aa19fd75cedc82f2ed48073f47655888719feb27943e0309f8101a24fd2fd9165af31d5679f21c00b12f27ebfccf354bac SHA512 ddd1d91dcfdf7be8471afecf13196563ad348c41e2fa8b63ae50b83f103cf8ed8d9f003b51a54a58db2935b84692b7c011a4779582f30610ede44cb583aae742 DIST uClibc-ng-1.0.31.tar.bz2 2351728 BLAKE2B e2cad8500fdafdd98db11cbc756f3277845fedf545598c9861b1d1ef51b3a24744afe635d6894929eb537891323b0627577c2a5e5dbe1ff0ae588c5aa53a1219 SHA512 489e5f5e8952ebfad1d8a5528a04420d9d2e58fa5092029ccdae91d81dfcf8b3e00092453432da94c76fc18cab542192040bfb271e367fa42ca4926f4b45c372 -EBUILD uclibc-ng-1.0.26.ebuild 10527 BLAKE2B b3a1934999ee73c5d12f8ff9601236ece8b3a5a26f589f901344c4704ae9ccff941f5d6839faf5b7e153ada8e44d3e76eba2b67ad103d8fe274daa9d00e9bb27 SHA512 3f53c4201a477ce9c29f37b6c67177ab1f7c923dea153146ad192c13d465a3a939ad159825d491c18744d5d0c34c6263877b8c3fab061552cf74408b82248221 -EBUILD uclibc-ng-1.0.30-r1.ebuild 10362 BLAKE2B 06dd5830979b297138f30c1c86b2f26655beaaf32beb4e5bd407a10b846690ea1e24953b2967aa5d3e4dfd0c1eacc5c1b26ac9418296fc3f3b0b0e2e8bac1348 SHA512 494d2ddf2030c5f7e0188b57ef231db8d2032b61ccecc5f7f43337093782f2a6588be79a6e62a8c113bd1dccbb80c1c5c7ad5f0ccf4eda48e9bef68690cf5785 -EBUILD uclibc-ng-1.0.31.ebuild 10281 BLAKE2B 1b83edd90a62ad0e3675e7697c2bee8d3703e3f0b7e982afca5cd7fbe40b215eb5948355d10d117ca532dc44fdf5a0e78c0e2dfaa41d2ffc0a5aee26c7ceae68 SHA512 f390eea22aa0f5a3254c9a9e36fa147f2ed9164d4891ab2b6db40d5821297573105a43acb94129d3488c6fc6c05927f9ebe3720ca96848c67c50b26042a83306 -EBUILD uclibc-ng-9999.ebuild 10284 BLAKE2B bc67c39ae7c486f56a26448058706769454b2dfbe7cf5053ae855f3079495d184b5b772e6be76842df2c25a3f763982a56228070e643b8b7cb2adb4d190f7667 SHA512 2bee867278dc264688ea8ee516e6147f62568bf39758d0a098d32cb7de7b3a6024a6cb1ab9dc3726726a8fb477a92bd32fbf22f3ee375040a08295aa15a3462a -MISC metadata.xml 877 BLAKE2B 191277020e32edd39fc3a1594aaf3fad65ca7b48a2f0df3f0e381d3c7cc5451c09f9ad87a6da9e75b146c2ebe209918d699519582fc64fb8c3b7ae2e51eaf507 SHA512 3988e346916b283836e5c3d094eec4f25c66763e4e10a6413fe97f98629e1f14b67d6013f13f9ca2e2712dd638567973c02e6ebcce3554c55caf5483c3c9dfd4 +EBUILD uclibc-ng-1.0.26.ebuild 10566 BLAKE2B e4eed2c8c9ddfd1f179ac728382eaa4ab588f7117b6dc5337384dcaad58d2decce86c33ad21c02f87547979a35a374497492c3ff2740812788cc2eefc6c24583 SHA512 80db8406a40e370aeb73ab25dbe2b2bb5d5c3d32353eb37fd8f50a00e81bae42ed4ad0fd0aabfef2c519e8e588f8e44b51c69ab9c6c4b0990816b211e45f227d +EBUILD uclibc-ng-1.0.30-r1.ebuild 10401 BLAKE2B 0cf25aca41d018074ab302257bae0cdb8365663919a19b1965b015e5c16002a5b31117cc85cb48db5278e149f456bc92dbaf4085250a3d632fbb0a5d82f8c3a9 SHA512 ca9df3d760beb48446d066f30467fe0885703fd62df30be50f7660d77b9a8143da30ba18feff4dc6f06380f6e1e5c57bfd8d8e2a35f07adfbfa0d638a7e1993e +EBUILD uclibc-ng-1.0.31.ebuild 10323 BLAKE2B ef55ea8048aef2f691b887335a488ffd75d7887678ca7610a65ad1e1330f7ead363e1511d30776c19944b8ccfab4bf14b115e486cbc12179c6033fb220e52142 SHA512 bc250e0ec6b408b3acdd5bf3f66b3b43c921c9161e5a3d384e0140947a2ddcba4ae47f4a851dcc8821c54e3784b07a822dbb057ee8945fdb7890892127520691 +EBUILD uclibc-ng-9999.ebuild 10323 BLAKE2B ef55ea8048aef2f691b887335a488ffd75d7887678ca7610a65ad1e1330f7ead363e1511d30776c19944b8ccfab4bf14b115e486cbc12179c6033fb220e52142 SHA512 bc250e0ec6b408b3acdd5bf3f66b3b43c921c9161e5a3d384e0140947a2ddcba4ae47f4a851dcc8821c54e3784b07a822dbb057ee8945fdb7890892127520691 +MISC metadata.xml 876 BLAKE2B 218d9d733d3e7a5e29f514e4ac5e46e2a208b76f705d4825b3abe86594e262ec9722bc62df25bd848ef99fa2256d119627d9c9391e66df46f526b60e702f4eab SHA512 b7f00ea703e46028b1be735f0b713a0494f2a8459df0fb8be8c7b35b163cddb399df8a2c18b5f7864e6c4736822914bce40cdcabe44a0172ab1b2abb2474275b diff --git a/sys-libs/uclibc-ng/metadata.xml b/sys-libs/uclibc-ng/metadata.xml index c54e93bc9e0a..12420ae8d3b1 100644 --- a/sys-libs/uclibc-ng/metadata.xml +++ b/sys-libs/uclibc-ng/metadata.xml @@ -12,7 +12,7 @@ uClibc-ng is a small C library for developing embedded Linux systems. It is much smaller than the GNU C Library, but nearly all applications supported by glibc - also work perfectly with uClibc-ng. + also work perfectly with uClibc-ng. Enable sun nis/rpc support (you should use libtirpc though) diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild index 3a53eceae511..572b3800cec8 100644 --- a/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild +++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.26.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="6" @@ -24,7 +24,8 @@ fi LICENSE="LGPL-2" SLOT="0" IUSE="debug hardened iconv ipv6 rpc symlink-compat headers-only" -RESTRICT="strip" +# tests fail due to unusual makefile +RESTRICT="strip test" # 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage # will delete the ld.so sym link prematurely and break the system. So we diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild index 87c97563169a..c7b7bac0f3ee 100644 --- a/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild +++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.30-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="6" @@ -24,7 +24,8 @@ fi LICENSE="LGPL-2" SLOT="0" IUSE="debug hardened iconv ipv6 symlink-compat headers-only" -RESTRICT="strip" +# tests fail due to unusual makefile +RESTRICT="strip test" # 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage # will delete the ld.so sym link prematurely and break the system. So we diff --git a/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild b/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild index 4f1d00a3cb48..9e216067cb34 100644 --- a/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild +++ b/sys-libs/uclibc-ng/uclibc-ng-1.0.31.ebuild @@ -24,7 +24,8 @@ fi LICENSE="LGPL-2" SLOT="0" IUSE="debug hardened iconv ipv6 symlink-compat headers-only" -RESTRICT="strip" +# tests fail due to unusual makefile +RESTRICT="strip test" # 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage # will delete the ld.so sym link prematurely and break the system. So we diff --git a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild index 3b31357d8044..9e216067cb34 100644 --- a/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild +++ b/sys-libs/uclibc-ng/uclibc-ng-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="6" @@ -24,7 +24,8 @@ fi LICENSE="LGPL-2" SLOT="0" IUSE="debug hardened iconv ipv6 symlink-compat headers-only" -RESTRICT="strip" +# tests fail due to unusual makefile +RESTRICT="strip test" # 1) We can't upgrade from uclibc to uclibc-ng via a soft blocker since portage # will delete the ld.so sym link prematurely and break the system. So we -- cgit v1.2.3