From 7abe2cada1eb2d3f198e810f58098c4f6edab4e6 Mon Sep 17 00:00:00 2001 From: Michael Marineau Date: Fri, 6 Dec 2013 00:42:59 -0800 Subject: [PATCH] bump(sys-libs/glibc): sync with upstream glibc 2.16 has been marked stable upstream. By chance it also fixes cross compiling header files in /usr/include/rpcsvc which should resolve rpcbind's build failure searching for rpcsvc/mount.h. This previously was not an issue because the hacky glibc install copied the files directly from the host chroot into the target sysroot directories. --- .../portage-stable/sys-libs/glibc/ChangeLog | 52 ++- .../portage-stable/sys-libs/glibc/Manifest | 48 ++- .../files/2.18/glibc-2.18-gentoo-chk_fail.c | 314 +++++++++++++++++ .../2.18/glibc-2.18-gentoo-stack_chk_fail.c | 322 ++++++++++++++++++ ...ibc-2.18-hardened-inittls-nosysenter.patch | 277 +++++++++++++++ .../sys-libs/glibc/files/eblits/common.eblit | 12 +- .../glibc/files/eblits/src_compile.eblit | 6 +- .../glibc/files/eblits/src_install.eblit | 7 +- .../glibc/files/eblits/src_unpack.eblit | 4 +- .../sys-libs/glibc/files/nscd.service | 15 + .../sys-libs/glibc/files/nscd.tmpfilesd | 4 + .../sys-libs/glibc/glibc-2.16.0.ebuild | 8 +- .../sys-libs/glibc/glibc-2.17.ebuild | 8 +- .../sys-libs/glibc/glibc-2.18.ebuild | 208 +++++++++++ 14 files changed, 1256 insertions(+), 29 deletions(-) create mode 100644 sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/2.18/glibc-2.18-gentoo-chk_fail.c create mode 100644 sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/2.18/glibc-2.18-gentoo-stack_chk_fail.c create mode 100644 sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/2.18/glibc-2.18-hardened-inittls-nosysenter.patch create mode 100644 sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/nscd.service create mode 100644 sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/nscd.tmpfilesd create mode 100644 sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.18.ebuild diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/ChangeLog b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/ChangeLog index 66b14dde63..b01181f393 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/ChangeLog +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/ChangeLog @@ -1,6 +1,56 @@ # ChangeLog for sys-libs/glibc # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/ChangeLog,v 1.944 2013/06/29 03:22:33 heroxbd Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/ChangeLog,v 1.958 2013/11/28 18:45:27 ago Exp $ + + 28 Nov 2013; Agostino Sarubbo glibc-2.16.0.ebuild: + Stable for x86, wrt bug #467256 + + 27 Nov 2013; Markus Meier glibc-2.16.0.ebuild: + arm stable, bug #467256 + + 27 Nov 2013; Agostino Sarubbo glibc-2.16.0.ebuild: + Stable for amd64, wrt bug #467256 + + 23 Nov 2013; Mike Frysinger glibc-2.16.0.ebuild, + glibc-2.17.ebuild, glibc-2.18.ebuild: + Fix crash on alpha #480740. Fix crash on hppa/ia64 w/gcc-4.7 #486618 #486974. + Add missing fanotify_mark on hppa #480268. Fix building w/make-4 #487906. + + 30 Oct 2013; Mike Frysinger files/eblits/common.eblit: + Add ifunc checks for arm/hppa/ppc/s390. + + 06 Oct 2013; Pacho Ramos +files/nscd.service, + +files/nscd.tmpfilesd, files/eblits/src_install.eblit, glibc-2.16.0.ebuild, + glibc-2.17.ebuild, glibc-2.18.ebuild: + Add unit file (#479496 by Alexander Tsoy, redneb, Charles Nérot and SpanKY) + + 30 Sep 2013; Mike Frysinger + files/eblits/src_compile.eblit: + Disable info page generation for glibc-2.16 and older #465816 by Nikos + Chantziaras. + + 28 Sep 2013; Mike Frysinger files/eblits/src_unpack.eblit: + Tweak how we check the kernel header version to work w/clang #485146 by eroen. + + 11 Sep 2013; Magnus Granberg glibc-2.18.ebuild, + +files/2.18/glibc-2.18-gentoo-chk_fail.c, + +files/2.18/glibc-2.18-gentoo-stack_chk_fail.c, + +files/2.18/glibc-2.18-hardened-inittls-nosysenter.patch: + Fix hardened patches for glibc 2.18 bug 483804 + + 17 Aug 2013; Mike Frysinger glibc-2.18.ebuild: + Re-add mips librt patch to exclude list #481438 by Manuel Lauss. + +*glibc-2.18 (16 Aug 2013) + + 16 Aug 2013; Mike Frysinger +glibc-2.18.ebuild: + Version bump. + + 16 Aug 2013; Mike Frysinger glibc-2.17.ebuild: + Mark as -alpha so that we know it missing is expected. + + 12 Aug 2013; Tobias Klausmann glibc-2.17.ebuild: + De-keyword glibc-2.17 on alpha due to bug 480740 29 Jun 2013; Benda Xu files/eblits/common.eblit, files/eblits/pkg_preinst.eblit, files/eblits/pkg_setup.eblit, diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/Manifest b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/Manifest index 20a9bb82be..9b85b9ab37 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/Manifest @@ -1,3 +1,6 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + AUX 2.10/glibc-2.10-gentoo-chk_fail.c 9407 SHA256 7745c0f5d37b37959b43b41e39762fc35b877161bc5740d9d3e9a83021acbc0e SHA512 d1c51c573353b3b8ae6ab1bcc8c10eda5cad8b98fc7ab4848e4fbd8a8736174f3c3fd1b72dd80c72b1e54be78f1cae4dc1ab8130df25aa6d1495e5cbbaf3b9f6 WHIRLPOOL 32028ddeb422d89c0523fec994413e67c6afd9fcfdaf147d3d6a28bd02f8feabda9571ced4509253b7061a95bb2c16cecf94a4274671b33909ff545b1787f101 AUX 2.10/glibc-2.10-hardened-configure-picdefault.patch 865 SHA256 b50b29f85d88011555bbcbe6046e6600be9344f2d78412b14aebdea515420774 SHA512 e0a09f77b209a72ab577fe1e62126609fdddedf3fba0eec749c4b506cdf793779b48390f055a3594892120f694291f8340c0b6f51862e94c03fd516897138be7 WHIRLPOOL d1b8e1536696350e0ed9eaf9a923daa7c004ef40ae94c1c3ba3d6cb293f1c19364cefbe8491089061124cbe26a9fded9f3d38d89f1bda56d408162e53702e8d4 AUX 2.10/glibc-2.10-hardened-inittls-nosysenter.patch 8823 SHA256 dcf78c6524c222dbee907200a8878aff727e29d43a4962b977a16d85752e5c10 SHA512 0605b7964af87d1d6bdccea5c4d1bfe6267d4401b8bbf0c8bb689663e6bb3ef92eebad8be6c23ffdf6632a4d5e6098d8a403c3e84ffb21b5e87b5b1d1ec3512d WHIRLPOOL 635261b547883bbfbe23c802fcf97916dee823b367f96732ccecd7506dff004b87f2d36d97ed398510711330f3a53f039a14e226d20a681cc201a8c7a3450833 @@ -6,6 +9,9 @@ AUX 2.11/glibc-2.11-hardened-pie.patch 1492 SHA256 74277f76ace9cb6b408ef7c1d43a3 AUX 2.12/glibc-2.12-hardened-pie.patch 1542 SHA256 9d11da52900a4cfdaa9052476029cb1b4c8004dfaef3cf446f3b728035f75fbe SHA512 97abb62a72d95b07f546658846718755ed78286b11cb72b2cf6ebc809afb1e775ca860e3903f9936ee54761b6d6bb309e822957387900454dd3c66be35ba8148 WHIRLPOOL 4b9b95d1c6c6e02ba21ec43f382a1d932ed8be5ff548a828c3e9a1d945c44cb8435fd502f6c8becf6a2c19bd23c77ad003598b3b3b68b7bad5a5af79e92d6077 AUX 2.16/glibc-2.16-hardened-pie.patch 1570 SHA256 9a8d8a8268605251782b1fba509cda090f39f56edc8a5497c7b4acfc428041f7 SHA512 1dff16b1ce4ba6246336d19fac21ea6e8d5710e138a23603fa6b79896d895834b6d28bb1948c83648120ca1d038805db7dd7138ba3e28e9071254d6320cdc092 WHIRLPOOL f96487ac4bd95a99e9e70204c686c3f19bb8238cfd4a9856b031be58ac23927886f228a8b4add14213e0489a204c51ebbeb8a376311305025116b8ae45fc90c2 AUX 2.17/glibc-2.17-hardened-pie.patch 1784 SHA256 bba32e40c73aef20122b2825f31e5c3aa058b61feae4f32f336e1941f83f82d1 SHA512 9ecfe2b6c8c982a42786181d6507d5fa588a6868109065451f58a779848837bd5e69c32a24e43a186c2ff63a9784015c51487e342c87982ac074139e36c169fc WHIRLPOOL 1baffbef9e6d870ea2f2ae5be014b71020a213a1a11e9856fa207545867de444ed164cb926b2aac23471854eaaf72a87e38760702b32bfcfa639add8733d925e +AUX 2.18/glibc-2.18-gentoo-chk_fail.c 9384 SHA256 e6ed60f4e0d262aaaffac2b84fd2fcf7906965dc9d91a2150b8b2d9f50e7b9e4 SHA512 f7106e36fa49b0000192c281edfcd49338c825b8b8663ac9d7304e8fe8b2f44b39c6c82a741b8e8abce4cbe2fd72f64e3cfe7a18ff504a4b2b2d63e5c75d62b7 WHIRLPOOL 80aa86694aedf306276ba74334a14e98b108caca046430e6ce71ec67221ef716e7350a667929bf79277bfa9f0eaa23d4544f8acf7e32fd54a26b3a0f5ebc596c +AUX 2.18/glibc-2.18-gentoo-stack_chk_fail.c 9599 SHA256 039a6249236c60bb909e67339fd7ef6eefd1f4bb71b8cd39f4fe04530c536315 SHA512 97acbdb8aa87dd7e197a1577bd053374b1c8c30d6c82f4a71ef04409bf87b36a60322237cb79896ebdb49960fcaae4c4f2333497f5c255f67717b01d6d62c2d5 WHIRLPOOL 40ed26d3a251a6f4de125a588bafb911b7ba4867f5139142c00a2bc2f2616658a45cff144d2629bdf33cadece020ed6a1bd7a74047da812821cdb6d3e8253f40 +AUX 2.18/glibc-2.18-hardened-inittls-nosysenter.patch 8981 SHA256 3fcdef34164b7fa6e493e081d32427017d239236aa4e183e3a470fe49a028eb7 SHA512 98feb8f12dc5d2bb030ec7c6c77f3f9389ebc208fafc96496f316e577457dd991294d59735b013b17e1d10d5c7b63471d5b857d2334be78239a8ceb1ad62b1fc WHIRLPOOL 52ac2452fe3f9ec6ac3f4635cf017d1347eda6b950f25ecee6ef1b444de97fad5a1792432e0c783375fc7d07c80b4cd77e48a6d6051aec3933696e2f17fcec18 AUX 2.3.3/glibc-2.3.3-localedef-fix-trampoline.patch 2329 SHA256 b5cf51d1ff5479d09fbc82992f126ca4969006c90c3a2ae94ad586d4902d791b SHA512 939ec7da977837ef46aa8894f99ac06b3fccfc36dd672889b85ae8cbbfc9a963c5d0c031d776aa2feee29ddf8341b4cc7a50ea19b7c6f7e80df74eef5f1fd977 WHIRLPOOL 47d248ddba815a517aed9b7dbfa247bdedf293cb5adad8079be803ea4a682136f01b47fd3817a1696b3758c4631d1a25376bf58ef039998ace4a6b65807fe75e AUX 2.5/glibc-2.5-gentoo-stack_chk_fail.c 9058 SHA256 067fba2a36d2630d50198c44395ef208cdf080508f1b716bd3d079f7b964e2df SHA512 2d404bec1e009d111b775fde620102b3d0ea7614d07ba31350940f2693e937e825acc43d1ab94bad2eecac61d47c696098327096dff8f08b4b7312d0873d71a6 WHIRLPOOL bb27ef90afb256d3822787b93574d4f4f5632995663e08b7201db17a4f38f6e2a8fd6368aaf699a808cd8f7acc346625b5607dcbf1e88f8b28dcc6d3dba92399 AUX 2.5/glibc-2.5-hardened-configure-picdefault.patch 794 SHA256 0c0359f567e4ad2d3184618bf6ac7e6102b703eab6227c7e9a4ff4dcdeed2c91 SHA512 99caace6c3528db400f8039c3f5aa65a2d5088d9758894c8a49df2b5045226a4056972de2d162411617162edd9023b6c6f80d85509638b5d68a8d0cda40adafe WHIRLPOOL 1271cea2155149e789f1242759e516443c5cf152ae9612d91d2a25a727952684eb043fbcfb38186a31fc6a1568201de5ef40af45436b137453e0582f2f6facde @@ -14,15 +20,17 @@ AUX 2.5/glibc-2.5-hardened-pie.patch 1569 SHA256 ff9cde8857c5da89faa4039e2a81748 AUX 2.6/glibc-2.6-gentoo-stack_chk_fail.c 9545 SHA256 1410ded812be80d452eada5f9d6b9bd7bdb504c14f01cc27dce3e36b6f92b92a SHA512 360b77df2d19d14060e19e763878297bf042eccd5206ce4829a33c78c982b59b46144116d237a7cac73a22dd6cb4987c8dd50f1d16003baa22c2cb2942d2cbdf WHIRLPOOL 44e14dacdd258c46201a44c2c6aae4d975b960a914c24e49f2b39dae960636512049daa052d3cd8e8d93819d263327c28eac947efdb5d9e240d1bc6e9964016f AUX 2.6/glibc-2.6-hardened-inittls-nosysenter.patch 8674 SHA256 cf58ded8fbe9fcb3dc094521feec2588c1520ff2c632b20c69d6a210325c4fcf SHA512 094b24474e42a9714f5298b0768d44f2c0e01b7d8c3b0a754bb16caa6c024106e8c0b1acbce670bacec1ead6653f8365397173d62cb8168b946c8f521ca155d2 WHIRLPOOL 9fa16256f9d3bd2f38023549c0bd4c932d3173b6c3f4ef66e19cdb3eff5cb2def6ec02fa72a7e57ba74da6d5f29b82ddb9692d59f6c694d45b5989fa0bfa6057 AUX 2.7/glibc-2.7-hardened-inittls-nosysenter.patch 8755 SHA256 b0b1bf0746f7160b89cf281502b95c38dec9cb948d6a50a907b84fd6230a2dc3 SHA512 50563c26e1fd2e71cb034c8a1b85e0e4075ac6467bae46d4cba0c105c940c5aa6531c39cf00c63ebf94be4e290ee485d7bd8239ff08dbc781db605b45c4aa38f WHIRLPOOL 2047148b53073bae4031ad864fc360112e2812115ec455142c82d4694a57387b49b36c98f400dd6f77f5dab3d419303faabe8183a16f0fd68387996c95888a43 -AUX eblits/common.eblit 9699 SHA256 5c7d507762f7d940b4a2a6f9e79cc944caf9fcb7e05770b065d26d8e46b5501e SHA512 8bb545238f75d4c3e1d0eaae76ba10b2cc7d76ed90810c1dcb40f7dbaef8b64dd213700ce226791ff727d2740cf4d08dbb597c52cd54fedf1364a9db9b94a6e1 WHIRLPOOL 18c93873078d93305003d08492ceab692e2c457dc268b1f285a9f8b5303cc3dcb233200304744b1b6b33084a26e220c3608255414cac348ad3e0b8dab244c040 +AUX eblits/common.eblit 9803 SHA256 cc7257b6585e84ab9fe8e548745d9747dd56f1e5bf3fbfe192546f95aadccdf9 SHA512 88b16473262fed2d2d9c501749b0e1a62cfdced6b521ba05cccd80ae5e4a638050989882bc6c28240e54276fc30f3730260852e70892fc45d0ddd164d324cb40 WHIRLPOOL edf912bf153aa93dcf3e4a0932258aab8cd185b790ce167a5b4a0f48e512f23a4ee25219218080a2fc72246de58936219a34716f8413f140e7ca849146f9bcda AUX eblits/pkg_postinst.eblit 1081 SHA256 21c349d6999841b277dd00ed6f2bf4b33d14724510da3c15a99e775cb71bd180 SHA512 b491761a0923b779535b4a5abf6e00efb6f2c0bbb68e7fb01b2cad54034b63ddfa271afce16b17b17b53ac809ed869c55f94c44443d661052779770f4302318b WHIRLPOOL 8e3a3f35a4cefa903bc578d2fb6b22506f3ac94939f9ad1e703f470b13ba0fd3353061e38e3142ecb5c693749c84d4a1e4f4a5920e36ce20dc2f7e3b6b67ed9f AUX eblits/pkg_preinst.eblit 2288 SHA256 2c9a0580bf9924d30efb6683174849a9789cf428ceabf340ab8d592ac7c3d14d SHA512 0b946492981adc4d4d4ce8a40cec1f05537653ba5a6423fef3b1d058cfa4f21594635b13c509ee186e9202d54d502e9f61258706e37b55c0ee53a00772bcdb59 WHIRLPOOL 46866a1255eca622dc37c02eb32f4992b3eb90502599226a2ee5e2fc1ddcec4673162d6fe1f53a720e2d3b350a36b8b0d5bfef161bd815e0b335dc0b6fadfe27 AUX eblits/pkg_setup.eblit 3898 SHA256 86b2ab461571912b948791558c37bccabfea6c5b7a08d1fdfe646b51d403b4ef SHA512 c1f8fe6e691c989aab11b2787b42398df0b372d267a10513772cd874c99ee07f3889bbeec86d7d944316b8804d94ebcd29831e29712ec14a062581aae3d58573 WHIRLPOOL 809b89b27400732715048a5fc3c17a4a14a6dbac2b2c256dab3680588dcdfd506c088a3992439fc71a0c40754803aaf62223ba81f6981b4b9b2fd20302e0af4c -AUX eblits/src_compile.eblit 7002 SHA256 a7c926da7aed1728da9999a57a0028f210d434a04997ce0c5340d0b4e69ed883 SHA512 e53e706561c2e8fb34d0fb18ab9e70ccb1130e48a2b245948fd885245df266e013c3686c41b90116935c02210e8f31e9b515af551a8da74c3c4f871aa086c004 WHIRLPOOL b1fe74e135a397361be7b61662ebdbc42ba68f1d08b8e28301880dba0aa3ee6341a8e1bef8a63ce69ea97c39bdd7f3152956b4488b5ac73d2cf0a10feeecb4dc -AUX eblits/src_install.eblit 8197 SHA256 34f6048dca591b433a478a5f3752daeb4605bcf37ef45ab4e67d048d1d600d00 SHA512 a58f0544c6031d5b8160d15f718fbd2eef0015237405fa399a3fd6e5d6f6b80d7ff1064fd358d34f2e84283dd351168147bc8a5b907a473f69066ed5c5223214 WHIRLPOOL 19fea448b345bf1a67d68cfcfd5957736c95f1249c753158f6f1dcd0c3ce5a5133b4ed7602b87fb8bdb726986e2e192833a82173d07bcd4bf1a3a2457e9db6a7 +AUX eblits/src_compile.eblit 7010 SHA256 06a0aed8af47f44adaacebe131ffe962f4ffa2607fa89428560937f00e15e858 SHA512 ed1d79195a172bc891bded238c42c0e1e8e704bbd9fd4321e13339df432575b466c25f59b0a419692fcf3d58fab0239f513bbf547bc944d682cafaa2bea7d978 WHIRLPOOL efde30045dcbb54ff824a05a4ebaa7b6c35ba519e68eb904c2bd300870388d99564c41c5eb376f671e19115a5383d9ef5651bb34b8aed5e74a86b2e92f2b4b93 +AUX eblits/src_install.eblit 8381 SHA256 92ab50d04f5aa5029683b4e34acf4746ad2705f97d00c371e5c2ee9ecb0927b6 SHA512 8667b4397b10cfe5105e57a6e15e2a51c584fa4ce060c84896ed59c1a52f39cdd789c3cfd58aeedd0ebe7c6e8b4af9292cca7fea0b3df20f0986d25fc2e1d766 WHIRLPOOL 27a8a0beba0e3b630792ba8efb956c817783ca756b5f2e9d5604ada75754a01ed0ee8fd12c1531071c66b90046b545d37a7aa1d884cbd5756485b2532d639422 AUX eblits/src_test.eblit 1278 SHA256 4cc565c9688292f1a195b4d9a5ba2d1b90ccc505e62229fc21d9fdf67d9655d5 SHA512 b058884a9ec43f047f10b6d61338366388dfb58c920e3f55baa85a9795750af7b8eafba427bb8ec59b1269853a4e4135b86a951f6513f64304461364b6f36a6f WHIRLPOOL 50b798092b0a9734767a8f9b7d3e1dc087d76e60f1dc83d6d5dde8aba48b992fb1b6eb6f07a9259b6fc4dac9bb391ab8972fd705be91ca15033d4d4144044e93 -AUX eblits/src_unpack.eblit 5178 SHA256 22ec798778fe8cc08b19de0ffec94f2f683c059176880a2efca9c0dacb9bbfbe SHA512 a3d3ed406b4345f08993aa55196949ddbe9e98b7322440ac4626d88cb524ecbba2e6110f3702b39777bc5fa092461b2023ffc9968dc57349deb2fc195b0ee0c7 WHIRLPOOL 7f6adcc61678749850130e3d1f13142b3421ad6f4791af891b6d44a6c2eb548aa131dc9ae64030eb09910e39981c971191c5075f48b4479c64b806459cbdb7e1 +AUX eblits/src_unpack.eblit 5179 SHA256 b60c5e4e7cad11ee4ffc4304e213cdb117baef1edfd6c22e805f31f1cafa8db2 SHA512 157e8a1a0c324eee0e3cbf5485c67e6d3abc598cc2e38a3fc94de6c875ad33383ca7124f63bfcb9884f575711fb3a641743a59ed41cf9fb57a818ce28f6da4a2 WHIRLPOOL 2649345dfa88b94c2de6f56d421175dd852c205014688399a2d2265dd01e5e06ef0d953d576b9559a70fe8c82d92fba4b8e2265cf37bcabea193542a387481f3 AUX nscd 1621 SHA256 6165db3a2fcb251d4f3655c0461e018ce9c92a37f7f22a8fd2b75178b5435bc8 SHA512 3e1255ab014b3806112120000c3d2189a7c1c69dcd6639d5ce55e96bec721683a22b141982f6a6c6d44b14481c33fbbaa470863bef04e9b9eab7ccad1ddd5d95 WHIRLPOOL b7152f8d888fca13a16ea403c44eadbf1da2249dae3add11f73999259061824460a5479aa7e58c012bd737b62ecc81814109832cee33638279d90d4c08bfdbdc +AUX nscd.service 337 SHA256 de7bc9946309d34f0ab44aa22a4d3cf259fe91c57e8000d741cb09ecd3a6caa0 SHA512 2001100f3b054843c69b6fd2d38852c7c824282aa8998c25a3c0352db993705429d25c70d8ce6cb3579f836b7089644c520acac423ebd69cb1b36e94a77c5bea WHIRLPOOL f01d191971b0dc45f541c9ebaaa1a40f3497e2cc838cff6a20a7b1828d726c248abbd94322a5a5ff30c33ddb7d9086cd4d2ba3bdc1811fed59ff292ef3983a72 +AUX nscd.tmpfilesd 111 SHA256 f0f64c4612d2097173854d2ec2e94ecbf4b77c7a6e94d950874e37346aa90d72 SHA512 53b80b331e1a85d8ee16eb2ce547a7249e944926c3d1cdd4a47a5301a5c842ffc7ec1e3dc0a731542a8facf8261c1c57121802d01741aa89898a3476c09da340 WHIRLPOOL cf1fed1a7e2ac1623a84f1cfa2062645afe3f791da2f4ace3859d12aa05df0e282b4c2e367a460015956ac2a8d01fee4cda84917a3adf2c38561dff200335270 AUX nsswitch.conf 503 SHA256 6c38b8642d5da884327ad678d0351d57be3621562253bd9711394bad87e45e2d SHA512 c13714110f3ccc9a2270f51d0da9293ab19b9df368092d19b1a84d5051d888297bd9439a322eca1ea60d6d5e58952797d803a368a295f2db6d5e97e173907373 WHIRLPOOL 0d37755ba5928ff894c355b3fdcf7079f19c1cb7a4f3676634084da89c74d7175823a4659b8c66d8dc1395d086991857162822ddf977dbe8dff9a59bccab821e DIST glibc-2.10.1-patches-7.tar.bz2 113612 SHA256 6c94493e08c13072c94c967f55b659e6c950ec470c9677c43cfab10e24a88370 SHA512 6f1d575273ee354e6b9fb85d1a25b660e52fc77ed50bbe0a2c25f60d4ad11ed4560b27358d1b7a5412d5f1fafac2dd83b7ce5b1420205ef2d4906e4c99b610ba WHIRLPOOL 70efe90ab258bf15cf6c0b2ec826aacf25d4cab0d0e09b8883ecfdc34bdc54072bcd3330dd622b8f12ee6a1c74928ecd022e844a351717b53397f056b376992a DIST glibc-2.10.1.tar.bz2 16106243 SHA256 cbad3e637eab613184405a87a2bf08a41991a0e512a3ced60d120effc73de667 SHA512 3933f69884862b38999b25af60b66c3d887bb022a26bf72e69ca17f2733e37017329d085b4ebca56dfad265906748b83535ccc41df034a867d76a62025c86df2 WHIRLPOOL afffcf139b78643822e6c89f6d6748161bd8c9043e5337d7b057fcedc4ba4e07572c6548c0288bd1bac10bdb63bf69c5eee1047750511ed814c150179ec34f8c @@ -35,7 +43,7 @@ DIST glibc-2.12.2.tar.bz2 15667759 SHA256 22f8eb3c49b9eb5e88fc249daf8670899adef2 DIST glibc-2.13-patches-11.tar.bz2 114949 SHA256 7db753b6ba3f58b77a95d48cf9fd8c54d843ece9b8ecdc01fd9cc787552a6e54 SHA512 ee3f02f12958220b5d97d72dbac0352d97dd225f9538fb8d036ec469c572ec577fb2648bf39f155d823928a01ab37ed8a1540d309b25b8719130d4a9d36447d1 WHIRLPOOL c26acfa64262c130be786bac905775ac0a2b1037b73259d6d4f387d6bcd5c82452e3525e284010fa687a921a8882b17737b87e7f214af546940f41e55f4edf75 DIST glibc-2.13-patches-6.tar.bz2 103372 SHA256 86335122c8523bf588b00508f656d5343e44f13001ec4fca088c127417e18846 SHA512 347f1b7cd2a714af5fda438a1292f2d8ef766a4e4f22d6597663df3a03716a2388f90d27a918ca94be0dc01b275b70f7fe86a1c9fc82b0f97df91e3b552d42a7 WHIRLPOOL 372b812b41fd64b8a0ce0aaafd926bd885d9e0f131235775dc5037259759a7d7890de90674f2b7e2b78d691863550c9e292b395a39ae85c9737f57a4abe475f6 DIST glibc-2.13.tar.bz2 15725729 SHA256 0173c92a0545e6d99a46a4fbed2da00ba26556f5c6198e2f9f1631ed5318dbb2 SHA512 7fdae9acdbe8cbfda008f107ffd1559c0163ff70730a5bc618f1f15b64096a813a3495e0b2d2be7b7206bef3ed9ca67a68fd2004c8275ffeffa38b70c80887e0 WHIRLPOOL cfaeb0831f177926610d2c89bd6bd20735107ac4738ee0485a2d2e14b13c986e68e64c8f9093b89f135c3d7eb94fc2230b9f3837f3841a8bc2bc886ff5415005 -DIST glibc-2.14-patches-7.tar.bz2 105702 SHA256 f213848ae57ca7c3bcd0ac87bf04ef638b9c8191a8124394771d758a861bf009 +DIST glibc-2.14-patches-7.tar.bz2 105702 SHA256 f213848ae57ca7c3bcd0ac87bf04ef638b9c8191a8124394771d758a861bf009 SHA512 ef0c3cfe3b9935ea071fa96084b0fcbaa3865fe12e8c04d312f698dfe0395a8036716f1f9999777bb77eff314c423a056cf6483a9e6dd58b1919ee2fddb153ae WHIRLPOOL 3ed0b83b19b0729e550c959f5c299a639d93f04d285b24bc8ddf2f790cd5a376ed2eac44acb51a357a02f3906a470ef8783e98e8fd3a0e181fec95cca1deb649 DIST glibc-2.14.1-patches-10.tar.bz2 167926 SHA256 e93815f125a6d1cfbaa6aa920274ea55c12da0bb4719fafd4bc0bfad27322108 SHA512 520a8e5e63daf33f1ac2d475e2d880718a774dc9228fa1d61792eb17d39a5a3d92dafac7963c4eada71ad06e8d34aea34098e08533dbc6844e9649d84b8980ab WHIRLPOOL a0c246425bffb5ce84ac8e5f25614e2ccb90de668365fc1a3ddf187ab8ae954990d12a5924f83ffa56d563b6c70fa1dbb01263d0219c40279f4267301b83646c DIST glibc-2.14.1-patches-5.tar.bz2 159559 SHA256 b185e1742d4e180015f16bd8f641cb369a7ceb3e2ed691fb6c9cfe72e4a0703e SHA512 2d726a01c8be41ddfe98368b6c7bf932e727daed1c98268a96e74cd08e84a43b7f620ef14be0f124e2eee6c2478e1f351cbe48d27709111dee95aab7fcd6558f WHIRLPOOL 64da8c26f8fb93af4c6f4e3ebc1ba74389917bd9ef59e998e80479d7663a9683ee483247ae5e062b10039549a2dc89ee0cdb1a5d7876ac128503563f95a1852e DIST glibc-2.14.1.tar.bz2 15650580 SHA256 6e85a2fa3ebe6b28103361f09d27eeda37a021f24dab73f34064456d5a715b3b SHA512 c83c9d6dae0091b7b6d3c8fb2b9376e58d2574a8016ce1b4d6e870afca3b892e8da2482ddf95d07ae7407a7f4cc84c1f52cb2f975a18c734529ec019204f65b7 WHIRLPOOL 0aee8c43d851375dd18b3b0ec33aad74ab396936f347cbc9f91f182d84ec03d45425be44a7edbc3faa8159dcbf9cbc4a09fa8c70b3da495fff071469fe063959 @@ -44,10 +52,12 @@ DIST glibc-2.15-patches-13.tar.bz2 154658 SHA256 59c11d8b70bc406f6bc7dd87509f1c5 DIST glibc-2.15-patches-21.tar.bz2 110297 SHA256 5553c0a37c5c0a3abb303850fa9d2ad309e2f47c3f42806c2f1dd32a48affbfe SHA512 5255ef053a2c30f9cae583133094f41604385b9d6e653a0d6aab1d13d69e6c8cbf16fde712607ab0bac738944a0410ddc050dc231ad4ea7d3584271937b0b059 WHIRLPOOL d70249c6c3c3c0a4d02c3ebbf0309bd6b3da3962231c153c77be38d217e2f57e0eba88614e34f0f219f485ba8f8474586d0059cfc505e44f312396e6a753d441 DIST glibc-2.15-patches-23.tar.bz2 118999 SHA256 11c38082635822eb7b12d538e3b9c38ee71f6a86be6cebb59f5f2c575be93830 SHA512 ff3792a0029ea24990fe2419579472bd02119ed6a2dab28e85089d232029be5f1c18c643bcb9d577dce78a7c682bb5eee1ed3644f086b5cf19230bcf37ce8a4b WHIRLPOOL 110ddb5989bf1b66a487c9ebae03a3e62ac22b7a28b4c70d142e1c56160bdd50b9f5fa6f4dc4a28cfb28d94281c582fcfc1f60df8ae2ef4e8a946b3b06d2b1b1 DIST glibc-2.15.tar.xz 10280176 SHA256 321ec482abdc27b03244f7b345ee22dc431bc55daf9c000a4e7b040fbdbecb50 SHA512 fc8bc407cd9edfd79bd286d28c84e0b8224e1f57c1d318e73da098a9693257d78970178fd59f487f0321a079fcb772e8e78473fab52f091b2addb0a48fe8dcf7 WHIRLPOOL 061fc0c9915bd821dc31c2fea8e4f9a75b6c7ec0c935ea713d8c087408a8bf3c600179273438f3d9748fe40b946866b2f160e6da6fee4da51e549a30d0f0ebbc -DIST glibc-2.16.0-patches-11.tar.bz2 90997 SHA256 4a1abb359e6e73b36eeb21286780fc6f6eb3528f8db25de475779af025c0f762 SHA512 d6f5107ae8cddb82acf6baf256807b1f7a33df4fc3c5baf924c0028781f322732a8913564bb7e3fb337b646b18f13355e06c29f4cb9c618d2d834afc92d7353b WHIRLPOOL 50bb4e186bb1dd1941b3dc7fa02572a624a9530fea3eda5c736dd7e360d34914ad23ff03efa79adb71496f3552c27944475a22da0ebe03ad4f64f6e026113b90 +DIST glibc-2.16.0-patches-12.tar.bz2 95047 SHA256 e8fd08ee1af5ba4c2999657ea7ec3a0669c10fcf36151874a22f9d8e20d535ed SHA512 f377043d51e7b1d9d74af2ae1d40543329b9d6d5e07f7f9d84b1db9773f61864dc1f52253a952b2618bfe170f9cae32fdf748919460605bafaea6bc0c1f1befe WHIRLPOOL 69fe1b2a9ca0f2521bb59089cfccb7393c3fdd335498ab397d17dcb441a8ea0c579a35e3f175025d2c348b72d08ce496a0ed6d577bc1e0b5a65eb5fcef88e04c DIST glibc-2.16.0.tar.xz 9990512 SHA256 1edc36aa2a6cb7127971fce8e02eecffe9c7956297ad3ef10dd4c09f486d5924 SHA512 be9acc11b77ab3c01d5766fe626a6a51bc3192ac98f9554fbb5c37120cfc6f636c0b7a80beddc180f13b32ad06051d24c1999fa2e64eeb724d55a9498f0f634e WHIRLPOOL 9bfd4358a4488080e12e08deca5fca59c1555853d1c1978b7d1bb3b480eb8fb125dccab38c55644248ae5e18b0167aec85f8a7850bab9e11f980aae6f171eac3 -DIST glibc-2.17-patches-7.tar.bz2 79288 SHA256 8000409d072571d2d5119d4dd538e3a3ea39213407e202ea10033bf6aed516af SHA512 c6de4d7754cec6e7a9e36d56eadc6605ba6fcfac116eb50553503738873659977beb935112d361620c35e7b15e86f845a49fd13269ffbf98c72f54dffade19f7 WHIRLPOOL 259e938e8f4ca6b7296db4982748429f00135f80cd03965da589e4318134aeddb5acdfa0f8f61871e46330a0c96eb8e734a3c2f50d564882ba37f13f722b78c5 +DIST glibc-2.17-patches-8.tar.bz2 83707 SHA256 477946a4915dcd0cc0565ff8532d219e2ee868f6e821ea71ce579652d01ccbb3 SHA512 6675357e62b554d9d0f8ef70341b8038f8f89591fba384bc3783ef81aead0532486e2218af71da9c6f88a3b8b382edec81bed36eb636ee231eac80e111acbfd8 WHIRLPOOL 946f431b28ec60cc61d44364187f64a2d6e92ed7c9071126cf70277843c656de4dfac9f184f572f9a72c0cb452d879cdb7aca5b9f92f8ff02a8b1a521fffef43 DIST glibc-2.17.tar.xz 10981956 SHA256 6914e337401e0e0ade23694e1b2c52a5f09e4eda3270c67e7c3ba93a89b5b23e SHA512 384e54037daaa344a26ce58242acc3f9a249d0765088d18a540a305745afa33ae6dec4024adae958eacd7100be9c713d117260ace8340f6d8c8396dbde4868d2 WHIRLPOOL 9b98c1c298aeff607aaa554341c300c15491b7314f127524fc5c048c67c5059daaf706e6cf206bb69213d5307e37bed87137ab46f504d8072bb778310081fc23 +DIST glibc-2.18-patches-2.tar.bz2 80006 SHA256 8f7424d43148708a301ed09aa281ba200822d18d40a87c657d5968972d75b7f5 SHA512 04a28f54d450d6281e32f4651d4ec6e912f37aa3ebb1faeb18230c335d2808b6ccd25d4ec2692067fa310203b6f7d7774faea44e8708a350ee2baf59807aed64 WHIRLPOOL 2cfacf62b0c5f167f7061293d1d7409b3b6cf6b834edcab87adc2493b062d89e5ab451bc3cb95b917d67ccdb0f1b6fe3b59eb0550438a73636537dbb0e6ed98a +DIST glibc-2.18.tar.xz 11150148 SHA256 2cb4e1e381928f1e5e55e71ab1ba8e0ea7ede75ff9709770435bfd018ea257a3 SHA512 27218d2e7dd3bf3908d7af171c490933680e958c579ebd27b43b661e223fd5de2219cc1cf699170405280808c84de476d0ad86dbba35a488ef404e9438552327 WHIRLPOOL 89b877c7db602ffd4374c7fb84db17397b91f889a7de6259f79374cc3fcd00613114cbb93feb518ef25fb2e579fb03843df15d17235c1fe1b6a7e0e64aa8e8fa DIST glibc-2.9-20081201.tar.bz2 16430489 SHA256 6f8e515775e20ed48610860d10315adda418a3649b3465f36ee5cd467364a8f6 SHA512 bdd3f5b61f741f09da21020ceef95e8e4f22574d11f8f2341f573ab2225baaf68698446ec26cbc4a63a21a8a400eaf5820fce4bd89c3e1dcf52172a62df561f4 WHIRLPOOL 37e4875e450e8a4067f657b4d71be184844cd45c0d7dbd9242e8f998aab4e15c732fc64ba148c5782078873182d4b132c911da9242b0513eea96a2338aa04722 DIST glibc-2.9-patches-8.tar.bz2 106638 SHA256 5f1f8b569ac02c2f538bebd64d137bccb442ddfcb28b3ef17b86134edd8e3f6c SHA512 f5070bf45c28bcf455f53bee85414e6efa1da3cdbc51425a1bc67fb92ff793d1416d5743a48e69080e636d80e41463c5897d437190d496c0b34f7dcf158e8d9c WHIRLPOOL f15b98a7bd6a8cbfaa9c6e1ad7204de875876bf1640c2a008532537cf65b811b42c45446dba846f6e572e9d763cb6afbe878920a51f772c7367cc7a6f615f4b7 DIST glibc-2.9-ports-20081201.tar.bz2 487663 SHA256 19bb6e89855171d7ae01aef92054dfe4524521fbc13c67bfaa3ee81944210744 SHA512 8bc400fe1f8213908c96fa8c1060a360c4ed83fdb21ba6ffb7b6dc0232216ea23217d0c165336603a8969cca89e8b3edc7d32a38516f2c27114368682d06e6b6 WHIRLPOOL 917d6b77a3d999cb7eca7c9b8bb8d6838a109c609ef8bd3aabb3afa04755c142e4dde352c5c62561a8b39581295eb48b23192b52d1d9f1916454c4cf39db702d @@ -72,10 +82,28 @@ EBUILD glibc-2.14.ebuild 8402 SHA256 0c069cf00fb60a2b8dd308efbae48234825833767b4 EBUILD glibc-2.15-r1.ebuild 8143 SHA256 94c831d06eb6cd7c153db3267dfc7811739d90b8761751b384e85360f77e70bd SHA512 53d5b41729a282362d3447a45dd373c098e04cafddc81d7da0304b7ef56a4bf53058c4ea88763db48d3796345131f6b25cc56949770af1a628549d3e2b24af59 WHIRLPOOL 3f76b15a4db14db99afece549cd4c4982f1fbcefac313bbdf10127f10630da9c43f272ec85ee99afafeb3ab9afcf5f2eafd612386e152e3cfa08d360ca639115 EBUILD glibc-2.15-r2.ebuild 7692 SHA256 1ee891da4bbb450ce16318877a9043773c34a7418eb49f7f684155e48ecc1b6b SHA512 4e0e5c7e85a514a0fed90a9e339eef8748e3a0f06211a93463db355b9b921337ead3f645a3fe8b99dbe2f12d1c03e2ffcad7e2dbe2909b5d97fa5486fe53215f WHIRLPOOL 84ab863b0f70cf8d40291a155f21c987e9b48dce005890e34e105bb3fed950d463f0b053fe2d7988a9b218dc3ccc9afb0c952845009b2e7e2569b28298f8e479 EBUILD glibc-2.15-r3.ebuild 7696 SHA256 35f0d18bc55a9dc99208c7863e106964b12d3d5dac296f68abc021cb8ab53bb4 SHA512 7da5f054a6838937eaf442414379f2ec73527bd4d24b81d31f292eed3b38ed0f6eb34508da4c3b3ede53688f96d7cf87eef029e3650f8f4df3a5554e6ca93733 WHIRLPOOL 47a0f1ca3b6ae7ab0e2600110e003bba9aa5507b922f3a5a32e9e5f50d05c92a3e4b56d01e18fd71a03c9651d63ceee80a9ac89b3ecf8ffbfe0356ad8f84aaba -EBUILD glibc-2.16.0.ebuild 7495 SHA256 d498eb21c832602c2711b4fd8607bbb36cbbbcd701405c5f84e2dbbe9ac81774 SHA512 caa429992f3510b4a530fb7d700ba8e67664d5df406ecd198bb7481009e4413cbf9a8f366b77f0e4949670f56dd5e21d7fccee13aa4d13684cfdb8ccf6054aa9 WHIRLPOOL 1f3a56785e164b4d2f8f258bc44b6a324dee3cecd8231b030ac68efdcc007c7cc906519d4f3f3585ed327bc572b8a2ded827afdeed9aaad1b81aeeca915571f7 -EBUILD glibc-2.17.ebuild 6702 SHA256 5fadb9f3fdc30c8575df1b2fbc2dad236e2116553e6cf9e29d609a64ae9006ff SHA512 2751bf4a334a3a0815943d567b169d4d324fe2b35905d61364e7a4acfce64210983acc54498eff3528ce7d16644eca54302875cd3b8f40f9e113cf4f664eda72 WHIRLPOOL b6f8a62220fe49de8b86f657784e6cb2c1ae5d6b100bf61d4e0702b7296e3d865c04e8671bd35e723e92ff3a8260bfa3b0094e897c59ee952056f6883a507ac7 +EBUILD glibc-2.16.0.ebuild 7497 SHA256 46dbd0460077f9db72e5d98f6e661bc3ba3c469f7d30792569ec947dd9aaabb1 SHA512 f39f553fa6b4f690f9bc5862f899d0d9731240e9f62e93563df6feb5acc6553a0a87d0da0d2f27205edfbd3909ba714ff2258d6cd8f470c2297c06d19faeb0fa WHIRLPOOL bbf4933b11b83d8405f72e82497def443099ff01824e2dfafab196223f627c90d44834bcd6b7361373cab5642244244fe18fd8cc97c9d6b336ffa002a1803818 +EBUILD glibc-2.17.ebuild 6713 SHA256 d2bfa17600e5d19ad9539d483a165f07778a173cff1b3ef0eccbb255eee17fdd SHA512 7ef046ccb0feabc92598c7620f2540be38e662e9e1c489006c1106de474c6c37b7e47f109eae81219c5debda0a1160d1ea374f008d8ce0148043ecabae576258 WHIRLPOOL 1909230d87d3684e7a3198db8a59fa4981ea3ef1ae92bb9501cc7d966f57cda4613938e10facc9b574b09c79321ff5e0da5340475aaa58dab9bb660dfdce0979 +EBUILD glibc-2.18.ebuild 6762 SHA256 cfe6ed420f1e9952a31f6861b6887984f00eb79d6541f7ce0d3948471fc76d13 SHA512 aa62d149221e6b0840d0166f57e3cd24996570eac941525d0f825896e07f7e720578076c8cd5b19065c7b1da33c08d985231e42debf1ae917bf6ce332ca7c7a6 WHIRLPOOL 92d144f7ade62745e908a750f06eec9e3e540299069171486abc4443372fdf781de5ec0676b922186ee2288830bc077503f91dd16740665b4619d59af934a82a EBUILD glibc-2.9_p20081201-r3.ebuild 6770 SHA256 87e75b306b69d170c7fd6083c7a40303ea292616a810c3e5302eb13ff72932b8 SHA512 3dc0d6f0b99a1e83caa8a152bb7752b8b504324876bed83657b683c73f8a3432150cb5d3b42aea11d064ee9d1a4d1788dab6c9da11cfc5cf716c214ec145e177 WHIRLPOOL 9fec37815cd88eab81f4452e02e13b96e13b1ad8284b1be7f77213280da54a9de85275cf665307d3920e36c3bc02f6005acd5316f6f2ed3dac5b3b60a80690b0 EBUILD glibc-9999.ebuild 6619 SHA256 523f30d0bd4fb9aef983b7e62e57239d089251d0f3907b6dfb70a00cbc0c2e6c SHA512 2d875c8434720b700bfc99836870e625b7c3010178a4a501e435832e826e7008764878d1e4f88d9f568d21f97de56589bff7984b37d3e9840f19492585cfe16f WHIRLPOOL 7da4b26e63d4f79592891ebd1cf1fb915d40049e8feeb61d9c55f7af601bfe2b7f1a03b1aed51f95be0451c90e93992920949c92ccd2401a0c129b600f5afdb9 -MISC ChangeLog 59507 SHA256 9428537cbc3492c1f39b392bcb01aaf08a76641089cfb315dcc1e4e1c71c49c9 SHA512 4a2ff9253afc1f3d964c0e74f71319880fa610e93d5eb3c6264ea39debb66172d4d9846aba94bc7dd11c0137eb965f2e3badc153a4eb0f71143a6319b672ba94 WHIRLPOOL 189378f8620729dce5ff9d22add34d5ec01e38f065cdd755ea00a8da08382366be7d980ec55dd6dbde30892313d97e333896441cf0fd27764d96959a6701119c +MISC ChangeLog 61576 SHA256 8d9d9adb2cea7d88207d4bb94b9034e8b72d43cf5946ecb82fffd0b5c2d4176f SHA512 e59a38eacc3f695691655bc42e20885031d2d335ef3d37c9eb0bb596304f0fa0f37abf47c705db3fa35b231b20a0a2402cdd4799254270aa5c8e8ecfc5748b16 WHIRLPOOL 75fb12d21537002c59604b1b92a810270d240d2812dd209d08a4c6e4d79cacdfe7a6f84bc98c0019c2f990447d809cd07cbdd2a01a21a84cf65640cac712d182 MISC ChangeLog-2007 108548 SHA256 d622be202eb0d61a363b0ae4065012cd1d494fefaa0c03d4aa7986177cdde6d0 SHA512 fdb3f311a3be4b97a6acfceb1763af5ea69e74d8195522c5d03307f75e15a9382991e9e29dbfdec79e74f1c36328f82648768749bc929e5050ff64b628c7ca98 WHIRLPOOL e550f354394569069e000a7e70ec69c94388a0f415c19b427203f0dcbcbeeec0f5e379ee2af7886cd2d68559e749fab8122e7e077985729d7e0e728ae9096d7a MISC metadata.xml 521 SHA256 e89c6157189c7a76823ea61ad88e85d6c5e497855abfa03d4e044b09bd0d0955 SHA512 46d36653c75257e1091d88eed54dda553a81a246407f7ae37864e3a9f1c359560bf3d08f5946a725624804e74b1684414a729a1a3b961220dc76cdedd9a4d0ce WHIRLPOOL eb3695d1ce708f3668dc85332b4ad9de6e021b3a98c1b48c4b874d7254168ee5aff2ac6b51866b1df29f1689085ab07e97a7b39708bcffbafedb21288e01f42e +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2.0.22 (GNU/Linux) + +iQIcBAEBCgAGBQJSl49JAAoJELp701BxlEWf8dcQAJRwsDQsvRdjmEghipVtE1it +Wse1TpMlbWfpPCkwVcaFRhz7TdrHTKfWbydazHppCSVA4PY7EsV4OAM+6DM9UCP1 +FdtvbykO0gqzF0IQ4X+Q4nahlrOdCoQ3Cet6ENKase5Kv3cMVs1NrL1V28KHrmep +vka7SlazU4vz5qEA619M+ySwiIn6sMI0DMYKTRGInr2d6nUSVRMzOqekslRbPVgR +Qh8dfakaSSTMCjwbsYlAFnEVdI64ajzhW5KmWYW2Vopcw1A6JrEOne9M7+V4fSM0 +q/4Jcs4U5NE1//dcuPdZtJktjSmF4PtnIWSEEdgeFz47oweyZH+Er2R2PhJD2ert +77NVuK+u7TKNbYn+6Y3e5eQ4wXKLCwa1A+0iyoo7i88L0WkvRCoSgQIotogEHCV0 +AoXYWluEjwUt7uCBY212y9E78lxgllB29TGPqB/Y1KCapZs61925RAENw4TwQ1cf +T/xRKv/ZxlRYp6adH7J3eeqp0543v8XIhS2afn6Cf/cKpKlvocqXaSTO7jslnnBw +djzOWWKchp1+L7xR8UfwuRfg/xgDpKlbo6KHG+3wU2f6d++3mXn/2TFZRB3iwid5 +MnQU+q1yaAzaEzYHSeS1rW4H5hacp9kCH9pXFqSOlfeJdQI71Ze4UyeBq6rnG8OM +ZnMl8ehVYRayHAKiN7/5 +=cjmJ +-----END PGP SIGNATURE----- diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/2.18/glibc-2.18-gentoo-chk_fail.c b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/2.18/glibc-2.18-gentoo-chk_fail.c new file mode 100644 index 0000000000..c1934362f6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/2.18/glibc-2.18-gentoo-chk_fail.c @@ -0,0 +1,314 @@ +/* Copyright (C) 2004, 2005 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +/* Copyright (C) 2006-2013 Gentoo Foundation Inc. + * License terms as above. + * + * Hardened Gentoo SSP and FORTIFY handler + * + * An SSP failure handler that does not use functions from the rest of + * glibc; it uses the INTERNAL_SYSCALL methods directly. This ensures + * no possibility of recursion into the handler. + * + * Direct all bug reports to http://bugs.gentoo.org/ + * + * Re-written from the glibc-2.3 Hardened Gentoo SSP handler + * by Kevin F. Quinn - + * + * The following people contributed to the glibc-2.3 Hardened + * Gentoo SSP and FORTIFY handler, from which this implementation draws much: + * + * Ned Ludd - + * Alexander Gabert - + * The PaX Team - + * Peter S. Mazinger - + * Yoann Vandoorselaere - + * Robert Connolly - + * Cory Visi + * Mike Frysinger + * Magnus Granberg + */ + +#include +#include +#include +#include +#include + +#include + +#include +#include + +#include + +#include +/* from sysdeps */ +#include +/* for the stuff in bits/socket.h */ +#include +#include + +/* Sanity check on SYSCALL macro names - force compilation + * failure if the names used here do not exist + */ +#if !defined __NR_socketcall && !defined __NR_socket +# error Cannot do syscall socket or socketcall +#endif +#if !defined __NR_socketcall && !defined __NR_connect +# error Cannot do syscall connect or socketcall +#endif +#ifndef __NR_write +# error Cannot do syscall write +#endif +#ifndef __NR_close +# error Cannot do syscall close +#endif +#ifndef __NR_getpid +# error Cannot do syscall getpid +#endif +#ifndef __NR_kill +# error Cannot do syscall kill +#endif +#ifndef __NR_exit +# error Cannot do syscall exit +#endif +#ifdef SSP_SMASH_DUMPS_CORE +# define ENABLE_SSP_SMASH_DUMPS_CORE 1 +# if !defined _KERNEL_NSIG && !defined _NSIG +# error No _NSIG or _KERNEL_NSIG for rt_sigaction +# endif +# if !defined __NR_sigaction && !defined __NR_rt_sigaction +# error Cannot do syscall sigaction or rt_sigaction +# endif +/* Although rt_sigaction expects sizeof(sigset_t) - it expects the size + * of the _kernel_ sigset_t which is not the same as the user sigset_t. + * Most arches have this as _NSIG bits - mips has _KERNEL_NSIG bits for + * some reason. + */ +# ifdef _KERNEL_NSIG +# define _SSP_NSIG _KERNEL_NSIG +# else +# define _SSP_NSIG _NSIG +# endif +#else +# define _SSP_NSIG 0 +# define ENABLE_SSP_SMASH_DUMPS_CORE 0 +#endif + +/* Define DO_SIGACTION - default to newer rt signal interface but + * fallback to old as needed. + */ +#ifdef __NR_rt_sigaction +# define DO_SIGACTION(signum, act, oldact) \ + INLINE_SYSCALL(rt_sigaction, 4, signum, act, oldact, _SSP_NSIG/8) +#else +# define DO_SIGACTION(signum, act, oldact) \ + INLINE_SYSCALL(sigaction, 3, signum, act, oldact) +#endif + +/* Define DO_SOCKET/DO_CONNECT functions to deal with socketcall vs socket/connect */ +#if defined(__NR_socket) && defined(__NR_connect) +# define USE_OLD_SOCKETCALL 0 +#else +# define USE_OLD_SOCKETCALL 1 +#endif + +/* stub out the __NR_'s so we can let gcc optimize away dead code */ +#ifndef __NR_socketcall +# define __NR_socketcall 0 +#endif +#ifndef __NR_socket +# define __NR_socket 0 +#endif +#ifndef __NR_connect +# define __NR_connect 0 +#endif +#define DO_SOCKET(result, domain, type, protocol) \ + do { \ + if (USE_OLD_SOCKETCALL) { \ + socketargs[0] = domain; \ + socketargs[1] = type; \ + socketargs[2] = protocol; \ + socketargs[3] = 0; \ + result = INLINE_SYSCALL(socketcall, 2, SOCKOP_socket, socketargs); \ + } else \ + result = INLINE_SYSCALL(socket, 3, domain, type, protocol); \ + } while (0) +#define DO_CONNECT(result, sockfd, serv_addr, addrlen) \ + do { \ + if (USE_OLD_SOCKETCALL) { \ + socketargs[0] = sockfd; \ + socketargs[1] = (unsigned long int)serv_addr; \ + socketargs[2] = addrlen; \ + socketargs[3] = 0; \ + result = INLINE_SYSCALL(socketcall, 2, SOCKOP_connect, socketargs); \ + } else \ + result = INLINE_SYSCALL(connect, 3, sockfd, serv_addr, addrlen); \ + } while (0) + +#ifndef _PATH_LOG +# define _PATH_LOG "/dev/log" +#endif + +static const char path_log[] = _PATH_LOG; + +/* For building glibc with SSP switched on, define __progname to a + * constant if building for the run-time loader, to avoid pulling + * in more of libc.so into ld.so + */ +#ifdef IS_IN_rtld +static char *__progname = ""; +#else +extern char *__progname; +#endif + +/* Common handler code, used by chk_fail + * Inlined to ensure no self-references to the handler within itself. + * Data static to avoid putting more than necessary on the stack, + * to aid core debugging. + */ +__attribute__ ((__noreturn__ , __always_inline__)) +static inline void +__hardened_gentoo_chk_fail(char func[], int damaged) +{ +#define MESSAGE_BUFSIZ 256 + static pid_t pid; + static int plen, i; + static char message[MESSAGE_BUFSIZ]; + static const char msg_ssa[] = ": buffer overflow attack"; + static const char msg_inf[] = " in function "; + static const char msg_ssd[] = "*** buffer overflow detected ***: "; + static const char msg_terminated[] = " - terminated\n"; + static const char msg_report[] = "Report to http://bugs.gentoo.org/\n"; + static const char msg_unknown[] = ""; + static int log_socket, connect_result; + static struct sockaddr_un sock; + static unsigned long int socketargs[4]; + + /* Build socket address + */ + sock.sun_family = AF_UNIX; + i = 0; + while ((path_log[i] != '\0') && (i<(sizeof(sock.sun_path)-1))) { + sock.sun_path[i] = path_log[i]; + i++; + } + sock.sun_path[i] = '\0'; + + /* Try SOCK_DGRAM connection to syslog */ + connect_result = -1; + DO_SOCKET(log_socket, AF_UNIX, SOCK_DGRAM, 0); + if (log_socket != -1) + DO_CONNECT(connect_result, log_socket, &sock, sizeof(sock)); + if (connect_result == -1) { + if (log_socket != -1) + INLINE_SYSCALL(close, 1, log_socket); + /* Try SOCK_STREAM connection to syslog */ + DO_SOCKET(log_socket, AF_UNIX, SOCK_STREAM, 0); + if (log_socket != -1) + DO_CONNECT(connect_result, log_socket, &sock, sizeof(sock)); + } + + /* Build message. Messages are generated both in the old style and new style, + * so that log watchers that are configured for the old-style message continue + * to work. + */ +#define strconcat(str) \ + {i=0; while ((str[i] != '\0') && ((i+plen)<(MESSAGE_BUFSIZ-1))) \ + {\ + message[plen+i]=str[i];\ + i++;\ + }\ + plen+=i;} + + /* R.Henderson post-gcc-4 style message */ + plen = 0; + strconcat(msg_ssd); + if (__progname != (char *)0) + strconcat(__progname) + else + strconcat(msg_unknown); + strconcat(msg_terminated); + + /* Write out error message to STDERR, to syslog if open */ + INLINE_SYSCALL(write, 3, STDERR_FILENO, message, plen); + if (connect_result != -1) + INLINE_SYSCALL(write, 3, log_socket, message, plen); + + /* Dr. Etoh pre-gcc-4 style message */ + plen = 0; + if (__progname != (char *)0) + strconcat(__progname) + else + strconcat(msg_unknown); + strconcat(msg_ssa); + strconcat(msg_inf); + if (func != NULL) + strconcat(func) + else + strconcat(msg_unknown); + strconcat(msg_terminated); + /* Write out error message to STDERR, to syslog if open */ + INLINE_SYSCALL(write, 3, STDERR_FILENO, message, plen); + if (connect_result != -1) + INLINE_SYSCALL(write, 3, log_socket, message, plen); + + /* Direct reports to bugs.gentoo.org */ + plen=0; + strconcat(msg_report); + message[plen++]='\0'; + + /* Write out error message to STDERR, to syslog if open */ + INLINE_SYSCALL(write, 3, STDERR_FILENO, message, plen); + if (connect_result != -1) + INLINE_SYSCALL(write, 3, log_socket, message, plen); + + if (log_socket != -1) + INLINE_SYSCALL(close, 1, log_socket); + + /* Suicide */ + pid = INLINE_SYSCALL(getpid, 0); + + if (ENABLE_SSP_SMASH_DUMPS_CORE) { + static struct sigaction default_abort_act; + /* Remove any user-supplied handler for SIGABRT, before using it */ + default_abort_act.sa_handler = SIG_DFL; + default_abort_act.sa_sigaction = NULL; + __sigfillset(&default_abort_act.sa_mask); + default_abort_act.sa_flags = 0; + if (DO_SIGACTION(SIGABRT, &default_abort_act, NULL) == 0) + INLINE_SYSCALL(kill, 2, pid, SIGABRT); + } + + /* Note; actions cannot be added to SIGKILL */ + INLINE_SYSCALL(kill, 2, pid, SIGKILL); + + /* In case the kill didn't work, exit anyway + * The loop prevents gcc thinking this routine returns + */ + while (1) + INLINE_SYSCALL(exit, 0); +} + +__attribute__ ((__noreturn__)) +void __chk_fail(void) +{ + __hardened_gentoo_chk_fail(NULL, 0); +} + diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/2.18/glibc-2.18-gentoo-stack_chk_fail.c b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/2.18/glibc-2.18-gentoo-stack_chk_fail.c new file mode 100644 index 0000000000..9535c21578 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/2.18/glibc-2.18-gentoo-stack_chk_fail.c @@ -0,0 +1,322 @@ +/* Copyright (C) 2005 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +/* Copyright (C) 2006-2013 Gentoo Foundation Inc. + * License terms as above. + * + * Hardened Gentoo SSP handler + * + * An SSP failure handler that does not use functions from the rest of + * glibc; it uses the INTERNAL_SYSCALL methods directly. This ensures + * no possibility of recursion into the handler. + * + * Direct all bug reports to http://bugs.gentoo.org/ + * + * Re-written from the glibc-2.3 Hardened Gentoo SSP handler + * by Kevin F. Quinn - + * + * Fixed to support glibc-2.18 by Magnus Granberg - + * + * The following people contributed to the glibc-2.3 Hardened + * Gentoo SSP handler, from which this implementation draws much: + * + * Ned Ludd - + * Alexander Gabert - + * The PaX Team - + * Peter S. Mazinger - + * Yoann Vandoorselaere - + * Robert Connolly - + * Cory Visi + * Mike Frysinger + */ + +#include +#include +#include +#include + +#include + +#include +#include + +#include + +#include +/* from sysdeps */ +#include +/* for the stuff in bits/socket.h */ +#include +#include + + +/* Sanity check on SYSCALL macro names - force compilation + * failure if the names used here do not exist + */ +#if !defined __NR_socketcall && !defined __NR_socket +# error Cannot do syscall socket or socketcall +#endif +#if !defined __NR_socketcall && !defined __NR_connect +# error Cannot do syscall connect or socketcall +#endif +#ifndef __NR_write +# error Cannot do syscall write +#endif +#ifndef __NR_close +# error Cannot do syscall close +#endif +#ifndef __NR_getpid +# error Cannot do syscall getpid +#endif +#ifndef __NR_kill +# error Cannot do syscall kill +#endif +#ifndef __NR_exit +# error Cannot do syscall exit +#endif +#ifdef SSP_SMASH_DUMPS_CORE +# define ENABLE_SSP_SMASH_DUMPS_CORE 1 +# if !defined _KERNEL_NSIG && !defined _NSIG +# error No _NSIG or _KERNEL_NSIG for rt_sigaction +# endif +# if !defined __NR_sigaction && !defined __NR_rt_sigaction +# error Cannot do syscall sigaction or rt_sigaction +# endif +/* Although rt_sigaction expects sizeof(sigset_t) - it expects the size + * of the _kernel_ sigset_t which is not the same as the user sigset_t. + * Most arches have this as _NSIG bits - mips has _KERNEL_NSIG bits for + * some reason. + */ +# ifdef _KERNEL_NSIG +# define _SSP_NSIG _KERNEL_NSIG +# else +# define _SSP_NSIG _NSIG +# endif +#else +# define _SSP_NSIG 0 +# define ENABLE_SSP_SMASH_DUMPS_CORE 0 +#endif + +/* Define DO_SIGACTION - default to newer rt signal interface but + * fallback to old as needed. + */ +#ifdef __NR_rt_sigaction +# define DO_SIGACTION(signum, act, oldact) \ + INLINE_SYSCALL(rt_sigaction, 4, signum, act, oldact, _SSP_NSIG/8) +#else +# define DO_SIGACTION(signum, act, oldact) \ + INLINE_SYSCALL(sigaction, 3, signum, act, oldact) +#endif + +/* Define DO_SOCKET/DO_CONNECT functions to deal with socketcall vs socket/connect */ +#if defined(__NR_socket) && defined(__NR_connect) +# define USE_OLD_SOCKETCALL 0 +#else +# define USE_OLD_SOCKETCALL 1 +#endif +/* stub out the __NR_'s so we can let gcc optimize away dead code */ +#ifndef __NR_socketcall +# define __NR_socketcall 0 +#endif +#ifndef __NR_socket +# define __NR_socket 0 +#endif +#ifndef __NR_connect +# define __NR_connect 0 +#endif +#define DO_SOCKET(result, domain, type, protocol) \ + do { \ + if (USE_OLD_SOCKETCALL) { \ + socketargs[0] = domain; \ + socketargs[1] = type; \ + socketargs[2] = protocol; \ + socketargs[3] = 0; \ + result = INLINE_SYSCALL(socketcall, 2, SOCKOP_socket, socketargs); \ + } else \ + result = INLINE_SYSCALL(socket, 3, domain, type, protocol); \ + } while (0) +#define DO_CONNECT(result, sockfd, serv_addr, addrlen) \ + do { \ + if (USE_OLD_SOCKETCALL) { \ + socketargs[0] = sockfd; \ + socketargs[1] = (unsigned long int)serv_addr; \ + socketargs[2] = addrlen; \ + socketargs[3] = 0; \ + result = INLINE_SYSCALL(socketcall, 2, SOCKOP_connect, socketargs); \ + } else \ + result = INLINE_SYSCALL(connect, 3, sockfd, serv_addr, addrlen); \ + } while (0) + +#ifndef _PATH_LOG +# define _PATH_LOG "/dev/log" +#endif + +static const char path_log[] = _PATH_LOG; + +/* For building glibc with SSP switched on, define __progname to a + * constant if building for the run-time loader, to avoid pulling + * in more of libc.so into ld.so + */ +#ifdef IS_IN_rtld +static char *__progname = ""; +#else +extern char *__progname; +#endif + + +/* Common handler code, used by stack_chk_fail and __stack_smash_handler + * Inlined to ensure no self-references to the handler within itself. + * Data static to avoid putting more than necessary on the stack, + * to aid core debugging. + */ +__attribute__ ((__noreturn__ , __always_inline__)) +static inline void +__hardened_gentoo_stack_chk_fail(char func[], int damaged) +{ +#define MESSAGE_BUFSIZ 256 + static pid_t pid; + static int plen, i; + static char message[MESSAGE_BUFSIZ]; + static const char msg_ssa[] = ": stack smashing attack"; + static const char msg_inf[] = " in function "; + static const char msg_ssd[] = "*** stack smashing detected ***: "; + static const char msg_terminated[] = " - terminated\n"; + static const char msg_report[] = "Report to http://bugs.gentoo.org/\n"; + static const char msg_unknown[] = ""; + static int log_socket, connect_result; + static struct sockaddr_un sock; + static unsigned long int socketargs[4]; + + /* Build socket address + */ + sock.sun_family = AF_UNIX; + i = 0; + while ((path_log[i] != '\0') && (i<(sizeof(sock.sun_path)-1))) { + sock.sun_path[i] = path_log[i]; + i++; + } + sock.sun_path[i] = '\0'; + + /* Try SOCK_DGRAM connection to syslog */ + connect_result = -1; + DO_SOCKET(log_socket, AF_UNIX, SOCK_DGRAM, 0); + if (log_socket != -1) + DO_CONNECT(connect_result, log_socket, &sock, sizeof(sock)); + if (connect_result == -1) { + if (log_socket != -1) + INLINE_SYSCALL(close, 1, log_socket); + /* Try SOCK_STREAM connection to syslog */ + DO_SOCKET(log_socket, AF_UNIX, SOCK_STREAM, 0); + if (log_socket != -1) + DO_CONNECT(connect_result, log_socket, &sock, sizeof(sock)); + } + + /* Build message. Messages are generated both in the old style and new style, + * so that log watchers that are configured for the old-style message continue + * to work. + */ +#define strconcat(str) \ + {i=0; while ((str[i] != '\0') && ((i+plen)<(MESSAGE_BUFSIZ-1))) \ + {\ + message[plen+i]=str[i];\ + i++;\ + }\ + plen+=i;} + + /* R.Henderson post-gcc-4 style message */ + plen = 0; + strconcat(msg_ssd); + if (__progname != (char *)0) + strconcat(__progname) + else + strconcat(msg_unknown); + strconcat(msg_terminated); + + /* Write out error message to STDERR, to syslog if open */ + INLINE_SYSCALL(write, 3, STDERR_FILENO, message, plen); + if (connect_result != -1) + INLINE_SYSCALL(write, 3, log_socket, message, plen); + + /* Dr. Etoh pre-gcc-4 style message */ + plen = 0; + if (__progname != (char *)0) + strconcat(__progname) + else + strconcat(msg_unknown); + strconcat(msg_ssa); + strconcat(msg_inf); + if (func != NULL) + strconcat(func) + else + strconcat(msg_unknown); + strconcat(msg_terminated); + /* Write out error message to STDERR, to syslog if open */ + INLINE_SYSCALL(write, 3, STDERR_FILENO, message, plen); + if (connect_result != -1) + INLINE_SYSCALL(write, 3, log_socket, message, plen); + + /* Direct reports to bugs.gentoo.org */ + plen=0; + strconcat(msg_report); + message[plen++]='\0'; + + /* Write out error message to STDERR, to syslog if open */ + INLINE_SYSCALL(write, 3, STDERR_FILENO, message, plen); + if (connect_result != -1) + INLINE_SYSCALL(write, 3, log_socket, message, plen); + + if (log_socket != -1) + INLINE_SYSCALL(close, 1, log_socket); + + /* Suicide */ + pid = INLINE_SYSCALL(getpid, 0); + + if (ENABLE_SSP_SMASH_DUMPS_CORE) { + static struct sigaction default_abort_act; + /* Remove any user-supplied handler for SIGABRT, before using it */ + default_abort_act.sa_handler = SIG_DFL; + default_abort_act.sa_sigaction = NULL; + __sigfillset(&default_abort_act.sa_mask); + default_abort_act.sa_flags = 0; + if (DO_SIGACTION(SIGABRT, &default_abort_act, NULL) == 0) + INLINE_SYSCALL(kill, 2, pid, SIGABRT); + } + + /* Note; actions cannot be added to SIGKILL */ + INLINE_SYSCALL(kill, 2, pid, SIGKILL); + + /* In case the kill didn't work, exit anyway + * The loop prevents gcc thinking this routine returns + */ + while (1) + INLINE_SYSCALL(exit, 0); +} + +__attribute__ ((__noreturn__)) +void __stack_chk_fail(void) +{ + __hardened_gentoo_stack_chk_fail(NULL, 0); +} + +#ifdef ENABLE_OLD_SSP_COMPAT +__attribute__ ((__noreturn__)) +void __stack_smash_handler(char func[], int damaged) +{ + __hardened_gentoo_stack_chk_fail(func, damaged); +} +#endif diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/2.18/glibc-2.18-hardened-inittls-nosysenter.patch b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/2.18/glibc-2.18-hardened-inittls-nosysenter.patch new file mode 100644 index 0000000000..8907ab2c6a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/2.18/glibc-2.18-hardened-inittls-nosysenter.patch @@ -0,0 +1,277 @@ +When building glibc PIE (which is not something upstream support), +several modifications are necessary to the glibc build process. + +First, any syscalls in PIEs must be of the PIC variant, otherwise +textrels ensue. Then, any syscalls made before the initialisation +of the TLS will fail on i386, as the sysenter variant on i386 uses +the TLS, giving rise to a chicken-and-egg situation. This patch +defines a PIC syscall variant that doesn't use sysenter, even when the sysenter +version is normally used, and uses the non-sysenter version for the brk +syscall that is performed by the TLS initialisation. Further, the TLS +initialisation is moved in this case prior to the initialisation of +dl_osversion, as that requires further syscalls. + +csu/libc-start.c: Move initial TLS initialization to before the +initialisation of dl_osversion, when INTERNAL_SYSCALL_NOSYSENTER is defined + +csu/libc-tls.c: Use the no-sysenter version of sbrk when +INTERNAL_SYSCALL_NOSYSENTER is defined. + +misc/sbrk.c: Define a no-sysenter version of sbrk, using the no-sysenter +version of brk - if INTERNAL_SYSCALL_NOSYSENTER is defined. + +misc/brk.c: Define a no-sysenter version of brk if +INTERNAL_SYSCALL_NOSYSENTER is defined. + +sysdeps/unix/sysv/linux/i386/sysdep.h: Define INTERNAL_SYSCALL_NOSYSENTER +Make INTERNAL_SYSCALL always use the PIC variant, even if not SHARED. + +Patch by Kevin F. Quinn +Fixed for 2.10 by Magnus Granberg +Fixed for 2.18 by Magnus Granberg + +--- csu/libc-start.c ++++ csu/libc-start.c +@@ -28,6 +28,7 @@ + extern int __libc_multiple_libcs; + + #include ++#include + #ifndef SHARED + # include + extern void __pthread_initialize_minimal (void); +@@ -170,7 +170,11 @@ LIBC_START_MAIN (int (*main) (int, char + GL(dl_phnum) = __ehdr_start.e_phnum; + } + } +- ++# ifdef INTERNAL_SYSCALL_NOSYSENTER ++ /* Do the initial TLS initialization before _dl_osversion, ++ since the latter uses the uname syscall. */ ++ __pthread_initialize_minimal (); ++# endif + # ifdef DL_SYSDEP_OSCHECK + if (!__libc_multiple_libcs) + { +@@ -138,10 +144,12 @@ + } + # endif + ++# ifndef INTERNAL_SYSCALL_NOSYSENTER + /* Initialize the thread library at least a bit since the libgcc + functions are using thread functions if these are available and + we need to setup errno. */ + __pthread_initialize_minimal (); ++# endif + + /* Set up the stack checker's canary. */ + uintptr_t stack_chk_guard = _dl_setup_stack_chk_guard (); +--- csu/libc-tls.c ++++ csu/libc-tls.c +@@ -22,14 +22,17 @@ + #include + #include + #include +- ++#include + + #ifdef SHARED + #error makefile bug, this file is for static only + #endif + +-dtv_t _dl_static_dtv[2 + TLS_SLOTINFO_SURPLUS]; ++#ifdef INTERNAL_SYSCALL_NOSYSENTER ++extern void *__sbrk_nosysenter (intptr_t __delta); ++#endif + ++dtv_t _dl_static_dtv[2 + TLS_SLOTINFO_SURPLUS]; + + static struct + { +@@ -139,14 +142,26 @@ __libc_setup_tls (size_t tcbsize, size_t + + The initialized value of _dl_tls_static_size is provided by dl-open.c + to request some surplus that permits dynamic loading of modules with +- IE-model TLS. */ ++ IE-model TLS. ++ ++ Where the normal sbrk would use a syscall that needs the TLS (i386) ++ use the special non-sysenter version instead. */ + #if TLS_TCB_AT_TP + tcb_offset = roundup (memsz + GL(dl_tls_static_size), tcbalign); ++# ifdef INTERNAL_SYSCALL_NOSYSENTER ++ tlsblock = __sbrk_nosysenter (tcb_offset + tcbsize + max_align); ++# else + tlsblock = __sbrk (tcb_offset + tcbsize + max_align); ++#endif + #elif TLS_DTV_AT_TP + tcb_offset = roundup (tcbsize, align ?: 1); ++# ifdef INTERNAL_SYSCALL_NOSYSENTER ++ tlsblock = __sbrk_nosysenter (tcb_offset + memsz + max_align ++ + TLS_PRE_TCB_SIZE + GL(dl_tls_static_size)); ++# else + tlsblock = __sbrk (tcb_offset + memsz + max_align + + TLS_PRE_TCB_SIZE + GL(dl_tls_static_size)); ++#endif + tlsblock += TLS_PRE_TCB_SIZE; + #else + /* In case a model with a different layout for the TCB and DTV +--- misc/sbrk.c ++++ misc/sbrk.c +@@ -18,6 +18,7 @@ + #include + #include + #include ++#include + + /* Defined in brk.c. */ + extern void *__curbrk; +@@ -29,6 +30,35 @@ + /* Extend the process's data space by INCREMENT. + If INCREMENT is negative, shrink data space by - INCREMENT. + Return start of new space allocated, or -1 for errors. */ ++#ifdef INTERNAL_SYSCALL_NOSYSENTER ++/* This version is used by csu/libc-tls.c whem initialising the TLS ++ if the SYSENTER version requires the TLS (which it does on i386). ++ Obviously using the TLS before it is initialised is broken. */ ++extern int __brk_nosysenter (void *addr); ++void * ++__sbrk_nosysenter (intptr_t increment) ++{ ++ void *oldbrk; ++ ++ /* If this is not part of the dynamic library or the library is used ++ via dynamic loading in a statically linked program update ++ __curbrk from the kernel's brk value. That way two separate ++ instances of __brk and __sbrk can share the heap, returning ++ interleaved pieces of it. */ ++ if (__curbrk == NULL || __libc_multiple_libcs) ++ if (__brk_nosysenter (0) < 0) /* Initialize the break. */ ++ return (void *) -1; ++ ++ if (increment == 0) ++ return __curbrk; ++ ++ oldbrk = __curbrk; ++ if (__brk_nosysenter (oldbrk + increment) < 0) ++ return (void *) -1; ++ ++ return oldbrk; ++} ++#endif + void * + __sbrk (intptr_t increment) + { +--- sysdeps/unix/sysv/linux/i386/brk.c ++++ sysdeps/unix/sysv/linux/i386/brk.c +@@ -31,6 +31,29 @@ + linker. */ + weak_alias (__curbrk, ___brk_addr) + ++#ifdef INTERNAL_SYSCALL_NOSYSENTER ++/* This version is used by csu/libc-tls.c whem initialising the TLS ++ * if the SYSENTER version requires the TLS (which it does on i386). ++ * Obviously using the TLS before it is initialised is broken. */ ++int ++__brk_nosysenter (void *addr) ++{ ++ void * newbrk; ++ ++ INTERNAL_SYSCALL_DECL (err); ++ newbrk = (void *) INTERNAL_SYSCALL_NOSYSENTER (brk, err, 1, addr); ++ ++ __curbrk = newbrk; ++ ++ if (newbrk < addr) ++ { ++ __set_errno (ENOMEM); ++ return -1; ++ } ++ ++ return 0; ++} ++#endif + int + __brk (void *addr) + { +--- sysdeps/unix/sysv/linux/i386/sysdep.h ++++ sysdeps/unix/sysv/linux/i386/sysdep.h +@@ -187,7 +187,7 @@ + /* The original calling convention for system calls on Linux/i386 is + to use int $0x80. */ + #ifdef I386_USE_SYSENTER +-# ifdef SHARED ++# if defined SHARED || defined __PIC__ + # define ENTER_KERNEL call *%gs:SYSINFO_OFFSET + # else + # define ENTER_KERNEL call *_dl_sysinfo +@@ -358,7 +358,7 @@ + possible to use more than four parameters. */ + #undef INTERNAL_SYSCALL + #ifdef I386_USE_SYSENTER +-# ifdef SHARED ++# if defined SHARED || defined __PIC__ + # define INTERNAL_SYSCALL(name, err, nr, args...) \ + ({ \ + register unsigned int resultvar; \ +@@ -384,6 +384,18 @@ + : "0" (name), "i" (offsetof (tcbhead_t, sysinfo)) \ + ASMFMT_##nr(args) : "memory", "cc"); \ + (int) resultvar; }) ++# define INTERNAL_SYSCALL_NOSYSENTER(name, err, nr, args...) \ ++ ({ \ ++ register unsigned int resultvar; \ ++ EXTRAVAR_##nr \ ++ asm volatile ( \ ++ LOADARGS_NOSYSENTER_##nr \ ++ "movl %1, %%eax\n\t" \ ++ "int $0x80\n\t" \ ++ RESTOREARGS_NOSYSENTER_##nr \ ++ : "=a" (resultvar) \ ++ : "i" (__NR_##name) ASMFMT_##nr(args) : "memory", "cc"); \ ++ (int) resultvar; }) + # else + # define INTERNAL_SYSCALL(name, err, nr, args...) \ + ({ \ +@@ -447,12 +459,20 @@ + + #define LOADARGS_0 + #ifdef __PIC__ +-# if defined I386_USE_SYSENTER && defined SHARED ++# if defined I386_USE_SYSENTER && ( defined SHARED || defined __PIC__ ) + # define LOADARGS_1 \ + "bpushl .L__X'%k3, %k3\n\t" + # define LOADARGS_5 \ + "movl %%ebx, %4\n\t" \ + "movl %3, %%ebx\n\t" ++# define LOADARGS_NOSYSENTER_1 \ ++ "bpushl .L__X'%k2, %k2\n\t" ++# define LOADARGS_NOSYSENTER_2 LOADARGS_NOSYSENTER_1 ++# define LOADARGS_NOSYSENTER_3 LOADARGS_3 ++# define LOADARGS_NOSYSENTER_4 LOADARGS_3 ++# define LOADARGS_NOSYSENTER_5 \ ++ "movl %%ebx, %3\n\t" \ ++ "movl %2, %%ebx\n\t" + # else + # define LOADARGS_1 \ + "bpushl .L__X'%k2, %k2\n\t" +@@ -474,11 +495,18 @@ + + #define RESTOREARGS_0 + #ifdef __PIC__ +-# if defined I386_USE_SYSENTER && defined SHARED ++# if defined I386_USE_SYSENTER && ( defined SHARED || defined __PIC__ ) + # define RESTOREARGS_1 \ + "bpopl .L__X'%k3, %k3\n\t" + # define RESTOREARGS_5 \ + "movl %4, %%ebx" ++# define RESTOREARGS_NOSYSENTER_1 \ ++ "bpopl .L__X'%k2, %k2\n\t" ++# define RESTOREARGS_NOSYSENTER_2 RESTOREARGS_NOSYSENTER_1 ++# define RESTOREARGS_NOSYSENTER_3 RESTOREARGS_3 ++# define RESTOREARGS_NOSYSENTER_4 RESTOREARGS_3 ++# define RESTOREARGS_NOSYSENTER_5 \ ++ "movl %3, %%ebx" + # else + # define RESTOREARGS_1 \ + "bpopl .L__X'%k2, %k2\n\t" diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/eblits/common.eblit b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/eblits/common.eblit index 0fbfe9cd01..e4f9ce92b6 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/eblits/common.eblit +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/eblits/common.eblit @@ -1,6 +1,6 @@ # Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/common.eblit,v 1.30 2013/06/29 03:22:32 heroxbd Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/common.eblit,v 1.31 2013/10/30 17:04:33 vapier Exp $ alt_prefix() { is_crosscompile && echo /usr/${CTARGET} @@ -249,9 +249,13 @@ use_multiarch() { 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" ;; - sparc) nver="2.21" ;; - *) return 1 ;; + amd64|x86) nver="2.20" ;; + arm) nver="2.22" ;; + hppa) nver="2.23" ;; + ppc|ppc64) nver="2.20" ;; + s390) nver="2.23" ;; + sparc) nver="2.21" ;; + *) return 1 ;; esac version_is_at_least ${nver} ${bver} } diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/eblits/src_compile.eblit b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/eblits/src_compile.eblit index b4d3baf991..e11bbdbf7e 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/eblits/src_compile.eblit +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/eblits/src_compile.eblit @@ -1,6 +1,6 @@ # Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/src_compile.eblit,v 1.35 2013/04/05 18:25:21 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/src_compile.eblit,v 1.36 2013/09/30 05:28:25 vapier Exp $ glibc_do_configure() { local myconf=() @@ -100,8 +100,8 @@ glibc_do_configure() { # Overtime, generating info pages can be painful. So disable this for # versions older than the latest stable to avoid the issue (this ver - # should be updated from time to time). #464394 - if ! version_is_at_least 2.15 ; then + # should be updated from time to time). #464394 #465816 + if ! version_is_at_least 2.17 ; then export ac_cv_prog_MAKEINFO=: fi diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/eblits/src_install.eblit b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/eblits/src_install.eblit index 94e2afe810..640470b4a9 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/eblits/src_install.eblit +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/eblits/src_install.eblit @@ -1,6 +1,6 @@ # Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/src_install.eblit,v 1.31 2013/06/29 03:22:32 heroxbd Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/src_install.eblit,v 1.32 2013/10/06 08:51:11 pacho Exp $ toolchain-glibc_src_install() { local GBUILDDIR @@ -170,6 +170,11 @@ toolchain-glibc_src_install() { ) version_is_at_least 2.16 || nscd_args+=( -e 's: --foreground : :' ) sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd + + if [[ $(type -t systemd_dounit) == "function" ]] ; then + systemd_dounit "${FILESDIR}"/nscd.service || die + systemd_newtmpfilesd "${FILESDIR}"/nscd.tmpfilesd nscd.conf || die + fi else # Do this since extra/etc/*.conf above might have nscd.conf. rm -f "${ED}"/etc/nscd.conf diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/eblits/src_unpack.eblit b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/eblits/src_unpack.eblit index 52f22f9df7..15e8895d4e 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/eblits/src_unpack.eblit +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/eblits/src_unpack.eblit @@ -1,6 +1,6 @@ # Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/src_unpack.eblit,v 1.23 2013/06/29 03:22:32 heroxbd Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/src_unpack.eblit,v 1.24 2013/09/28 22:07:57 vapier Exp $ int_to_KV() { local version=$1 major minor micro @@ -17,7 +17,7 @@ eend_KV() { get_kheader_version() { printf '#include \nLINUX_VERSION_CODE\n' | \ - $(tc-getCPP ${CTARGET}) -I "${EPREFIX}/$(alt_build_headers)" | \ + $(tc-getCPP ${CTARGET}) -I "${EPREFIX}/$(alt_build_headers)" - | \ tail -n 1 } diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/nscd.service b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/nscd.service new file mode 100644 index 0000000000..25a3b1d9be --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/nscd.service @@ -0,0 +1,15 @@ +[Unit] +Description=Name Service Cache Daemon +After=network.target + +[Service] +ExecStart=/usr/sbin/nscd -F +ExecStop=/usr/sbin/nscd --shutdown +ExecReload=/usr/sbin/nscd -i passwd +ExecReload=/usr/sbin/nscd -i group +ExecReload=/usr/sbin/nscd -i hosts +ExecReload=/usr/sbin/nscd -i services +Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/nscd.tmpfilesd b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/nscd.tmpfilesd new file mode 100644 index 0000000000..52edbba673 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/files/nscd.tmpfilesd @@ -0,0 +1,4 @@ +# Configuration to create /run/nscd directory +# Used as part of systemd's tmpfiles + +d /run/nscd 0755 root root diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.16.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.16.0.ebuild index 707ec70d5e..57121865ea 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.16.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.16.0.ebuild @@ -1,14 +1,14 @@ # Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.16.0.ebuild,v 1.24 2013/06/23 05:03:42 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.16.0.ebuild,v 1.29 2013/11/28 18:45:27 ago Exp $ -inherit eutils versionator toolchain-funcs flag-o-matic gnuconfig multilib unpacker multiprocessing +inherit eutils versionator toolchain-funcs flag-o-matic gnuconfig multilib systemd unpacker multiprocessing DESCRIPTION="GNU libc6 (also called glibc2) C library" HOMEPAGE="http://www.gnu.org/software/libc/libc.html" LICENSE="LGPL-2.1+ BSD HPND inner-net" -KEYWORDS="-alpha ~amd64 ~arm -hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" +KEYWORDS="-alpha amd64 arm -hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86" RESTRICT="strip" # strip ourself #46186 EMULTILIB_PKG="true" @@ -31,7 +31,7 @@ case ${PV} in ;; esac LIBIDN_VER="" # it's integrated into the main tarball now -PATCH_VER="11" # Gentoo patchset +PATCH_VER="12" # Gentoo patchset PORTS_VER=${RELEASE_VER} # version of glibc ports addon NPTL_KERN_VER=${NPTL_KERN_VER:-"2.6.16"} # min kernel version nptl requires diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.17.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.17.ebuild index a2666c67e3..75e8ea4703 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.17.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.17.ebuild @@ -1,14 +1,14 @@ # Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.17.ebuild,v 1.16 2013/06/27 12:19:41 jer Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.17.ebuild,v 1.20 2013/11/23 05:21:41 vapier Exp $ -inherit eutils versionator toolchain-funcs flag-o-matic gnuconfig multilib unpacker multiprocessing +inherit eutils versionator toolchain-funcs flag-o-matic gnuconfig multilib systemd unpacker multiprocessing DESCRIPTION="GNU libc6 (also called glibc2) C library" HOMEPAGE="http://www.gnu.org/software/libc/libc.html" LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" -KEYWORDS="~alpha ~amd64 ~arm hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" +KEYWORDS="-alpha ~amd64 ~arm hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" RESTRICT="strip" # strip ourself #46186 EMULTILIB_PKG="true" @@ -24,7 +24,7 @@ case ${PV} in RELEASE_VER=${PV} ;; esac -PATCH_VER="7" # Gentoo patchset +PATCH_VER="8" # Gentoo patchset NPTL_KERN_VER=${NPTL_KERN_VER:-"2.6.16"} # min kernel version nptl requires IUSE="debug gd hardened multilib nscd selinux systemtap profile suid vanilla crosscompile_opts_headers-only" diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.18.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.18.ebuild new file mode 100644 index 0000000000..6f781c5c88 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.18.ebuild @@ -0,0 +1,208 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.18.ebuild,v 1.5 2013/11/24 17:46:11 vapier Exp $ + +inherit eutils versionator toolchain-funcs flag-o-matic gnuconfig multilib systemd unpacker multiprocessing + +DESCRIPTION="GNU libc6 (also called glibc2) C library" +HOMEPAGE="http://www.gnu.org/software/libc/libc.html" + +LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" +#KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" +RESTRICT="strip" # strip ourself #46186 +EMULTILIB_PKG="true" + +# Configuration variables +RELEASE_VER="" +case ${PV} in +9999*) + EGIT_REPO_URIS="git://sourceware.org/git/glibc.git" + EGIT_SOURCEDIRS="${S}" + inherit git-2 + ;; +*) + RELEASE_VER=${PV} + ;; +esac +PATCH_VER="2" # Gentoo patchset +NPTL_KERN_VER=${NPTL_KERN_VER:-"2.6.16"} # min kernel version nptl requires + +IUSE="debug gd hardened multilib nscd selinux systemtap profile suid vanilla crosscompile_opts_headers-only" + +# 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 + +[[ ${CTARGET} == hppa* ]] && NPTL_KERN_VER=${NPTL_KERN_VER/2.6.16/2.6.20} + +is_crosscompile() { + [[ ${CHOST} != ${CTARGET} ]] +} + +# Why SLOT 2.2 you ask yourself while sippin your tea ? +# Everyone knows 2.2 > 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 + ! [version] +eblit-include() { + local skipable=false + [[ $1 == "--skip" ]] && skipable=true && shift + [[ $1 == pkg_* ]] && skipable=true + + local e v func=$1 ver=$2 + [[ -z ${func} ]] && die "Usage: eblit-include [version]" + for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do + e="${FILESDIR}/eblits/${func}${v}.eblit" + if [[ -e ${e} ]] ; then + source "${e}" + return 0 + fi + done + ${skipable} && return 0 + die "Could not locate requested eblit '${func}' in ${FILESDIR}/eblits/" +} + +# eblit-run-maybe +# run the specified function if it is defined +eblit-run-maybe() { + [[ $(type -t "$@") == "function" ]] && "$@" +} + +# eblit-run [version] +# aka: src_unpack() { eblit-run src_unpack ; } +eblit-run() { + eblit-include --skip common "${*:2}" + eblit-include "$@" + eblit-run-maybe eblit-$1-pre + eblit-${PN}-$1 + eblit-run-maybe eblit-$1-post +} + +src_unpack() { eblit-run src_unpack ; } +src_compile() { eblit-run src_compile ; } +src_test() { eblit-run src_test ; } +src_install() { eblit-run src_install ; } + +# FILESDIR might not be available during binpkg install +for x in setup {pre,post}inst ; do + e="${FILESDIR}/eblits/pkg_${x}.eblit" + if [[ -e ${e} ]] ; then + . "${e}" + eval "pkg_${x}() { eblit-run pkg_${x} ; }" + fi +done + +eblit-src_unpack-pre() { + GLIBC_PATCH_EXCLUDE+=" 00_all_0012-mips-add-clock_-g-s-ettime-symbol-compat-hacks.patch" #456912 #481438 +} + +eblit-src_unpack-post() { + if use hardened ; then + cd "${S}" + einfo "Patching to get working PIE binaries on PIE (hardened) platforms" + gcc-specs-pie && epatch "${FILESDIR}"/2.17/glibc-2.17-hardened-pie.patch + epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-configure-picdefault.patch + epatch "${FILESDIR}"/2.18/glibc-2.18-hardened-inittls-nosysenter.patch + + einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler" + cp -f "${FILESDIR}"/2.18/glibc-2.18-gentoo-stack_chk_fail.c \ + debug/stack_chk_fail.c || die + cp -f "${FILESDIR}"/2.18/glibc-2.18-gentoo-chk_fail.c \ + debug/chk_fail.c || die + + if use debug ; then + # When using Hardened Gentoo stack handler, have smashes dump core for + # analysis - debug only, as core could be an information leak + # (paranoia). + sed -i \ + -e '/^CFLAGS-backtrace.c/ iCFLAGS-stack_chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \ + debug/Makefile \ + || die "Failed to modify debug/Makefile for debug stack handler" + sed -i \ + -e '/^CFLAGS-backtrace.c/ iCFLAGS-chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \ + debug/Makefile \ + || die "Failed to modify debug/Makefile for debug fortify handler" + fi + + # Build nscd with ssp-all + sed -i \ + -e 's:-fstack-protector$:-fstack-protector-all:' \ + nscd/Makefile \ + || die "Failed to ensure nscd builds with ssp-all" + fi +} + +eblit-pkg_preinst-post() { + if [[ ${CTARGET} == arm* ]] ; then + # Backwards compat support for renaming hardfp ldsos #417287 + local oldso='/lib/ld-linux.so.3' + local nldso='/lib/ld-linux-armhf.so.3' + if [[ -e ${D}${nldso} ]] ; then + if scanelf -qRyi "${ROOT}$(alt_prefix)"/*bin/ | grep -s "^${oldso}" ; then + ewarn "Symlinking old ldso (${oldso}) to new ldso (${nldso})." + ewarn "Please rebuild all packages using this old ldso as compat" + ewarn "support will be dropped in the future." + ln -s "${nldso##*/}" "${D}$(alt_prefix)${oldso}" + fi + fi + fi +}