diff options
author | Benda Xu <heroxbd@gentoo.org> | 2023-08-16 22:36:41 +0800 |
---|---|---|
committer | Benda Xu <heroxbd@gentoo.org> | 2023-08-16 22:38:14 +0800 |
commit | b50067c9497495bae7f2d408a4f9056778e2deb4 (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /sys-libs/glibc | |
parent | Revert "repo_name: rename to rap." (diff) | |
download | heroxbd-b50067c9497495bae7f2d408a4f9056778e2deb4.tar.gz heroxbd-b50067c9497495bae7f2d408a4f9056778e2deb4.tar.bz2 heroxbd-b50067c9497495bae7f2d408a4f9056778e2deb4.zip |
clear up outdated repository after 7 years.
Signed-off-by: Benda Xu <heroxbd@gentoo.org>
Diffstat (limited to 'sys-libs/glibc')
57 files changed, 0 insertions, 12258 deletions
diff --git a/sys-libs/glibc/Manifest b/sys-libs/glibc/Manifest deleted file mode 100644 index 0bcda41..0000000 --- a/sys-libs/glibc/Manifest +++ /dev/null @@ -1,71 +0,0 @@ -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 -AUX 2.10/glibc-2.10-hardened-ssp-compat.patch 4802 SHA256 bd6f0aa8eace0a935731749e101d5fe30210f9edb65f2f5ccd425cef581ddce4 SHA512 16fc6cbf366c3a0f476f28da8d4e465b1d894f68d33ebdb02de60d6b22bdc6341915d8529952fa4213b11c377302f18a63c462898fe0e4b13f5ec9e3ceda96c7 WHIRLPOOL 059e84269286b285261cc57846b34462524661fef3582396a6b301ee2dd156d2511c88f17f52679e4d5fd96ae0ed6673c8b75a32048e40efa87fad34da6cc066 -AUX 2.11/glibc-2.11-hardened-pie.patch 1492 SHA256 74277f76ace9cb6b408ef7c1d43a3604ae0d6c1af539055aeaeb542d2bfa2a46 SHA512 31ad12fdafc20f783bde32fa3cb477e18d19c5436309b0023284c3134f99c849b0281ea7815ae7509b96f1a88e9c24d52805044cd1c65a88a1a62eebc519a0e5 WHIRLPOOL cf3fe8c5e164623bf553487cf589f85eff28d1073e55a87ef14da716ce313bfaec0dadbf322f2e705c1d4f975458d9cbd6f2eca268a9dc5dce16e54305907aa7 -AUX 2.12/glibc-2.12-hardened-pie.patch 1542 SHA256 9d11da52900a4cfdaa9052476029cb1b4c8004dfaef3cf446f3b728035f75fbe SHA512 97abb62a72d95b07f546658846718755ed78286b11cb72b2cf6ebc809afb1e775ca860e3903f9936ee54761b6d6bb309e822957387900454dd3c66be35ba8148 WHIRLPOOL 4b9b95d1c6c6e02ba21ec43f382a1d932ed8be5ff548a828c3e9a1d945c44cb8435fd502f6c8becf6a2c19bd23c77ad003598b3b3b68b7bad5a5af79e92d6077 -AUX 2.15/glibc-2.15-localstatedir-backport.patch 412 SHA256 465bedaaf735a48825cd6433007abfb1e40c2ef8ddf94d12d452b486c70ce36b SHA512 76506a540d47ad7e76073c3b25bc46278a9e56e34e17d49caf9fffc0622646e8e0d6905fe7d00599db02f444420ed0b9d64d3d70df78446564b137fd65021e45 WHIRLPOOL f21fb6d6eb3555421f7d90b179a7a2745e7056316eacbf209066f01e742037fd283689c5a5f5a313666a2fb79d5ad0631dbada94d9c7eb958ee01217b605533a -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.17/glibc-2.17-runtime-prefix.patch 6695 SHA256 466198a1e2f92957017d3e550b806196de40a6cbf780320b3b11ac72459c19d8 SHA512 9adf787c8516ec86609bb2c1975d2d05c679199200732c141f4c8ae2724bc1b92a3981995f814542d2fed44662d7ccf560b0e9d904e27d68eafcfe3f55787a43 WHIRLPOOL 3bc2aab75168ad3a8b4b273577c3f0e71396a631f151974433187ecb3c73b0adc2ad15e9fd17334b9cb1332035c98937d302a03bc1afb3f66ff1d36d347d21f4 -AUX 2.17/glibc-2.17-shadow-prefix.patch 950 SHA256 36fa45e0e2642c6ce8809341b69e93d45d97d3b6c451a089198f7b90a5d0eb21 SHA512 3101b9814bcbd0443d309f3949024e753cb6101e84e9cbbae1502fb4c3f85c2fad041608ba69c966cb1da2cf64f5f2c0931c08db222933a2053394f7b0fabf9d WHIRLPOOL 5243b70d2d2e2d3c3c9b07eb2251bb5e78767e776c0491f91fc8499c3d807b44bdab384f7c81867373a577574999079791695eb65ed8c2da1ce5a79c8e60a5ef -AUX 2.17/locale-gen_prefix.patch 2704 SHA256 0807c8979b7a1a63b48d155417ff8ecc7e14773e928a0d1fe6c349a36fcdadef SHA512 d6b41b953713f7fe0ba14af6d045fc0e6b649f278da691ca5f021d95be5cdabfc87de399880cf988fec2b189fac22864d004ec8d159e59a2348b41945de1d5db WHIRLPOOL 3c7d6b4e789ae494cebea620ed64a6ba8dd401837914f4ead72c7b2d6af94538c9a28f65781db7e6ae0d21c7fac13c531b71147fdb5456ffd39ae1246b331069 -AUX 2.17/vdso-disable.patch 1136 SHA256 49006855c1ba3ae3d3aa5ed71787056dc64e993eec70a4bef05bcc9f4d824014 SHA512 6eeb6eae8b8c1777ebd18170a7651b9e95297125cfc3829786c4d02887cad4a5d768fc2950723d1d040d16d15d72491d7443a3c14ca9f20eb2adb1ba6d1649ca WHIRLPOOL 80367da491b958d0b7855d23d3225a5c17a3a7a1b1f9a54ebc093c53823a5ef1642b974b45e079aec0abff0476494368ed9afcaed83b87576ed8458b8348e41e -AUX 2.17/vdso.patch 697 SHA256 26f2089344709de9c1bdd2f974d02ff5d4c465f6ebebd5d1ac2cd72b732de201 SHA512 a303a6828ed001b16f2f5c3532890cff66a50259c2e2aa2843e992f2bed5e6141abc9e120afed25f2e1f30d77bc218c3940d680c3d73c227d2056370d5e6b806 WHIRLPOOL edcaa815b8f86e17d77f0582453a717fbbd848400bfdbd302730fec20a952a584ea8f5ba4f7175b25d84752bc895519d7baa55664073cae5037962b0c1825aa3 -AUX 2.19/glibc-2.19-configurable-paths.patch 81250 SHA256 ae15864d46cb4d5e061465249c9a9c4585961a312d61d6e9edbf8dd8a5dc8a22 SHA512 e9b4c4d48560fc4af41505996b40f3dd0023ba86a71182d965a5c0978f1ed6236311da5b990199e2916b9fc091ce374b2d346b03c133f2d8fcf7e6f07616a3fd WHIRLPOOL 67cf918f3f26b74cf34108806195465dbfe0a51b3c97a7ed19e398c093980dbb0bf5b9102f351cdd95acad58cb3b7c947a50efd593c6a161212afe2f4a9f8ac0 -AUX 2.19/glibc-2.19-hardened-configure-picdefault.patch 865 SHA256 feeb2ddc276e90f55d2fd358837e8d4922d3b2875cb8080b1d8e27e5da83a2d9 SHA512 d8e6fea72e240f1fde8a487958463140a84e8bd6bb5b176f8ce84a34df3137943db9016300884f3efdd4da130e342448e57ed0c0dc6eb2956d647286ce1d00ce WHIRLPOOL 3a5d2882b5fc1bea78c45409c848c94a260659e3ea1e28a5dc8818de8825e55453aa1cc97b86eef99c91b17bde9f2a6db1fd8ae03839f7029d93a71feaa4d4d0 -AUX 2.19/glibc-2.19-ia64-gcc-4.8-reloc-hack.patch 1360 SHA256 f0d8bb004f598375b61e67e1c215b15953c293038243207f2d85cbe9f10d093e SHA512 79876b12871b3e7693340bfdf99276ac0dfd6ff30bc977a9526af9e681fcbab2f25d3ac9e2b33f027c968b38a4b670237de54ffd08edc418423ecd82dddd1d67 WHIRLPOOL 5ca64dddf58a790cc5f6090ae48fc4bd4799a9aac4c67f6ef7d1fea9498208ffc38ee8167b6ec80dc97c4f723fcdfade8f573893f1b380aff04f6d0476d0d253 -AUX 2.19/glibc-2.19-vdso-disable.patch 1120 SHA256 20048700be532bd1b692471420f930951cc0be2d2c9eb2a95e895e9771a0e13c SHA512 8f52408e5acd96708e5376b3aee77d4851dbe98a7f4b2d2503d3ce5c0088bc93640023659d9e49c8c802ab33ad9f987630667bd5094e4b4aab2c48bb1183a84e WHIRLPOOL 67b6bc23ef1a90886f8860396d52b9004764f3ebefd1d48736c734db419d47402c01c9b746a16147a84b77b8510d243c63d76048c8b2a46daed8aa0acac73fe4 -AUX 2.20/glibc-2.20-configurable-paths.patch 116486 SHA256 d7fe27619225d6e2941e52bc3dd049bfffbed2cf633329ad4ae9a76150ce5f1a SHA512 e2998c66d7c84e6da8f9f24e3b710c8c62f0042a65c7af6f0a2f9cf303724d732aec753e6002ed265c95947f72534de6da9fb0681328c5f8cebbb8c8a60ac61a WHIRLPOOL 50e5984c09e76dd5ebd9172c2e560dc2ff721af23a9be0d1c24fc289af20a5a4e0bf278ec4ef878151bf1cde4d51f42d536aeefdde1f5c206d7942630c8f93a2 -AUX 2.20/glibc-2.20-gentoo-chk_fail.c 8978 SHA256 f9cc426b0fb21de1dc11bb36e43bca8e1b3114fe78f8b343f672a951a82c742e SHA512 5cb529ac9d18a315f25fd48a3a80a529924bee0588074c97e6df7dbe8568a67f786363c41da6300ea55818369e3609ed4315b2e2104f8a8b4f1266ba43076eda WHIRLPOOL 2d38c19a20226fc4687037b8bb19025065f039ddaa62466879ca98765c8899e64b147dd148565304419ed1a98fbe1f8403710b22c930b08a19bddba7e79b0f1d -AUX 2.20/glibc-2.20-gentoo-stack_chk_fail.c 55 SHA256 ec73e74297b5eade591bfb3a2999989e2a7aa80752140048ffa67349635f05e7 SHA512 4dfec1bd17007b826110dcb73d09331a58b7a892c87de55b94480b14c28686442c567725b610082813411cf9911e180835a400a54ea704fe80f81cfba966a989 WHIRLPOOL b2b338a50f7895c530a71a19e4582bd0116a0b9d13b2e1505f0566924557493849f93cefb2c0ad1719ef684321e145129e0f72cfc9aa85a44ea7ebf910e7304c -AUX 2.20/glibc-2.20-hardened-inittls-nosysenter.patch 9951 SHA256 992fb70b9b62674d94ef8938297a3f2591b3121495987d927f5a44c1d8788658 SHA512 a8302ee2963bd791be859233223b17cd154afbf04c13c046956bb1140d748272d7bcb3a6167ce8b61573ebcffe906dff064308374d2910656b8fad18480fe422 WHIRLPOOL b8753d6f1301650b91b5cf4f342de22010d819deb2bf4da27aac33d7540e15a140b8a7a4c5e111faba320873ed5784b22f6add29181fbaef14c3e9504b1b838f -AUX 2.20/glibc-2.20-vdso-disable.patch 725 SHA256 476d1198e990a0beb42a7350c52c34783de33d0364ab3e11d9b74a81e027977b SHA512 2c47efc06aa93eea18e6d407c2b1cfdaa80b374bdaf7ad257ca02857aab53d7a6ec46092872d3affff2ec800f6937012571115b8c83d116084c21f8130c4fdd6 WHIRLPOOL fb919be2a23f5a240817dc8540582915cb0e0497196237a7bcd891113738b81072e96f4af4668d0ebd05094c2983c411265267bbcfc2be96c5ff33f37fe7f936 -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 -AUX 2.5/glibc-2.5-hardened-inittls-nosysenter.patch 9407 SHA256 2a912e82445815ae32744d990c59d8758ec74e482b856bd274c292848b9af1fd SHA512 6acdfad1c2395a8097500216df3aab7a96211e418b56eb07ad317c25049c30c4bd9538905f186eb6d5b9260d98423bf525ec005a283e385ba4a83e7425080b10 WHIRLPOOL a542db44162d1322b23c574e20f59c8df7a5c17ca26560a22f73da832ff1743c7f56915a7e43d5d13a6068b3b975521f6b33940309496ae62fa952cfc2cd23dd -AUX 2.5/glibc-2.5-hardened-pie.patch 1569 SHA256 ff9cde8857c5da89faa4039e2a81748674fbeaaa49d85c378d80711d55f2b0c1 SHA512 bd026dba9df97d5a2a66c92feb8e004fcbaf69aaff489688990f9c0716e31d35654e2ad2b4f6ee8ea02259567f28a7d389cc5d43f0a77122c3f65a61fb4db112 WHIRLPOOL 888ca7bd8d4fe89961ee582bf96c141962b6702a92af663c7cb86d245f471f55b0817232744a7218dbf9d0f9eae9a8cc6a52843257c9353eef1332cf5c368e2e -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 10934 SHA256 5e12fe093156b639b308212562a92cd68a7778272efdec9c2dbcf3c6f94406fc SHA512 d8bf175a3f88dd93bf338af9ca2edda88ba0e3b0be43f5110865da58911092c7920ffa210d82b579e402bfe29545c3376a6257ede04dc5ef27dee2318a7d452f WHIRLPOOL e7e97534c857f56c5a7821372d1209f757b89981ba6e2386aedb42acb60afd72e0f27181a5246eaf94716808551f14933c11d57b54c3308a3bbdb20c7316e346 -AUX eblits/pkg_postinst.eblit 971 SHA256 abcb925bb0730d1eae22bbcee7a4ba6523280390f410f38bfdf9eb44e0280000 SHA512 65e577c77a9a488c5e93ccd4afa325ab7e3904df594c13fda17136c8aa2748fa4e6d0102f4799b4ac9b8c3bea9920faadc4db356ece9929ee708bbfa9151dfc2 WHIRLPOOL fb3cdfb702b0ce616064f94321b9225a53b300f76d95495098b6c97eb3ab1650ea2d323eae169bb8d1fd8795134aacb5c54ba6927fe743b01f124aec416b15a0 -AUX eblits/pkg_preinst.eblit 2105 SHA256 aba79a4369067615bc48429ec371ae91ccfc793ddc72cc05862b705cf63c303f SHA512 993ac0b94bae95819bf11f2ba88820bdabdc41c4c63ed25f00adb16e9e965d4206b68d316faf329ab3870a3e810183662e12e554a0150829ed026567bf9829da WHIRLPOOL 01c511f6995fc5b8cd9bf564298ab6bf6609e660fce26dff23c36081ccb72b28fdd3ba0787384c11fd126a7db0f1a0744e9396c6225b0881b9d02ee52d6eaa42 -AUX eblits/pkg_pretend.eblit 4990 SHA256 219947e495090b640ec6229b028299edc3f06ee81a130211cf91803923ccf477 SHA512 cb27a05b798ec892576239d6146403f2430c9568faad410f42933610c83c60317bcd79198be4ff9b6c08f9e13b3e0ea897a9ddb8613ccc75975fa227e3c9e26d WHIRLPOOL 613f1920a3d8f51fc6274f73d72cc2be1f3df8b5f2d5af173d050142cbea8b52da4eabe50ba28192af2f2a62c259d512d466b33b303a16648cc82e6422904ba7 -AUX eblits/pkg_setup.eblit 275 SHA256 c5de97dc69d3508555ac579e14ead694a75edf4707c1749219677ebee88ca9ab SHA512 627740976e372842b09034b79f61f5cb5d8283f47c94cfe66b2aa1517c901df0bf3b456f1ba26a9ddc0aa0215190d0415ed4f881cc950d163d8203a0e6bba2a9 WHIRLPOOL 16ef3155b35671311443f4c231c1867d12731035aa603dedb6e86eabdc1501c67183474a26bb06048e12c19ac3bda054fdb8a107792a3dddb743b6dc7d447339 -AUX eblits/src_compile.eblit 598 SHA256 3b90a6f44d307b92cee36fdd91d412bdb9fcbab555e6c6bf8174c8e3f29137ca SHA512 ee216aa3bb13f75313d141459acb47523442addf12a6bb8d829ca40eda4f63324911a13ff0ae90fe6eed1fbe0058c89308a2205c5357a0e1897a89573fea2f51 WHIRLPOOL 3bfc5406e794ee9ee4005e97aa2d40a82d77de090c72767d6b43be6993048536b4f2442bf6864157d036e7ea3fce6ba6537a97cd2afee04c61f9e98e1adc3c00 -AUX eblits/src_configure.eblit 7909 SHA256 5947f6fe819d936e0e32484a6d3f49ad7aac5e5c89333251c5659fe998c6a083 SHA512 63ef84d95c47d5881db383c4c90be03434e1c1a87db673f562ead7e6edbf694a428cdc0cf69d312159797f70fc5ac74584d7a7087b314d92dc21e452d1d66477 WHIRLPOOL e5aa3b11ac35b05ea52b077ffe16f8c5fa144a5c70dcf086569a7b6bf2daf171d552dc4a72fee65b892297af1796e80247512e17c313c4c56b6f4b7351fe8ef3 -AUX eblits/src_install.eblit 7814 SHA256 8d64a4a031263dd7c3e7ba710a5dbe51fa7004b9795fefdab55f7db273f5e89f SHA512 fb9fc62103e1803509f5910b71eb28398258433762b930c93cccb7578756599739714c41077a2d0fd81c78e8fd14fd30b384a2c141d8df801507414531062551 WHIRLPOOL 4634ef7da02f35d461027a4d5bd27bd4e888805de0713b577ac47eb1161048f929e1c52e38fc4ad8da333a2198877b82962416edfb30bbaafb9055fb658a6226 -AUX eblits/src_prepare.eblit 2231 SHA256 02e28094bb57137d0f12031dc3ed75d022df711847904f428ffea2e0bc42b778 SHA512 967e831a0390c2fb328cb69a75489f3ecddf2a3aecd3d8b95e8ef36fdced3b0b15a320245cd1274e5bf78bc49a17a862fe4af26f610c3f864418c707e7d6150a WHIRLPOOL 4855e3979903daa6b4586d5bed08a1f7806c03b9873f4b51a0b6b73254bb40eb08cb0e6329992f663f98907e8d82f485ee7f49ee4f82fd52dbfe880f8dd1fe70 -AUX eblits/src_test.eblit 698 SHA256 96b044ef9a27c2591b2a440b45bd89989022d0b41c546ce4dcea58a631315bf4 SHA512 0a46dddf53ccbfaab3f85ba7d2e8f202b4d5be98052601686592eca0ec115de29d8cb1f324ba12dcb77f3a8d4bbb39032532042b8adf809a772ebcc845b1a152 WHIRLPOOL 42af8b97859789b52a5a0c100ba109d8c3dd47532ef3f0b764c95b7a61be9d293d99de25e601dacd840c0a4cc921740b5acc2a3567b5aa3ae8ac6f88430ccf04 -AUX eblits/src_unpack.eblit 3096 SHA256 f0934fe81278797a0625fde2518f5bdf8531c75443ed3dc6ba7d18aa751cb235 SHA512 6fb32f854920ac4c0df5d60d334f4b9376b05d9b2df7d1bfac979acc3d7c282846fcce36c9816558ee75db030c3551b95f2ff26e53ea166adf97a2ae5db55abf WHIRLPOOL cee004cf4967f0b073f56ef5bbc67e56981f109400622f70cfba51ce120115f4c25ee7696a5b9baf7b22080d01d038ea936d5c342d65b7331b3801510a509123 -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 gcc-4.7.3-r1-multilib-bootstrap.tar.bz2 8064097 SHA256 34aec5a59bb4d0ecf908c62fd418461d0f3793238296897687305fd7a1f27299 SHA512 40b93e194ad41a75d649d84d1c49070680f253a13f0617803243bc61c44fed1ca2d0a7572a97ebb79353f312b58b5f6360be916dd7435928cc53935082e15269 WHIRLPOOL bbce19e7fe5c30faa55ddd4e29070f0d1fdfca3a04e8d68e0772260fa9be89ccde63ec92badb490209008df5fee6e53dfdeec4ae51857b90ba298a79315a199f -DIST glibc-2.15-patches-13.tar.bz2 154658 SHA256 59c11d8b70bc406f6bc7dd87509f1c5fa05998fb0dde8e1be530064e9dd24a53 SHA512 ceec0506e10cff25ec9acce3d4e3f174d56a7cbb00993cb8edbf532f303c48e3b2d5e965e4470f537dbed23d14a29bae4ac4c834b4c11fcd27d8e66d8500e4c6 WHIRLPOOL 9dadbcd8626df9938b6b215a0618cbc605405bf56bb143f25e029c0aa00d5d6ac75877c7b2fd2a2c22291f62587cf8011c30d32baafb5ed0dd2bb539895f1c54 -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.17-patches-7.tar.bz2 79288 SHA256 8000409d072571d2d5119d4dd538e3a3ea39213407e202ea10033bf6aed516af SHA512 c6de4d7754cec6e7a9e36d56eadc6605ba6fcfac116eb50553503738873659977beb935112d361620c35e7b15e86f845a49fd13269ffbf98c72f54dffade19f7 WHIRLPOOL 259e938e8f4ca6b7296db4982748429f00135f80cd03965da589e4318134aeddb5acdfa0f8f61871e46330a0c96eb8e734a3c2f50d564882ba37f13f722b78c5 -DIST glibc-2.17.tar.xz 10981956 SHA256 6914e337401e0e0ade23694e1b2c52a5f09e4eda3270c67e7c3ba93a89b5b23e SHA512 384e54037daaa344a26ce58242acc3f9a249d0765088d18a540a305745afa33ae6dec4024adae958eacd7100be9c713d117260ace8340f6d8c8396dbde4868d2 WHIRLPOOL 9b98c1c298aeff607aaa554341c300c15491b7314f127524fc5c048c67c5059daaf706e6cf206bb69213d5307e37bed87137ab46f504d8072bb778310081fc23 -DIST glibc-2.19-patches-3.tar.bz2 80664 SHA256 6fb03292e224199e0dd9ba7ee83aca723e1560f26831e85cdc6302b187c6de3c SHA512 d281d6a2757920124cf8a3f02b97e75192598b08d96ae48840df34c7ffdcb212952d171f233e6f12a429b19437d0a296212fe1f2eae164d6a1c6793cb3cb69f0 WHIRLPOOL 6f28a2d0dff42e8ad0e77859938e3093753f77f78821375777eebb2db5568bf1c56e8b8208f02280f23acb2dd26dc8a313fedd5b2c10755f1659e6d324a1dbc3 -DIST glibc-2.19.tar.xz 12083312 SHA256 2d3997f588401ea095a0b27227b1d50cdfdd416236f6567b564549d3b46ea2a2 SHA512 9e021fcb3afbb9ace2a0e37fded231a62de861bd766e29d47163a03182e37add718b7acc3963d1c525f9556773e842297725715acde48dcfbaab6e756af1a23d WHIRLPOOL 9581a3a23ebdd56bc559b56b95b7bcd21ca039546ec19c6c0e4e0738597542164fdb21ab1d1f36d5e73a205fb51f0974c7d497972615bce69ae002298f6475b6 -DIST glibc-2.20-patches-1.tar.bz2 78477 SHA256 b3b1c4022503dc433cc4969534f27ee019ab695aed8b722e914d7fb864db5606 SHA512 56e954f11610fa4f9fffc68bdad98114bed7592f5a4f8bd81a0306ee99311db8cb4dd4469a6f2a5a60ff4a9e6d172e49971d389f1b2911df7a408571737c1ee1 WHIRLPOOL 02aeda854ca220ed3b4fe41510d918a8fc4fb9e95a3761a3884e2d2d3c0a515c82e835d7a74e41dc0a20c865de120b60ea4e561cd3f25534568981c8084dce00 -DIST glibc-2.20-patches-3.tar.bz2 30916 SHA256 c10cc881a1ee587dcaaff234c8e05dcc6a6e4d4bbafcae21e6267616a20bb354 SHA512 cbbfccdf0ba0ad7fb740a557a246b647c020dd841aabd256c34bb8c5f4aac2ee0ed50e5f15ac28a161e294a9a3803560317bcf934cc938daa58111d7373b1b66 WHIRLPOOL 2889809da097e148bae7769316f7a744880fce0c1cd74ef16e45e343c5aa02f549ff6f9e13ac114cb061b914d3517151ab803af5683864ed09ebc72326561e64 -DIST glibc-2.20.tar.xz 12283992 SHA256 f84b6d42aecc288d593c397b0a3d02260a33ee686bce0c634eb9b32798f36ba5 SHA512 7a8eea8b71d3ccba766c3f304cab61055446d451ef063309476b26dc40d880562dc33b1b68fbedeedb4b55b84c26415b9202311aaa71ef8c141b6849a814d2fa WHIRLPOOL 042f74d75c62a655ae35348c9cd0bed0845ab199e37a76635eb74c04ed927b5eca77723c38d2dc46f12fca62c1004001887b43946a914b079ad22f6a9cc8daaa -DIST glibc-2.23-patches-4.tar.bz2 230533 SHA256 5b64a9b30778be79fac8a8c7e2ec7ebb077e136c85d79996ae3d725189d236a4 SHA512 af140a13bbc28070bfec26e041ce562b1cc091d312a82f385becb3ab87ee882d8ea10ac4ec6dcf86f154857527a3383782d46141016047338cebc7c393329cf3 WHIRLPOOL ca7be788c64428bd2bd6e41eee5345ff85dc9ee0987af55f60104a9f03e3019b8fa6a933ba785d3b1b27540c2485160d50499049985271227c07b094db649de3 -DIST glibc-2.23.tar.xz 13455260 SHA256 94efeb00e4603c8546209cefb3e1a50a5315c86fa9b078b6fad758e187ce13e9 SHA512 b82953388cd028e174cb08f082557bbce0dad8b67b17d31b29f90102fd52a51e03d591448ecb64882a1c1d5303afffc7f6ede85cee4c784a9284fbc9b4ad26cf WHIRLPOOL 7c7e3bf55a89a04bac917b9ca5a1cbb1613f22c427d2766f114b5a36f9635856005b823852ef5d3b73462b577fe4e5865e68e7b64633d48a95fa1e5eaa831a71 -DIST glibc-ports-2.15.tar.xz 421820 SHA256 fcc271fcc3a808bf0f3aa1d144bc39b8d0d5f730aed6e206b883961515f0d1b9 SHA512 fc3c80a9a7ede0f35054e5be043fff4b967e6ef6678f42e617dd1dd498920edb4e4c785cf8e3cd97fc2914a35a892e0fd7e1aab24f0c3c8d207765a131bf3744 WHIRLPOOL a8a617eacb326615265832f86a7ef39678364b5b65d5c16d58680ec0debfbca6780018b7da9c1a86bdfffcde58aa1258b96ea4bd50b114901b522e62d48ae4a5 -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 7764 SHA256 17540bbede72db02e113f556cd3c4a6873c45be1191bade644b5a78d2557c673 SHA512 b9f856356a1dad8f51a62610defce3984477e7f8265427c7e6d21c7868bb6756de4f66b16d3184fd51180155112339e33547a2348d55a2cf1059ccbdf68f0c3f WHIRLPOOL 9c36e9f55427b2cf0180db983446d572d63be309e64b42bbe3571105446f4eddaa815081faf79fe6fc639e3ddf3e3720f11e7af2e85ea19125ef561176eaeff5 -EBUILD glibc-2.17.ebuild 7668 SHA256 b6b7142b8fded3c848424eec002b0e9b15912fe03841d854377b827ea3975eb9 SHA512 0d5dafad92578139720403aa29e1406c366892cd7bdebbfa3fee8a1a4eed06009941d9a55f6f9e9f3ec035947e03d17137e6b9ecdb4061812b0254aa48d0d1a8 WHIRLPOOL 2fdb5ab665c6ac7297e2586644f121101ab84ae3a17ade1fff87be8a31e4d89096063ccb25ceadba53328a398d65240833cf2508b3fa20c42f1e4354a3f1f81d -EBUILD glibc-2.19-r1.ebuild 7397 SHA256 c96062bad2386baf72d3e31e9858eedc5a05980fbfe90b3bc618f7027d90c80b SHA512 df34e6de33e59afb49c4c6d98bf32ce47f21c54979b2db5e21bdad8357f9e2921ab5c80f9926aeeb4cc65f010ee8407bd078ae121adedb22e8d5e6431b8123ac WHIRLPOOL f74da4cd1fbd863928551144cef903093df3db95ca7db8da982a1eede571e5cbe123700ef8d81546754cfc29a9edccd58bd42ea1d51f8cfb76a35072fc96680a -EBUILD glibc-2.20-r1.ebuild 6612 SHA256 3e81059b8be24f6979db7e8b3ea8d4fb2f6d7fd924759cf286d7904981766e15 SHA512 b433eb6c7b9814d8c058a93bbda421bdee259abe96a3d16e2a607a03f60487412ff35ce1709150933e0cda72d26ef705c21a095f6c5643f77af903dfd368149b WHIRLPOOL 8ca83822eef18d98a27d4d023fe8907c459d1677465b2b742b093e20d474d566e6e60f3daecf54e8ed8028737b9a2545467a3226014842e0ebdd8ce4be2a7e7f -EBUILD glibc-2.20.ebuild 6558 SHA256 c0e61f3d6ac10da06640406c9f3f3bc5dd6bd99f97c1180d303a022b312f564a SHA512 d2d97b908a7d828118a3b4e441140048c6e2ffbdbd9c971e948fc9b419db4f8537719cf8e7b879dea79c08eaf38e7282273fc643b234c9a308b6edcd2ef8bff7 WHIRLPOOL c0339fd5329128593fe96b6488a423431d5b2cecc36c7ab989647c235d9cda7aabbb7c0ee86fc6de8ff7f044a03b11e36aa8f999b0d0f0157efe2e98d57c82be -EBUILD glibc-2.23-r2.ebuild 6766 SHA256 e79941f0cd770487f928d13d0eb49d4db74b8848eb79266d2c88df7d43484f52 SHA512 20ea0592fca50aaa9196e65e91faee3ac70ec46e0d7072b533a2e0ec96fa7b5f5a6f243284a669738c2ac169dadb57c5d78542c0238006d7b1c1cb938aad5966 WHIRLPOOL d9ee5832131aed3143e4ddbb1c4ac898367996a77bd1a12d3b23b3e61b5a2b2ff195d6403e817ebfb85d9f829eac1469e69f8d87a77039b5da17d16d2ac2d20b -EBUILD glibc-9999.ebuild 6619 SHA256 523f30d0bd4fb9aef983b7e62e57239d089251d0f3907b6dfb70a00cbc0c2e6c SHA512 2d875c8434720b700bfc99836870e625b7c3010178a4a501e435832e826e7008764878d1e4f88d9f568d21f97de56589bff7984b37d3e9840f19492585cfe16f WHIRLPOOL 7da4b26e63d4f79592891ebd1cf1fb915d40049e8feeb61d9c55f7af601bfe2b7f1a03b1aed51f95be0451c90e93992920949c92ccd2401a0c129b600f5afdb9 -MISC metadata.xml 521 SHA256 e89c6157189c7a76823ea61ad88e85d6c5e497855abfa03d4e044b09bd0d0955 SHA512 46d36653c75257e1091d88eed54dda553a81a246407f7ae37864e3a9f1c359560bf3d08f5946a725624804e74b1684414a729a1a3b961220dc76cdedd9a4d0ce WHIRLPOOL eb3695d1ce708f3668dc85332b4ad9de6e021b3a98c1b48c4b874d7254168ee5aff2ac6b51866b1df29f1689085ab07e97a7b39708bcffbafedb21288e01f42e diff --git a/sys-libs/glibc/files/2.10/glibc-2.10-gentoo-chk_fail.c b/sys-libs/glibc/files/2.10/glibc-2.10-gentoo-chk_fail.c deleted file mode 100644 index 37711e8..0000000 --- a/sys-libs/glibc/files/2.10/glibc-2.10-gentoo-chk_fail.c +++ /dev/null @@ -1,315 +0,0 @@ -/* 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-2008 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 - <kevquinn[@]gentoo.org> - * - * The following people contributed to the glibc-2.3 Hardened - * Gentoo SSP and FORTIFY handler, from which this implementation draws much: - * - * Ned Ludd - <solar[@]gentoo.org> - * Alexander Gabert - <pappy[@]gentoo.org> - * The PaX Team - <pageexec[@]freemail.hu> - * Peter S. Mazinger - <ps.m[@]gmx.net> - * Yoann Vandoorselaere - <yoann[@]prelude-ids.org> - * Robert Connolly - <robert[@]linuxfromscratch.org> - * Cory Visi <cory[@]visi.name> - * Mike Frysinger <vapier[@]gentoo.org> - * Magnus Granberg <zorry[@]ume.nu> - */ - -#include <stdio.h> -#include <stdlib.h> -#include <errno.h> -#include <unistd.h> -#include <signal.h> - -#include <sys/types.h> - -#include <sysdep-cancel.h> -#include <sys/syscall.h> -#include <bp-checks.h> - -#include <kernel-features.h> - -#include <alloca.h> -/* from sysdeps */ -#include <socketcall.h> -/* for the stuff in bits/socket.h */ -#include <sys/socket.h> -#include <sys/un.h> - -/* 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 = "<rtld>"; -#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[] = "<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/sys-libs/glibc/files/2.10/glibc-2.10-hardened-configure-picdefault.patch b/sys-libs/glibc/files/2.10/glibc-2.10-hardened-configure-picdefault.patch deleted file mode 100644 index e75ccc7..0000000 --- a/sys-libs/glibc/files/2.10/glibc-2.10-hardened-configure-picdefault.patch +++ /dev/null @@ -1,30 +0,0 @@ -Prevent default-fPIE from confusing configure into thinking -PIC code is default. This causes glibc to build both PIC and -non-PIC code as normal, which on the hardened compiler generates -PIC and PIE. - -Patch by Kevin F. Quinn <kevquinn@gentoo.org> -Fixed for glibc 2.10 by Magnus Granberg <zorry@ume.nu> - ---- configure.in -+++ configure.in -@@ -2145,7 +2145,7 @@ - # error PIC is default. - #endif - EOF --if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then -+if eval "${CC-cc} -fno-PIE -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then - libc_cv_pic_default=no - fi - rm -f conftest.*]) ---- configure -+++ configure -@@ -7698,7 +7698,7 @@ - # error PIC is default. - #endif - EOF --if eval "${CC-cc} -S conftest.c 2>&5 1>&5"; then -+if eval "${CC-cc} -fno-PIE -S conftest.c 2>&5 1>&5"; then - libc_cv_pic_default=no - fi - rm -f conftest.* diff --git a/sys-libs/glibc/files/2.10/glibc-2.10-hardened-inittls-nosysenter.patch b/sys-libs/glibc/files/2.10/glibc-2.10-hardened-inittls-nosysenter.patch deleted file mode 100644 index cb6d8e3..0000000 --- a/sys-libs/glibc/files/2.10/glibc-2.10-hardened-inittls-nosysenter.patch +++ /dev/null @@ -1,274 +0,0 @@ -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 <kevquinn@gentoo.org> -Fixed for 2.10 by Magnus Granberg <zorry@ume.nu> - ---- csu/libc-start.c -+++ csu/libc-start.c -@@ -28,6 +28,7 @@ - extern int __libc_multiple_libcs; - - #include <tls.h> -+#include <sysdep.h> - #ifndef SHARED - # include <dl-osinfo.h> - extern void __pthread_initialize_minimal (void); -@@ -129,6 +130,11 @@ - # endif - _dl_aux_init (auxvec); - # endif -+# 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 -@@ -23,6 +23,7 @@ - #include <unistd.h> - #include <stdio.h> - #include <sys/param.h> -+#include <sysdep.h> - - - #ifdef SHARED -@@ -29,6 +30,9 @@ - #error makefile bug, this file is for static only - #endif - -+#ifdef INTERNAL_SYSCALL_NOSYSENTER -+extern void *__sbrk_nosysenter (intptr_t __delta); -+#endif - extern ElfW(Phdr) *_dl_phdr; - extern size_t _dl_phnum; - -@@ -141,14 +145,26 @@ - - 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 <errno.h> - #include <stdint.h> - #include <unistd.h> -+#include <sysdep.h> - - /* 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,30 @@ - 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 *__unbounded newbrk; -+ -+ INTERNAL_SYSCALL_DECL (err); -+ newbrk = (void *__unbounded) INTERNAL_SYSCALL_NOSYSENTER (brk, err, 1, -+ __ptrvalue (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/sys-libs/glibc/files/2.10/glibc-2.10-hardened-ssp-compat.patch b/sys-libs/glibc/files/2.10/glibc-2.10-hardened-ssp-compat.patch deleted file mode 100644 index a1c9eef..0000000 --- a/sys-libs/glibc/files/2.10/glibc-2.10-hardened-ssp-compat.patch +++ /dev/null @@ -1,168 +0,0 @@ -Add backwards compat support for gcc-3.x ssp ... older ssp versions -used __guard and __stack_smash_handler symbols while gcc-4.1 and newer -uses __stack_chk_guard and __stack_chk_fail. - ---- config.h.in -+++ config.h.in -@@ -42,6 +42,9 @@ - assembler instructions per line. Default is `;' */ - #undef ASM_LINE_SEP - -+/* Define if we want to enable support for old ssp symbols */ -+#undef ENABLE_OLD_SSP_COMPAT -+ - /* Define if not using ELF, but `.init' and `.fini' sections are available. */ - #undef HAVE_INITFINI - ---- configure -+++ configure -@@ -1378,6 +1378,9 @@ Optional Features: - --enable-kernel=VERSION compile for compatibility with kernel not older than - VERSION - --enable-all-warnings enable all useful warnings gcc can issue -+ --disable-old-ssp-compat -+ enable support for older ssp symbols -+ [default=no] - --enable-multi-arch enable single DSO with optimizations for multiple - architectures - --enable-experimental-malloc -@@ -6462,6 +6465,20 @@ fi - $as_echo "$libc_cv_ssp" >&6; } - - -+# Check whether --enable-old-ssp-compat or --disable-old-ssp-compat was given. -+if test "${enable_old_ssp_compat+set}" = set; then -+ enableval="$enable_old_ssp_compat" -+ enable_old_ssp_compat=$enableval -+else -+ enable_old_ssp_compat=no -+fi; -+if test "x$enable_old_ssp_compat" = "xyes"; then -+ cat >>confdefs.h <<\_ACEOF -+#define ENABLE_OLD_SSP_COMPAT 1 -+_ACEOF -+ -+fi -+ - { $as_echo "$as_me:$LINENO: checking for -fgnu89-inline" >&5 - $as_echo_n "checking for -fgnu89-inline... " >&6; } - if test "${libc_cv_gnu89_inline+set}" = set; then ---- configure.in -+++ configure.in -@@ -1641,6 +1641,15 @@ fi - rm -f conftest*]) - AC_SUBST(libc_cv_ssp) - -+AC_ARG_ENABLE([old-ssp-compat], -+ AC_HELP_STRING([--enable-old-ssp-compat], -+ [enable support for older ssp symbols @<:@default=no@:>@]), -+ [enable_old_ssp_compat=$enableval], -+ [enable_old_ssp_compat=no]) -+if test "x$enable_old_ssp_compat" = "xyes"; then -+ AC_DEFINE(ENABLE_OLD_SSP_COMPAT) -+fi -+ - AC_CACHE_CHECK(for -fgnu89-inline, libc_cv_gnu89_inline, [dnl - cat > conftest.c <<EOF - int foo; ---- csu/libc-start.c -+++ csu/libc-start.c -@@ -37,6 +37,9 @@ extern void __pthread_initialize_minimal - uintptr_t __stack_chk_guard attribute_relro; - # endif - #endif -+#ifdef ENABLE_OLD_SSP_COMPAT -+uintptr_t __guard attribute_relro; -+#endif - - #ifdef HAVE_PTR_NTHREADS - /* We need atomic operations. */ -@@ -141,6 +145,9 @@ LIBC_START_MAIN (int (*main) (int, char - - /* Set up the stack checker's canary. */ - uintptr_t stack_chk_guard = _dl_setup_stack_chk_guard (_dl_random); -+#ifdef ENABLE_OLD_SSP_COMPAT -+ __guard = stack_chk_guard; -+#endif - # ifdef THREAD_SET_STACK_GUARD - THREAD_SET_STACK_GUARD (stack_chk_guard); - # else ---- csu/Versions -+++ csu/Versions -@@ -17,6 +17,12 @@ libc { - # New special glibc functions. - gnu_get_libc_release; gnu_get_libc_version; - } -+ GLIBC_2.3.2 { -+%ifdef ENABLE_OLD_SSP_COMPAT -+ # global objects and functions for the old propolice patch in gcc -+ __guard; -+%endif -+ } - GLIBC_PRIVATE { - %if HAVE___THREAD - # This version is for the TLS symbol, GLIBC_2.0 is the old object symbol. ---- debug/Versions -+++ debug/Versions -@@ -10,6 +10,12 @@ libc { - # These are to support some gcc features. - __cyg_profile_func_enter; __cyg_profile_func_exit; - } -+%ifdef ENABLE_OLD_SSP_COMPAT -+ GLIBC_2.3.2 { -+ # backwards ssp compat support; alias to __stack_chk_fail -+ __stack_smash_handler; -+ } -+%endif - GLIBC_2.3.4 { - __chk_fail; - __memcpy_chk; __memmove_chk; __mempcpy_chk; __memset_chk; __stpcpy_chk; ---- elf/rtld.c -+++ elf/rtld.c -@@ -89,6 +89,9 @@ INTDEF(_dl_argv) - in thread local area. */ - uintptr_t __stack_chk_guard attribute_relro; - #endif -+#ifdef ENABLE_OLD_SSP_COMPAT -+uintptr_t __guard attribute_relro; -+#endif - - /* Only exported for architectures that don't store the pointer guard - value in thread local area. */ -@@ -1817,6 +1821,9 @@ ERROR: ld.so: object '%s' cannot be load - - /* Set up the stack checker's canary. */ - uintptr_t stack_chk_guard = _dl_setup_stack_chk_guard (_dl_random); -+#ifdef ENABLE_OLD_SSP_COMPAT -+ __guard = stack_chk_guard; -+#endif - #ifdef THREAD_SET_STACK_GUARD - THREAD_SET_STACK_GUARD (stack_chk_guard); - #else ---- elf/Versions -+++ elf/Versions -@@ -43,6 +43,12 @@ ld { - # runtime interface to TLS - __tls_get_addr; - } -+%ifdef ENABLE_OLD_SSP_COMPAT -+ GLIBC_2.3.2 { -+ # backwards ssp compat support -+ __guard; -+ } -+%endif - GLIBC_2.4 { - # stack canary - __stack_chk_guard; ---- Versions.def -+++ Versions.def -@@ -109,6 +109,9 @@ ld { - GLIBC_2.0 - GLIBC_2.1 - GLIBC_2.3 -+%ifdef ENABLE_OLD_SSP_COMPAT -+ GLIBC_2.3.2 -+%endif - GLIBC_2.4 - GLIBC_PRIVATE - } diff --git a/sys-libs/glibc/files/2.11/glibc-2.11-hardened-pie.patch b/sys-libs/glibc/files/2.11/glibc-2.11-hardened-pie.patch deleted file mode 100644 index df7292f..0000000 --- a/sys-libs/glibc/files/2.11/glibc-2.11-hardened-pie.patch +++ /dev/null @@ -1,40 +0,0 @@ -http://bugs.gentoo.org/292139 - -2009-11-08 Magnus Granberg <zorry@ume.nu> - - * Makeconfig (+link): Set to +link-pie. - (+link-static): Change $(static-start-installed-name) to - S$(static-start-installed-name). - (+prector): Set to +prectorS. - (+postctor): Set to +postctorS. - ---- libc/Makeconfig -+++ libc/Makeconfig -@@ -447,11 +447,12 @@ - $(common-objpfx)libc% $(+postinit),$^) \ - $(link-extra-libs) $(link-libc) $(+postctorS) $(+postinit) - endif -++link = $(+link-pie) - # Command for statically linking programs with the C library. - ifndef +link-static - +link-static = $(CC) -nostdlib -nostartfiles -static -o $@ \ - $(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \ -- $(addprefix $(csu-objpfx),$(static-start-installed-name)) \ -+ $(addprefix $(csu-objpfx),S$(static-start-installed-name)) \ - $(+preinit) $(+prector) \ - $(filter-out $(addprefix $(csu-objpfx),start.o \ - $(start-installed-name))\ -@@ -549,11 +550,10 @@ - ifeq ($(elf),yes) - +preinit = $(addprefix $(csu-objpfx),crti.o) - +postinit = $(addprefix $(csu-objpfx),crtn.o) --+prector = `$(CC) --print-file-name=crtbegin.o` --+postctor = `$(CC) --print-file-name=crtend.o` --# Variants of the two previous definitions for linking PIE programs. - +prectorS = `$(CC) --print-file-name=crtbeginS.o` - +postctorS = `$(CC) --print-file-name=crtendS.o` -++prector = $(+prectorS) -++postctor = $(+postctorS) - +interp = $(addprefix $(elf-objpfx),interp.os) - endif - csu-objpfx = $(common-objpfx)csu/ diff --git a/sys-libs/glibc/files/2.12/glibc-2.12-hardened-pie.patch b/sys-libs/glibc/files/2.12/glibc-2.12-hardened-pie.patch deleted file mode 100644 index 3315171..0000000 --- a/sys-libs/glibc/files/2.12/glibc-2.12-hardened-pie.patch +++ /dev/null @@ -1,39 +0,0 @@ -2010-08-11 Magnus Granberg <zorry@ume.nu> - - #332331 - * Makeconfig (+link): Set to +link-pie. - (+link-static): Change $(static-start-installed-name) to - S$(static-start-installed-name). - (+prector): Set to +prectorS. - (+postctor): Set to +postctorS. - ---- libc/Makeconfig -+++ libc/Makeconfig -@@ -447,11 +447,12 @@ - $(common-objpfx)libc% $(+postinit),$^) \ - $(link-extra-libs) $(link-libc) $(+postctorS) $(+postinit) - endif -++link = $(+link-pie) - # Command for statically linking programs with the C library. - ifndef +link-static - +link-static = $(CC) -nostdlib -nostartfiles -static -o $@ \ - $(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \ -- $(addprefix $(csu-objpfx),$(static-start-installed-name)) \ -+ $(addprefix $(csu-objpfx),S$(static-start-installed-name)) \ - $(+preinit) $(+prector) \ - $(filter-out $(addprefix $(csu-objpfx),start.o \ - $(start-installed-name))\ -@@ -549,11 +550,10 @@ - ifeq ($(elf),yes) - +preinit = $(addprefix $(csu-objpfx),crti.o) - +postinit = $(addprefix $(csu-objpfx),crtn.o) --+prector = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbegin.o` --+postctor = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtend.o` --# Variants of the two previous definitions for linking PIE programs. - +prectorS = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbeginS.o` - +postctorS = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtendS.o` -++prector = $(+prectorS) -++postctor = $(+postctorS) - +interp = $(addprefix $(elf-objpfx),interp.os) - endif - csu-objpfx = $(common-objpfx)csu/ diff --git a/sys-libs/glibc/files/2.15/glibc-2.15-localstatedir-backport.patch b/sys-libs/glibc/files/2.15/glibc-2.15-localstatedir-backport.patch deleted file mode 100644 index 5f8f15a..0000000 --- a/sys-libs/glibc/files/2.15/glibc-2.15-localstatedir-backport.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: work/glibc-2.15/Makeconfig -=================================================================== ---- work.orig/glibc-2.15/Makeconfig -+++ work/glibc-2.15/Makeconfig -@@ -293,7 +293,7 @@ inst_sysconfdir = $(install_root)$(sysco - - # Directory for the database files and Makefile for nss_db. - ifndef vardbdir --vardbdir = /var/db -+vardbdir = $(prefix)/var/db - endif - inst_vardbdir = $(install_root)$(vardbdir) - diff --git a/sys-libs/glibc/files/2.16/glibc-2.16-hardened-pie.patch b/sys-libs/glibc/files/2.16/glibc-2.16-hardened-pie.patch deleted file mode 100644 index a850a61..0000000 --- a/sys-libs/glibc/files/2.16/glibc-2.16-hardened-pie.patch +++ /dev/null @@ -1,39 +0,0 @@ -2012-11-11 Magnus Granberg <zorry@gentoo.org> - - #442712 - * Makeconfig (+link): Set to +link-pie. - (+link-static-before-libc): Change $(static-start-installed-name) to - S$(static-start-installed-name). - (+prector): Set to +prectorS. - (+postctor): Set to +postctorS. - ---- libc/Makeconfig -+++ libc/Makeconfig -@@ -447,11 +447,12 @@ - $(common-objpfx)libc% $(+postinit),$^) \ - $(link-extra-libs) $(link-libc) $(+postctorS) $(+postinit) - endif -++link = $(+link-pie) - # Command for statically linking programs with the C library. - ifndef +link-static - +link-static-before-libc = $(CC) -nostdlib -nostartfiles -static -o $@ \ - $(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \ -- $(addprefix $(csu-objpfx),$(static-start-installed-name)) \ -+ $(addprefix $(csu-objpfx),S$(static-start-installed-name)) \ - $(+preinit) $(+prector) \ - $(filter-out $(addprefix $(csu-objpfx),start.o \ - $(start-installed-name))\ -@@ -549,11 +550,10 @@ - ifeq ($(elf),yes) - +preinit = $(addprefix $(csu-objpfx),crti.o) - +postinit = $(addprefix $(csu-objpfx),crtn.o) --+prector = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbegin.o` --+postctor = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtend.o` --# Variants of the two previous definitions for linking PIE programs. - +prectorS = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbeginS.o` - +postctorS = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtendS.o` -++prector = $(+prectorS) -++postctor = $(+postctorS) - +interp = $(addprefix $(elf-objpfx),interp.os) - endif - csu-objpfx = $(common-objpfx)csu/ diff --git a/sys-libs/glibc/files/2.17/glibc-2.17-hardened-pie.patch b/sys-libs/glibc/files/2.17/glibc-2.17-hardened-pie.patch deleted file mode 100644 index da4fb82..0000000 --- a/sys-libs/glibc/files/2.17/glibc-2.17-hardened-pie.patch +++ /dev/null @@ -1,42 +0,0 @@ -2012-11-11 Magnus Granberg <zorry@gentoo.org> - - #442712 - * Makeconfig (+link): Set to +link-pie. - (+link-static-before-libc): Change $(static-start-installed-name) to - S$(static-start-installed-name). - (+prector): Set to +prectorS. - (+postctor): Set to +postctorS. - ---- libc/Makeconfig -+++ libc/Makeconfig -@@ -447,11 +447,12 @@ - $(common-objpfx)libc% $(+postinit),$^) \ - $(link-extra-libs) $(link-libc) $(+postctorS) $(+postinit) - endif -++link = $(+link-pie) - # Command for statically linking programs with the C library. - ifndef +link-static - +link-static-before-libc = $(CC) -nostdlib -nostartfiles -static -o $@ \ - $(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \ -- $(addprefix $(csu-objpfx),$(static-start-installed-name)) \ -+ $(addprefix $(csu-objpfx),S$(static-start-installed-name)) \ - $(+preinit) $(+prectorT) \ - $(filter-out $(addprefix $(csu-objpfx),start.o \ - $(start-installed-name))\ -@@ -549,11 +550,10 @@ - ifeq ($(elf),yes) - +preinit = $(addprefix $(csu-objpfx),crti.o) - +postinit = $(addprefix $(csu-objpfx),crtn.o) --+prector = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbegin.o` --+postctor = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtend.o` --# Variants of the two previous definitions for linking PIE programs. - +prectorS = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbeginS.o` - +postctorS = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtendS.o` -++prector = $(+prectorS) -++postctor = $(+postctorS) - # Variants of the two previous definitions for statically linking programs. - +prectorT = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbeginT.o` - +postctorT = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtend.o` - +interp = $(addprefix $(elf-objpfx),interp.os) - endif - csu-objpfx = $(common-objpfx)csu/ diff --git a/sys-libs/glibc/files/2.17/glibc-2.17-runtime-prefix.patch b/sys-libs/glibc/files/2.17/glibc-2.17-runtime-prefix.patch deleted file mode 100644 index 8fc683d..0000000 --- a/sys-libs/glibc/files/2.17/glibc-2.17-runtime-prefix.patch +++ /dev/null @@ -1,162 +0,0 @@ -Index: glibc-2.19/sysdeps/generic/paths.h -=================================================================== ---- glibc-2.19.orig/sysdeps/generic/paths.h -+++ glibc-2.19/sysdeps/generic/paths.h -@@ -33,43 +33,43 @@ - #define _PATHS_H_ - - /* Default search path. */ --#define _PATH_DEFPATH "/usr/bin:/bin" -+#define _PATH_DEFPATH "@GENTOO_PORTAGE_EPREFIX@/usr/bin:@GENTOO_PORTAGE_EPREFIX@/bin" - /* All standard utilities path. */ - #define _PATH_STDPATH \ -- "/usr/bin:/bin:/usr/sbin:/sbin" -+ "@GENTOO_PORTAGE_EPREFIX@/usr/bin:@GENTOO_PORTAGE_EPREFIX@/bin:@GENTOO_PORTAGE_EPREFIX@/usr/sbin:@GENTOO_PORTAGE_EPREFIX@/sbin" - --#define _PATH_BSHELL "/bin/sh" -+#define _PATH_BSHELL "@GENTOO_PORTAGE_EPREFIX@/bin/sh" - #define _PATH_CONSOLE "/dev/console" --#define _PATH_CSHELL "/bin/csh" --#define _PATH_DEVDB "/var/run/dev.db" -+#define _PATH_CSHELL "@GENTOO_PORTAGE_EPREFIX@/bin/csh" -+#define _PATH_DEVDB "@GENTOO_PORTAGE_EPREFIX@/var/run/dev.db" - #define _PATH_DEVNULL "/dev/null" - #define _PATH_DRUM "/dev/drum" --#define _PATH_GSHADOW "/etc/gshadow" -+#define _PATH_GSHADOW "@GENTOO_PORTAGE_EPREFIX@/etc/gshadow" - #define _PATH_KMEM "/dev/kmem" --#define _PATH_LASTLOG "/var/log/lastlog" -+#define _PATH_LASTLOG "@GENTOO_PORTAGE_EPREFIX@/var/log/lastlog" - #define _PATH_MAILDIR "/var/mail" --#define _PATH_MAN "/usr/share/man" -+#define _PATH_MAN "@GENTOO_PORTAGE_EPREFIX@/usr/share/man" - #define _PATH_MEM "/dev/mem" --#define _PATH_MNTTAB "/etc/fstab" --#define _PATH_MOUNTED "/var/run/mtab" --#define _PATH_NOLOGIN "/etc/nologin" --#define _PATH_PRESERVE "/var/lib" --#define _PATH_RWHODIR "/var/spool/rwho" --#define _PATH_SENDMAIL "/usr/sbin/sendmail" --#define _PATH_SHADOW "/etc/shadow" --#define _PATH_SHELLS "/etc/shells" -+#define _PATH_MNTTAB "@GENTOO_PORTAGE_EPREFIX@/etc/fstab" -+#define _PATH_MOUNTED "@GENTOO_PORTAGE_EPREFIX@/var/run/mtab" -+#define _PATH_NOLOGIN "@GENTOO_PORTAGE_EPREFIX@/etc/nologin" -+#define _PATH_PRESERVE "@GENTOO_PORTAGE_EPREFIX@/var/lib" -+#define _PATH_RWHODIR "@GENTOO_PORTAGE_EPREFIX@/var/spool/rwho" -+#define _PATH_SENDMAIL "@GENTOO_PORTAGE_EPREFIX@/usr/sbin/sendmail" -+#define _PATH_SHADOW "@GENTOO_PORTAGE_EPREFIX@/etc/shadow" -+#define _PATH_SHELLS "@GENTOO_PORTAGE_EPREFIX@/etc/shells" - #define _PATH_TTY "/dev/tty" - #define _PATH_UNIX "/vmunix" --#define _PATH_UTMP "/var/run/utmp" --#define _PATH_UTMP_DB "/var/run/utmp.db" --#define _PATH_VI "/usr/bin/vi" -+#define _PATH_UTMP "@GENTOO_PORTAGE_EPREFIX@/var/run/utmp" -+#define _PATH_UTMP_DB "@GENTOO_PORTAGE_EPREFIX@/var/run/utmp.db" -+#define _PATH_VI "@GENTOO_PORTAGE_EPREFIX@/usr/bin/vi" - #define _PATH_WTMP "/var/log/wtmp" - - /* Provide trailing slash, since mostly used for building pathnames. */ - #define _PATH_DEV "/dev/" - #define _PATH_TMP "/tmp/" --#define _PATH_VARDB "/var/db/" --#define _PATH_VARRUN "/var/run/" -+#define _PATH_VARDB "@GENTOO_PORTAGE_EPREFIX@/var/db/" -+#define _PATH_VARRUN "@GENTOO_PORTAGE_EPREFIX@/var/run/" - #define _PATH_VARTMP "/var/tmp/" - - #endif /* !_PATHS_H_ */ -Index: glibc-2.19/sysdeps/unix/sysv/linux/paths.h -=================================================================== ---- glibc-2.19.orig/sysdeps/unix/sysv/linux/paths.h -+++ glibc-2.19/sysdeps/unix/sysv/linux/paths.h -@@ -33,43 +33,43 @@ - #define _PATHS_H_ - - /* Default search path. */ --#define _PATH_DEFPATH "/usr/bin:/bin" -+#define _PATH_DEFPATH "@GENTOO_PORTAGE_EPREFIX@/usr/bin:@GENTOO_PORTAGE_EPREFIX@/bin" - /* All standard utilities path. */ - #define _PATH_STDPATH \ -- "/usr/bin:/bin:/usr/sbin:/sbin" -+ "@GENTOO_PORTAGE_EPREFIX@/usr/bin:@GENTOO_PORTAGE_EPREFIX@/bin:@GENTOO_PORTAGE_EPREFIX@/usr/sbin:@GENTOO_PORTAGE_EPREFIX@/sbin" - --#define _PATH_BSHELL "/bin/sh" -+#define _PATH_BSHELL "@GENTOO_PORTAGE_EPREFIX@/bin/sh" - #define _PATH_CONSOLE "/dev/console" --#define _PATH_CSHELL "/bin/csh" --#define _PATH_DEVDB "/var/run/dev.db" -+#define _PATH_CSHELL "@GENTOO_PORTAGE_EPREFIX@/bin/csh" -+#define _PATH_DEVDB "@GENTOO_PORTAGE_EPREFIX@/var/run/dev.db" - #define _PATH_DEVNULL "/dev/null" - #define _PATH_DRUM "/dev/drum" --#define _PATH_GSHADOW "/etc/gshadow" -+#define _PATH_GSHADOW "@GENTOO_PORTAGE_EPREFIX@/etc/gshadow" - #define _PATH_KLOG "/proc/kmsg" - #define _PATH_KMEM "/dev/kmem" - #define _PATH_LASTLOG "/var/log/lastlog" - #define _PATH_MAILDIR "/var/mail" --#define _PATH_MAN "/usr/share/man" -+#define _PATH_MAN "@GENTOO_PORTAGE_EPREFIX@/usr/share/man" - #define _PATH_MEM "/dev/mem" --#define _PATH_MNTTAB "/etc/fstab" --#define _PATH_MOUNTED "/etc/mtab" --#define _PATH_NOLOGIN "/etc/nologin" --#define _PATH_PRESERVE "/var/lib" --#define _PATH_RWHODIR "/var/spool/rwho" --#define _PATH_SENDMAIL "/usr/sbin/sendmail" --#define _PATH_SHADOW "/etc/shadow" --#define _PATH_SHELLS "/etc/shells" -+#define _PATH_MNTTAB "@GENTOO_PORTAGE_EPREFIX@/etc/fstab" -+#define _PATH_MOUNTED "@GENTOO_PORTAGE_EPREFIX@/etc/mtab" -+#define _PATH_NOLOGIN "@GENTOO_PORTAGE_EPREFIX@/etc/nologin" -+#define _PATH_PRESERVE "@GENTOO_PORTAGE_EPREFIX@/var/lib" -+#define _PATH_RWHODIR "@GENTOO_PORTAGE_EPREFIX@/var/spool/rwho" -+#define _PATH_SENDMAIL "@GENTOO_PORTAGE_EPREFIX@/usr/sbin/sendmail" -+#define _PATH_SHADOW "@GENTOO_PORTAGE_EPREFIX@/etc/shadow" -+#define _PATH_SHELLS "@GENTOO_PORTAGE_EPREFIX@/etc/shells" - #define _PATH_TTY "/dev/tty" - #define _PATH_UNIX "/boot/vmlinux" --#define _PATH_UTMP "/var/run/utmp" --#define _PATH_VI "/usr/bin/vi" -+#define _PATH_UTMP "@GENTOO_PORTAGE_EPREFIX@/var/run/utmp" -+#define _PATH_VI "@GENTOO_PORTAGE_EPREFIX@/usr/bin/vi" - #define _PATH_WTMP "/var/log/wtmp" - - /* Provide trailing slash, since mostly used for building pathnames. */ - #define _PATH_DEV "/dev/" - #define _PATH_TMP "/tmp/" --#define _PATH_VARDB "/var/db/" --#define _PATH_VARRUN "/var/run/" -+#define _PATH_VARDB "@GENTOO_PORTAGE_EPREFIX@/var/db/" -+#define _PATH_VARRUN "@GENTOO_PORTAGE_EPREFIX@/var/run/" - #define _PATH_VARTMP "/var/tmp/" - - #endif /* !_PATHS_H_ */ -Index: glibc-2.19/sysdeps/posix/system.c -=================================================================== ---- glibc-2.19.orig/sysdeps/posix/system.c -+++ glibc-2.19/sysdeps/posix/system.c -@@ -26,7 +26,7 @@ - #include <sysdep-cancel.h> - - --#define SHELL_PATH "/bin/sh" /* Path of the shell. */ -+#define SHELL_PATH "@GENTOO_PORTAGE_EPREFIX@/bin/sh" /* Path of the shell. */ - #define SHELL_NAME "sh" /* Name to give it. */ - - -Index: glibc-2.19/libio/iopopen.c -=================================================================== ---- glibc-2.19.orig/libio/iopopen.c -+++ glibc-2.19/libio/iopopen.c -@@ -222,7 +222,7 @@ _IO_new_proc_open (fp, command, mode) - _IO_close (fd); - } - -- _IO_execl ("/bin/sh", "sh", "-c", command, (char *) 0); -+ _IO_execl ("@GENTOO_PORTAGE_EPREFIX@/bin/sh", "sh", "-c", command, (char *) 0); - _IO__exit (127); - } - _IO_close (child_end); diff --git a/sys-libs/glibc/files/2.17/glibc-2.17-shadow-prefix.patch b/sys-libs/glibc/files/2.17/glibc-2.17-shadow-prefix.patch deleted file mode 100644 index 0e3979c..0000000 --- a/sys-libs/glibc/files/2.17/glibc-2.17-shadow-prefix.patch +++ /dev/null @@ -1,33 +0,0 @@ -Index: shadow/Makefile -=================================================================== ---- shadow/Makefile.orig -+++ shadow/Makefile -@@ -20,6 +20,8 @@ - # - subdir := shadow - -+include ../Makeconfig -+ - headers = shadow.h - routines = getspent getspnam sgetspent fgetspent putspent \ - getspent_r getspnam_r sgetspent_r fgetspent_r \ -@@ -34,5 +36,6 @@ CFLAGS-fgetspent_r.c = -fexceptions $(li - CFLAGS-putspent.c = -fexceptions $(libio-mtsafe) - CFLAGS-getspnam.c = -fexceptions - CFLAGS-getspnam_r.c = -fexceptions -+CPPFLAGS-lckpwdf.c = -DSYSCONFDIR='"$(sysconfdir)"' - - include ../Rules -Index: shadow/lckpwdf.c -=================================================================== ---- shadow/lckpwdf.c.orig -+++ shadow/lckpwdf.c -@@ -29,7 +29,7 @@ - - - /* Name of the lock file. */ --#define PWD_LOCKFILE "/etc/.pwd.lock" -+#define PWD_LOCKFILE SYSCONFDIR "/.pwd.lock" - - /* How long to wait for getting the lock before returning with an - error. */ diff --git a/sys-libs/glibc/files/2.17/locale-gen_prefix.patch b/sys-libs/glibc/files/2.17/locale-gen_prefix.patch deleted file mode 100644 index f378605..0000000 --- a/sys-libs/glibc/files/2.17/locale-gen_prefix.patch +++ /dev/null @@ -1,77 +0,0 @@ -bug #473484 -Index: work/extra/locale/locale-gen -=================================================================== ---- work.orig/extra/locale/locale-gen -+++ work/extra/locale/locale-gen -@@ -8,7 +8,13 @@ unset POSIXLY_CORRECT IFS - umask 0022 - - argv0=${0##*/} --source /etc/init.d/functions.sh || { -+ -+EPREFIX="@GENTOO_PORTAGE_EPREFIX@" -+if [[ ${EPREFIX} == "@"GENTOO_PORTAGE_EPREFIX"@" ]] ; then -+ EPREFIX="" -+fi -+ -+source "${EPREFIX}"/etc/init.d/functions.sh || { - echo "${argv0}: Could not source /etc/init.d/functions.sh!" 1>&2 - exit 1 - } -@@ -97,13 +103,14 @@ if [[ -n ${DESTDIR} ]] && [[ ${ROOT} != - eerror "DESTDIR and ROOT are mutually exclusive options" - exit 1 - fi --if [[ ${ROOT} != "/" ]] ; then -- einfo "Using locale.gen from ROOT ${ROOT}etc/" -+: ${EROOT:="${ROOT%/}${EPREFIX}/"} -+if [[ ${EROOT} != "/" ]] ; then -+ einfo "Using locale.gen from ROOT ${EROOT}etc/" - fi - if [[ -n ${DESTDIR} ]] ; then - einfo "Building locales in DESTDIR '${DESTDIR}'" - else -- DESTDIR=${ROOT} -+ DESTDIR=${EROOT} - fi - - # XXX: should fix this ... -@@ -112,7 +119,7 @@ if [[ ${ROOT} != "/" ]] ; then - exit 0 - fi - --: ${CONFIG:=${ROOT}etc/locale.gen} -+: ${CONFIG:=${EROOT}etc/locale.gen} - LOCALES=${DESTDIR}usr/share/i18n/locales - CHARMAPS=${DESTDIR}usr/share/i18n/charmaps - SUPPORTED=${DESTDIR}usr/share/i18n/SUPPORTED -@@ -150,7 +157,10 @@ fi - - # Extract the location of the locale dir on the fly as `localedef --help` has: - # locale path : /usr/lib64/locale:/usr/share/i18n --LOCALEDIR=${DESTDIR}$(LC_ALL="C" "${DESTDIR}"usr/bin/localedef --help | sed -n -e '/locale path/{s|.* : ||;s|:.*||;p}') -+# For long paths, the line may get wrapped into two, in which case space (' ') is replaced -+# by newline (\n). -+LOCALEDIR=$(LC_ALL="C" "${DESTDIR}"usr/bin/localedef --help | sed -n -r '/locale path/{N;s|.*:[ \n](.*):/.*|\1|;p}') -+LOCALEDIR="${DESTDIR}${LOCALEDIR#${EPREFIX}}" - if [[ $? -ne 0 ]] || [[ -z ${LOCALEDIR} ]] || [[ ${LOCALEDIR} != ${DESTDIR}/usr/lib*/locale ]] ; then - eerror "Unable to parse the output of your localedef utility." 1>&2 - eerror "File a bug about this issue and include the output of 'localedef --help'." 1>&2 -@@ -160,7 +170,7 @@ fi - - - if [[ ${QUIET} -eq 0 ]] && [[ -z ${JUST_LIST} ]] && \ -- [[ -e ${ROOT}etc/locales.build ]] -+ [[ -e ${EROOT}etc/locales.build ]] - then - ewarn "You should upgrade your /etc/locales.build to /etc/locale.gen" - ewarn "and then remove /etc/locales.build when you're done.\n" -@@ -280,7 +290,7 @@ generate_locale() { - -i "${input}" \ - -f "${charmap}" \ - -A "${ALIAS}" \ -- --prefix "${DESTDIR}" \ -+ --prefix "${DESTDIR%${EPREFIX}/}/" \ - "${locale}" 2>&1 - ret=$? - [[ -n ${output} ]] && eend ${ret} diff --git a/sys-libs/glibc/files/2.17/vdso-disable.patch b/sys-libs/glibc/files/2.17/vdso-disable.patch deleted file mode 100644 index 0354ae9..0000000 --- a/sys-libs/glibc/files/2.17/vdso-disable.patch +++ /dev/null @@ -1,34 +0,0 @@ -Index: work/glibc-2.17/elf/dl-support.c -=================================================================== ---- work.orig/glibc-2.17/elf/dl-support.c -+++ work/glibc-2.17/elf/dl-support.c -@@ -212,16 +212,6 @@ _dl_aux_init (ElfW(auxv_t) *av) - case AT_HWCAP: - GLRO(dl_hwcap) = (unsigned long int) av->a_un.a_val; - break; --#ifdef NEED_DL_SYSINFO -- case AT_SYSINFO: -- GL(dl_sysinfo) = av->a_un.a_val; -- break; --#endif --#if defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO -- case AT_SYSINFO_EHDR: -- GL(dl_sysinfo_dso) = (void *) av->a_un.a_val; -- break; --#endif - case AT_UID: - uid ^= av->a_un.a_val; - seen |= 1; -Index: work/glibc-2.17/elf/setup-vdso.h -=================================================================== ---- work.orig/glibc-2.17/elf/setup-vdso.h -+++ work/glibc-2.17/elf/setup-vdso.h -@@ -20,7 +20,7 @@ static inline void __attribute__ ((alway - setup_vdso (struct link_map *main_map __attribute__ ((unused)), - struct link_map ***first_preload __attribute__ ((unused))) - { --#if defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO -+#if 0 - if (GLRO(dl_sysinfo_dso) == NULL) - return; - diff --git a/sys-libs/glibc/files/2.17/vdso.patch b/sys-libs/glibc/files/2.17/vdso.patch deleted file mode 100644 index eb9a492..0000000 --- a/sys-libs/glibc/files/2.17/vdso.patch +++ /dev/null @@ -1,17 +0,0 @@ -Index: glibc-2.17/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c -=================================================================== ---- glibc-2.17.orig/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c -+++ glibc-2.17/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c -@@ -28,11 +28,7 @@ void *gettimeofday_ifunc (void) __asm__ - void * - gettimeofday_ifunc (void) - { -- PREPARE_VERSION (linux26, "LINUX_2.6", 61765110); -- -- /* If the vDSO is not available we fall back on the old vsyscall. */ -- return (_dl_vdso_vsym ("__vdso_gettimeofday", &linux26) -- ?: (void *) VSYSCALL_ADDR_vgettimeofday); -+ return (void *) VSYSCALL_ADDR_vgettimeofday; - } - asm (".type __gettimeofday, %gnu_indirect_function"); - diff --git a/sys-libs/glibc/files/2.19/glibc-2.19-configurable-paths.patch b/sys-libs/glibc/files/2.19/glibc-2.19-configurable-paths.patch deleted file mode 100644 index 1cf906a..0000000 --- a/sys-libs/glibc/files/2.19/glibc-2.19-configurable-paths.patch +++ /dev/null @@ -1,2115 +0,0 @@ -Index: glibc-2.19/nis/Makefile -=================================================================== ---- glibc-2.19.orig/nis/Makefile -+++ glibc-2.19/nis/Makefile -@@ -58,6 +58,11 @@ libnsl-routines = yp_xdr ypclnt ypupdate - nis_clone_res nss-default - - libnss_compat-routines := $(addprefix compat-,grp pwd spwd initgroups) -+SYSCONF-FLAGS := -D'SYSCONFDIR="$(sysconfdir)"' -+CPPFLAGS-compat-grp.c = $(SYSCONF-FLAGS) -+CPPFLAGS-compat-pwd.c = $(SYSCONF-FLAGS) -+CPPFLAGS-compat-spwd.c = $(SYSCONF-FLAGS) -+CPPFLAGS-compat-initgroups.c = $(SYSCONF-FLAGS) - libnss_compat-inhibit-o = $(filter-out .os,$(object-suffixes)) - - libnss_nis-routines := $(addprefix nis-,$(databases)) nis-initgroups \ -Index: glibc-2.19/nis/nss_compat/compat-grp.c -=================================================================== ---- glibc-2.19.orig/nis/nss_compat/compat-grp.c -+++ glibc-2.19/nis/nss_compat/compat-grp.c -@@ -120,7 +120,7 @@ internal_setgrent (ent_t *ent, int stayo - - if (ent->stream == NULL) - { -- ent->stream = fopen ("/etc/group", "rme"); -+ ent->stream = fopen (SYSCONFDIR "/group", "rme"); - - if (ent->stream == NULL) - status = errno == EAGAIN ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL; -Index: glibc-2.19/nis/nss_compat/compat-initgroups.c -=================================================================== ---- glibc-2.19.orig/nis/nss_compat/compat-initgroups.c -+++ glibc-2.19/nis/nss_compat/compat-initgroups.c -@@ -136,7 +136,7 @@ internal_setgrent (ent_t *ent) - else - ent->blacklist.current = 0; - -- ent->stream = fopen ("/etc/group", "rme"); -+ ent->stream = fopen (SYSCONFDIR "/group", "rme"); - - if (ent->stream == NULL) - status = errno == EAGAIN ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL; -Index: glibc-2.19/nis/nss_compat/compat-pwd.c -=================================================================== ---- glibc-2.19.orig/nis/nss_compat/compat-pwd.c -+++ glibc-2.19/nis/nss_compat/compat-pwd.c -@@ -235,7 +235,7 @@ internal_setpwent (ent_t *ent, int stayo - - if (ent->stream == NULL) - { -- ent->stream = fopen ("/etc/passwd", "rme"); -+ ent->stream = fopen (SYSCONFDIR "/passwd", "rme"); - - if (ent->stream == NULL) - status = errno == EAGAIN ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL; -Index: glibc-2.19/nis/nss_compat/compat-spwd.c -=================================================================== ---- glibc-2.19.orig/nis/nss_compat/compat-spwd.c -+++ glibc-2.19/nis/nss_compat/compat-spwd.c -@@ -191,7 +191,7 @@ internal_setspent (ent_t *ent, int stayo - - if (ent->stream == NULL) - { -- ent->stream = fopen ("/etc/shadow", "rme"); -+ ent->stream = fopen (SYSCONFDIR "/shadow", "rme"); - - if (ent->stream == NULL) - status = errno == EAGAIN ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL; -Index: glibc-2.19/nss/Makefile -=================================================================== ---- glibc-2.19.orig/nss/Makefile -+++ glibc-2.19/nss/Makefile -@@ -39,6 +39,8 @@ extra-objs += $(makedb-modules:=.o) - - tests = test-netdb tst-nss-test1 test-digits-dots - xtests = bug-erange -+SYSCONF-FLAGS := -D'SYSCONFDIR="$(sysconfdir)"' -+CPPFLAGS-bug-erange.c = $(SYSCONF-FLAGS) - - include ../Makeconfig - -@@ -57,6 +59,8 @@ vpath %.c $(subdir-dirs) ../locale/progr - - libnss_files-routines := $(addprefix files-,$(databases)) \ - files-initgroups files-have_o_cloexec files-init -+CPPFLAGS-files-init.c = $(SYSCONF-FLAGS) -+CPPFLAGS-files-initgroups.c = $(SYSCONF-FLAGS) - - libnss_db-dbs := $(addprefix db-,\ - $(filter-out hosts network key alias,\ -@@ -102,7 +106,7 @@ $(libnss_db-dbs:%=$(objpfx)%.c): $(objpf - - $(objpfx)makedb: $(makedb-modules:%=$(objpfx)%.o) - --$(inst_vardbdir)/Makefile: db-Makefile $(+force) -+$(inst_vardbdir)/Makefile: $(objpfx)db-Makefile $(+force) - $(do-install) - - CFLAGS-nss_test1.c = -DNOT_IN_libc=1 -Index: glibc-2.19/nss/bug-erange.c -=================================================================== ---- glibc-2.19.orig/nss/bug-erange.c -+++ glibc-2.19/nss/bug-erange.c -@@ -37,7 +37,7 @@ main (void) - { - printf ("gethostbyname_r failed: %s (errno: %m)\n", strerror (res)); - -- if (access ("/etc/resolv.conf", R_OK)) -+ if (access (SYSCONFDIR "/resolv.conf", R_OK)) - { - puts ("DNS probably not set up"); - return 0; -Index: glibc-2.19/nss/nss_files/files-init.c -=================================================================== ---- glibc-2.19.orig/nss/nss_files/files-init.c -+++ glibc-2.19/nss/nss_files/files-init.c -@@ -35,33 +35,33 @@ static union \ - } \ - } - --TF (pwd, "/etc/passwd"); --TF (grp, "/etc/group"); --TF (hst, "/etc/hosts"); --TF (resolv, "/etc/resolv.conf", .call_res_init = 1); --TF (serv, "/etc/services"); --TF (netgr, "/etc/netgroup"); -+TF (pwd, SYSCONFDIR "/passwd"); -+TF (grp, SYSCONFDIR "/group"); -+TF (hst, SYSCONFDIR "/hosts"); -+TF (resolv, SYSCONFDIR "/resolv.conf", .call_res_init = 1); -+TF (serv, SYSCONFDIR "/services"); -+TF (netgr, SYSCONFDIR "/netgroup"); - - - void - _nss_files_init (void (*cb) (size_t, struct traced_file *)) - { -- strcpy (pwd_traced_file.file.fname, "/etc/passwd"); -+ strcpy (pwd_traced_file.file.fname, SYSCONFDIR "/passwd"); - cb (pwddb, &pwd_traced_file.file); - -- strcpy (grp_traced_file.file.fname, "/etc/group"); -+ strcpy (grp_traced_file.file.fname, SYSCONFDIR "/group"); - cb (grpdb, &grp_traced_file.file); - -- strcpy (hst_traced_file.file.fname, "/etc/hosts"); -+ strcpy (hst_traced_file.file.fname, SYSCONFDIR "/hosts"); - cb (hstdb, &hst_traced_file.file); - -- strcpy (resolv_traced_file.file.fname, "/etc/resolv.conf"); -+ strcpy (resolv_traced_file.file.fname, SYSCONFDIR "/resolv.conf"); - cb (hstdb, &resolv_traced_file.file); - -- strcpy (serv_traced_file.file.fname, "/etc/services"); -+ strcpy (serv_traced_file.file.fname, SYSCONFDIR "/services"); - cb (servdb, &serv_traced_file.file); - -- strcpy (netgr_traced_file.file.fname, "/etc/netgroup"); -+ strcpy (netgr_traced_file.file.fname, SYSCONFDIR "/netgroup"); - cb (netgrdb, &netgr_traced_file.file); - } - -Index: glibc-2.19/nss/nss_files/files-initgroups.c -=================================================================== ---- glibc-2.19.orig/nss/nss_files/files-initgroups.c -+++ glibc-2.19/nss/nss_files/files-initgroups.c -@@ -31,7 +31,7 @@ _nss_files_initgroups_dyn (const char *u - long int *size, gid_t **groupsp, long int limit, - int *errnop) - { -- FILE *stream = fopen ("/etc/group", "rce"); -+ FILE *stream = fopen (SYSCONFDIR "/group", "rce"); - if (stream == NULL) - { - *errnop = errno; -Index: glibc-2.19/nss/db-Makefile -=================================================================== ---- glibc-2.19.orig/nss/db-Makefile -+++ /dev/null -@@ -1,166 +0,0 @@ --# Makefile to (re-)generate db versions of system database files. --# Copyright (C) 1996-2014 Free Software Foundation, Inc. --# This file is part of the GNU C Library. --# Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. --# -- --# 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, see --# <http://www.gnu.org/licenses/>. -- --DATABASES = $(wildcard /etc/passwd /etc/group /etc/ethers /etc/protocols \ -- /etc/rpc /etc/services /etc/shadow /etc/gshadow \ -- /etc/netgroup) -- --VAR_DB = /var/db -- --AWK = awk --MAKEDB = makedb --quiet -- --all: $(patsubst %,$(VAR_DB)/%.db,$(notdir $(DATABASES))) -- -- --$(VAR_DB)/passwd.db: /etc/passwd -- @echo -n "$(patsubst %.db,%,$(@F))... " -- @$(AWK) 'BEGIN { FS=":"; OFS=":" } \ -- /^[ \t]*$$/ { next } \ -- /^[ \t]*#/ { next } \ -- /^[^#]/ { printf ".%s ", $$1; print; \ -- printf "=%s ", $$3; print }' $^ | \ -- $(MAKEDB) -o $@ - -- @echo "done." -- --$(VAR_DB)/group.db: /etc/group -- @echo -n "$(patsubst %.db,%,$(@F))... " -- @$(AWK) 'BEGIN { FS=":"; OFS=":" } \ -- /^[ \t]*$$/ { next } \ -- /^[ \t]*#/ { next } \ -- /^[^#]/ { printf ".%s ", $$1; print; \ -- printf "=%s ", $$3; print; \ -- if ($$4 != "") { \ -- split($$4, grmems, ","); \ -- for (memidx in grmems) { \ -- mem=grmems[memidx]; \ -- if (members[mem] == "") \ -- members[mem]=$$3; \ -- else \ -- members[mem]=members[mem] "," $$3; \ -- } \ -- delete grmems; } } \ -- END { for (mem in members) \ -- printf ":%s %s %s\n", mem, mem, members[mem]; }' $^ | \ -- $(MAKEDB) -o $@ - -- @echo "done." -- --$(VAR_DB)/ethers.db: /etc/ethers -- @echo -n "$(patsubst %.db,%,$(@F))... " -- @$(AWK) '/^[ \t]*$$/ { next } \ -- /^[ \t]*#/ { next } \ -- /^[^#]/ { printf ".%s ", $$1; print; \ -- printf "=%s ", $$2; print }' $^ | \ -- $(MAKEDB) -o $@ - -- @echo "done." -- --$(VAR_DB)/protocols.db: /etc/protocols -- @echo -n "$(patsubst %.db,%,$(@F))... " -- @$(AWK) '/^[ \t]*$$/ { next } \ -- /^[ \t]*#/ { next } \ -- /^[^#]/ { printf ".%s ", $$1; print; \ -- printf "=%s ", $$2; print; \ -- for (i = 3; i <= NF && !($$i ~ /^#/); ++i) \ -- { printf ".%s ", $$i; print } }' $^ | \ -- $(MAKEDB) -o $@ - -- @echo "done." -- --$(VAR_DB)/rpc.db: /etc/rpc -- @echo -n "$(patsubst %.db,%,$(@F))... " -- @$(AWK) '/^[ \t]*$$/ { next } \ -- /^[ \t]*#/ { next } \ -- /^[^#]/ { printf ".%s ", $$1; print; \ -- printf "=%s ", $$2; print; \ -- for (i = 3; i <= NF && !($$i ~ /^#/); ++i) \ -- { printf ".%s ", $$i; print } }' $^ | \ -- $(MAKEDB) -o $@ - -- @echo "done." -- --$(VAR_DB)/services.db: /etc/services -- @echo -n "$(patsubst %.db,%,$(@F))... " -- @$(AWK) 'BEGIN { FS="[ \t/]+" } \ -- /^[ \t]*$$/ { next } \ -- /^[ \t]*#/ { next } \ -- /^[^#]/ { sub(/[ \t]*#.*$$/, "");\ -- printf ":%s/%s ", $$1, $$3; print; \ -- printf ":%s/ ", $$1; print; \ -- printf "=%s/%s ", $$2, $$3; print; \ -- printf "=%s/ ", $$2; print; \ -- for (i = 4; i <= NF && !($$i ~ /^#/); ++i) \ -- { printf ":%s/%s ", $$i, $$3; print; \ -- printf ":%s/ ", $$i; print } }' $^ | \ -- $(MAKEDB) -o $@ - -- @echo "done." -- --$(VAR_DB)/shadow.db: /etc/shadow -- @echo -n "$(patsubst %.db,%,$(@F))... " -- @$(AWK) 'BEGIN { FS=":"; OFS=":" } \ -- /^[ \t]*$$/ { next } \ -- /^[ \t]*#/ { next } \ -- /^[^#]/ { printf ".%s ", $$1; print }' $^ | \ -- (umask 077 && $(MAKEDB) -o $@ -) -- @echo "done." -- @if chgrp shadow $@ 2>/dev/null; then \ -- chmod g+r $@; \ -- else \ -- chown 0 $@; chgrp 0 $@; chmod 600 $@; \ -- echo; \ -- echo "Warning: The shadow password database $@"; \ -- echo "has been set to be readable only by root. You may want"; \ -- echo "to make it readable by the \`shadow' group depending"; \ -- echo "on your configuration."; \ -- echo; \ -- fi -- --$(VAR_DB)/gshadow.db: /etc/gshadow -- @echo -n "$(patsubst %.db,%,$(@F))... " -- @$(AWK) 'BEGIN { FS=":"; OFS=":" } \ -- /^[ \t]*$$/ { next } \ -- /^[ \t]*#/ { next } \ -- /^[^#]/ { printf ".%s ", $$1; print }' $^ | \ -- (umask 077 && $(MAKEDB) -o $@ -) -- @echo "done." -- @if chgrp shadow $@ 2>/dev/null; then \ -- chmod g+r $@; \ -- else \ -- chown 0 $@; chgrp 0 $@; chmod 600 $@; \ -- echo; \ -- echo "Warning: The shadow group database $@"; \ -- echo "has been set to be readable only by root. You may want"; \ -- echo "to make it readable by the \`shadow' group depending"; \ -- echo "on your configuration."; \ -- echo; \ -- fi -- --$(VAR_DB)/netgroup.db: /etc/netgroup -- @echo -n "$(patsubst %.db,%,$(@F))... " -- @$(AWK) 'BEGIN { ini=1 } \ -- /^[ \t]*$$/ { next } \ -- /^[ \t]*#/ { next } \ -- /^[^#]/ { if (sub(/[ \t]*\\$$/, " ") == 0) end="\n"; \ -- else end=""; \ -- gsub(/[ \t]+/, " "); \ -- sub(/^[ \t]*/, ""); \ -- if (ini == 0) printf "%s%s", $$0, end; \ -- else printf ".%s %s%s", $$1, $$0, end; \ -- ini=end == "" ? 0 : 1; } \ -- END { if (ini==0) printf "\n" }' $^ | \ -- $(MAKEDB) -o $@ - -- @echo "done." -Index: glibc-2.19/nss/db-Makefile.in -=================================================================== ---- /dev/null -+++ glibc-2.19/nss/db-Makefile.in -@@ -0,0 +1,173 @@ -+ -+# Makefile to (re-)generate db versions of system database files. -+# Copyright (C) 1996-2014 Free Software Foundation, Inc. -+# This file is part of the GNU C Library. -+# Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. -+# -+ -+# 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, see -+# <http://www.gnu.org/licenses/>. -+ -+DATABASES = $(wildcard @libc_cv_sysconfdir@/passwd \ -+ @libc_cv_sysconfdir@/group \ -+ @libc_cv_sysconfdir@/ethers \ -+ @libc_cv_sysconfdir@/protocols \ -+ @libc_cv_sysconfdir@/rpc \ -+ @libc_cv_sysconfdir@/services \ -+ @libc_cv_sysconfdir@/shadow \ -+ @libc_cv_sysconfdir@/gshadow \ -+ @libc_cv_sysconfdir@/netgroup) -+ -+VAR_DB = /var/db -+ -+AWK = awk -+MAKEDB = makedb --quiet -+ -+all: $(patsubst %,$(VAR_DB)/%.db,$(notdir $(DATABASES))) -+ -+ -+$(VAR_DB)/passwd.db: @libc_cv_sysconfdir@/passwd -+ @echo -n "$(patsubst %.db,%,$(@F))... " -+ @$(AWK) 'BEGIN { FS=":"; OFS=":" } \ -+ /^[ \t]*$$/ { next } \ -+ /^[ \t]*#/ { next } \ -+ /^[^#]/ { printf ".%s ", $$1; print; \ -+ printf "=%s ", $$3; print }' $^ | \ -+ $(MAKEDB) -o $@ - -+ @echo "done." -+ -+$(VAR_DB)/group.db: @libc_cv_sysconfdir@/group -+ @echo -n "$(patsubst %.db,%,$(@F))... " -+ @$(AWK) 'BEGIN { FS=":"; OFS=":" } \ -+ /^[ \t]*$$/ { next } \ -+ /^[ \t]*#/ { next } \ -+ /^[^#]/ { printf ".%s ", $$1; print; \ -+ printf "=%s ", $$3; print; \ -+ if ($$4 != "") { \ -+ split($$4, grmems, ","); \ -+ for (memidx in grmems) { \ -+ mem=grmems[memidx]; \ -+ if (members[mem] == "") \ -+ members[mem]=$$3; \ -+ else \ -+ members[mem]=members[mem] "," $$3; \ -+ } \ -+ delete grmems; } } \ -+ END { for (mem in members) \ -+ printf ":%s %s %s\n", mem, mem, members[mem]; }' $^ | \ -+ $(MAKEDB) -o $@ - -+ @echo "done." -+ -+$(VAR_DB)/ethers.db: @libc_cv_sysconfdir@/ethers -+ @echo -n "$(patsubst %.db,%,$(@F))... " -+ @$(AWK) '/^[ \t]*$$/ { next } \ -+ /^[ \t]*#/ { next } \ -+ /^[^#]/ { printf ".%s ", $$1; print; \ -+ printf "=%s ", $$2; print }' $^ | \ -+ $(MAKEDB) -o $@ - -+ @echo "done." -+ -+$(VAR_DB)/protocols.db: @libc_cv_sysconfdir@/protocols -+ @echo -n "$(patsubst %.db,%,$(@F))... " -+ @$(AWK) '/^[ \t]*$$/ { next } \ -+ /^[ \t]*#/ { next } \ -+ /^[^#]/ { printf ".%s ", $$1; print; \ -+ printf "=%s ", $$2; print; \ -+ for (i = 3; i <= NF && !($$i ~ /^#/); ++i) \ -+ { printf ".%s ", $$i; print } }' $^ | \ -+ $(MAKEDB) -o $@ - -+ @echo "done." -+ -+$(VAR_DB)/rpc.db: @libc_cv_sysconfdir@/rpc -+ @echo -n "$(patsubst %.db,%,$(@F))... " -+ @$(AWK) '/^[ \t]*$$/ { next } \ -+ /^[ \t]*#/ { next } \ -+ /^[^#]/ { printf ".%s ", $$1; print; \ -+ printf "=%s ", $$2; print; \ -+ for (i = 3; i <= NF && !($$i ~ /^#/); ++i) \ -+ { printf ".%s ", $$i; print } }' $^ | \ -+ $(MAKEDB) -o $@ - -+ @echo "done." -+ -+$(VAR_DB)/services.db: @libc_cv_sysconfdir@/services -+ @echo -n "$(patsubst %.db,%,$(@F))... " -+ @$(AWK) 'BEGIN { FS="[ \t/]+" } \ -+ /^[ \t]*$$/ { next } \ -+ /^[ \t]*#/ { next } \ -+ /^[^#]/ { sub(/[ \t]*#.*$$/, "");\ -+ printf ":%s/%s ", $$1, $$3; print; \ -+ printf ":%s/ ", $$1; print; \ -+ printf "=%s/%s ", $$2, $$3; print; \ -+ printf "=%s/ ", $$2; print; \ -+ for (i = 4; i <= NF && !($$i ~ /^#/); ++i) \ -+ { printf ":%s/%s ", $$i, $$3; print; \ -+ printf ":%s/ ", $$i; print } }' $^ | \ -+ $(MAKEDB) -o $@ - -+ @echo "done." -+ -+$(VAR_DB)/shadow.db: @libc_cv_sysconfdir@/shadow -+ @echo -n "$(patsubst %.db,%,$(@F))... " -+ @$(AWK) 'BEGIN { FS=":"; OFS=":" } \ -+ /^[ \t]*$$/ { next } \ -+ /^[ \t]*#/ { next } \ -+ /^[^#]/ { printf ".%s ", $$1; print }' $^ | \ -+ (umask 077 && $(MAKEDB) -o $@ -) -+ @echo "done." -+ @if chgrp shadow $@ 2>/dev/null; then \ -+ chmod g+r $@; \ -+ else \ -+ chown 0 $@; chgrp 0 $@; chmod 600 $@; \ -+ echo; \ -+ echo "Warning: The shadow password database $@"; \ -+ echo "has been set to be readable only by root. You may want"; \ -+ echo "to make it readable by the \`shadow' group depending"; \ -+ echo "on your configuration."; \ -+ echo; \ -+ fi -+ -+$(VAR_DB)/gshadow.db: @libc_cv_sysconfdir@/gshadow -+ @echo -n "$(patsubst %.db,%,$(@F))... " -+ @$(AWK) 'BEGIN { FS=":"; OFS=":" } \ -+ /^[ \t]*$$/ { next } \ -+ /^[ \t]*#/ { next } \ -+ /^[^#]/ { printf ".%s ", $$1; print }' $^ | \ -+ (umask 077 && $(MAKEDB) -o $@ -) -+ @echo "done." -+ @if chgrp shadow $@ 2>/dev/null; then \ -+ chmod g+r $@; \ -+ else \ -+ chown 0 $@; chgrp 0 $@; chmod 600 $@; \ -+ echo; \ -+ echo "Warning: The shadow group database $@"; \ -+ echo "has been set to be readable only by root. You may want"; \ -+ echo "to make it readable by the \`shadow' group depending"; \ -+ echo "on your configuration."; \ -+ echo; \ -+ fi -+ -+$(VAR_DB)/netgroup.db: @libc_cv_sysconfdir@/netgroup -+ @echo -n "$(patsubst %.db,%,$(@F))... " -+ @$(AWK) 'BEGIN { ini=1 } \ -+ /^[ \t]*$$/ { next } \ -+ /^[ \t]*#/ { next } \ -+ /^[^#]/ { if (sub(/[ \t]*\\$$/, " ") == 0) end="\n"; \ -+ else end=""; \ -+ gsub(/[ \t]+/, " "); \ -+ sub(/^[ \t]*/, ""); \ -+ if (ini == 0) printf "%s%s", $$0, end; \ -+ else printf ".%s %s%s", $$1, $$0, end; \ -+ ini=end == "" ? 0 : 1; } \ -+ END { if (ini==0) printf "\n" }' $^ | \ -+ $(MAKEDB) -o $@ - -+ @echo "done." -Index: glibc-2.19/resolv/netdb.h -=================================================================== ---- glibc-2.19.orig/resolv/netdb.h -+++ glibc-2.19/resolv/netdb.h -@@ -42,12 +42,12 @@ - #include <bits/netdb.h> - - /* Absolute file name for network data base files. */ --#define _PATH_HEQUIV "/etc/hosts.equiv" --#define _PATH_HOSTS "/etc/hosts" --#define _PATH_NETWORKS "/etc/networks" --#define _PATH_NSSWITCH_CONF "/etc/nsswitch.conf" --#define _PATH_PROTOCOLS "/etc/protocols" --#define _PATH_SERVICES "/etc/services" -+#define _PATH_HEQUIV SYSCONFDIR "/hosts.equiv" -+#define _PATH_HOSTS SYSCONFDIR "/hosts" -+#define _PATH_NETWORKS SYSCONFDIR "/networks" -+#define _PATH_NSSWITCH_CONF SYSCONFDIR "/nsswitch.conf" -+#define _PATH_PROTOCOLS SYSCONFDIR "/protocols" -+#define _PATH_SERVICES SYSCONFDIR "/services" - - - __BEGIN_DECLS -Index: glibc-2.19/resolv/resolv.h -=================================================================== ---- glibc-2.19.orig/resolv/resolv.h -+++ /dev/null -@@ -1,389 +0,0 @@ --/* -- * Copyright (c) 1983, 1987, 1989 -- * The Regents of the University of California. All rights reserved. -- * -- * Redistribution and use in source and binary forms, with or without -- * modification, are permitted provided that the following conditions -- * are met: -- * 1. Redistributions of source code must retain the above copyright -- * notice, this list of conditions and the following disclaimer. -- * 2. Redistributions in binary form must reproduce the above copyright -- * notice, this list of conditions and the following disclaimer in the -- * documentation and/or other materials provided with the distribution. -- * 4. Neither the name of the University nor the names of its contributors -- * may be used to endorse or promote products derived from this software -- * without specific prior written permission. -- * -- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -- * SUCH DAMAGE. -- */ -- --/* -- * Portions Copyright (c) 1996-1999 by Internet Software Consortium. -- * -- * Permission to use, copy, modify, and distribute this software for any -- * purpose with or without fee is hereby granted, provided that the above -- * copyright notice and this permission notice appear in all copies. -- * -- * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS -- * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES -- * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE -- * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL -- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR -- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -- * SOFTWARE. -- */ -- --/* -- * @(#)resolv.h 8.1 (Berkeley) 6/2/93 -- * $BINDId: resolv.h,v 8.31 2000/03/30 20:16:50 vixie Exp $ -- */ -- --#ifndef _RESOLV_H_ -- --/* These headers are needed for types used in the `struct res_state' -- declaration. */ --#include <sys/types.h> --#include <netinet/in.h> -- --#ifndef __need_res_state --# define _RESOLV_H_ -- --# include <sys/param.h> --# include <sys/cdefs.h> --# include <stdio.h> --# include <arpa/nameser.h> --#endif -- --#ifndef __res_state_defined --# define __res_state_defined -- --typedef enum { res_goahead, res_nextns, res_modified, res_done, res_error } -- res_sendhookact; -- --typedef res_sendhookact (*res_send_qhook) (struct sockaddr_in * const *__ns, -- const u_char **__query, -- int *__querylen, -- u_char *__ans, -- int __anssiz, -- int *__resplen); -- --typedef res_sendhookact (*res_send_rhook) (const struct sockaddr_in *__ns, -- const u_char *__query, -- int __querylen, -- u_char *__ans, -- int __anssiz, -- int *__resplen); -- --/* -- * Global defines and variables for resolver stub. -- */ --# define MAXNS 3 /* max # name servers we'll track */ --# define MAXDFLSRCH 3 /* # default domain levels to try */ --# define MAXDNSRCH 6 /* max # domains in search path */ --# define LOCALDOMAINPARTS 2 /* min levels in name that is "local" */ -- --# define RES_TIMEOUT 5 /* min. seconds between retries */ --# define MAXRESOLVSORT 10 /* number of net to sort on */ --# define RES_MAXNDOTS 15 /* should reflect bit field size */ --# define RES_MAXRETRANS 30 /* only for resolv.conf/RES_OPTIONS */ --# define RES_MAXRETRY 5 /* only for resolv.conf/RES_OPTIONS */ --# define RES_DFLRETRY 2 /* Default #/tries. */ --# define RES_MAXTIME 65535 /* Infinity, in milliseconds. */ -- --struct __res_state { -- int retrans; /* retransmition time interval */ -- int retry; /* number of times to retransmit */ -- u_long options; /* option flags - see below. */ -- int nscount; /* number of name servers */ -- struct sockaddr_in -- nsaddr_list[MAXNS]; /* address of name server */ --# define nsaddr nsaddr_list[0] /* for backward compatibility */ -- u_short id; /* current message id */ -- /* 2 byte hole here. */ -- char *dnsrch[MAXDNSRCH+1]; /* components of domain to search */ -- char defdname[256]; /* default domain (deprecated) */ -- u_long pfcode; /* RES_PRF_ flags - see below. */ -- unsigned ndots:4; /* threshold for initial abs. query */ -- unsigned nsort:4; /* number of elements in sort_list[] */ -- unsigned ipv6_unavail:1; /* connecting to IPv6 server failed */ -- unsigned unused:23; -- struct { -- struct in_addr addr; -- u_int32_t mask; -- } sort_list[MAXRESOLVSORT]; -- /* 4 byte hole here on 64-bit architectures. */ -- res_send_qhook qhook; /* query hook */ -- res_send_rhook rhook; /* response hook */ -- int res_h_errno; /* last one set for this context */ -- int _vcsock; /* PRIVATE: for res_send VC i/o */ -- u_int _flags; /* PRIVATE: see below */ -- /* 4 byte hole here on 64-bit architectures. */ -- union { -- char pad[52]; /* On an i386 this means 512b total. */ -- struct { -- u_int16_t nscount; -- u_int16_t nsmap[MAXNS]; -- int nssocks[MAXNS]; -- u_int16_t nscount6; -- u_int16_t nsinit; -- struct sockaddr_in6 *nsaddrs[MAXNS]; --#ifdef _LIBC -- unsigned long long int initstamp -- __attribute__((packed)); --#else -- unsigned int _initstamp[2]; --#endif -- } _ext; -- } _u; --}; -- --typedef struct __res_state *res_state; --# undef __need_res_state --#endif -- --#ifdef _RESOLV_H_ --/* -- * Revision information. This is the release date in YYYYMMDD format. -- * It can change every day so the right thing to do with it is use it -- * in preprocessor commands such as "#if (__RES > 19931104)". Do not -- * compare for equality; rather, use it to determine whether your resolver -- * is new enough to contain a certain feature. -- */ -- --#define __RES 19991006 -- --/* -- * Resolver configuration file. -- * Normally not present, but may contain the address of the -- * inital name server(s) to query and the domain search list. -- */ -- --#ifndef _PATH_RESCONF --#define _PATH_RESCONF "/etc/resolv.conf" --#endif -- --struct res_sym { -- int number; /* Identifying number, like T_MX */ -- char * name; /* Its symbolic name, like "MX" */ -- char * humanname; /* Its fun name, like "mail exchanger" */ --}; -- --/* -- * Resolver flags (used to be discrete per-module statics ints). -- */ --#define RES_F_VC 0x00000001 /* socket is TCP */ --#define RES_F_CONN 0x00000002 /* socket is connected */ --#define RES_F_EDNS0ERR 0x00000004 /* EDNS0 caused errors */ -- --/* res_findzonecut() options */ --#define RES_EXHAUSTIVE 0x00000001 /* always do all queries */ -- --/* -- * Resolver options (keep these in synch with res_debug.c, please) -- */ --#define RES_INIT 0x00000001 /* address initialized */ --#define RES_DEBUG 0x00000002 /* print debug messages */ --#define RES_AAONLY 0x00000004 /* authoritative answers only (!IMPL)*/ --#define RES_USEVC 0x00000008 /* use virtual circuit */ --#define RES_PRIMARY 0x00000010 /* query primary server only (!IMPL) */ --#define RES_IGNTC 0x00000020 /* ignore trucation errors */ --#define RES_RECURSE 0x00000040 /* recursion desired */ --#define RES_DEFNAMES 0x00000080 /* use default domain name */ --#define RES_STAYOPEN 0x00000100 /* Keep TCP socket open */ --#define RES_DNSRCH 0x00000200 /* search up local domain tree */ --#define RES_INSECURE1 0x00000400 /* type 1 security disabled */ --#define RES_INSECURE2 0x00000800 /* type 2 security disabled */ --#define RES_NOALIASES 0x00001000 /* shuts off HOSTALIASES feature */ --#define RES_USE_INET6 0x00002000 /* use/map IPv6 in gethostbyname() */ --#define RES_ROTATE 0x00004000 /* rotate ns list after each query */ --#define RES_NOCHECKNAME 0x00008000 /* do not check names for sanity (!IMPL) */ --#define RES_KEEPTSIG 0x00010000 /* do not strip TSIG records */ --#define RES_BLAST 0x00020000 /* blast all recursive servers */ --#define RES_USEBSTRING 0x00040000 /* IPv6 reverse lookup with byte -- strings */ --#define RES_NOIP6DOTINT 0x00080000 /* Do not use .ip6.int in IPv6 -- reverse lookup */ --#define RES_USE_EDNS0 0x00100000 /* Use EDNS0. */ --#define RES_SNGLKUP 0x00200000 /* one outstanding request at a time */ --#define RES_SNGLKUPREOP 0x00400000 /* -"-, but open new socket for each -- request */ --#define RES_USE_DNSSEC 0x00800000 /* use DNSSEC using OK bit in OPT */ --#define RES_NOTLDQUERY 0x01000000 /* Do not look up unqualified name -- as a TLD. */ -- --#define RES_DEFAULT (RES_RECURSE|RES_DEFNAMES|RES_DNSRCH|RES_NOIP6DOTINT) -- --/* -- * Resolver "pfcode" values. Used by dig. -- */ --#define RES_PRF_STATS 0x00000001 --#define RES_PRF_UPDATE 0x00000002 --#define RES_PRF_CLASS 0x00000004 --#define RES_PRF_CMD 0x00000008 --#define RES_PRF_QUES 0x00000010 --#define RES_PRF_ANS 0x00000020 --#define RES_PRF_AUTH 0x00000040 --#define RES_PRF_ADD 0x00000080 --#define RES_PRF_HEAD1 0x00000100 --#define RES_PRF_HEAD2 0x00000200 --#define RES_PRF_TTLID 0x00000400 --#define RES_PRF_HEADX 0x00000800 --#define RES_PRF_QUERY 0x00001000 --#define RES_PRF_REPLY 0x00002000 --#define RES_PRF_INIT 0x00004000 --/* 0x00008000 */ -- --/* Things involving an internal (static) resolver context. */ --__BEGIN_DECLS --extern struct __res_state *__res_state(void) __attribute__ ((__const__)); --__END_DECLS --#define _res (*__res_state()) -- --#ifndef __BIND_NOSTATIC --#define fp_nquery __fp_nquery --#define fp_query __fp_query --#define hostalias __hostalias --#define p_query __p_query --#define res_close __res_close --#define res_init __res_init --#define res_isourserver __res_isourserver --#define res_mkquery __res_mkquery --#define res_query __res_query --#define res_querydomain __res_querydomain --#define res_search __res_search --#define res_send __res_send -- --__BEGIN_DECLS --void fp_nquery (const u_char *, int, FILE *) __THROW; --void fp_query (const u_char *, FILE *) __THROW; --const char * hostalias (const char *) __THROW; --void p_query (const u_char *) __THROW; --void res_close (void) __THROW; --int res_init (void) __THROW; --int res_isourserver (const struct sockaddr_in *) __THROW; --int res_mkquery (int, const char *, int, int, const u_char *, -- int, const u_char *, u_char *, int) __THROW; --int res_query (const char *, int, int, u_char *, int) __THROW; --int res_querydomain (const char *, const char *, int, int, -- u_char *, int) __THROW; --int res_search (const char *, int, int, u_char *, int) __THROW; --int res_send (const u_char *, int, u_char *, int) __THROW; --__END_DECLS --#endif -- --#define b64_ntop __b64_ntop --#define b64_pton __b64_pton --#define dn_comp __dn_comp --#define dn_count_labels __dn_count_labels --#define dn_expand __dn_expand --#define dn_skipname __dn_skipname --#define fp_resstat __fp_resstat --#define loc_aton __loc_aton --#define loc_ntoa __loc_ntoa --#define p_cdname __p_cdname --#define p_cdnname __p_cdnname --#define p_class __p_class --#define p_fqname __p_fqname --#define p_fqnname __p_fqnname --#define p_option __p_option --#define p_secstodate __p_secstodate --#define p_section __p_section --#define p_time __p_time --#define p_type __p_type --#define p_rcode __p_rcode --#define putlong __putlong --#define putshort __putshort --#define res_dnok __res_dnok --#define res_hnok __res_hnok --#define res_hostalias __res_hostalias --#define res_mailok __res_mailok --#define res_nameinquery __res_nameinquery --#define res_nclose __res_nclose --#define res_ninit __res_ninit --#define res_nmkquery __res_nmkquery --#define res_npquery __res_npquery --#define res_nquery __res_nquery --#define res_nquerydomain __res_nquerydomain --#define res_nsearch __res_nsearch --#define res_nsend __res_nsend --#define res_nisourserver __res_nisourserver --#define res_ownok __res_ownok --#define res_queriesmatch __res_queriesmatch --#define res_randomid __res_randomid --#define sym_ntop __sym_ntop --#define sym_ntos __sym_ntos --#define sym_ston __sym_ston --__BEGIN_DECLS --int res_hnok (const char *) __THROW; --int res_ownok (const char *) __THROW; --int res_mailok (const char *) __THROW; --int res_dnok (const char *) __THROW; --int sym_ston (const struct res_sym *, const char *, int *) __THROW; --const char * sym_ntos (const struct res_sym *, int, int *) __THROW; --const char * sym_ntop (const struct res_sym *, int, int *) __THROW; --int b64_ntop (u_char const *, size_t, char *, size_t) __THROW; --int b64_pton (char const *, u_char *, size_t) __THROW; --int loc_aton (const char *__ascii, u_char *__binary) __THROW; --const char * loc_ntoa (const u_char *__binary, char *__ascii) __THROW; --int dn_skipname (const u_char *, const u_char *) __THROW; --void putlong (u_int32_t, u_char *) __THROW; --void putshort (u_int16_t, u_char *) __THROW; --const char * p_class (int) __THROW; --const char * p_time (u_int32_t) __THROW; --const char * p_type (int) __THROW; --const char * p_rcode (int) __THROW; --const u_char * p_cdnname (const u_char *, const u_char *, int, FILE *) -- __THROW; --const u_char * p_cdname (const u_char *, const u_char *, FILE *) __THROW; --const u_char * p_fqnname (const u_char *__cp, const u_char *__msg, -- int, char *, int) __THROW; --const u_char * p_fqname (const u_char *, const u_char *, FILE *) __THROW; --const char * p_option (u_long __option) __THROW; --char * p_secstodate (u_long) __THROW; --int dn_count_labels (const char *) __THROW; --int dn_comp (const char *, u_char *, int, u_char **, u_char **) -- __THROW; --int dn_expand (const u_char *, const u_char *, const u_char *, -- char *, int) __THROW; --u_int res_randomid (void) __THROW; --int res_nameinquery (const char *, int, int, -- const u_char *, const u_char *) __THROW; --int res_queriesmatch (const u_char *, const u_char *, -- const u_char *, const u_char *) __THROW; --const char * p_section (int __section, int __opcode) __THROW; --/* Things involving a resolver context. */ --int res_ninit (res_state) __THROW; --int res_nisourserver (const res_state, -- const struct sockaddr_in *) __THROW; --void fp_resstat (const res_state, FILE *) __THROW; --void res_npquery (const res_state, const u_char *, int, FILE *) -- __THROW; --const char * res_hostalias (const res_state, const char *, char *, size_t) -- __THROW; --int res_nquery (res_state, const char *, int, int, u_char *, int) -- __THROW; --int res_nsearch (res_state, const char *, int, int, u_char *, int) -- __THROW; --int res_nquerydomain (res_state, const char *, const char *, int, -- int, u_char *, int) __THROW; --int res_nmkquery (res_state, int, const char *, int, int, -- const u_char *, int, const u_char *, u_char *, -- int) __THROW; --int res_nsend (res_state, const u_char *, int, u_char *, int) -- __THROW; --void res_nclose (res_state) __THROW; --__END_DECLS --#endif -- --#endif /* !_RESOLV_H_ */ -Index: glibc-2.19/shadow/Makefile -=================================================================== ---- glibc-2.19.orig/shadow/Makefile -+++ glibc-2.19/shadow/Makefile -@@ -34,5 +34,6 @@ CFLAGS-fgetspent_r.c = -fexceptions $(li - CFLAGS-putspent.c = -fexceptions $(libio-mtsafe) - CFLAGS-getspnam.c = -fexceptions - CFLAGS-getspnam_r.c = -fexceptions -+CPPFLAGS-lckpwdf.c = -DSYSCONFDIR='"$(sysconfdir)"' - - include ../Rules -Index: glibc-2.19/shadow/lckpwdf.c -=================================================================== ---- glibc-2.19.orig/shadow/lckpwdf.c -+++ glibc-2.19/shadow/lckpwdf.c -@@ -29,7 +29,7 @@ - - - /* Name of the lock file. */ --#define PWD_LOCKFILE "/etc/.pwd.lock" -+#define PWD_LOCKFILE SYSCONFDIR "/.pwd.lock" - - /* How long to wait for getting the lock before returning with an - error. */ -Index: glibc-2.19/configure.ac -=================================================================== ---- glibc-2.19.orig/configure.ac -+++ glibc-2.19/configure.ac -@@ -2173,7 +2173,7 @@ RELEASE=`sed -n -e 's/^#define RELEASE " - AC_SUBST(VERSION) - AC_SUBST(RELEASE) - --AC_CONFIG_FILES([config.make Makefile]) -+AC_CONFIG_FILES([config.make Makefile nss/db-Makefile resolv/netdb.h resolv/resolv.h]) - AC_CONFIG_COMMANDS([default],[[ - case $CONFIG_FILES in *config.make*) - echo "$config_vars" >> config.make;; -Index: glibc-2.19/resolv/netdb.h.in -=================================================================== ---- /dev/null -+++ glibc-2.19/resolv/netdb.h.in -@@ -0,0 +1,715 @@ -+ /* Copyright (C) 1996-2014 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, see -+ <http://www.gnu.org/licenses/>. */ -+ -+/* All data returned by the network data base library are supplied in -+ host order and returned in network order (suitable for use in -+ system calls). */ -+ -+#ifndef _NETDB_H -+#define _NETDB_H 1 -+ -+#include <features.h> -+ -+#include <netinet/in.h> -+#include <stdint.h> -+#ifdef __USE_MISC -+/* This is necessary to make this include file properly replace the -+ Sun version. */ -+# include <rpc/netdb.h> -+#endif -+ -+#ifdef __USE_GNU -+# define __need_sigevent_t -+# include <bits/siginfo.h> -+# define __need_timespec -+# include <time.h> -+#endif -+ -+#include <bits/netdb.h> -+ -+/* Absolute file name for network data base files. */ -+#define _PATH_HEQUIV "@libc_cv_sysconfdir@/hosts.equiv" -+#define _PATH_HOSTS "@libc_cv_sysconfdir@/hosts" -+#define _PATH_NETWORKS "@libc_cv_sysconfdir@/networks" -+#define _PATH_NSSWITCH_CONF "@libc_cv_sysconfdir@/nsswitch.conf" -+#define _PATH_PROTOCOLS "@libc_cv_sysconfdir@/protocols" -+#define _PATH_SERVICES "@libc_cv_sysconfdir@/services" -+ -+ -+__BEGIN_DECLS -+ -+#if defined __USE_MISC || !defined __USE_XOPEN2K8 -+/* Error status for non-reentrant lookup functions. -+ We use a macro to access always the thread-specific `h_errno' variable. */ -+# define h_errno (*__h_errno_location ()) -+ -+/* Function to get address of global `h_errno' variable. */ -+extern int *__h_errno_location (void) __THROW __attribute__ ((__const__)); -+ -+ -+/* Possible values left in `h_errno'. */ -+# define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found. */ -+# define TRY_AGAIN 2 /* Non-Authoritative Host not found, -+ or SERVERFAIL. */ -+# define NO_RECOVERY 3 /* Non recoverable errors, FORMERR, REFUSED, -+ NOTIMP. */ -+# define NO_DATA 4 /* Valid name, no data record of requested -+ type. */ -+#endif -+#ifdef __USE_MISC -+# define NETDB_INTERNAL -1 /* See errno. */ -+# define NETDB_SUCCESS 0 /* No problem. */ -+# define NO_ADDRESS NO_DATA /* No address, look for MX record. */ -+#endif -+ -+#if defined __USE_XOPEN2K || defined __USE_XOPEN_EXTENDED -+/* Highest reserved Internet port number. */ -+# define IPPORT_RESERVED 1024 -+#endif -+ -+#ifdef __USE_GNU -+/* Scope delimiter for getaddrinfo(), getnameinfo(). */ -+# define SCOPE_DELIMITER '%' -+#endif -+ -+#ifdef __USE_MISC -+/* Print error indicated by `h_errno' variable on standard error. STR -+ if non-null is printed before the error string. */ -+extern void herror (const char *__str) __THROW; -+ -+/* Return string associated with error ERR_NUM. */ -+extern const char *hstrerror (int __err_num) __THROW; -+#endif -+ -+ -+/* Description of data base entry for a single host. */ -+struct hostent -+{ -+ char *h_name; /* Official name of host. */ -+ char **h_aliases; /* Alias list. */ -+ int h_addrtype; /* Host address type. */ -+ int h_length; /* Length of address. */ -+ char **h_addr_list; /* List of addresses from name server. */ -+#ifdef __USE_MISC -+# define h_addr h_addr_list[0] /* Address, for backward compatibility.*/ -+#endif -+}; -+ -+/* Open host data base files and mark them as staying open even after -+ a later search if STAY_OPEN is non-zero. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern void sethostent (int __stay_open); -+ -+/* Close host data base files and clear `stay open' flag. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern void endhostent (void); -+ -+/* Get next entry from host data base file. Open data base if -+ necessary. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern struct hostent *gethostent (void); -+ -+/* Return entry from host data base which address match ADDR with -+ length LEN and type TYPE. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern struct hostent *gethostbyaddr (const void *__addr, __socklen_t __len, -+ int __type); -+ -+/* Return entry from host data base for host with NAME. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern struct hostent *gethostbyname (const char *__name); -+ -+#ifdef __USE_MISC -+/* Return entry from host data base for host with NAME. AF must be -+ set to the address type which is `AF_INET' for IPv4 or `AF_INET6' -+ for IPv6. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern struct hostent *gethostbyname2 (const char *__name, int __af); -+ -+/* Reentrant versions of the functions above. The additional -+ arguments specify a buffer of BUFLEN starting at BUF. The last -+ argument is a pointer to a variable which gets the value which -+ would be stored in the global variable `herrno' by the -+ non-reentrant functions. -+ -+ These functions are not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation they are cancellation points and -+ therefore not marked with __THROW. */ -+extern int gethostent_r (struct hostent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct hostent **__restrict __result, -+ int *__restrict __h_errnop); -+ -+extern int gethostbyaddr_r (const void *__restrict __addr, __socklen_t __len, -+ int __type, -+ struct hostent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct hostent **__restrict __result, -+ int *__restrict __h_errnop); -+ -+extern int gethostbyname_r (const char *__restrict __name, -+ struct hostent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct hostent **__restrict __result, -+ int *__restrict __h_errnop); -+ -+extern int gethostbyname2_r (const char *__restrict __name, int __af, -+ struct hostent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct hostent **__restrict __result, -+ int *__restrict __h_errnop); -+#endif /* misc */ -+ -+ -+/* Open network data base files and mark them as staying open even -+ after a later search if STAY_OPEN is non-zero. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern void setnetent (int __stay_open); -+ -+/* Close network data base files and clear `stay open' flag. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern void endnetent (void); -+ -+/* Get next entry from network data base file. Open data base if -+ necessary. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern struct netent *getnetent (void); -+ -+/* Return entry from network data base which address match NET and -+ type TYPE. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern struct netent *getnetbyaddr (uint32_t __net, int __type); -+ -+/* Return entry from network data base for network with NAME. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern struct netent *getnetbyname (const char *__name); -+ -+#ifdef __USE_MISC -+/* Reentrant versions of the functions above. The additional -+ arguments specify a buffer of BUFLEN starting at BUF. The last -+ argument is a pointer to a variable which gets the value which -+ would be stored in the global variable `herrno' by the -+ non-reentrant functions. -+ -+ These functions are not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation they are cancellation points and -+ therefore not marked with __THROW. */ -+extern int getnetent_r (struct netent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct netent **__restrict __result, -+ int *__restrict __h_errnop); -+ -+extern int getnetbyaddr_r (uint32_t __net, int __type, -+ struct netent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct netent **__restrict __result, -+ int *__restrict __h_errnop); -+ -+extern int getnetbyname_r (const char *__restrict __name, -+ struct netent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct netent **__restrict __result, -+ int *__restrict __h_errnop); -+#endif /* misc */ -+ -+ -+/* Description of data base entry for a single service. */ -+struct servent -+{ -+ char *s_name; /* Official service name. */ -+ char **s_aliases; /* Alias list. */ -+ int s_port; /* Port number. */ -+ char *s_proto; /* Protocol to use. */ -+}; -+ -+/* Open service data base files and mark them as staying open even -+ after a later search if STAY_OPEN is non-zero. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern void setservent (int __stay_open); -+ -+/* Close service data base files and clear `stay open' flag. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern void endservent (void); -+ -+/* Get next entry from service data base file. Open data base if -+ necessary. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern struct servent *getservent (void); -+ -+/* Return entry from network data base for network with NAME and -+ protocol PROTO. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern struct servent *getservbyname (const char *__name, const char *__proto); -+ -+/* Return entry from service data base which matches port PORT and -+ protocol PROTO. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern struct servent *getservbyport (int __port, const char *__proto); -+ -+ -+#ifdef __USE_MISC -+/* Reentrant versions of the functions above. The additional -+ arguments specify a buffer of BUFLEN starting at BUF. -+ -+ These functions are not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation they are cancellation points and -+ therefore not marked with __THROW. */ -+extern int getservent_r (struct servent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct servent **__restrict __result); -+ -+extern int getservbyname_r (const char *__restrict __name, -+ const char *__restrict __proto, -+ struct servent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct servent **__restrict __result); -+ -+extern int getservbyport_r (int __port, const char *__restrict __proto, -+ struct servent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct servent **__restrict __result); -+#endif /* misc */ -+ -+ -+/* Description of data base entry for a single service. */ -+struct protoent -+{ -+ char *p_name; /* Official protocol name. */ -+ char **p_aliases; /* Alias list. */ -+ int p_proto; /* Protocol number. */ -+}; -+ -+/* Open protocol data base files and mark them as staying open even -+ after a later search if STAY_OPEN is non-zero. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern void setprotoent (int __stay_open); -+ -+/* Close protocol data base files and clear `stay open' flag. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern void endprotoent (void); -+ -+/* Get next entry from protocol data base file. Open data base if -+ necessary. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern struct protoent *getprotoent (void); -+ -+/* Return entry from protocol data base for network with NAME. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern struct protoent *getprotobyname (const char *__name); -+ -+/* Return entry from protocol data base which number is PROTO. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern struct protoent *getprotobynumber (int __proto); -+ -+ -+#ifdef __USE_MISC -+/* Reentrant versions of the functions above. The additional -+ arguments specify a buffer of BUFLEN starting at BUF. -+ -+ These functions are not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation they are cancellation points and -+ therefore not marked with __THROW. */ -+extern int getprotoent_r (struct protoent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct protoent **__restrict __result); -+ -+extern int getprotobyname_r (const char *__restrict __name, -+ struct protoent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct protoent **__restrict __result); -+ -+extern int getprotobynumber_r (int __proto, -+ struct protoent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct protoent **__restrict __result); -+ -+ -+/* Establish network group NETGROUP for enumeration. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int setnetgrent (const char *__netgroup); -+ -+/* Free all space allocated by previous `setnetgrent' call. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern void endnetgrent (void); -+ -+/* Get next member of netgroup established by last `setnetgrent' call -+ and return pointers to elements in HOSTP, USERP, and DOMAINP. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int getnetgrent (char **__restrict __hostp, -+ char **__restrict __userp, -+ char **__restrict __domainp); -+ -+ -+/* Test whether NETGROUP contains the triple (HOST,USER,DOMAIN). -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int innetgr (const char *__netgroup, const char *__host, -+ const char *__user, const char *__domain); -+ -+/* Reentrant version of `getnetgrent' where result is placed in BUFFER. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int getnetgrent_r (char **__restrict __hostp, -+ char **__restrict __userp, -+ char **__restrict __domainp, -+ char *__restrict __buffer, size_t __buflen); -+#endif /* misc */ -+ -+ -+#ifdef __USE_MISC -+/* Call `rshd' at port RPORT on remote machine *AHOST to execute CMD. -+ The local user is LOCUSER, on the remote machine the command is -+ executed as REMUSER. In *FD2P the descriptor to the socket for the -+ connection is returned. The caller must have the right to use a -+ reserved port. When the function returns *AHOST contains the -+ official host name. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int rcmd (char **__restrict __ahost, unsigned short int __rport, -+ const char *__restrict __locuser, -+ const char *__restrict __remuser, -+ const char *__restrict __cmd, int *__restrict __fd2p); -+ -+/* This is the equivalent function where the protocol can be selected -+ and which therefore can be used for IPv6. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int rcmd_af (char **__restrict __ahost, unsigned short int __rport, -+ const char *__restrict __locuser, -+ const char *__restrict __remuser, -+ const char *__restrict __cmd, int *__restrict __fd2p, -+ sa_family_t __af); -+ -+/* Call `rexecd' at port RPORT on remote machine *AHOST to execute -+ CMD. The process runs at the remote machine using the ID of user -+ NAME whose cleartext password is PASSWD. In *FD2P the descriptor -+ to the socket for the connection is returned. When the function -+ returns *AHOST contains the official host name. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int rexec (char **__restrict __ahost, int __rport, -+ const char *__restrict __name, -+ const char *__restrict __pass, -+ const char *__restrict __cmd, int *__restrict __fd2p); -+ -+/* This is the equivalent function where the protocol can be selected -+ and which therefore can be used for IPv6. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int rexec_af (char **__restrict __ahost, int __rport, -+ const char *__restrict __name, -+ const char *__restrict __pass, -+ const char *__restrict __cmd, int *__restrict __fd2p, -+ sa_family_t __af); -+ -+/* Check whether user REMUSER on system RHOST is allowed to login as LOCUSER. -+ If SUSER is not zero the user tries to become superuser. Return 0 if -+ it is possible. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int ruserok (const char *__rhost, int __suser, -+ const char *__remuser, const char *__locuser); -+ -+/* This is the equivalent function where the protocol can be selected -+ and which therefore can be used for IPv6. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int ruserok_af (const char *__rhost, int __suser, -+ const char *__remuser, const char *__locuser, -+ sa_family_t __af); -+ -+/* Check whether user REMUSER on system indicated by IPv4 address -+ RADDR is allowed to login as LOCUSER. Non-IPv4 (e.g., IPv6) are -+ not supported. If SUSER is not zero the user tries to become -+ superuser. Return 0 if it is possible. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int iruserok (uint32_t __raddr, int __suser, -+ const char *__remuser, const char *__locuser); -+ -+/* This is the equivalent function where the pfamiliy if the address -+ pointed to by RADDR is determined by the value of AF. It therefore -+ can be used for IPv6 -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int iruserok_af (const void *__raddr, int __suser, -+ const char *__remuser, const char *__locuser, -+ sa_family_t __af); -+ -+/* Try to allocate reserved port, returning a descriptor for a socket opened -+ at this port or -1 if unsuccessful. The search for an available port -+ will start at ALPORT and continues with lower numbers. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int rresvport (int *__alport); -+ -+/* This is the equivalent function where the protocol can be selected -+ and which therefore can be used for IPv6. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int rresvport_af (int *__alport, sa_family_t __af); -+#endif -+ -+ -+/* Extension from POSIX.1g. */ -+#ifdef __USE_POSIX -+/* Structure to contain information about address of a service provider. */ -+struct addrinfo -+{ -+ int ai_flags; /* Input flags. */ -+ int ai_family; /* Protocol family for socket. */ -+ int ai_socktype; /* Socket type. */ -+ int ai_protocol; /* Protocol for socket. */ -+ socklen_t ai_addrlen; /* Length of socket address. */ -+ struct sockaddr *ai_addr; /* Socket address for socket. */ -+ char *ai_canonname; /* Canonical name for service location. */ -+ struct addrinfo *ai_next; /* Pointer to next in list. */ -+}; -+ -+# ifdef __USE_GNU -+/* Structure used as control block for asynchronous lookup. */ -+struct gaicb -+{ -+ const char *ar_name; /* Name to look up. */ -+ const char *ar_service; /* Service name. */ -+ const struct addrinfo *ar_request; /* Additional request specification. */ -+ struct addrinfo *ar_result; /* Pointer to result. */ -+ /* The following are internal elements. */ -+ int __return; -+ int __glibc_reserved[5]; -+}; -+ -+/* Lookup mode. */ -+# define GAI_WAIT 0 -+# define GAI_NOWAIT 1 -+# endif -+ -+/* Possible values for `ai_flags' field in `addrinfo' structure. */ -+# define AI_PASSIVE 0x0001 /* Socket address is intended for `bind'. */ -+# define AI_CANONNAME 0x0002 /* Request for canonical name. */ -+# define AI_NUMERICHOST 0x0004 /* Don't use name resolution. */ -+# define AI_V4MAPPED 0x0008 /* IPv4 mapped addresses are acceptable. */ -+# define AI_ALL 0x0010 /* Return IPv4 mapped and IPv6 addresses. */ -+# define AI_ADDRCONFIG 0x0020 /* Use configuration of this host to choose -+ returned address type.. */ -+# ifdef __USE_GNU -+# define AI_IDN 0x0040 /* IDN encode input (assuming it is encoded -+ in the current locale's character set) -+ before looking it up. */ -+# define AI_CANONIDN 0x0080 /* Translate canonical name from IDN format. */ -+# define AI_IDN_ALLOW_UNASSIGNED 0x0100 /* Don't reject unassigned Unicode -+ code points. */ -+# define AI_IDN_USE_STD3_ASCII_RULES 0x0200 /* Validate strings according to -+ STD3 rules. */ -+# endif -+# define AI_NUMERICSERV 0x0400 /* Don't use name resolution. */ -+ -+/* Error values for `getaddrinfo' function. */ -+# define EAI_BADFLAGS -1 /* Invalid value for `ai_flags' field. */ -+# define EAI_NONAME -2 /* NAME or SERVICE is unknown. */ -+# define EAI_AGAIN -3 /* Temporary failure in name resolution. */ -+# define EAI_FAIL -4 /* Non-recoverable failure in name res. */ -+# define EAI_FAMILY -6 /* `ai_family' not supported. */ -+# define EAI_SOCKTYPE -7 /* `ai_socktype' not supported. */ -+# define EAI_SERVICE -8 /* SERVICE not supported for `ai_socktype'. */ -+# define EAI_MEMORY -10 /* Memory allocation failure. */ -+# define EAI_SYSTEM -11 /* System error returned in `errno'. */ -+# define EAI_OVERFLOW -12 /* Argument buffer overflow. */ -+# ifdef __USE_GNU -+# define EAI_NODATA -5 /* No address associated with NAME. */ -+# define EAI_ADDRFAMILY -9 /* Address family for NAME not supported. */ -+# define EAI_INPROGRESS -100 /* Processing request in progress. */ -+# define EAI_CANCELED -101 /* Request canceled. */ -+# define EAI_NOTCANCELED -102 /* Request not canceled. */ -+# define EAI_ALLDONE -103 /* All requests done. */ -+# define EAI_INTR -104 /* Interrupted by a signal. */ -+# define EAI_IDN_ENCODE -105 /* IDN encoding failed. */ -+# endif -+ -+# ifdef __USE_MISC -+# define NI_MAXHOST 1025 -+# define NI_MAXSERV 32 -+# endif -+ -+# define NI_NUMERICHOST 1 /* Don't try to look up hostname. */ -+# define NI_NUMERICSERV 2 /* Don't convert port number to name. */ -+# define NI_NOFQDN 4 /* Only return nodename portion. */ -+# define NI_NAMEREQD 8 /* Don't return numeric addresses. */ -+# define NI_DGRAM 16 /* Look up UDP service rather than TCP. */ -+# ifdef __USE_GNU -+# define NI_IDN 32 /* Convert name from IDN format. */ -+# define NI_IDN_ALLOW_UNASSIGNED 64 /* Don't reject unassigned Unicode -+ code points. */ -+# define NI_IDN_USE_STD3_ASCII_RULES 128 /* Validate strings according to -+ STD3 rules. */ -+# endif -+ -+/* Translate name of a service location and/or a service name to set of -+ socket addresses. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern int getaddrinfo (const char *__restrict __name, -+ const char *__restrict __service, -+ const struct addrinfo *__restrict __req, -+ struct addrinfo **__restrict __pai); -+ -+/* Free `addrinfo' structure AI including associated storage. */ -+extern void freeaddrinfo (struct addrinfo *__ai) __THROW; -+ -+/* Convert error return from getaddrinfo() to a string. */ -+extern const char *gai_strerror (int __ecode) __THROW; -+ -+/* Translate a socket address to a location and service name. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern int getnameinfo (const struct sockaddr *__restrict __sa, -+ socklen_t __salen, char *__restrict __host, -+ socklen_t __hostlen, char *__restrict __serv, -+ socklen_t __servlen, int __flags); -+#endif /* POSIX */ -+ -+#ifdef __USE_GNU -+/* Enqueue ENT requests from the LIST. If MODE is GAI_WAIT wait until all -+ requests are handled. If WAIT is GAI_NOWAIT return immediately after -+ queueing the requests and signal completion according to SIG. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int getaddrinfo_a (int __mode, struct gaicb *__list[__restrict_arr], -+ int __ent, struct sigevent *__restrict __sig); -+ -+/* Suspend execution of the thread until at least one of the ENT requests -+ in LIST is handled. If TIMEOUT is not a null pointer it specifies the -+ longest time the function keeps waiting before returning with an error. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int gai_suspend (const struct gaicb *const __list[], int __ent, -+ const struct timespec *__timeout); -+ -+/* Get the error status of the request REQ. */ -+extern int gai_error (struct gaicb *__req) __THROW; -+ -+/* Cancel the requests associated with GAICBP. */ -+extern int gai_cancel (struct gaicb *__gaicbp) __THROW; -+#endif /* GNU */ -+ -+__END_DECLS -+ -+#endif /* netdb.h */ -Index: glibc-2.19/resolv/resolv.h.in -=================================================================== ---- /dev/null -+++ glibc-2.19/resolv/resolv.h.in -@@ -0,0 +1,389 @@ -+/* -+ * Copyright (c) 1983, 1987, 1989 -+ * The Regents of the University of California. All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * 4. Neither the name of the University nor the names of its contributors -+ * may be used to endorse or promote products derived from this software -+ * without specific prior written permission. -+ * -+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ */ -+ -+/* -+ * Portions Copyright (c) 1996-1999 by Internet Software Consortium. -+ * -+ * Permission to use, copy, modify, and distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS -+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES -+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE -+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL -+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR -+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -+ * SOFTWARE. -+ */ -+ -+/* -+ * @(#)resolv.h 8.1 (Berkeley) 6/2/93 -+ * $BINDId: resolv.h,v 8.31 2000/03/30 20:16:50 vixie Exp $ -+ */ -+ -+#ifndef _RESOLV_H_ -+ -+/* These headers are needed for types used in the `struct res_state' -+ declaration. */ -+#include <sys/types.h> -+#include <netinet/in.h> -+ -+#ifndef __need_res_state -+# define _RESOLV_H_ -+ -+# include <sys/param.h> -+# include <sys/cdefs.h> -+# include <stdio.h> -+# include <arpa/nameser.h> -+#endif -+ -+#ifndef __res_state_defined -+# define __res_state_defined -+ -+typedef enum { res_goahead, res_nextns, res_modified, res_done, res_error } -+ res_sendhookact; -+ -+typedef res_sendhookact (*res_send_qhook) (struct sockaddr_in * const *__ns, -+ const u_char **__query, -+ int *__querylen, -+ u_char *__ans, -+ int __anssiz, -+ int *__resplen); -+ -+typedef res_sendhookact (*res_send_rhook) (const struct sockaddr_in *__ns, -+ const u_char *__query, -+ int __querylen, -+ u_char *__ans, -+ int __anssiz, -+ int *__resplen); -+ -+/* -+ * Global defines and variables for resolver stub. -+ */ -+# define MAXNS 3 /* max # name servers we'll track */ -+# define MAXDFLSRCH 3 /* # default domain levels to try */ -+# define MAXDNSRCH 6 /* max # domains in search path */ -+# define LOCALDOMAINPARTS 2 /* min levels in name that is "local" */ -+ -+# define RES_TIMEOUT 5 /* min. seconds between retries */ -+# define MAXRESOLVSORT 10 /* number of net to sort on */ -+# define RES_MAXNDOTS 15 /* should reflect bit field size */ -+# define RES_MAXRETRANS 30 /* only for resolv.conf/RES_OPTIONS */ -+# define RES_MAXRETRY 5 /* only for resolv.conf/RES_OPTIONS */ -+# define RES_DFLRETRY 2 /* Default #/tries. */ -+# define RES_MAXTIME 65535 /* Infinity, in milliseconds. */ -+ -+struct __res_state { -+ int retrans; /* retransmition time interval */ -+ int retry; /* number of times to retransmit */ -+ u_long options; /* option flags - see below. */ -+ int nscount; /* number of name servers */ -+ struct sockaddr_in -+ nsaddr_list[MAXNS]; /* address of name server */ -+# define nsaddr nsaddr_list[0] /* for backward compatibility */ -+ u_short id; /* current message id */ -+ /* 2 byte hole here. */ -+ char *dnsrch[MAXDNSRCH+1]; /* components of domain to search */ -+ char defdname[256]; /* default domain (deprecated) */ -+ u_long pfcode; /* RES_PRF_ flags - see below. */ -+ unsigned ndots:4; /* threshold for initial abs. query */ -+ unsigned nsort:4; /* number of elements in sort_list[] */ -+ unsigned ipv6_unavail:1; /* connecting to IPv6 server failed */ -+ unsigned unused:23; -+ struct { -+ struct in_addr addr; -+ u_int32_t mask; -+ } sort_list[MAXRESOLVSORT]; -+ /* 4 byte hole here on 64-bit architectures. */ -+ res_send_qhook qhook; /* query hook */ -+ res_send_rhook rhook; /* response hook */ -+ int res_h_errno; /* last one set for this context */ -+ int _vcsock; /* PRIVATE: for res_send VC i/o */ -+ u_int _flags; /* PRIVATE: see below */ -+ /* 4 byte hole here on 64-bit architectures. */ -+ union { -+ char pad[52]; /* On an i386 this means 512b total. */ -+ struct { -+ u_int16_t nscount; -+ u_int16_t nsmap[MAXNS]; -+ int nssocks[MAXNS]; -+ u_int16_t nscount6; -+ u_int16_t nsinit; -+ struct sockaddr_in6 *nsaddrs[MAXNS]; -+#ifdef _LIBC -+ unsigned long long int initstamp -+ __attribute__((packed)); -+#else -+ unsigned int _initstamp[2]; -+#endif -+ } _ext; -+ } _u; -+}; -+ -+typedef struct __res_state *res_state; -+# undef __need_res_state -+#endif -+ -+#ifdef _RESOLV_H_ -+/* -+ * Revision information. This is the release date in YYYYMMDD format. -+ * It can change every day so the right thing to do with it is use it -+ * in preprocessor commands such as "#if (__RES > 19931104)". Do not -+ * compare for equality; rather, use it to determine whether your resolver -+ * is new enough to contain a certain feature. -+ */ -+ -+#define __RES 19991006 -+ -+/* -+ * Resolver configuration file. -+ * Normally not present, but may contain the address of the -+ * inital name server(s) to query and the domain search list. -+ */ -+ -+#ifndef _PATH_RESCONF -+#define _PATH_RESCONF "@libc_cv_sysconfdir@/resolv.conf" -+#endif -+ -+struct res_sym { -+ int number; /* Identifying number, like T_MX */ -+ char * name; /* Its symbolic name, like "MX" */ -+ char * humanname; /* Its fun name, like "mail exchanger" */ -+}; -+ -+/* -+ * Resolver flags (used to be discrete per-module statics ints). -+ */ -+#define RES_F_VC 0x00000001 /* socket is TCP */ -+#define RES_F_CONN 0x00000002 /* socket is connected */ -+#define RES_F_EDNS0ERR 0x00000004 /* EDNS0 caused errors */ -+ -+/* res_findzonecut() options */ -+#define RES_EXHAUSTIVE 0x00000001 /* always do all queries */ -+ -+/* -+ * Resolver options (keep these in synch with res_debug.c, please) -+ */ -+#define RES_INIT 0x00000001 /* address initialized */ -+#define RES_DEBUG 0x00000002 /* print debug messages */ -+#define RES_AAONLY 0x00000004 /* authoritative answers only (!IMPL)*/ -+#define RES_USEVC 0x00000008 /* use virtual circuit */ -+#define RES_PRIMARY 0x00000010 /* query primary server only (!IMPL) */ -+#define RES_IGNTC 0x00000020 /* ignore trucation errors */ -+#define RES_RECURSE 0x00000040 /* recursion desired */ -+#define RES_DEFNAMES 0x00000080 /* use default domain name */ -+#define RES_STAYOPEN 0x00000100 /* Keep TCP socket open */ -+#define RES_DNSRCH 0x00000200 /* search up local domain tree */ -+#define RES_INSECURE1 0x00000400 /* type 1 security disabled */ -+#define RES_INSECURE2 0x00000800 /* type 2 security disabled */ -+#define RES_NOALIASES 0x00001000 /* shuts off HOSTALIASES feature */ -+#define RES_USE_INET6 0x00002000 /* use/map IPv6 in gethostbyname() */ -+#define RES_ROTATE 0x00004000 /* rotate ns list after each query */ -+#define RES_NOCHECKNAME 0x00008000 /* do not check names for sanity (!IMPL) */ -+#define RES_KEEPTSIG 0x00010000 /* do not strip TSIG records */ -+#define RES_BLAST 0x00020000 /* blast all recursive servers */ -+#define RES_USEBSTRING 0x00040000 /* IPv6 reverse lookup with byte -+ strings */ -+#define RES_NOIP6DOTINT 0x00080000 /* Do not use .ip6.int in IPv6 -+ reverse lookup */ -+#define RES_USE_EDNS0 0x00100000 /* Use EDNS0. */ -+#define RES_SNGLKUP 0x00200000 /* one outstanding request at a time */ -+#define RES_SNGLKUPREOP 0x00400000 /* -"-, but open new socket for each -+ request */ -+#define RES_USE_DNSSEC 0x00800000 /* use DNSSEC using OK bit in OPT */ -+#define RES_NOTLDQUERY 0x01000000 /* Do not look up unqualified name -+ as a TLD. */ -+ -+#define RES_DEFAULT (RES_RECURSE|RES_DEFNAMES|RES_DNSRCH|RES_NOIP6DOTINT) -+ -+/* -+ * Resolver "pfcode" values. Used by dig. -+ */ -+#define RES_PRF_STATS 0x00000001 -+#define RES_PRF_UPDATE 0x00000002 -+#define RES_PRF_CLASS 0x00000004 -+#define RES_PRF_CMD 0x00000008 -+#define RES_PRF_QUES 0x00000010 -+#define RES_PRF_ANS 0x00000020 -+#define RES_PRF_AUTH 0x00000040 -+#define RES_PRF_ADD 0x00000080 -+#define RES_PRF_HEAD1 0x00000100 -+#define RES_PRF_HEAD2 0x00000200 -+#define RES_PRF_TTLID 0x00000400 -+#define RES_PRF_HEADX 0x00000800 -+#define RES_PRF_QUERY 0x00001000 -+#define RES_PRF_REPLY 0x00002000 -+#define RES_PRF_INIT 0x00004000 -+/* 0x00008000 */ -+ -+/* Things involving an internal (static) resolver context. */ -+__BEGIN_DECLS -+extern struct __res_state *__res_state(void) __attribute__ ((__const__)); -+__END_DECLS -+#define _res (*__res_state()) -+ -+#ifndef __BIND_NOSTATIC -+#define fp_nquery __fp_nquery -+#define fp_query __fp_query -+#define hostalias __hostalias -+#define p_query __p_query -+#define res_close __res_close -+#define res_init __res_init -+#define res_isourserver __res_isourserver -+#define res_mkquery __res_mkquery -+#define res_query __res_query -+#define res_querydomain __res_querydomain -+#define res_search __res_search -+#define res_send __res_send -+ -+__BEGIN_DECLS -+void fp_nquery (const u_char *, int, FILE *) __THROW; -+void fp_query (const u_char *, FILE *) __THROW; -+const char * hostalias (const char *) __THROW; -+void p_query (const u_char *) __THROW; -+void res_close (void) __THROW; -+int res_init (void) __THROW; -+int res_isourserver (const struct sockaddr_in *) __THROW; -+int res_mkquery (int, const char *, int, int, const u_char *, -+ int, const u_char *, u_char *, int) __THROW; -+int res_query (const char *, int, int, u_char *, int) __THROW; -+int res_querydomain (const char *, const char *, int, int, -+ u_char *, int) __THROW; -+int res_search (const char *, int, int, u_char *, int) __THROW; -+int res_send (const u_char *, int, u_char *, int) __THROW; -+__END_DECLS -+#endif -+ -+#define b64_ntop __b64_ntop -+#define b64_pton __b64_pton -+#define dn_comp __dn_comp -+#define dn_count_labels __dn_count_labels -+#define dn_expand __dn_expand -+#define dn_skipname __dn_skipname -+#define fp_resstat __fp_resstat -+#define loc_aton __loc_aton -+#define loc_ntoa __loc_ntoa -+#define p_cdname __p_cdname -+#define p_cdnname __p_cdnname -+#define p_class __p_class -+#define p_fqname __p_fqname -+#define p_fqnname __p_fqnname -+#define p_option __p_option -+#define p_secstodate __p_secstodate -+#define p_section __p_section -+#define p_time __p_time -+#define p_type __p_type -+#define p_rcode __p_rcode -+#define putlong __putlong -+#define putshort __putshort -+#define res_dnok __res_dnok -+#define res_hnok __res_hnok -+#define res_hostalias __res_hostalias -+#define res_mailok __res_mailok -+#define res_nameinquery __res_nameinquery -+#define res_nclose __res_nclose -+#define res_ninit __res_ninit -+#define res_nmkquery __res_nmkquery -+#define res_npquery __res_npquery -+#define res_nquery __res_nquery -+#define res_nquerydomain __res_nquerydomain -+#define res_nsearch __res_nsearch -+#define res_nsend __res_nsend -+#define res_nisourserver __res_nisourserver -+#define res_ownok __res_ownok -+#define res_queriesmatch __res_queriesmatch -+#define res_randomid __res_randomid -+#define sym_ntop __sym_ntop -+#define sym_ntos __sym_ntos -+#define sym_ston __sym_ston -+__BEGIN_DECLS -+int res_hnok (const char *) __THROW; -+int res_ownok (const char *) __THROW; -+int res_mailok (const char *) __THROW; -+int res_dnok (const char *) __THROW; -+int sym_ston (const struct res_sym *, const char *, int *) __THROW; -+const char * sym_ntos (const struct res_sym *, int, int *) __THROW; -+const char * sym_ntop (const struct res_sym *, int, int *) __THROW; -+int b64_ntop (u_char const *, size_t, char *, size_t) __THROW; -+int b64_pton (char const *, u_char *, size_t) __THROW; -+int loc_aton (const char *__ascii, u_char *__binary) __THROW; -+const char * loc_ntoa (const u_char *__binary, char *__ascii) __THROW; -+int dn_skipname (const u_char *, const u_char *) __THROW; -+void putlong (u_int32_t, u_char *) __THROW; -+void putshort (u_int16_t, u_char *) __THROW; -+const char * p_class (int) __THROW; -+const char * p_time (u_int32_t) __THROW; -+const char * p_type (int) __THROW; -+const char * p_rcode (int) __THROW; -+const u_char * p_cdnname (const u_char *, const u_char *, int, FILE *) -+ __THROW; -+const u_char * p_cdname (const u_char *, const u_char *, FILE *) __THROW; -+const u_char * p_fqnname (const u_char *__cp, const u_char *__msg, -+ int, char *, int) __THROW; -+const u_char * p_fqname (const u_char *, const u_char *, FILE *) __THROW; -+const char * p_option (u_long __option) __THROW; -+char * p_secstodate (u_long) __THROW; -+int dn_count_labels (const char *) __THROW; -+int dn_comp (const char *, u_char *, int, u_char **, u_char **) -+ __THROW; -+int dn_expand (const u_char *, const u_char *, const u_char *, -+ char *, int) __THROW; -+u_int res_randomid (void) __THROW; -+int res_nameinquery (const char *, int, int, -+ const u_char *, const u_char *) __THROW; -+int res_queriesmatch (const u_char *, const u_char *, -+ const u_char *, const u_char *) __THROW; -+const char * p_section (int __section, int __opcode) __THROW; -+/* Things involving a resolver context. */ -+int res_ninit (res_state) __THROW; -+int res_nisourserver (const res_state, -+ const struct sockaddr_in *) __THROW; -+void fp_resstat (const res_state, FILE *) __THROW; -+void res_npquery (const res_state, const u_char *, int, FILE *) -+ __THROW; -+const char * res_hostalias (const res_state, const char *, char *, size_t) -+ __THROW; -+int res_nquery (res_state, const char *, int, int, u_char *, int) -+ __THROW; -+int res_nsearch (res_state, const char *, int, int, u_char *, int) -+ __THROW; -+int res_nquerydomain (res_state, const char *, const char *, int, -+ int, u_char *, int) __THROW; -+int res_nmkquery (res_state, int, const char *, int, int, -+ const u_char *, int, const u_char *, u_char *, -+ int) __THROW; -+int res_nsend (res_state, const u_char *, int, u_char *, int) -+ __THROW; -+void res_nclose (res_state) __THROW; -+__END_DECLS -+#endif -+ -+#endif /* !_RESOLV_H_ */ -Index: glibc-2.19/configure -=================================================================== ---- glibc-2.19.orig/configure -+++ glibc-2.19/configure -@@ -7387,7 +7387,7 @@ RELEASE=`sed -n -e 's/^#define RELEASE " - - - --ac_config_files="$ac_config_files config.make Makefile" -+ac_config_files="$ac_config_files config.make Makefile nss/db-Makefile resolv/netdb.h resolv/resolv.h" - - ac_config_commands="$ac_config_commands default" - -@@ -8107,6 +8107,9 @@ do - "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - "config.make") CONFIG_FILES="$CONFIG_FILES config.make" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; -+ "nss/db-Makefile") CONFIG_FILES="$CONFIG_FILES nss/db-Makefile" ;; -+ "resolv/netdb.h") CONFIG_FILES="$CONFIG_FILES resolv/netdb.h" ;; -+ "resolv/resolv.h") CONFIG_FILES="$CONFIG_FILES resolv/resolv.h" ;; - "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; diff --git a/sys-libs/glibc/files/2.19/glibc-2.19-hardened-configure-picdefault.patch b/sys-libs/glibc/files/2.19/glibc-2.19-hardened-configure-picdefault.patch deleted file mode 100644 index 341d8c5..0000000 --- a/sys-libs/glibc/files/2.19/glibc-2.19-hardened-configure-picdefault.patch +++ /dev/null @@ -1,30 +0,0 @@ -Prevent default-fPIE from confusing configure into thinking -PIC code is default. This causes glibc to build both PIC and -non-PIC code as normal, which on the hardened compiler generates -PIC and PIE. - -Patch by Kevin F. Quinn <kevquinn@gentoo.org> -Fixed for glibc 2.19 by Magnus Granberg <zorry@ume.nu> - ---- configure.ac -+++ configure.ac -@@ -2145,7 +2145,7 @@ - # error PIC is default. - #endif - EOF --if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then -+if eval "${CC-cc} -fno-PIE -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then - libc_cv_pic_default=no - fi - rm -f conftest.*]) ---- configure -+++ configure -@@ -7698,7 +7698,7 @@ - # error PIC is default. - #endif - EOF --if eval "${CC-cc} -S conftest.c 2>&5 1>&5"; then -+if eval "${CC-cc} -fno-PIE -S conftest.c 2>&5 1>&5"; then - libc_cv_pic_default=no - fi - rm -f conftest.* diff --git a/sys-libs/glibc/files/2.19/glibc-2.19-ia64-gcc-4.8-reloc-hack.patch b/sys-libs/glibc/files/2.19/glibc-2.19-ia64-gcc-4.8-reloc-hack.patch deleted file mode 100644 index 72a616a..0000000 --- a/sys-libs/glibc/files/2.19/glibc-2.19-ia64-gcc-4.8-reloc-hack.patch +++ /dev/null @@ -1,32 +0,0 @@ -https://bugs.gentoo.org/503838 -http://gcc.gnu.org/PR60465 -https://sourceware.org/ml/libc-alpha/2015-12/msg00556.html -https://trofi.github.io/posts/189-glibc-on-ia64-or-how-relocations-bootstrap.html - -newer versions of gcc generate relocations in the elf_get_dynamic_info func -which glibc relies on to populate some info structs. those structs are then -used by ldso to process relocations in itself. glibc requires that there are -no relocations until that point (*after* elf_get_dynamic_info), so we end up -crashing during elf_get_dynamic_info because the relocation has not yet been -processed. - -this hack shuffles the code in a way that tricks gcc into not generating the -relocation. we need to figure out something better for upstream. - ---- a/elf/get-dynamic-info.h -+++ b/elf/get-dynamic-info.h -@@ -66,8 +66,12 @@ elf_get_dynamic_info (struct link_map *l, ElfW(Dyn) *temp) - info[DT_VALTAGIDX (dyn->d_tag) + DT_NUM + DT_THISPROCNUM - + DT_VERSIONTAGNUM + DT_EXTRANUM] = dyn; - else if ((d_tag_utype) DT_ADDRTAGIDX (dyn->d_tag) < DT_ADDRNUM) -- info[DT_ADDRTAGIDX (dyn->d_tag) + DT_NUM + DT_THISPROCNUM -- + DT_VERSIONTAGNUM + DT_EXTRANUM + DT_VALNUM] = dyn; -+ { -+ d_tag_utype i = -+ DT_ADDRTAGIDX (dyn->d_tag) + DT_NUM + DT_THISPROCNUM -+ + DT_VERSIONTAGNUM + DT_EXTRANUM + DT_VALNUM; -+ info[i] = dyn; -+ } - ++dyn; - } - diff --git a/sys-libs/glibc/files/2.19/glibc-2.19-vdso-disable.patch b/sys-libs/glibc/files/2.19/glibc-2.19-vdso-disable.patch deleted file mode 100644 index 31ed0d4..0000000 --- a/sys-libs/glibc/files/2.19/glibc-2.19-vdso-disable.patch +++ /dev/null @@ -1,37 +0,0 @@ -Disable vdso for some buggy kernels -http://thread.gmane.org/gmane.comp.lib.glibc.user/1903 - -Index: glibc-2.19/elf/dl-support.c -=================================================================== ---- glibc-2.19.orig/elf/dl-support.c -+++ glibc-2.19/elf/dl-support.c -@@ -260,16 +260,6 @@ _dl_aux_init (ElfW(auxv_t) *av) - case AT_FPUCW: - GLRO(dl_fpu_control) = av->a_un.a_val; - break; --#ifdef NEED_DL_SYSINFO -- case AT_SYSINFO: -- GL(dl_sysinfo) = av->a_un.a_val; -- break; --#endif --#ifdef NEED_DL_SYSINFO_DSO -- case AT_SYSINFO_EHDR: -- GL(dl_sysinfo_dso) = (void *) av->a_un.a_val; -- break; --#endif - case AT_UID: - uid ^= av->a_un.a_val; - seen |= 1; -Index: glibc-2.19/elf/setup-vdso.h -=================================================================== ---- glibc-2.19.orig/elf/setup-vdso.h -+++ glibc-2.19/elf/setup-vdso.h -@@ -20,7 +20,7 @@ static inline void __attribute__ ((alway - setup_vdso (struct link_map *main_map __attribute__ ((unused)), - struct link_map ***first_preload __attribute__ ((unused))) - { --#ifdef NEED_DL_SYSINFO_DSO -+#if 0 - if (GLRO(dl_sysinfo_dso) == NULL) - return; - diff --git a/sys-libs/glibc/files/2.20/glibc-2.20-configurable-paths.patch b/sys-libs/glibc/files/2.20/glibc-2.20-configurable-paths.patch deleted file mode 100644 index 1480595..0000000 --- a/sys-libs/glibc/files/2.20/glibc-2.20-configurable-paths.patch +++ /dev/null @@ -1,3012 +0,0 @@ -Index: glibc-2.20/nis/Makefile -=================================================================== ---- glibc-2.20.orig/nis/Makefile -+++ glibc-2.20/nis/Makefile -@@ -58,6 +58,11 @@ libnsl-routines = yp_xdr ypclnt ypupdate - nis_clone_res nss-default - - libnss_compat-routines := $(addprefix compat-,grp pwd spwd initgroups) -+SYSCONF-FLAGS := -D'SYSCONFDIR="$(sysconfdir)"' -+CPPFLAGS-compat-grp.c = $(SYSCONF-FLAGS) -+CPPFLAGS-compat-pwd.c = $(SYSCONF-FLAGS) -+CPPFLAGS-compat-spwd.c = $(SYSCONF-FLAGS) -+CPPFLAGS-compat-initgroups.c = $(SYSCONF-FLAGS) - libnss_compat-inhibit-o = $(filter-out .os,$(object-suffixes)) - - libnss_nis-routines := $(addprefix nis-,$(databases)) nis-initgroups \ -Index: glibc-2.20/nis/nss_compat/compat-grp.c -=================================================================== ---- glibc-2.20.orig/nis/nss_compat/compat-grp.c -+++ glibc-2.20/nis/nss_compat/compat-grp.c -@@ -120,7 +120,7 @@ internal_setgrent (ent_t *ent, int stayo - - if (ent->stream == NULL) - { -- ent->stream = fopen ("/etc/group", "rme"); -+ ent->stream = fopen (SYSCONFDIR "/group", "rme"); - - if (ent->stream == NULL) - status = errno == EAGAIN ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL; -Index: glibc-2.20/nis/nss_compat/compat-initgroups.c -=================================================================== ---- glibc-2.20.orig/nis/nss_compat/compat-initgroups.c -+++ glibc-2.20/nis/nss_compat/compat-initgroups.c -@@ -136,7 +136,7 @@ internal_setgrent (ent_t *ent) - else - ent->blacklist.current = 0; - -- ent->stream = fopen ("/etc/group", "rme"); -+ ent->stream = fopen (SYSCONFDIR "/group", "rme"); - - if (ent->stream == NULL) - status = errno == EAGAIN ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL; -Index: glibc-2.20/nis/nss_compat/compat-pwd.c -=================================================================== ---- glibc-2.20.orig/nis/nss_compat/compat-pwd.c -+++ glibc-2.20/nis/nss_compat/compat-pwd.c -@@ -235,7 +235,7 @@ internal_setpwent (ent_t *ent, int stayo - - if (ent->stream == NULL) - { -- ent->stream = fopen ("/etc/passwd", "rme"); -+ ent->stream = fopen (SYSCONFDIR "/passwd", "rme"); - - if (ent->stream == NULL) - status = errno == EAGAIN ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL; -Index: glibc-2.20/nis/nss_compat/compat-spwd.c -=================================================================== ---- glibc-2.20.orig/nis/nss_compat/compat-spwd.c -+++ glibc-2.20/nis/nss_compat/compat-spwd.c -@@ -191,7 +191,7 @@ internal_setspent (ent_t *ent, int stayo - - if (ent->stream == NULL) - { -- ent->stream = fopen ("/etc/shadow", "rme"); -+ ent->stream = fopen (SYSCONFDIR "/shadow", "rme"); - - if (ent->stream == NULL) - status = errno == EAGAIN ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL; -Index: glibc-2.20/nss/Makefile -=================================================================== ---- glibc-2.20.orig/nss/Makefile -+++ glibc-2.20/nss/Makefile -@@ -41,6 +41,8 @@ extra-objs += $(makedb-modules:=.o) - - tests = test-netdb tst-nss-test1 test-digits-dots - xtests = bug-erange -+SYSCONF-FLAGS := -D'SYSCONFDIR="$(sysconfdir)"' -+CPPFLAGS-bug-erange.c = $(SYSCONF-FLAGS) - - # Specify rules for the nss_* modules. We have some services. - services := files db -@@ -57,6 +59,8 @@ vpath %.c $(subdir-dirs) ../locale/progr - - libnss_files-routines := $(addprefix files-,$(databases)) \ - files-initgroups files-have_o_cloexec files-init -+CPPFLAGS-files-init.c = $(SYSCONF-FLAGS) -+CPPFLAGS-files-initgroups.c = $(SYSCONF-FLAGS) - - libnss_db-dbs := $(addprefix db-,\ - $(filter-out hosts network key alias,\ -@@ -102,7 +106,7 @@ $(libnss_db-dbs:%=$(objpfx)%.c): $(objpf - - $(objpfx)makedb: $(makedb-modules:%=$(objpfx)%.o) - --$(inst_vardbdir)/Makefile: db-Makefile $(+force) -+$(inst_vardbdir)/Makefile: $(objpfx)db-Makefile $(+force) - $(do-install) - - CFLAGS-nss_test1.c = -DNOT_IN_libc=1 -Index: glibc-2.20/nss/bug-erange.c -=================================================================== ---- glibc-2.20.orig/nss/bug-erange.c -+++ glibc-2.20/nss/bug-erange.c -@@ -37,7 +37,7 @@ main (void) - { - printf ("gethostbyname_r failed: %s (errno: %m)\n", strerror (res)); - -- if (access ("/etc/resolv.conf", R_OK)) -+ if (access (SYSCONFDIR "/resolv.conf", R_OK)) - { - puts ("DNS probably not set up"); - return 0; -Index: glibc-2.20/nss/nss_files/files-init.c -=================================================================== ---- glibc-2.20.orig/nss/nss_files/files-init.c -+++ glibc-2.20/nss/nss_files/files-init.c -@@ -35,33 +35,33 @@ static union \ - } \ - } - --TF (pwd, "/etc/passwd"); --TF (grp, "/etc/group"); --TF (hst, "/etc/hosts"); --TF (resolv, "/etc/resolv.conf", .call_res_init = 1); --TF (serv, "/etc/services"); --TF (netgr, "/etc/netgroup"); -+TF (pwd, SYSCONFDIR "/passwd"); -+TF (grp, SYSCONFDIR "/group"); -+TF (hst, SYSCONFDIR "/hosts"); -+TF (resolv, SYSCONFDIR "/resolv.conf", .call_res_init = 1); -+TF (serv, SYSCONFDIR "/services"); -+TF (netgr, SYSCONFDIR "/netgroup"); - - - void - _nss_files_init (void (*cb) (size_t, struct traced_file *)) - { -- strcpy (pwd_traced_file.file.fname, "/etc/passwd"); -+ strcpy (pwd_traced_file.file.fname, SYSCONFDIR "/passwd"); - cb (pwddb, &pwd_traced_file.file); - -- strcpy (grp_traced_file.file.fname, "/etc/group"); -+ strcpy (grp_traced_file.file.fname, SYSCONFDIR "/group"); - cb (grpdb, &grp_traced_file.file); - -- strcpy (hst_traced_file.file.fname, "/etc/hosts"); -+ strcpy (hst_traced_file.file.fname, SYSCONFDIR "/hosts"); - cb (hstdb, &hst_traced_file.file); - -- strcpy (resolv_traced_file.file.fname, "/etc/resolv.conf"); -+ strcpy (resolv_traced_file.file.fname, SYSCONFDIR "/resolv.conf"); - cb (hstdb, &resolv_traced_file.file); - -- strcpy (serv_traced_file.file.fname, "/etc/services"); -+ strcpy (serv_traced_file.file.fname, SYSCONFDIR "/services"); - cb (servdb, &serv_traced_file.file); - -- strcpy (netgr_traced_file.file.fname, "/etc/netgroup"); -+ strcpy (netgr_traced_file.file.fname, SYSCONFDIR "/netgroup"); - cb (netgrdb, &netgr_traced_file.file); - } - -Index: glibc-2.20/nss/nss_files/files-initgroups.c -=================================================================== ---- glibc-2.20.orig/nss/nss_files/files-initgroups.c -+++ glibc-2.20/nss/nss_files/files-initgroups.c -@@ -31,7 +31,7 @@ _nss_files_initgroups_dyn (const char *u - long int *size, gid_t **groupsp, long int limit, - int *errnop) - { -- FILE *stream = fopen ("/etc/group", "rce"); -+ FILE *stream = fopen (SYSCONFDIR "/group", "rce"); - if (stream == NULL) - { - *errnop = errno; -Index: glibc-2.20/nss/db-Makefile -=================================================================== ---- glibc-2.20.orig/nss/db-Makefile -+++ /dev/null -@@ -1,166 +0,0 @@ --# Makefile to (re-)generate db versions of system database files. --# Copyright (C) 1996-2014 Free Software Foundation, Inc. --# This file is part of the GNU C Library. --# Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. --# -- --# 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, see --# <http://www.gnu.org/licenses/>. -- --DATABASES = $(wildcard /etc/passwd /etc/group /etc/ethers /etc/protocols \ -- /etc/rpc /etc/services /etc/shadow /etc/gshadow \ -- /etc/netgroup) -- --VAR_DB = /var/db -- --AWK = awk --MAKEDB = makedb --quiet -- --all: $(patsubst %,$(VAR_DB)/%.db,$(notdir $(DATABASES))) -- -- --$(VAR_DB)/passwd.db: /etc/passwd -- @echo -n "$(patsubst %.db,%,$(@F))... " -- @$(AWK) 'BEGIN { FS=":"; OFS=":" } \ -- /^[ \t]*$$/ { next } \ -- /^[ \t]*#/ { next } \ -- /^[^#]/ { printf ".%s ", $$1; print; \ -- printf "=%s ", $$3; print }' $^ | \ -- $(MAKEDB) -o $@ - -- @echo "done." -- --$(VAR_DB)/group.db: /etc/group -- @echo -n "$(patsubst %.db,%,$(@F))... " -- @$(AWK) 'BEGIN { FS=":"; OFS=":" } \ -- /^[ \t]*$$/ { next } \ -- /^[ \t]*#/ { next } \ -- /^[^#]/ { printf ".%s ", $$1; print; \ -- printf "=%s ", $$3; print; \ -- if ($$4 != "") { \ -- split($$4, grmems, ","); \ -- for (memidx in grmems) { \ -- mem=grmems[memidx]; \ -- if (members[mem] == "") \ -- members[mem]=$$3; \ -- else \ -- members[mem]=members[mem] "," $$3; \ -- } \ -- delete grmems; } } \ -- END { for (mem in members) \ -- printf ":%s %s %s\n", mem, mem, members[mem]; }' $^ | \ -- $(MAKEDB) -o $@ - -- @echo "done." -- --$(VAR_DB)/ethers.db: /etc/ethers -- @echo -n "$(patsubst %.db,%,$(@F))... " -- @$(AWK) '/^[ \t]*$$/ { next } \ -- /^[ \t]*#/ { next } \ -- /^[^#]/ { printf ".%s ", $$1; print; \ -- printf "=%s ", $$2; print }' $^ | \ -- $(MAKEDB) -o $@ - -- @echo "done." -- --$(VAR_DB)/protocols.db: /etc/protocols -- @echo -n "$(patsubst %.db,%,$(@F))... " -- @$(AWK) '/^[ \t]*$$/ { next } \ -- /^[ \t]*#/ { next } \ -- /^[^#]/ { printf ".%s ", $$1; print; \ -- printf "=%s ", $$2; print; \ -- for (i = 3; i <= NF && !($$i ~ /^#/); ++i) \ -- { printf ".%s ", $$i; print } }' $^ | \ -- $(MAKEDB) -o $@ - -- @echo "done." -- --$(VAR_DB)/rpc.db: /etc/rpc -- @echo -n "$(patsubst %.db,%,$(@F))... " -- @$(AWK) '/^[ \t]*$$/ { next } \ -- /^[ \t]*#/ { next } \ -- /^[^#]/ { printf ".%s ", $$1; print; \ -- printf "=%s ", $$2; print; \ -- for (i = 3; i <= NF && !($$i ~ /^#/); ++i) \ -- { printf ".%s ", $$i; print } }' $^ | \ -- $(MAKEDB) -o $@ - -- @echo "done." -- --$(VAR_DB)/services.db: /etc/services -- @echo -n "$(patsubst %.db,%,$(@F))... " -- @$(AWK) 'BEGIN { FS="[ \t/]+" } \ -- /^[ \t]*$$/ { next } \ -- /^[ \t]*#/ { next } \ -- /^[^#]/ { sub(/[ \t]*#.*$$/, "");\ -- printf ":%s/%s ", $$1, $$3; print; \ -- printf ":%s/ ", $$1; print; \ -- printf "=%s/%s ", $$2, $$3; print; \ -- printf "=%s/ ", $$2; print; \ -- for (i = 4; i <= NF && !($$i ~ /^#/); ++i) \ -- { printf ":%s/%s ", $$i, $$3; print; \ -- printf ":%s/ ", $$i; print } }' $^ | \ -- $(MAKEDB) -o $@ - -- @echo "done." -- --$(VAR_DB)/shadow.db: /etc/shadow -- @echo -n "$(patsubst %.db,%,$(@F))... " -- @$(AWK) 'BEGIN { FS=":"; OFS=":" } \ -- /^[ \t]*$$/ { next } \ -- /^[ \t]*#/ { next } \ -- /^[^#]/ { printf ".%s ", $$1; print }' $^ | \ -- (umask 077 && $(MAKEDB) -o $@ -) -- @echo "done." -- @if chgrp shadow $@ 2>/dev/null; then \ -- chmod g+r $@; \ -- else \ -- chown 0 $@; chgrp 0 $@; chmod 600 $@; \ -- echo; \ -- echo "Warning: The shadow password database $@"; \ -- echo "has been set to be readable only by root. You may want"; \ -- echo "to make it readable by the \`shadow' group depending"; \ -- echo "on your configuration."; \ -- echo; \ -- fi -- --$(VAR_DB)/gshadow.db: /etc/gshadow -- @echo -n "$(patsubst %.db,%,$(@F))... " -- @$(AWK) 'BEGIN { FS=":"; OFS=":" } \ -- /^[ \t]*$$/ { next } \ -- /^[ \t]*#/ { next } \ -- /^[^#]/ { printf ".%s ", $$1; print }' $^ | \ -- (umask 077 && $(MAKEDB) -o $@ -) -- @echo "done." -- @if chgrp shadow $@ 2>/dev/null; then \ -- chmod g+r $@; \ -- else \ -- chown 0 $@; chgrp 0 $@; chmod 600 $@; \ -- echo; \ -- echo "Warning: The shadow group database $@"; \ -- echo "has been set to be readable only by root. You may want"; \ -- echo "to make it readable by the \`shadow' group depending"; \ -- echo "on your configuration."; \ -- echo; \ -- fi -- --$(VAR_DB)/netgroup.db: /etc/netgroup -- @echo -n "$(patsubst %.db,%,$(@F))... " -- @$(AWK) 'BEGIN { ini=1 } \ -- /^[ \t]*$$/ { next } \ -- /^[ \t]*#/ { next } \ -- /^[^#]/ { if (sub(/[ \t]*\\$$/, " ") == 0) end="\n"; \ -- else end=""; \ -- gsub(/[ \t]+/, " "); \ -- sub(/^[ \t]*/, ""); \ -- if (ini == 0) printf "%s%s", $$0, end; \ -- else printf ".%s %s%s", $$1, $$0, end; \ -- ini=end == "" ? 0 : 1; } \ -- END { if (ini==0) printf "\n" }' $^ | \ -- $(MAKEDB) -o $@ - -- @echo "done." -Index: glibc-2.20/nss/db-Makefile.in -=================================================================== ---- /dev/null -+++ glibc-2.20/nss/db-Makefile.in -@@ -0,0 +1,173 @@ -+ -+# Makefile to (re-)generate db versions of system database files. -+# Copyright (C) 1996-2014 Free Software Foundation, Inc. -+# This file is part of the GNU C Library. -+# Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. -+# -+ -+# 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, see -+# <http://www.gnu.org/licenses/>. -+ -+DATABASES = $(wildcard @libc_cv_sysconfdir@/passwd \ -+ @libc_cv_sysconfdir@/group \ -+ @libc_cv_sysconfdir@/ethers \ -+ @libc_cv_sysconfdir@/protocols \ -+ @libc_cv_sysconfdir@/rpc \ -+ @libc_cv_sysconfdir@/services \ -+ @libc_cv_sysconfdir@/shadow \ -+ @libc_cv_sysconfdir@/gshadow \ -+ @libc_cv_sysconfdir@/netgroup) -+ -+VAR_DB = /var/db -+ -+AWK = awk -+MAKEDB = makedb --quiet -+ -+all: $(patsubst %,$(VAR_DB)/%.db,$(notdir $(DATABASES))) -+ -+ -+$(VAR_DB)/passwd.db: @libc_cv_sysconfdir@/passwd -+ @echo -n "$(patsubst %.db,%,$(@F))... " -+ @$(AWK) 'BEGIN { FS=":"; OFS=":" } \ -+ /^[ \t]*$$/ { next } \ -+ /^[ \t]*#/ { next } \ -+ /^[^#]/ { printf ".%s ", $$1; print; \ -+ printf "=%s ", $$3; print }' $^ | \ -+ $(MAKEDB) -o $@ - -+ @echo "done." -+ -+$(VAR_DB)/group.db: @libc_cv_sysconfdir@/group -+ @echo -n "$(patsubst %.db,%,$(@F))... " -+ @$(AWK) 'BEGIN { FS=":"; OFS=":" } \ -+ /^[ \t]*$$/ { next } \ -+ /^[ \t]*#/ { next } \ -+ /^[^#]/ { printf ".%s ", $$1; print; \ -+ printf "=%s ", $$3; print; \ -+ if ($$4 != "") { \ -+ split($$4, grmems, ","); \ -+ for (memidx in grmems) { \ -+ mem=grmems[memidx]; \ -+ if (members[mem] == "") \ -+ members[mem]=$$3; \ -+ else \ -+ members[mem]=members[mem] "," $$3; \ -+ } \ -+ delete grmems; } } \ -+ END { for (mem in members) \ -+ printf ":%s %s %s\n", mem, mem, members[mem]; }' $^ | \ -+ $(MAKEDB) -o $@ - -+ @echo "done." -+ -+$(VAR_DB)/ethers.db: @libc_cv_sysconfdir@/ethers -+ @echo -n "$(patsubst %.db,%,$(@F))... " -+ @$(AWK) '/^[ \t]*$$/ { next } \ -+ /^[ \t]*#/ { next } \ -+ /^[^#]/ { printf ".%s ", $$1; print; \ -+ printf "=%s ", $$2; print }' $^ | \ -+ $(MAKEDB) -o $@ - -+ @echo "done." -+ -+$(VAR_DB)/protocols.db: @libc_cv_sysconfdir@/protocols -+ @echo -n "$(patsubst %.db,%,$(@F))... " -+ @$(AWK) '/^[ \t]*$$/ { next } \ -+ /^[ \t]*#/ { next } \ -+ /^[^#]/ { printf ".%s ", $$1; print; \ -+ printf "=%s ", $$2; print; \ -+ for (i = 3; i <= NF && !($$i ~ /^#/); ++i) \ -+ { printf ".%s ", $$i; print } }' $^ | \ -+ $(MAKEDB) -o $@ - -+ @echo "done." -+ -+$(VAR_DB)/rpc.db: @libc_cv_sysconfdir@/rpc -+ @echo -n "$(patsubst %.db,%,$(@F))... " -+ @$(AWK) '/^[ \t]*$$/ { next } \ -+ /^[ \t]*#/ { next } \ -+ /^[^#]/ { printf ".%s ", $$1; print; \ -+ printf "=%s ", $$2; print; \ -+ for (i = 3; i <= NF && !($$i ~ /^#/); ++i) \ -+ { printf ".%s ", $$i; print } }' $^ | \ -+ $(MAKEDB) -o $@ - -+ @echo "done." -+ -+$(VAR_DB)/services.db: @libc_cv_sysconfdir@/services -+ @echo -n "$(patsubst %.db,%,$(@F))... " -+ @$(AWK) 'BEGIN { FS="[ \t/]+" } \ -+ /^[ \t]*$$/ { next } \ -+ /^[ \t]*#/ { next } \ -+ /^[^#]/ { sub(/[ \t]*#.*$$/, "");\ -+ printf ":%s/%s ", $$1, $$3; print; \ -+ printf ":%s/ ", $$1; print; \ -+ printf "=%s/%s ", $$2, $$3; print; \ -+ printf "=%s/ ", $$2; print; \ -+ for (i = 4; i <= NF && !($$i ~ /^#/); ++i) \ -+ { printf ":%s/%s ", $$i, $$3; print; \ -+ printf ":%s/ ", $$i; print } }' $^ | \ -+ $(MAKEDB) -o $@ - -+ @echo "done." -+ -+$(VAR_DB)/shadow.db: @libc_cv_sysconfdir@/shadow -+ @echo -n "$(patsubst %.db,%,$(@F))... " -+ @$(AWK) 'BEGIN { FS=":"; OFS=":" } \ -+ /^[ \t]*$$/ { next } \ -+ /^[ \t]*#/ { next } \ -+ /^[^#]/ { printf ".%s ", $$1; print }' $^ | \ -+ (umask 077 && $(MAKEDB) -o $@ -) -+ @echo "done." -+ @if chgrp shadow $@ 2>/dev/null; then \ -+ chmod g+r $@; \ -+ else \ -+ chown 0 $@; chgrp 0 $@; chmod 600 $@; \ -+ echo; \ -+ echo "Warning: The shadow password database $@"; \ -+ echo "has been set to be readable only by root. You may want"; \ -+ echo "to make it readable by the \`shadow' group depending"; \ -+ echo "on your configuration."; \ -+ echo; \ -+ fi -+ -+$(VAR_DB)/gshadow.db: @libc_cv_sysconfdir@/gshadow -+ @echo -n "$(patsubst %.db,%,$(@F))... " -+ @$(AWK) 'BEGIN { FS=":"; OFS=":" } \ -+ /^[ \t]*$$/ { next } \ -+ /^[ \t]*#/ { next } \ -+ /^[^#]/ { printf ".%s ", $$1; print }' $^ | \ -+ (umask 077 && $(MAKEDB) -o $@ -) -+ @echo "done." -+ @if chgrp shadow $@ 2>/dev/null; then \ -+ chmod g+r $@; \ -+ else \ -+ chown 0 $@; chgrp 0 $@; chmod 600 $@; \ -+ echo; \ -+ echo "Warning: The shadow group database $@"; \ -+ echo "has been set to be readable only by root. You may want"; \ -+ echo "to make it readable by the \`shadow' group depending"; \ -+ echo "on your configuration."; \ -+ echo; \ -+ fi -+ -+$(VAR_DB)/netgroup.db: @libc_cv_sysconfdir@/netgroup -+ @echo -n "$(patsubst %.db,%,$(@F))... " -+ @$(AWK) 'BEGIN { ini=1 } \ -+ /^[ \t]*$$/ { next } \ -+ /^[ \t]*#/ { next } \ -+ /^[^#]/ { if (sub(/[ \t]*\\$$/, " ") == 0) end="\n"; \ -+ else end=""; \ -+ gsub(/[ \t]+/, " "); \ -+ sub(/^[ \t]*/, ""); \ -+ if (ini == 0) printf "%s%s", $$0, end; \ -+ else printf ".%s %s%s", $$1, $$0, end; \ -+ ini=end == "" ? 0 : 1; } \ -+ END { if (ini==0) printf "\n" }' $^ | \ -+ $(MAKEDB) -o $@ - -+ @echo "done." -Index: glibc-2.20/resolv/netdb.h -=================================================================== ---- glibc-2.20.orig/resolv/netdb.h -+++ /dev/null -@@ -1,715 +0,0 @@ -- /* Copyright (C) 1996-2014 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, see -- <http://www.gnu.org/licenses/>. */ -- --/* All data returned by the network data base library are supplied in -- host order and returned in network order (suitable for use in -- system calls). */ -- --#ifndef _NETDB_H --#define _NETDB_H 1 -- --#include <features.h> -- --#include <netinet/in.h> --#include <stdint.h> --#ifdef __USE_MISC --/* This is necessary to make this include file properly replace the -- Sun version. */ --# include <rpc/netdb.h> --#endif -- --#ifdef __USE_GNU --# define __need_sigevent_t --# include <bits/siginfo.h> --# define __need_timespec --# include <time.h> --#endif -- --#include <bits/netdb.h> -- --/* Absolute file name for network data base files. */ --#define _PATH_HEQUIV "/etc/hosts.equiv" --#define _PATH_HOSTS "/etc/hosts" --#define _PATH_NETWORKS "/etc/networks" --#define _PATH_NSSWITCH_CONF "/etc/nsswitch.conf" --#define _PATH_PROTOCOLS "/etc/protocols" --#define _PATH_SERVICES "/etc/services" -- -- --__BEGIN_DECLS -- --#if defined __USE_MISC || !defined __USE_XOPEN2K8 --/* Error status for non-reentrant lookup functions. -- We use a macro to access always the thread-specific `h_errno' variable. */ --# define h_errno (*__h_errno_location ()) -- --/* Function to get address of global `h_errno' variable. */ --extern int *__h_errno_location (void) __THROW __attribute__ ((__const__)); -- -- --/* Possible values left in `h_errno'. */ --# define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found. */ --# define TRY_AGAIN 2 /* Non-Authoritative Host not found, -- or SERVERFAIL. */ --# define NO_RECOVERY 3 /* Non recoverable errors, FORMERR, REFUSED, -- NOTIMP. */ --# define NO_DATA 4 /* Valid name, no data record of requested -- type. */ --#endif --#ifdef __USE_MISC --# define NETDB_INTERNAL -1 /* See errno. */ --# define NETDB_SUCCESS 0 /* No problem. */ --# define NO_ADDRESS NO_DATA /* No address, look for MX record. */ --#endif -- --#if defined __USE_XOPEN2K || defined __USE_XOPEN_EXTENDED --/* Highest reserved Internet port number. */ --# define IPPORT_RESERVED 1024 --#endif -- --#ifdef __USE_GNU --/* Scope delimiter for getaddrinfo(), getnameinfo(). */ --# define SCOPE_DELIMITER '%' --#endif -- --#ifdef __USE_MISC --/* Print error indicated by `h_errno' variable on standard error. STR -- if non-null is printed before the error string. */ --extern void herror (const char *__str) __THROW; -- --/* Return string associated with error ERR_NUM. */ --extern const char *hstrerror (int __err_num) __THROW; --#endif -- -- --/* Description of data base entry for a single host. */ --struct hostent --{ -- char *h_name; /* Official name of host. */ -- char **h_aliases; /* Alias list. */ -- int h_addrtype; /* Host address type. */ -- int h_length; /* Length of address. */ -- char **h_addr_list; /* List of addresses from name server. */ --#ifdef __USE_MISC --# define h_addr h_addr_list[0] /* Address, for backward compatibility.*/ --#endif --}; -- --/* Open host data base files and mark them as staying open even after -- a later search if STAY_OPEN is non-zero. -- -- This function is a possible cancellation point and therefore not -- marked with __THROW. */ --extern void sethostent (int __stay_open); -- --/* Close host data base files and clear `stay open' flag. -- -- This function is a possible cancellation point and therefore not -- marked with __THROW. */ --extern void endhostent (void); -- --/* Get next entry from host data base file. Open data base if -- necessary. -- -- This function is a possible cancellation point and therefore not -- marked with __THROW. */ --extern struct hostent *gethostent (void); -- --/* Return entry from host data base which address match ADDR with -- length LEN and type TYPE. -- -- This function is a possible cancellation point and therefore not -- marked with __THROW. */ --extern struct hostent *gethostbyaddr (const void *__addr, __socklen_t __len, -- int __type); -- --/* Return entry from host data base for host with NAME. -- -- This function is a possible cancellation point and therefore not -- marked with __THROW. */ --extern struct hostent *gethostbyname (const char *__name); -- --#ifdef __USE_MISC --/* Return entry from host data base for host with NAME. AF must be -- set to the address type which is `AF_INET' for IPv4 or `AF_INET6' -- for IPv6. -- -- This function is not part of POSIX and therefore no official -- cancellation point. But due to similarity with an POSIX interface -- or due to the implementation it is a cancellation point and -- therefore not marked with __THROW. */ --extern struct hostent *gethostbyname2 (const char *__name, int __af); -- --/* Reentrant versions of the functions above. The additional -- arguments specify a buffer of BUFLEN starting at BUF. The last -- argument is a pointer to a variable which gets the value which -- would be stored in the global variable `herrno' by the -- non-reentrant functions. -- -- These functions are not part of POSIX and therefore no official -- cancellation point. But due to similarity with an POSIX interface -- or due to the implementation they are cancellation points and -- therefore not marked with __THROW. */ --extern int gethostent_r (struct hostent *__restrict __result_buf, -- char *__restrict __buf, size_t __buflen, -- struct hostent **__restrict __result, -- int *__restrict __h_errnop); -- --extern int gethostbyaddr_r (const void *__restrict __addr, __socklen_t __len, -- int __type, -- struct hostent *__restrict __result_buf, -- char *__restrict __buf, size_t __buflen, -- struct hostent **__restrict __result, -- int *__restrict __h_errnop); -- --extern int gethostbyname_r (const char *__restrict __name, -- struct hostent *__restrict __result_buf, -- char *__restrict __buf, size_t __buflen, -- struct hostent **__restrict __result, -- int *__restrict __h_errnop); -- --extern int gethostbyname2_r (const char *__restrict __name, int __af, -- struct hostent *__restrict __result_buf, -- char *__restrict __buf, size_t __buflen, -- struct hostent **__restrict __result, -- int *__restrict __h_errnop); --#endif /* misc */ -- -- --/* Open network data base files and mark them as staying open even -- after a later search if STAY_OPEN is non-zero. -- -- This function is a possible cancellation point and therefore not -- marked with __THROW. */ --extern void setnetent (int __stay_open); -- --/* Close network data base files and clear `stay open' flag. -- -- This function is a possible cancellation point and therefore not -- marked with __THROW. */ --extern void endnetent (void); -- --/* Get next entry from network data base file. Open data base if -- necessary. -- -- This function is a possible cancellation point and therefore not -- marked with __THROW. */ --extern struct netent *getnetent (void); -- --/* Return entry from network data base which address match NET and -- type TYPE. -- -- This function is a possible cancellation point and therefore not -- marked with __THROW. */ --extern struct netent *getnetbyaddr (uint32_t __net, int __type); -- --/* Return entry from network data base for network with NAME. -- -- This function is a possible cancellation point and therefore not -- marked with __THROW. */ --extern struct netent *getnetbyname (const char *__name); -- --#ifdef __USE_MISC --/* Reentrant versions of the functions above. The additional -- arguments specify a buffer of BUFLEN starting at BUF. The last -- argument is a pointer to a variable which gets the value which -- would be stored in the global variable `herrno' by the -- non-reentrant functions. -- -- These functions are not part of POSIX and therefore no official -- cancellation point. But due to similarity with an POSIX interface -- or due to the implementation they are cancellation points and -- therefore not marked with __THROW. */ --extern int getnetent_r (struct netent *__restrict __result_buf, -- char *__restrict __buf, size_t __buflen, -- struct netent **__restrict __result, -- int *__restrict __h_errnop); -- --extern int getnetbyaddr_r (uint32_t __net, int __type, -- struct netent *__restrict __result_buf, -- char *__restrict __buf, size_t __buflen, -- struct netent **__restrict __result, -- int *__restrict __h_errnop); -- --extern int getnetbyname_r (const char *__restrict __name, -- struct netent *__restrict __result_buf, -- char *__restrict __buf, size_t __buflen, -- struct netent **__restrict __result, -- int *__restrict __h_errnop); --#endif /* misc */ -- -- --/* Description of data base entry for a single service. */ --struct servent --{ -- char *s_name; /* Official service name. */ -- char **s_aliases; /* Alias list. */ -- int s_port; /* Port number. */ -- char *s_proto; /* Protocol to use. */ --}; -- --/* Open service data base files and mark them as staying open even -- after a later search if STAY_OPEN is non-zero. -- -- This function is a possible cancellation point and therefore not -- marked with __THROW. */ --extern void setservent (int __stay_open); -- --/* Close service data base files and clear `stay open' flag. -- -- This function is a possible cancellation point and therefore not -- marked with __THROW. */ --extern void endservent (void); -- --/* Get next entry from service data base file. Open data base if -- necessary. -- -- This function is a possible cancellation point and therefore not -- marked with __THROW. */ --extern struct servent *getservent (void); -- --/* Return entry from network data base for network with NAME and -- protocol PROTO. -- -- This function is a possible cancellation point and therefore not -- marked with __THROW. */ --extern struct servent *getservbyname (const char *__name, const char *__proto); -- --/* Return entry from service data base which matches port PORT and -- protocol PROTO. -- -- This function is a possible cancellation point and therefore not -- marked with __THROW. */ --extern struct servent *getservbyport (int __port, const char *__proto); -- -- --#ifdef __USE_MISC --/* Reentrant versions of the functions above. The additional -- arguments specify a buffer of BUFLEN starting at BUF. -- -- These functions are not part of POSIX and therefore no official -- cancellation point. But due to similarity with an POSIX interface -- or due to the implementation they are cancellation points and -- therefore not marked with __THROW. */ --extern int getservent_r (struct servent *__restrict __result_buf, -- char *__restrict __buf, size_t __buflen, -- struct servent **__restrict __result); -- --extern int getservbyname_r (const char *__restrict __name, -- const char *__restrict __proto, -- struct servent *__restrict __result_buf, -- char *__restrict __buf, size_t __buflen, -- struct servent **__restrict __result); -- --extern int getservbyport_r (int __port, const char *__restrict __proto, -- struct servent *__restrict __result_buf, -- char *__restrict __buf, size_t __buflen, -- struct servent **__restrict __result); --#endif /* misc */ -- -- --/* Description of data base entry for a single service. */ --struct protoent --{ -- char *p_name; /* Official protocol name. */ -- char **p_aliases; /* Alias list. */ -- int p_proto; /* Protocol number. */ --}; -- --/* Open protocol data base files and mark them as staying open even -- after a later search if STAY_OPEN is non-zero. -- -- This function is a possible cancellation point and therefore not -- marked with __THROW. */ --extern void setprotoent (int __stay_open); -- --/* Close protocol data base files and clear `stay open' flag. -- -- This function is a possible cancellation point and therefore not -- marked with __THROW. */ --extern void endprotoent (void); -- --/* Get next entry from protocol data base file. Open data base if -- necessary. -- -- This function is a possible cancellation point and therefore not -- marked with __THROW. */ --extern struct protoent *getprotoent (void); -- --/* Return entry from protocol data base for network with NAME. -- -- This function is a possible cancellation point and therefore not -- marked with __THROW. */ --extern struct protoent *getprotobyname (const char *__name); -- --/* Return entry from protocol data base which number is PROTO. -- -- This function is a possible cancellation point and therefore not -- marked with __THROW. */ --extern struct protoent *getprotobynumber (int __proto); -- -- --#ifdef __USE_MISC --/* Reentrant versions of the functions above. The additional -- arguments specify a buffer of BUFLEN starting at BUF. -- -- These functions are not part of POSIX and therefore no official -- cancellation point. But due to similarity with an POSIX interface -- or due to the implementation they are cancellation points and -- therefore not marked with __THROW. */ --extern int getprotoent_r (struct protoent *__restrict __result_buf, -- char *__restrict __buf, size_t __buflen, -- struct protoent **__restrict __result); -- --extern int getprotobyname_r (const char *__restrict __name, -- struct protoent *__restrict __result_buf, -- char *__restrict __buf, size_t __buflen, -- struct protoent **__restrict __result); -- --extern int getprotobynumber_r (int __proto, -- struct protoent *__restrict __result_buf, -- char *__restrict __buf, size_t __buflen, -- struct protoent **__restrict __result); -- -- --/* Establish network group NETGROUP for enumeration. -- -- This function is not part of POSIX and therefore no official -- cancellation point. But due to similarity with an POSIX interface -- or due to the implementation it is a cancellation point and -- therefore not marked with __THROW. */ --extern int setnetgrent (const char *__netgroup); -- --/* Free all space allocated by previous `setnetgrent' call. -- -- This function is not part of POSIX and therefore no official -- cancellation point. But due to similarity with an POSIX interface -- or due to the implementation it is a cancellation point and -- therefore not marked with __THROW. */ --extern void endnetgrent (void); -- --/* Get next member of netgroup established by last `setnetgrent' call -- and return pointers to elements in HOSTP, USERP, and DOMAINP. -- -- This function is not part of POSIX and therefore no official -- cancellation point. But due to similarity with an POSIX interface -- or due to the implementation it is a cancellation point and -- therefore not marked with __THROW. */ --extern int getnetgrent (char **__restrict __hostp, -- char **__restrict __userp, -- char **__restrict __domainp); -- -- --/* Test whether NETGROUP contains the triple (HOST,USER,DOMAIN). -- -- This function is not part of POSIX and therefore no official -- cancellation point. But due to similarity with an POSIX interface -- or due to the implementation it is a cancellation point and -- therefore not marked with __THROW. */ --extern int innetgr (const char *__netgroup, const char *__host, -- const char *__user, const char *__domain); -- --/* Reentrant version of `getnetgrent' where result is placed in BUFFER. -- -- This function is not part of POSIX and therefore no official -- cancellation point. But due to similarity with an POSIX interface -- or due to the implementation it is a cancellation point and -- therefore not marked with __THROW. */ --extern int getnetgrent_r (char **__restrict __hostp, -- char **__restrict __userp, -- char **__restrict __domainp, -- char *__restrict __buffer, size_t __buflen); --#endif /* misc */ -- -- --#ifdef __USE_MISC --/* Call `rshd' at port RPORT on remote machine *AHOST to execute CMD. -- The local user is LOCUSER, on the remote machine the command is -- executed as REMUSER. In *FD2P the descriptor to the socket for the -- connection is returned. The caller must have the right to use a -- reserved port. When the function returns *AHOST contains the -- official host name. -- -- This function is not part of POSIX and therefore no official -- cancellation point. But due to similarity with an POSIX interface -- or due to the implementation it is a cancellation point and -- therefore not marked with __THROW. */ --extern int rcmd (char **__restrict __ahost, unsigned short int __rport, -- const char *__restrict __locuser, -- const char *__restrict __remuser, -- const char *__restrict __cmd, int *__restrict __fd2p); -- --/* This is the equivalent function where the protocol can be selected -- and which therefore can be used for IPv6. -- -- This function is not part of POSIX and therefore no official -- cancellation point. But due to similarity with an POSIX interface -- or due to the implementation it is a cancellation point and -- therefore not marked with __THROW. */ --extern int rcmd_af (char **__restrict __ahost, unsigned short int __rport, -- const char *__restrict __locuser, -- const char *__restrict __remuser, -- const char *__restrict __cmd, int *__restrict __fd2p, -- sa_family_t __af); -- --/* Call `rexecd' at port RPORT on remote machine *AHOST to execute -- CMD. The process runs at the remote machine using the ID of user -- NAME whose cleartext password is PASSWD. In *FD2P the descriptor -- to the socket for the connection is returned. When the function -- returns *AHOST contains the official host name. -- -- This function is not part of POSIX and therefore no official -- cancellation point. But due to similarity with an POSIX interface -- or due to the implementation it is a cancellation point and -- therefore not marked with __THROW. */ --extern int rexec (char **__restrict __ahost, int __rport, -- const char *__restrict __name, -- const char *__restrict __pass, -- const char *__restrict __cmd, int *__restrict __fd2p); -- --/* This is the equivalent function where the protocol can be selected -- and which therefore can be used for IPv6. -- -- This function is not part of POSIX and therefore no official -- cancellation point. But due to similarity with an POSIX interface -- or due to the implementation it is a cancellation point and -- therefore not marked with __THROW. */ --extern int rexec_af (char **__restrict __ahost, int __rport, -- const char *__restrict __name, -- const char *__restrict __pass, -- const char *__restrict __cmd, int *__restrict __fd2p, -- sa_family_t __af); -- --/* Check whether user REMUSER on system RHOST is allowed to login as LOCUSER. -- If SUSER is not zero the user tries to become superuser. Return 0 if -- it is possible. -- -- This function is not part of POSIX and therefore no official -- cancellation point. But due to similarity with an POSIX interface -- or due to the implementation it is a cancellation point and -- therefore not marked with __THROW. */ --extern int ruserok (const char *__rhost, int __suser, -- const char *__remuser, const char *__locuser); -- --/* This is the equivalent function where the protocol can be selected -- and which therefore can be used for IPv6. -- -- This function is not part of POSIX and therefore no official -- cancellation point. But due to similarity with an POSIX interface -- or due to the implementation it is a cancellation point and -- therefore not marked with __THROW. */ --extern int ruserok_af (const char *__rhost, int __suser, -- const char *__remuser, const char *__locuser, -- sa_family_t __af); -- --/* Check whether user REMUSER on system indicated by IPv4 address -- RADDR is allowed to login as LOCUSER. Non-IPv4 (e.g., IPv6) are -- not supported. If SUSER is not zero the user tries to become -- superuser. Return 0 if it is possible. -- -- This function is not part of POSIX and therefore no official -- cancellation point. But due to similarity with an POSIX interface -- or due to the implementation it is a cancellation point and -- therefore not marked with __THROW. */ --extern int iruserok (uint32_t __raddr, int __suser, -- const char *__remuser, const char *__locuser); -- --/* This is the equivalent function where the pfamiliy if the address -- pointed to by RADDR is determined by the value of AF. It therefore -- can be used for IPv6 -- -- This function is not part of POSIX and therefore no official -- cancellation point. But due to similarity with an POSIX interface -- or due to the implementation it is a cancellation point and -- therefore not marked with __THROW. */ --extern int iruserok_af (const void *__raddr, int __suser, -- const char *__remuser, const char *__locuser, -- sa_family_t __af); -- --/* Try to allocate reserved port, returning a descriptor for a socket opened -- at this port or -1 if unsuccessful. The search for an available port -- will start at ALPORT and continues with lower numbers. -- -- This function is not part of POSIX and therefore no official -- cancellation point. But due to similarity with an POSIX interface -- or due to the implementation it is a cancellation point and -- therefore not marked with __THROW. */ --extern int rresvport (int *__alport); -- --/* This is the equivalent function where the protocol can be selected -- and which therefore can be used for IPv6. -- -- This function is not part of POSIX and therefore no official -- cancellation point. But due to similarity with an POSIX interface -- or due to the implementation it is a cancellation point and -- therefore not marked with __THROW. */ --extern int rresvport_af (int *__alport, sa_family_t __af); --#endif -- -- --/* Extension from POSIX.1g. */ --#ifdef __USE_POSIX --/* Structure to contain information about address of a service provider. */ --struct addrinfo --{ -- int ai_flags; /* Input flags. */ -- int ai_family; /* Protocol family for socket. */ -- int ai_socktype; /* Socket type. */ -- int ai_protocol; /* Protocol for socket. */ -- socklen_t ai_addrlen; /* Length of socket address. */ -- struct sockaddr *ai_addr; /* Socket address for socket. */ -- char *ai_canonname; /* Canonical name for service location. */ -- struct addrinfo *ai_next; /* Pointer to next in list. */ --}; -- --# ifdef __USE_GNU --/* Structure used as control block for asynchronous lookup. */ --struct gaicb --{ -- const char *ar_name; /* Name to look up. */ -- const char *ar_service; /* Service name. */ -- const struct addrinfo *ar_request; /* Additional request specification. */ -- struct addrinfo *ar_result; /* Pointer to result. */ -- /* The following are internal elements. */ -- int __return; -- int __glibc_reserved[5]; --}; -- --/* Lookup mode. */ --# define GAI_WAIT 0 --# define GAI_NOWAIT 1 --# endif -- --/* Possible values for `ai_flags' field in `addrinfo' structure. */ --# define AI_PASSIVE 0x0001 /* Socket address is intended for `bind'. */ --# define AI_CANONNAME 0x0002 /* Request for canonical name. */ --# define AI_NUMERICHOST 0x0004 /* Don't use name resolution. */ --# define AI_V4MAPPED 0x0008 /* IPv4 mapped addresses are acceptable. */ --# define AI_ALL 0x0010 /* Return IPv4 mapped and IPv6 addresses. */ --# define AI_ADDRCONFIG 0x0020 /* Use configuration of this host to choose -- returned address type.. */ --# ifdef __USE_GNU --# define AI_IDN 0x0040 /* IDN encode input (assuming it is encoded -- in the current locale's character set) -- before looking it up. */ --# define AI_CANONIDN 0x0080 /* Translate canonical name from IDN format. */ --# define AI_IDN_ALLOW_UNASSIGNED 0x0100 /* Don't reject unassigned Unicode -- code points. */ --# define AI_IDN_USE_STD3_ASCII_RULES 0x0200 /* Validate strings according to -- STD3 rules. */ --# endif --# define AI_NUMERICSERV 0x0400 /* Don't use name resolution. */ -- --/* Error values for `getaddrinfo' function. */ --# define EAI_BADFLAGS -1 /* Invalid value for `ai_flags' field. */ --# define EAI_NONAME -2 /* NAME or SERVICE is unknown. */ --# define EAI_AGAIN -3 /* Temporary failure in name resolution. */ --# define EAI_FAIL -4 /* Non-recoverable failure in name res. */ --# define EAI_FAMILY -6 /* `ai_family' not supported. */ --# define EAI_SOCKTYPE -7 /* `ai_socktype' not supported. */ --# define EAI_SERVICE -8 /* SERVICE not supported for `ai_socktype'. */ --# define EAI_MEMORY -10 /* Memory allocation failure. */ --# define EAI_SYSTEM -11 /* System error returned in `errno'. */ --# define EAI_OVERFLOW -12 /* Argument buffer overflow. */ --# ifdef __USE_GNU --# define EAI_NODATA -5 /* No address associated with NAME. */ --# define EAI_ADDRFAMILY -9 /* Address family for NAME not supported. */ --# define EAI_INPROGRESS -100 /* Processing request in progress. */ --# define EAI_CANCELED -101 /* Request canceled. */ --# define EAI_NOTCANCELED -102 /* Request not canceled. */ --# define EAI_ALLDONE -103 /* All requests done. */ --# define EAI_INTR -104 /* Interrupted by a signal. */ --# define EAI_IDN_ENCODE -105 /* IDN encoding failed. */ --# endif -- --# ifdef __USE_MISC --# define NI_MAXHOST 1025 --# define NI_MAXSERV 32 --# endif -- --# define NI_NUMERICHOST 1 /* Don't try to look up hostname. */ --# define NI_NUMERICSERV 2 /* Don't convert port number to name. */ --# define NI_NOFQDN 4 /* Only return nodename portion. */ --# define NI_NAMEREQD 8 /* Don't return numeric addresses. */ --# define NI_DGRAM 16 /* Look up UDP service rather than TCP. */ --# ifdef __USE_GNU --# define NI_IDN 32 /* Convert name from IDN format. */ --# define NI_IDN_ALLOW_UNASSIGNED 64 /* Don't reject unassigned Unicode -- code points. */ --# define NI_IDN_USE_STD3_ASCII_RULES 128 /* Validate strings according to -- STD3 rules. */ --# endif -- --/* Translate name of a service location and/or a service name to set of -- socket addresses. -- -- This function is a possible cancellation point and therefore not -- marked with __THROW. */ --extern int getaddrinfo (const char *__restrict __name, -- const char *__restrict __service, -- const struct addrinfo *__restrict __req, -- struct addrinfo **__restrict __pai); -- --/* Free `addrinfo' structure AI including associated storage. */ --extern void freeaddrinfo (struct addrinfo *__ai) __THROW; -- --/* Convert error return from getaddrinfo() to a string. */ --extern const char *gai_strerror (int __ecode) __THROW; -- --/* Translate a socket address to a location and service name. -- -- This function is a possible cancellation point and therefore not -- marked with __THROW. */ --extern int getnameinfo (const struct sockaddr *__restrict __sa, -- socklen_t __salen, char *__restrict __host, -- socklen_t __hostlen, char *__restrict __serv, -- socklen_t __servlen, int __flags); --#endif /* POSIX */ -- --#ifdef __USE_GNU --/* Enqueue ENT requests from the LIST. If MODE is GAI_WAIT wait until all -- requests are handled. If WAIT is GAI_NOWAIT return immediately after -- queueing the requests and signal completion according to SIG. -- -- This function is not part of POSIX and therefore no official -- cancellation point. But due to similarity with an POSIX interface -- or due to the implementation it is a cancellation point and -- therefore not marked with __THROW. */ --extern int getaddrinfo_a (int __mode, struct gaicb *__list[__restrict_arr], -- int __ent, struct sigevent *__restrict __sig); -- --/* Suspend execution of the thread until at least one of the ENT requests -- in LIST is handled. If TIMEOUT is not a null pointer it specifies the -- longest time the function keeps waiting before returning with an error. -- -- This function is not part of POSIX and therefore no official -- cancellation point. But due to similarity with an POSIX interface -- or due to the implementation it is a cancellation point and -- therefore not marked with __THROW. */ --extern int gai_suspend (const struct gaicb *const __list[], int __ent, -- const struct timespec *__timeout); -- --/* Get the error status of the request REQ. */ --extern int gai_error (struct gaicb *__req) __THROW; -- --/* Cancel the requests associated with GAICBP. */ --extern int gai_cancel (struct gaicb *__gaicbp) __THROW; --#endif /* GNU */ -- --__END_DECLS -- --#endif /* netdb.h */ -Index: glibc-2.20/resolv/resolv.h -=================================================================== ---- glibc-2.20.orig/resolv/resolv.h -+++ /dev/null -@@ -1,389 +0,0 @@ --/* -- * Copyright (c) 1983, 1987, 1989 -- * The Regents of the University of California. All rights reserved. -- * -- * Redistribution and use in source and binary forms, with or without -- * modification, are permitted provided that the following conditions -- * are met: -- * 1. Redistributions of source code must retain the above copyright -- * notice, this list of conditions and the following disclaimer. -- * 2. Redistributions in binary form must reproduce the above copyright -- * notice, this list of conditions and the following disclaimer in the -- * documentation and/or other materials provided with the distribution. -- * 4. Neither the name of the University nor the names of its contributors -- * may be used to endorse or promote products derived from this software -- * without specific prior written permission. -- * -- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -- * SUCH DAMAGE. -- */ -- --/* -- * Portions Copyright (c) 1996-1999 by Internet Software Consortium. -- * -- * Permission to use, copy, modify, and distribute this software for any -- * purpose with or without fee is hereby granted, provided that the above -- * copyright notice and this permission notice appear in all copies. -- * -- * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS -- * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES -- * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE -- * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL -- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR -- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -- * SOFTWARE. -- */ -- --/* -- * @(#)resolv.h 8.1 (Berkeley) 6/2/93 -- * $BINDId: resolv.h,v 8.31 2000/03/30 20:16:50 vixie Exp $ -- */ -- --#ifndef _RESOLV_H_ -- --/* These headers are needed for types used in the `struct res_state' -- declaration. */ --#include <sys/types.h> --#include <netinet/in.h> -- --#ifndef __need_res_state --# define _RESOLV_H_ -- --# include <sys/param.h> --# include <sys/cdefs.h> --# include <stdio.h> --# include <arpa/nameser.h> --#endif -- --#ifndef __res_state_defined --# define __res_state_defined -- --typedef enum { res_goahead, res_nextns, res_modified, res_done, res_error } -- res_sendhookact; -- --typedef res_sendhookact (*res_send_qhook) (struct sockaddr_in * const *__ns, -- const u_char **__query, -- int *__querylen, -- u_char *__ans, -- int __anssiz, -- int *__resplen); -- --typedef res_sendhookact (*res_send_rhook) (const struct sockaddr_in *__ns, -- const u_char *__query, -- int __querylen, -- u_char *__ans, -- int __anssiz, -- int *__resplen); -- --/* -- * Global defines and variables for resolver stub. -- */ --# define MAXNS 3 /* max # name servers we'll track */ --# define MAXDFLSRCH 3 /* # default domain levels to try */ --# define MAXDNSRCH 6 /* max # domains in search path */ --# define LOCALDOMAINPARTS 2 /* min levels in name that is "local" */ -- --# define RES_TIMEOUT 5 /* min. seconds between retries */ --# define MAXRESOLVSORT 10 /* number of net to sort on */ --# define RES_MAXNDOTS 15 /* should reflect bit field size */ --# define RES_MAXRETRANS 30 /* only for resolv.conf/RES_OPTIONS */ --# define RES_MAXRETRY 5 /* only for resolv.conf/RES_OPTIONS */ --# define RES_DFLRETRY 2 /* Default #/tries. */ --# define RES_MAXTIME 65535 /* Infinity, in milliseconds. */ -- --struct __res_state { -- int retrans; /* retransmition time interval */ -- int retry; /* number of times to retransmit */ -- u_long options; /* option flags - see below. */ -- int nscount; /* number of name servers */ -- struct sockaddr_in -- nsaddr_list[MAXNS]; /* address of name server */ --# define nsaddr nsaddr_list[0] /* for backward compatibility */ -- u_short id; /* current message id */ -- /* 2 byte hole here. */ -- char *dnsrch[MAXDNSRCH+1]; /* components of domain to search */ -- char defdname[256]; /* default domain (deprecated) */ -- u_long pfcode; /* RES_PRF_ flags - see below. */ -- unsigned ndots:4; /* threshold for initial abs. query */ -- unsigned nsort:4; /* number of elements in sort_list[] */ -- unsigned ipv6_unavail:1; /* connecting to IPv6 server failed */ -- unsigned unused:23; -- struct { -- struct in_addr addr; -- u_int32_t mask; -- } sort_list[MAXRESOLVSORT]; -- /* 4 byte hole here on 64-bit architectures. */ -- res_send_qhook qhook; /* query hook */ -- res_send_rhook rhook; /* response hook */ -- int res_h_errno; /* last one set for this context */ -- int _vcsock; /* PRIVATE: for res_send VC i/o */ -- u_int _flags; /* PRIVATE: see below */ -- /* 4 byte hole here on 64-bit architectures. */ -- union { -- char pad[52]; /* On an i386 this means 512b total. */ -- struct { -- u_int16_t nscount; -- u_int16_t nsmap[MAXNS]; -- int nssocks[MAXNS]; -- u_int16_t nscount6; -- u_int16_t nsinit; -- struct sockaddr_in6 *nsaddrs[MAXNS]; --#ifdef _LIBC -- unsigned long long int initstamp -- __attribute__((packed)); --#else -- unsigned int _initstamp[2]; --#endif -- } _ext; -- } _u; --}; -- --typedef struct __res_state *res_state; --# undef __need_res_state --#endif -- --#ifdef _RESOLV_H_ --/* -- * Revision information. This is the release date in YYYYMMDD format. -- * It can change every day so the right thing to do with it is use it -- * in preprocessor commands such as "#if (__RES > 19931104)". Do not -- * compare for equality; rather, use it to determine whether your resolver -- * is new enough to contain a certain feature. -- */ -- --#define __RES 19991006 -- --/* -- * Resolver configuration file. -- * Normally not present, but may contain the address of the -- * inital name server(s) to query and the domain search list. -- */ -- --#ifndef _PATH_RESCONF --#define _PATH_RESCONF "/etc/resolv.conf" --#endif -- --struct res_sym { -- int number; /* Identifying number, like T_MX */ -- char * name; /* Its symbolic name, like "MX" */ -- char * humanname; /* Its fun name, like "mail exchanger" */ --}; -- --/* -- * Resolver flags (used to be discrete per-module statics ints). -- */ --#define RES_F_VC 0x00000001 /* socket is TCP */ --#define RES_F_CONN 0x00000002 /* socket is connected */ --#define RES_F_EDNS0ERR 0x00000004 /* EDNS0 caused errors */ -- --/* res_findzonecut() options */ --#define RES_EXHAUSTIVE 0x00000001 /* always do all queries */ -- --/* -- * Resolver options (keep these in synch with res_debug.c, please) -- */ --#define RES_INIT 0x00000001 /* address initialized */ --#define RES_DEBUG 0x00000002 /* print debug messages */ --#define RES_AAONLY 0x00000004 /* authoritative answers only (!IMPL)*/ --#define RES_USEVC 0x00000008 /* use virtual circuit */ --#define RES_PRIMARY 0x00000010 /* query primary server only (!IMPL) */ --#define RES_IGNTC 0x00000020 /* ignore trucation errors */ --#define RES_RECURSE 0x00000040 /* recursion desired */ --#define RES_DEFNAMES 0x00000080 /* use default domain name */ --#define RES_STAYOPEN 0x00000100 /* Keep TCP socket open */ --#define RES_DNSRCH 0x00000200 /* search up local domain tree */ --#define RES_INSECURE1 0x00000400 /* type 1 security disabled */ --#define RES_INSECURE2 0x00000800 /* type 2 security disabled */ --#define RES_NOALIASES 0x00001000 /* shuts off HOSTALIASES feature */ --#define RES_USE_INET6 0x00002000 /* use/map IPv6 in gethostbyname() */ --#define RES_ROTATE 0x00004000 /* rotate ns list after each query */ --#define RES_NOCHECKNAME 0x00008000 /* do not check names for sanity (!IMPL) */ --#define RES_KEEPTSIG 0x00010000 /* do not strip TSIG records */ --#define RES_BLAST 0x00020000 /* blast all recursive servers */ --#define RES_USEBSTRING 0x00040000 /* IPv6 reverse lookup with byte -- strings */ --#define RES_NOIP6DOTINT 0x00080000 /* Do not use .ip6.int in IPv6 -- reverse lookup */ --#define RES_USE_EDNS0 0x00100000 /* Use EDNS0. */ --#define RES_SNGLKUP 0x00200000 /* one outstanding request at a time */ --#define RES_SNGLKUPREOP 0x00400000 /* -"-, but open new socket for each -- request */ --#define RES_USE_DNSSEC 0x00800000 /* use DNSSEC using OK bit in OPT */ --#define RES_NOTLDQUERY 0x01000000 /* Do not look up unqualified name -- as a TLD. */ -- --#define RES_DEFAULT (RES_RECURSE|RES_DEFNAMES|RES_DNSRCH|RES_NOIP6DOTINT) -- --/* -- * Resolver "pfcode" values. Used by dig. -- */ --#define RES_PRF_STATS 0x00000001 --#define RES_PRF_UPDATE 0x00000002 --#define RES_PRF_CLASS 0x00000004 --#define RES_PRF_CMD 0x00000008 --#define RES_PRF_QUES 0x00000010 --#define RES_PRF_ANS 0x00000020 --#define RES_PRF_AUTH 0x00000040 --#define RES_PRF_ADD 0x00000080 --#define RES_PRF_HEAD1 0x00000100 --#define RES_PRF_HEAD2 0x00000200 --#define RES_PRF_TTLID 0x00000400 --#define RES_PRF_HEADX 0x00000800 --#define RES_PRF_QUERY 0x00001000 --#define RES_PRF_REPLY 0x00002000 --#define RES_PRF_INIT 0x00004000 --/* 0x00008000 */ -- --/* Things involving an internal (static) resolver context. */ --__BEGIN_DECLS --extern struct __res_state *__res_state(void) __attribute__ ((__const__)); --__END_DECLS --#define _res (*__res_state()) -- --#ifndef __BIND_NOSTATIC --#define fp_nquery __fp_nquery --#define fp_query __fp_query --#define hostalias __hostalias --#define p_query __p_query --#define res_close __res_close --#define res_init __res_init --#define res_isourserver __res_isourserver --#define res_mkquery __res_mkquery --#define res_query __res_query --#define res_querydomain __res_querydomain --#define res_search __res_search --#define res_send __res_send -- --__BEGIN_DECLS --void fp_nquery (const u_char *, int, FILE *) __THROW; --void fp_query (const u_char *, FILE *) __THROW; --const char * hostalias (const char *) __THROW; --void p_query (const u_char *) __THROW; --void res_close (void) __THROW; --int res_init (void) __THROW; --int res_isourserver (const struct sockaddr_in *) __THROW; --int res_mkquery (int, const char *, int, int, const u_char *, -- int, const u_char *, u_char *, int) __THROW; --int res_query (const char *, int, int, u_char *, int) __THROW; --int res_querydomain (const char *, const char *, int, int, -- u_char *, int) __THROW; --int res_search (const char *, int, int, u_char *, int) __THROW; --int res_send (const u_char *, int, u_char *, int) __THROW; --__END_DECLS --#endif -- --#define b64_ntop __b64_ntop --#define b64_pton __b64_pton --#define dn_comp __dn_comp --#define dn_count_labels __dn_count_labels --#define dn_expand __dn_expand --#define dn_skipname __dn_skipname --#define fp_resstat __fp_resstat --#define loc_aton __loc_aton --#define loc_ntoa __loc_ntoa --#define p_cdname __p_cdname --#define p_cdnname __p_cdnname --#define p_class __p_class --#define p_fqname __p_fqname --#define p_fqnname __p_fqnname --#define p_option __p_option --#define p_secstodate __p_secstodate --#define p_section __p_section --#define p_time __p_time --#define p_type __p_type --#define p_rcode __p_rcode --#define putlong __putlong --#define putshort __putshort --#define res_dnok __res_dnok --#define res_hnok __res_hnok --#define res_hostalias __res_hostalias --#define res_mailok __res_mailok --#define res_nameinquery __res_nameinquery --#define res_nclose __res_nclose --#define res_ninit __res_ninit --#define res_nmkquery __res_nmkquery --#define res_npquery __res_npquery --#define res_nquery __res_nquery --#define res_nquerydomain __res_nquerydomain --#define res_nsearch __res_nsearch --#define res_nsend __res_nsend --#define res_nisourserver __res_nisourserver --#define res_ownok __res_ownok --#define res_queriesmatch __res_queriesmatch --#define res_randomid __res_randomid --#define sym_ntop __sym_ntop --#define sym_ntos __sym_ntos --#define sym_ston __sym_ston --__BEGIN_DECLS --int res_hnok (const char *) __THROW; --int res_ownok (const char *) __THROW; --int res_mailok (const char *) __THROW; --int res_dnok (const char *) __THROW; --int sym_ston (const struct res_sym *, const char *, int *) __THROW; --const char * sym_ntos (const struct res_sym *, int, int *) __THROW; --const char * sym_ntop (const struct res_sym *, int, int *) __THROW; --int b64_ntop (u_char const *, size_t, char *, size_t) __THROW; --int b64_pton (char const *, u_char *, size_t) __THROW; --int loc_aton (const char *__ascii, u_char *__binary) __THROW; --const char * loc_ntoa (const u_char *__binary, char *__ascii) __THROW; --int dn_skipname (const u_char *, const u_char *) __THROW; --void putlong (u_int32_t, u_char *) __THROW; --void putshort (u_int16_t, u_char *) __THROW; --const char * p_class (int) __THROW; --const char * p_time (u_int32_t) __THROW; --const char * p_type (int) __THROW; --const char * p_rcode (int) __THROW; --const u_char * p_cdnname (const u_char *, const u_char *, int, FILE *) -- __THROW; --const u_char * p_cdname (const u_char *, const u_char *, FILE *) __THROW; --const u_char * p_fqnname (const u_char *__cp, const u_char *__msg, -- int, char *, int) __THROW; --const u_char * p_fqname (const u_char *, const u_char *, FILE *) __THROW; --const char * p_option (u_long __option) __THROW; --char * p_secstodate (u_long) __THROW; --int dn_count_labels (const char *) __THROW; --int dn_comp (const char *, u_char *, int, u_char **, u_char **) -- __THROW; --int dn_expand (const u_char *, const u_char *, const u_char *, -- char *, int) __THROW; --u_int res_randomid (void) __THROW; --int res_nameinquery (const char *, int, int, -- const u_char *, const u_char *) __THROW; --int res_queriesmatch (const u_char *, const u_char *, -- const u_char *, const u_char *) __THROW; --const char * p_section (int __section, int __opcode) __THROW; --/* Things involving a resolver context. */ --int res_ninit (res_state) __THROW; --int res_nisourserver (const res_state, -- const struct sockaddr_in *) __THROW; --void fp_resstat (const res_state, FILE *) __THROW; --void res_npquery (const res_state, const u_char *, int, FILE *) -- __THROW; --const char * res_hostalias (const res_state, const char *, char *, size_t) -- __THROW; --int res_nquery (res_state, const char *, int, int, u_char *, int) -- __THROW; --int res_nsearch (res_state, const char *, int, int, u_char *, int) -- __THROW; --int res_nquerydomain (res_state, const char *, const char *, int, -- int, u_char *, int) __THROW; --int res_nmkquery (res_state, int, const char *, int, int, -- const u_char *, int, const u_char *, u_char *, -- int) __THROW; --int res_nsend (res_state, const u_char *, int, u_char *, int) -- __THROW; --void res_nclose (res_state) __THROW; --__END_DECLS --#endif -- --#endif /* !_RESOLV_H_ */ -Index: glibc-2.20/shadow/Makefile -=================================================================== ---- glibc-2.20.orig/shadow/Makefile -+++ glibc-2.20/shadow/Makefile -@@ -36,5 +36,6 @@ CFLAGS-fgetspent_r.c = -fexceptions $(li - CFLAGS-putspent.c = -fexceptions $(libio-mtsafe) - CFLAGS-getspnam.c = -fexceptions - CFLAGS-getspnam_r.c = -fexceptions -+CPPFLAGS-lckpwdf.c = -DSYSCONFDIR='"$(sysconfdir)"' - - include ../Rules -Index: glibc-2.20/shadow/lckpwdf.c -=================================================================== ---- glibc-2.20.orig/shadow/lckpwdf.c -+++ glibc-2.20/shadow/lckpwdf.c -@@ -29,7 +29,7 @@ - - - /* Name of the lock file. */ --#define PWD_LOCKFILE "/etc/.pwd.lock" -+#define PWD_LOCKFILE SYSCONFDIR "/.pwd.lock" - - /* How long to wait for getting the lock before returning with an - error. */ -Index: glibc-2.20/configure.ac -=================================================================== ---- glibc-2.20.orig/configure.ac -+++ glibc-2.20/configure.ac -@@ -2038,7 +2038,8 @@ RELEASE=`sed -n -e 's/^#define RELEASE " - AC_SUBST(VERSION) - AC_SUBST(RELEASE) - --AC_CONFIG_FILES([config.make Makefile]) -+AC_CONFIG_FILES([config.make Makefile nss/db-Makefile resolv/netdb.h resolv/resolv.h -+ sysdeps/generic/ldconfig.h]) - AC_CONFIG_COMMANDS([default],[[ - case $CONFIG_FILES in *config.make*) - echo "$config_vars" >> config.make;; -Index: glibc-2.20/resolv/netdb.h.in -=================================================================== ---- /dev/null -+++ glibc-2.20/resolv/netdb.h.in -@@ -0,0 +1,715 @@ -+ /* Copyright (C) 1996-2014 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, see -+ <http://www.gnu.org/licenses/>. */ -+ -+/* All data returned by the network data base library are supplied in -+ host order and returned in network order (suitable for use in -+ system calls). */ -+ -+#ifndef _NETDB_H -+#define _NETDB_H 1 -+ -+#include <features.h> -+ -+#include <netinet/in.h> -+#include <stdint.h> -+#ifdef __USE_MISC -+/* This is necessary to make this include file properly replace the -+ Sun version. */ -+# include <rpc/netdb.h> -+#endif -+ -+#ifdef __USE_GNU -+# define __need_sigevent_t -+# include <bits/siginfo.h> -+# define __need_timespec -+# include <time.h> -+#endif -+ -+#include <bits/netdb.h> -+ -+/* Absolute file name for network data base files. */ -+#define _PATH_HEQUIV "@libc_cv_sysconfdir@/hosts.equiv" -+#define _PATH_HOSTS "@libc_cv_sysconfdir@/hosts" -+#define _PATH_NETWORKS "@libc_cv_sysconfdir@/networks" -+#define _PATH_NSSWITCH_CONF "@libc_cv_sysconfdir@/nsswitch.conf" -+#define _PATH_PROTOCOLS "@libc_cv_sysconfdir@/protocols" -+#define _PATH_SERVICES "@libc_cv_sysconfdir@/services" -+ -+ -+__BEGIN_DECLS -+ -+#if defined __USE_MISC || !defined __USE_XOPEN2K8 -+/* Error status for non-reentrant lookup functions. -+ We use a macro to access always the thread-specific `h_errno' variable. */ -+# define h_errno (*__h_errno_location ()) -+ -+/* Function to get address of global `h_errno' variable. */ -+extern int *__h_errno_location (void) __THROW __attribute__ ((__const__)); -+ -+ -+/* Possible values left in `h_errno'. */ -+# define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found. */ -+# define TRY_AGAIN 2 /* Non-Authoritative Host not found, -+ or SERVERFAIL. */ -+# define NO_RECOVERY 3 /* Non recoverable errors, FORMERR, REFUSED, -+ NOTIMP. */ -+# define NO_DATA 4 /* Valid name, no data record of requested -+ type. */ -+#endif -+#ifdef __USE_MISC -+# define NETDB_INTERNAL -1 /* See errno. */ -+# define NETDB_SUCCESS 0 /* No problem. */ -+# define NO_ADDRESS NO_DATA /* No address, look for MX record. */ -+#endif -+ -+#if defined __USE_XOPEN2K || defined __USE_XOPEN_EXTENDED -+/* Highest reserved Internet port number. */ -+# define IPPORT_RESERVED 1024 -+#endif -+ -+#ifdef __USE_GNU -+/* Scope delimiter for getaddrinfo(), getnameinfo(). */ -+# define SCOPE_DELIMITER '%' -+#endif -+ -+#ifdef __USE_MISC -+/* Print error indicated by `h_errno' variable on standard error. STR -+ if non-null is printed before the error string. */ -+extern void herror (const char *__str) __THROW; -+ -+/* Return string associated with error ERR_NUM. */ -+extern const char *hstrerror (int __err_num) __THROW; -+#endif -+ -+ -+/* Description of data base entry for a single host. */ -+struct hostent -+{ -+ char *h_name; /* Official name of host. */ -+ char **h_aliases; /* Alias list. */ -+ int h_addrtype; /* Host address type. */ -+ int h_length; /* Length of address. */ -+ char **h_addr_list; /* List of addresses from name server. */ -+#ifdef __USE_MISC -+# define h_addr h_addr_list[0] /* Address, for backward compatibility.*/ -+#endif -+}; -+ -+/* Open host data base files and mark them as staying open even after -+ a later search if STAY_OPEN is non-zero. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern void sethostent (int __stay_open); -+ -+/* Close host data base files and clear `stay open' flag. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern void endhostent (void); -+ -+/* Get next entry from host data base file. Open data base if -+ necessary. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern struct hostent *gethostent (void); -+ -+/* Return entry from host data base which address match ADDR with -+ length LEN and type TYPE. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern struct hostent *gethostbyaddr (const void *__addr, __socklen_t __len, -+ int __type); -+ -+/* Return entry from host data base for host with NAME. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern struct hostent *gethostbyname (const char *__name); -+ -+#ifdef __USE_MISC -+/* Return entry from host data base for host with NAME. AF must be -+ set to the address type which is `AF_INET' for IPv4 or `AF_INET6' -+ for IPv6. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern struct hostent *gethostbyname2 (const char *__name, int __af); -+ -+/* Reentrant versions of the functions above. The additional -+ arguments specify a buffer of BUFLEN starting at BUF. The last -+ argument is a pointer to a variable which gets the value which -+ would be stored in the global variable `herrno' by the -+ non-reentrant functions. -+ -+ These functions are not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation they are cancellation points and -+ therefore not marked with __THROW. */ -+extern int gethostent_r (struct hostent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct hostent **__restrict __result, -+ int *__restrict __h_errnop); -+ -+extern int gethostbyaddr_r (const void *__restrict __addr, __socklen_t __len, -+ int __type, -+ struct hostent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct hostent **__restrict __result, -+ int *__restrict __h_errnop); -+ -+extern int gethostbyname_r (const char *__restrict __name, -+ struct hostent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct hostent **__restrict __result, -+ int *__restrict __h_errnop); -+ -+extern int gethostbyname2_r (const char *__restrict __name, int __af, -+ struct hostent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct hostent **__restrict __result, -+ int *__restrict __h_errnop); -+#endif /* misc */ -+ -+ -+/* Open network data base files and mark them as staying open even -+ after a later search if STAY_OPEN is non-zero. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern void setnetent (int __stay_open); -+ -+/* Close network data base files and clear `stay open' flag. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern void endnetent (void); -+ -+/* Get next entry from network data base file. Open data base if -+ necessary. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern struct netent *getnetent (void); -+ -+/* Return entry from network data base which address match NET and -+ type TYPE. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern struct netent *getnetbyaddr (uint32_t __net, int __type); -+ -+/* Return entry from network data base for network with NAME. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern struct netent *getnetbyname (const char *__name); -+ -+#ifdef __USE_MISC -+/* Reentrant versions of the functions above. The additional -+ arguments specify a buffer of BUFLEN starting at BUF. The last -+ argument is a pointer to a variable which gets the value which -+ would be stored in the global variable `herrno' by the -+ non-reentrant functions. -+ -+ These functions are not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation they are cancellation points and -+ therefore not marked with __THROW. */ -+extern int getnetent_r (struct netent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct netent **__restrict __result, -+ int *__restrict __h_errnop); -+ -+extern int getnetbyaddr_r (uint32_t __net, int __type, -+ struct netent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct netent **__restrict __result, -+ int *__restrict __h_errnop); -+ -+extern int getnetbyname_r (const char *__restrict __name, -+ struct netent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct netent **__restrict __result, -+ int *__restrict __h_errnop); -+#endif /* misc */ -+ -+ -+/* Description of data base entry for a single service. */ -+struct servent -+{ -+ char *s_name; /* Official service name. */ -+ char **s_aliases; /* Alias list. */ -+ int s_port; /* Port number. */ -+ char *s_proto; /* Protocol to use. */ -+}; -+ -+/* Open service data base files and mark them as staying open even -+ after a later search if STAY_OPEN is non-zero. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern void setservent (int __stay_open); -+ -+/* Close service data base files and clear `stay open' flag. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern void endservent (void); -+ -+/* Get next entry from service data base file. Open data base if -+ necessary. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern struct servent *getservent (void); -+ -+/* Return entry from network data base for network with NAME and -+ protocol PROTO. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern struct servent *getservbyname (const char *__name, const char *__proto); -+ -+/* Return entry from service data base which matches port PORT and -+ protocol PROTO. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern struct servent *getservbyport (int __port, const char *__proto); -+ -+ -+#ifdef __USE_MISC -+/* Reentrant versions of the functions above. The additional -+ arguments specify a buffer of BUFLEN starting at BUF. -+ -+ These functions are not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation they are cancellation points and -+ therefore not marked with __THROW. */ -+extern int getservent_r (struct servent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct servent **__restrict __result); -+ -+extern int getservbyname_r (const char *__restrict __name, -+ const char *__restrict __proto, -+ struct servent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct servent **__restrict __result); -+ -+extern int getservbyport_r (int __port, const char *__restrict __proto, -+ struct servent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct servent **__restrict __result); -+#endif /* misc */ -+ -+ -+/* Description of data base entry for a single service. */ -+struct protoent -+{ -+ char *p_name; /* Official protocol name. */ -+ char **p_aliases; /* Alias list. */ -+ int p_proto; /* Protocol number. */ -+}; -+ -+/* Open protocol data base files and mark them as staying open even -+ after a later search if STAY_OPEN is non-zero. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern void setprotoent (int __stay_open); -+ -+/* Close protocol data base files and clear `stay open' flag. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern void endprotoent (void); -+ -+/* Get next entry from protocol data base file. Open data base if -+ necessary. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern struct protoent *getprotoent (void); -+ -+/* Return entry from protocol data base for network with NAME. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern struct protoent *getprotobyname (const char *__name); -+ -+/* Return entry from protocol data base which number is PROTO. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern struct protoent *getprotobynumber (int __proto); -+ -+ -+#ifdef __USE_MISC -+/* Reentrant versions of the functions above. The additional -+ arguments specify a buffer of BUFLEN starting at BUF. -+ -+ These functions are not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation they are cancellation points and -+ therefore not marked with __THROW. */ -+extern int getprotoent_r (struct protoent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct protoent **__restrict __result); -+ -+extern int getprotobyname_r (const char *__restrict __name, -+ struct protoent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct protoent **__restrict __result); -+ -+extern int getprotobynumber_r (int __proto, -+ struct protoent *__restrict __result_buf, -+ char *__restrict __buf, size_t __buflen, -+ struct protoent **__restrict __result); -+ -+ -+/* Establish network group NETGROUP for enumeration. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int setnetgrent (const char *__netgroup); -+ -+/* Free all space allocated by previous `setnetgrent' call. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern void endnetgrent (void); -+ -+/* Get next member of netgroup established by last `setnetgrent' call -+ and return pointers to elements in HOSTP, USERP, and DOMAINP. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int getnetgrent (char **__restrict __hostp, -+ char **__restrict __userp, -+ char **__restrict __domainp); -+ -+ -+/* Test whether NETGROUP contains the triple (HOST,USER,DOMAIN). -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int innetgr (const char *__netgroup, const char *__host, -+ const char *__user, const char *__domain); -+ -+/* Reentrant version of `getnetgrent' where result is placed in BUFFER. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int getnetgrent_r (char **__restrict __hostp, -+ char **__restrict __userp, -+ char **__restrict __domainp, -+ char *__restrict __buffer, size_t __buflen); -+#endif /* misc */ -+ -+ -+#ifdef __USE_MISC -+/* Call `rshd' at port RPORT on remote machine *AHOST to execute CMD. -+ The local user is LOCUSER, on the remote machine the command is -+ executed as REMUSER. In *FD2P the descriptor to the socket for the -+ connection is returned. The caller must have the right to use a -+ reserved port. When the function returns *AHOST contains the -+ official host name. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int rcmd (char **__restrict __ahost, unsigned short int __rport, -+ const char *__restrict __locuser, -+ const char *__restrict __remuser, -+ const char *__restrict __cmd, int *__restrict __fd2p); -+ -+/* This is the equivalent function where the protocol can be selected -+ and which therefore can be used for IPv6. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int rcmd_af (char **__restrict __ahost, unsigned short int __rport, -+ const char *__restrict __locuser, -+ const char *__restrict __remuser, -+ const char *__restrict __cmd, int *__restrict __fd2p, -+ sa_family_t __af); -+ -+/* Call `rexecd' at port RPORT on remote machine *AHOST to execute -+ CMD. The process runs at the remote machine using the ID of user -+ NAME whose cleartext password is PASSWD. In *FD2P the descriptor -+ to the socket for the connection is returned. When the function -+ returns *AHOST contains the official host name. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int rexec (char **__restrict __ahost, int __rport, -+ const char *__restrict __name, -+ const char *__restrict __pass, -+ const char *__restrict __cmd, int *__restrict __fd2p); -+ -+/* This is the equivalent function where the protocol can be selected -+ and which therefore can be used for IPv6. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int rexec_af (char **__restrict __ahost, int __rport, -+ const char *__restrict __name, -+ const char *__restrict __pass, -+ const char *__restrict __cmd, int *__restrict __fd2p, -+ sa_family_t __af); -+ -+/* Check whether user REMUSER on system RHOST is allowed to login as LOCUSER. -+ If SUSER is not zero the user tries to become superuser. Return 0 if -+ it is possible. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int ruserok (const char *__rhost, int __suser, -+ const char *__remuser, const char *__locuser); -+ -+/* This is the equivalent function where the protocol can be selected -+ and which therefore can be used for IPv6. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int ruserok_af (const char *__rhost, int __suser, -+ const char *__remuser, const char *__locuser, -+ sa_family_t __af); -+ -+/* Check whether user REMUSER on system indicated by IPv4 address -+ RADDR is allowed to login as LOCUSER. Non-IPv4 (e.g., IPv6) are -+ not supported. If SUSER is not zero the user tries to become -+ superuser. Return 0 if it is possible. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int iruserok (uint32_t __raddr, int __suser, -+ const char *__remuser, const char *__locuser); -+ -+/* This is the equivalent function where the pfamiliy if the address -+ pointed to by RADDR is determined by the value of AF. It therefore -+ can be used for IPv6 -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int iruserok_af (const void *__raddr, int __suser, -+ const char *__remuser, const char *__locuser, -+ sa_family_t __af); -+ -+/* Try to allocate reserved port, returning a descriptor for a socket opened -+ at this port or -1 if unsuccessful. The search for an available port -+ will start at ALPORT and continues with lower numbers. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int rresvport (int *__alport); -+ -+/* This is the equivalent function where the protocol can be selected -+ and which therefore can be used for IPv6. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int rresvport_af (int *__alport, sa_family_t __af); -+#endif -+ -+ -+/* Extension from POSIX.1g. */ -+#ifdef __USE_POSIX -+/* Structure to contain information about address of a service provider. */ -+struct addrinfo -+{ -+ int ai_flags; /* Input flags. */ -+ int ai_family; /* Protocol family for socket. */ -+ int ai_socktype; /* Socket type. */ -+ int ai_protocol; /* Protocol for socket. */ -+ socklen_t ai_addrlen; /* Length of socket address. */ -+ struct sockaddr *ai_addr; /* Socket address for socket. */ -+ char *ai_canonname; /* Canonical name for service location. */ -+ struct addrinfo *ai_next; /* Pointer to next in list. */ -+}; -+ -+# ifdef __USE_GNU -+/* Structure used as control block for asynchronous lookup. */ -+struct gaicb -+{ -+ const char *ar_name; /* Name to look up. */ -+ const char *ar_service; /* Service name. */ -+ const struct addrinfo *ar_request; /* Additional request specification. */ -+ struct addrinfo *ar_result; /* Pointer to result. */ -+ /* The following are internal elements. */ -+ int __return; -+ int __glibc_reserved[5]; -+}; -+ -+/* Lookup mode. */ -+# define GAI_WAIT 0 -+# define GAI_NOWAIT 1 -+# endif -+ -+/* Possible values for `ai_flags' field in `addrinfo' structure. */ -+# define AI_PASSIVE 0x0001 /* Socket address is intended for `bind'. */ -+# define AI_CANONNAME 0x0002 /* Request for canonical name. */ -+# define AI_NUMERICHOST 0x0004 /* Don't use name resolution. */ -+# define AI_V4MAPPED 0x0008 /* IPv4 mapped addresses are acceptable. */ -+# define AI_ALL 0x0010 /* Return IPv4 mapped and IPv6 addresses. */ -+# define AI_ADDRCONFIG 0x0020 /* Use configuration of this host to choose -+ returned address type.. */ -+# ifdef __USE_GNU -+# define AI_IDN 0x0040 /* IDN encode input (assuming it is encoded -+ in the current locale's character set) -+ before looking it up. */ -+# define AI_CANONIDN 0x0080 /* Translate canonical name from IDN format. */ -+# define AI_IDN_ALLOW_UNASSIGNED 0x0100 /* Don't reject unassigned Unicode -+ code points. */ -+# define AI_IDN_USE_STD3_ASCII_RULES 0x0200 /* Validate strings according to -+ STD3 rules. */ -+# endif -+# define AI_NUMERICSERV 0x0400 /* Don't use name resolution. */ -+ -+/* Error values for `getaddrinfo' function. */ -+# define EAI_BADFLAGS -1 /* Invalid value for `ai_flags' field. */ -+# define EAI_NONAME -2 /* NAME or SERVICE is unknown. */ -+# define EAI_AGAIN -3 /* Temporary failure in name resolution. */ -+# define EAI_FAIL -4 /* Non-recoverable failure in name res. */ -+# define EAI_FAMILY -6 /* `ai_family' not supported. */ -+# define EAI_SOCKTYPE -7 /* `ai_socktype' not supported. */ -+# define EAI_SERVICE -8 /* SERVICE not supported for `ai_socktype'. */ -+# define EAI_MEMORY -10 /* Memory allocation failure. */ -+# define EAI_SYSTEM -11 /* System error returned in `errno'. */ -+# define EAI_OVERFLOW -12 /* Argument buffer overflow. */ -+# ifdef __USE_GNU -+# define EAI_NODATA -5 /* No address associated with NAME. */ -+# define EAI_ADDRFAMILY -9 /* Address family for NAME not supported. */ -+# define EAI_INPROGRESS -100 /* Processing request in progress. */ -+# define EAI_CANCELED -101 /* Request canceled. */ -+# define EAI_NOTCANCELED -102 /* Request not canceled. */ -+# define EAI_ALLDONE -103 /* All requests done. */ -+# define EAI_INTR -104 /* Interrupted by a signal. */ -+# define EAI_IDN_ENCODE -105 /* IDN encoding failed. */ -+# endif -+ -+# ifdef __USE_MISC -+# define NI_MAXHOST 1025 -+# define NI_MAXSERV 32 -+# endif -+ -+# define NI_NUMERICHOST 1 /* Don't try to look up hostname. */ -+# define NI_NUMERICSERV 2 /* Don't convert port number to name. */ -+# define NI_NOFQDN 4 /* Only return nodename portion. */ -+# define NI_NAMEREQD 8 /* Don't return numeric addresses. */ -+# define NI_DGRAM 16 /* Look up UDP service rather than TCP. */ -+# ifdef __USE_GNU -+# define NI_IDN 32 /* Convert name from IDN format. */ -+# define NI_IDN_ALLOW_UNASSIGNED 64 /* Don't reject unassigned Unicode -+ code points. */ -+# define NI_IDN_USE_STD3_ASCII_RULES 128 /* Validate strings according to -+ STD3 rules. */ -+# endif -+ -+/* Translate name of a service location and/or a service name to set of -+ socket addresses. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern int getaddrinfo (const char *__restrict __name, -+ const char *__restrict __service, -+ const struct addrinfo *__restrict __req, -+ struct addrinfo **__restrict __pai); -+ -+/* Free `addrinfo' structure AI including associated storage. */ -+extern void freeaddrinfo (struct addrinfo *__ai) __THROW; -+ -+/* Convert error return from getaddrinfo() to a string. */ -+extern const char *gai_strerror (int __ecode) __THROW; -+ -+/* Translate a socket address to a location and service name. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern int getnameinfo (const struct sockaddr *__restrict __sa, -+ socklen_t __salen, char *__restrict __host, -+ socklen_t __hostlen, char *__restrict __serv, -+ socklen_t __servlen, int __flags); -+#endif /* POSIX */ -+ -+#ifdef __USE_GNU -+/* Enqueue ENT requests from the LIST. If MODE is GAI_WAIT wait until all -+ requests are handled. If WAIT is GAI_NOWAIT return immediately after -+ queueing the requests and signal completion according to SIG. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int getaddrinfo_a (int __mode, struct gaicb *__list[__restrict_arr], -+ int __ent, struct sigevent *__restrict __sig); -+ -+/* Suspend execution of the thread until at least one of the ENT requests -+ in LIST is handled. If TIMEOUT is not a null pointer it specifies the -+ longest time the function keeps waiting before returning with an error. -+ -+ This function is not part of POSIX and therefore no official -+ cancellation point. But due to similarity with an POSIX interface -+ or due to the implementation it is a cancellation point and -+ therefore not marked with __THROW. */ -+extern int gai_suspend (const struct gaicb *const __list[], int __ent, -+ const struct timespec *__timeout); -+ -+/* Get the error status of the request REQ. */ -+extern int gai_error (struct gaicb *__req) __THROW; -+ -+/* Cancel the requests associated with GAICBP. */ -+extern int gai_cancel (struct gaicb *__gaicbp) __THROW; -+#endif /* GNU */ -+ -+__END_DECLS -+ -+#endif /* netdb.h */ -Index: glibc-2.20/resolv/resolv.h.in -=================================================================== ---- /dev/null -+++ glibc-2.20/resolv/resolv.h.in -@@ -0,0 +1,389 @@ -+/* -+ * Copyright (c) 1983, 1987, 1989 -+ * The Regents of the University of California. All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * 4. Neither the name of the University nor the names of its contributors -+ * may be used to endorse or promote products derived from this software -+ * without specific prior written permission. -+ * -+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ */ -+ -+/* -+ * Portions Copyright (c) 1996-1999 by Internet Software Consortium. -+ * -+ * Permission to use, copy, modify, and distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS -+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES -+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE -+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL -+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR -+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -+ * SOFTWARE. -+ */ -+ -+/* -+ * @(#)resolv.h 8.1 (Berkeley) 6/2/93 -+ * $BINDId: resolv.h,v 8.31 2000/03/30 20:16:50 vixie Exp $ -+ */ -+ -+#ifndef _RESOLV_H_ -+ -+/* These headers are needed for types used in the `struct res_state' -+ declaration. */ -+#include <sys/types.h> -+#include <netinet/in.h> -+ -+#ifndef __need_res_state -+# define _RESOLV_H_ -+ -+# include <sys/param.h> -+# include <sys/cdefs.h> -+# include <stdio.h> -+# include <arpa/nameser.h> -+#endif -+ -+#ifndef __res_state_defined -+# define __res_state_defined -+ -+typedef enum { res_goahead, res_nextns, res_modified, res_done, res_error } -+ res_sendhookact; -+ -+typedef res_sendhookact (*res_send_qhook) (struct sockaddr_in * const *__ns, -+ const u_char **__query, -+ int *__querylen, -+ u_char *__ans, -+ int __anssiz, -+ int *__resplen); -+ -+typedef res_sendhookact (*res_send_rhook) (const struct sockaddr_in *__ns, -+ const u_char *__query, -+ int __querylen, -+ u_char *__ans, -+ int __anssiz, -+ int *__resplen); -+ -+/* -+ * Global defines and variables for resolver stub. -+ */ -+# define MAXNS 3 /* max # name servers we'll track */ -+# define MAXDFLSRCH 3 /* # default domain levels to try */ -+# define MAXDNSRCH 6 /* max # domains in search path */ -+# define LOCALDOMAINPARTS 2 /* min levels in name that is "local" */ -+ -+# define RES_TIMEOUT 5 /* min. seconds between retries */ -+# define MAXRESOLVSORT 10 /* number of net to sort on */ -+# define RES_MAXNDOTS 15 /* should reflect bit field size */ -+# define RES_MAXRETRANS 30 /* only for resolv.conf/RES_OPTIONS */ -+# define RES_MAXRETRY 5 /* only for resolv.conf/RES_OPTIONS */ -+# define RES_DFLRETRY 2 /* Default #/tries. */ -+# define RES_MAXTIME 65535 /* Infinity, in milliseconds. */ -+ -+struct __res_state { -+ int retrans; /* retransmition time interval */ -+ int retry; /* number of times to retransmit */ -+ u_long options; /* option flags - see below. */ -+ int nscount; /* number of name servers */ -+ struct sockaddr_in -+ nsaddr_list[MAXNS]; /* address of name server */ -+# define nsaddr nsaddr_list[0] /* for backward compatibility */ -+ u_short id; /* current message id */ -+ /* 2 byte hole here. */ -+ char *dnsrch[MAXDNSRCH+1]; /* components of domain to search */ -+ char defdname[256]; /* default domain (deprecated) */ -+ u_long pfcode; /* RES_PRF_ flags - see below. */ -+ unsigned ndots:4; /* threshold for initial abs. query */ -+ unsigned nsort:4; /* number of elements in sort_list[] */ -+ unsigned ipv6_unavail:1; /* connecting to IPv6 server failed */ -+ unsigned unused:23; -+ struct { -+ struct in_addr addr; -+ u_int32_t mask; -+ } sort_list[MAXRESOLVSORT]; -+ /* 4 byte hole here on 64-bit architectures. */ -+ res_send_qhook qhook; /* query hook */ -+ res_send_rhook rhook; /* response hook */ -+ int res_h_errno; /* last one set for this context */ -+ int _vcsock; /* PRIVATE: for res_send VC i/o */ -+ u_int _flags; /* PRIVATE: see below */ -+ /* 4 byte hole here on 64-bit architectures. */ -+ union { -+ char pad[52]; /* On an i386 this means 512b total. */ -+ struct { -+ u_int16_t nscount; -+ u_int16_t nsmap[MAXNS]; -+ int nssocks[MAXNS]; -+ u_int16_t nscount6; -+ u_int16_t nsinit; -+ struct sockaddr_in6 *nsaddrs[MAXNS]; -+#ifdef _LIBC -+ unsigned long long int initstamp -+ __attribute__((packed)); -+#else -+ unsigned int _initstamp[2]; -+#endif -+ } _ext; -+ } _u; -+}; -+ -+typedef struct __res_state *res_state; -+# undef __need_res_state -+#endif -+ -+#ifdef _RESOLV_H_ -+/* -+ * Revision information. This is the release date in YYYYMMDD format. -+ * It can change every day so the right thing to do with it is use it -+ * in preprocessor commands such as "#if (__RES > 19931104)". Do not -+ * compare for equality; rather, use it to determine whether your resolver -+ * is new enough to contain a certain feature. -+ */ -+ -+#define __RES 19991006 -+ -+/* -+ * Resolver configuration file. -+ * Normally not present, but may contain the address of the -+ * inital name server(s) to query and the domain search list. -+ */ -+ -+#ifndef _PATH_RESCONF -+#define _PATH_RESCONF "@libc_cv_sysconfdir@/resolv.conf" -+#endif -+ -+struct res_sym { -+ int number; /* Identifying number, like T_MX */ -+ char * name; /* Its symbolic name, like "MX" */ -+ char * humanname; /* Its fun name, like "mail exchanger" */ -+}; -+ -+/* -+ * Resolver flags (used to be discrete per-module statics ints). -+ */ -+#define RES_F_VC 0x00000001 /* socket is TCP */ -+#define RES_F_CONN 0x00000002 /* socket is connected */ -+#define RES_F_EDNS0ERR 0x00000004 /* EDNS0 caused errors */ -+ -+/* res_findzonecut() options */ -+#define RES_EXHAUSTIVE 0x00000001 /* always do all queries */ -+ -+/* -+ * Resolver options (keep these in synch with res_debug.c, please) -+ */ -+#define RES_INIT 0x00000001 /* address initialized */ -+#define RES_DEBUG 0x00000002 /* print debug messages */ -+#define RES_AAONLY 0x00000004 /* authoritative answers only (!IMPL)*/ -+#define RES_USEVC 0x00000008 /* use virtual circuit */ -+#define RES_PRIMARY 0x00000010 /* query primary server only (!IMPL) */ -+#define RES_IGNTC 0x00000020 /* ignore trucation errors */ -+#define RES_RECURSE 0x00000040 /* recursion desired */ -+#define RES_DEFNAMES 0x00000080 /* use default domain name */ -+#define RES_STAYOPEN 0x00000100 /* Keep TCP socket open */ -+#define RES_DNSRCH 0x00000200 /* search up local domain tree */ -+#define RES_INSECURE1 0x00000400 /* type 1 security disabled */ -+#define RES_INSECURE2 0x00000800 /* type 2 security disabled */ -+#define RES_NOALIASES 0x00001000 /* shuts off HOSTALIASES feature */ -+#define RES_USE_INET6 0x00002000 /* use/map IPv6 in gethostbyname() */ -+#define RES_ROTATE 0x00004000 /* rotate ns list after each query */ -+#define RES_NOCHECKNAME 0x00008000 /* do not check names for sanity (!IMPL) */ -+#define RES_KEEPTSIG 0x00010000 /* do not strip TSIG records */ -+#define RES_BLAST 0x00020000 /* blast all recursive servers */ -+#define RES_USEBSTRING 0x00040000 /* IPv6 reverse lookup with byte -+ strings */ -+#define RES_NOIP6DOTINT 0x00080000 /* Do not use .ip6.int in IPv6 -+ reverse lookup */ -+#define RES_USE_EDNS0 0x00100000 /* Use EDNS0. */ -+#define RES_SNGLKUP 0x00200000 /* one outstanding request at a time */ -+#define RES_SNGLKUPREOP 0x00400000 /* -"-, but open new socket for each -+ request */ -+#define RES_USE_DNSSEC 0x00800000 /* use DNSSEC using OK bit in OPT */ -+#define RES_NOTLDQUERY 0x01000000 /* Do not look up unqualified name -+ as a TLD. */ -+ -+#define RES_DEFAULT (RES_RECURSE|RES_DEFNAMES|RES_DNSRCH|RES_NOIP6DOTINT) -+ -+/* -+ * Resolver "pfcode" values. Used by dig. -+ */ -+#define RES_PRF_STATS 0x00000001 -+#define RES_PRF_UPDATE 0x00000002 -+#define RES_PRF_CLASS 0x00000004 -+#define RES_PRF_CMD 0x00000008 -+#define RES_PRF_QUES 0x00000010 -+#define RES_PRF_ANS 0x00000020 -+#define RES_PRF_AUTH 0x00000040 -+#define RES_PRF_ADD 0x00000080 -+#define RES_PRF_HEAD1 0x00000100 -+#define RES_PRF_HEAD2 0x00000200 -+#define RES_PRF_TTLID 0x00000400 -+#define RES_PRF_HEADX 0x00000800 -+#define RES_PRF_QUERY 0x00001000 -+#define RES_PRF_REPLY 0x00002000 -+#define RES_PRF_INIT 0x00004000 -+/* 0x00008000 */ -+ -+/* Things involving an internal (static) resolver context. */ -+__BEGIN_DECLS -+extern struct __res_state *__res_state(void) __attribute__ ((__const__)); -+__END_DECLS -+#define _res (*__res_state()) -+ -+#ifndef __BIND_NOSTATIC -+#define fp_nquery __fp_nquery -+#define fp_query __fp_query -+#define hostalias __hostalias -+#define p_query __p_query -+#define res_close __res_close -+#define res_init __res_init -+#define res_isourserver __res_isourserver -+#define res_mkquery __res_mkquery -+#define res_query __res_query -+#define res_querydomain __res_querydomain -+#define res_search __res_search -+#define res_send __res_send -+ -+__BEGIN_DECLS -+void fp_nquery (const u_char *, int, FILE *) __THROW; -+void fp_query (const u_char *, FILE *) __THROW; -+const char * hostalias (const char *) __THROW; -+void p_query (const u_char *) __THROW; -+void res_close (void) __THROW; -+int res_init (void) __THROW; -+int res_isourserver (const struct sockaddr_in *) __THROW; -+int res_mkquery (int, const char *, int, int, const u_char *, -+ int, const u_char *, u_char *, int) __THROW; -+int res_query (const char *, int, int, u_char *, int) __THROW; -+int res_querydomain (const char *, const char *, int, int, -+ u_char *, int) __THROW; -+int res_search (const char *, int, int, u_char *, int) __THROW; -+int res_send (const u_char *, int, u_char *, int) __THROW; -+__END_DECLS -+#endif -+ -+#define b64_ntop __b64_ntop -+#define b64_pton __b64_pton -+#define dn_comp __dn_comp -+#define dn_count_labels __dn_count_labels -+#define dn_expand __dn_expand -+#define dn_skipname __dn_skipname -+#define fp_resstat __fp_resstat -+#define loc_aton __loc_aton -+#define loc_ntoa __loc_ntoa -+#define p_cdname __p_cdname -+#define p_cdnname __p_cdnname -+#define p_class __p_class -+#define p_fqname __p_fqname -+#define p_fqnname __p_fqnname -+#define p_option __p_option -+#define p_secstodate __p_secstodate -+#define p_section __p_section -+#define p_time __p_time -+#define p_type __p_type -+#define p_rcode __p_rcode -+#define putlong __putlong -+#define putshort __putshort -+#define res_dnok __res_dnok -+#define res_hnok __res_hnok -+#define res_hostalias __res_hostalias -+#define res_mailok __res_mailok -+#define res_nameinquery __res_nameinquery -+#define res_nclose __res_nclose -+#define res_ninit __res_ninit -+#define res_nmkquery __res_nmkquery -+#define res_npquery __res_npquery -+#define res_nquery __res_nquery -+#define res_nquerydomain __res_nquerydomain -+#define res_nsearch __res_nsearch -+#define res_nsend __res_nsend -+#define res_nisourserver __res_nisourserver -+#define res_ownok __res_ownok -+#define res_queriesmatch __res_queriesmatch -+#define res_randomid __res_randomid -+#define sym_ntop __sym_ntop -+#define sym_ntos __sym_ntos -+#define sym_ston __sym_ston -+__BEGIN_DECLS -+int res_hnok (const char *) __THROW; -+int res_ownok (const char *) __THROW; -+int res_mailok (const char *) __THROW; -+int res_dnok (const char *) __THROW; -+int sym_ston (const struct res_sym *, const char *, int *) __THROW; -+const char * sym_ntos (const struct res_sym *, int, int *) __THROW; -+const char * sym_ntop (const struct res_sym *, int, int *) __THROW; -+int b64_ntop (u_char const *, size_t, char *, size_t) __THROW; -+int b64_pton (char const *, u_char *, size_t) __THROW; -+int loc_aton (const char *__ascii, u_char *__binary) __THROW; -+const char * loc_ntoa (const u_char *__binary, char *__ascii) __THROW; -+int dn_skipname (const u_char *, const u_char *) __THROW; -+void putlong (u_int32_t, u_char *) __THROW; -+void putshort (u_int16_t, u_char *) __THROW; -+const char * p_class (int) __THROW; -+const char * p_time (u_int32_t) __THROW; -+const char * p_type (int) __THROW; -+const char * p_rcode (int) __THROW; -+const u_char * p_cdnname (const u_char *, const u_char *, int, FILE *) -+ __THROW; -+const u_char * p_cdname (const u_char *, const u_char *, FILE *) __THROW; -+const u_char * p_fqnname (const u_char *__cp, const u_char *__msg, -+ int, char *, int) __THROW; -+const u_char * p_fqname (const u_char *, const u_char *, FILE *) __THROW; -+const char * p_option (u_long __option) __THROW; -+char * p_secstodate (u_long) __THROW; -+int dn_count_labels (const char *) __THROW; -+int dn_comp (const char *, u_char *, int, u_char **, u_char **) -+ __THROW; -+int dn_expand (const u_char *, const u_char *, const u_char *, -+ char *, int) __THROW; -+u_int res_randomid (void) __THROW; -+int res_nameinquery (const char *, int, int, -+ const u_char *, const u_char *) __THROW; -+int res_queriesmatch (const u_char *, const u_char *, -+ const u_char *, const u_char *) __THROW; -+const char * p_section (int __section, int __opcode) __THROW; -+/* Things involving a resolver context. */ -+int res_ninit (res_state) __THROW; -+int res_nisourserver (const res_state, -+ const struct sockaddr_in *) __THROW; -+void fp_resstat (const res_state, FILE *) __THROW; -+void res_npquery (const res_state, const u_char *, int, FILE *) -+ __THROW; -+const char * res_hostalias (const res_state, const char *, char *, size_t) -+ __THROW; -+int res_nquery (res_state, const char *, int, int, u_char *, int) -+ __THROW; -+int res_nsearch (res_state, const char *, int, int, u_char *, int) -+ __THROW; -+int res_nquerydomain (res_state, const char *, const char *, int, -+ int, u_char *, int) __THROW; -+int res_nmkquery (res_state, int, const char *, int, int, -+ const u_char *, int, const u_char *, u_char *, -+ int) __THROW; -+int res_nsend (res_state, const u_char *, int, u_char *, int) -+ __THROW; -+void res_nclose (res_state) __THROW; -+__END_DECLS -+#endif -+ -+#endif /* !_RESOLV_H_ */ -Index: glibc-2.20/configure -=================================================================== ---- glibc-2.20.orig/configure -+++ glibc-2.20/configure -@@ -7177,7 +7177,7 @@ RELEASE=`sed -n -e 's/^#define RELEASE " - - - --ac_config_files="$ac_config_files config.make Makefile" -+ac_config_files="$ac_config_files config.make Makefile nss/db-Makefile resolv/netdb.h resolv/resolv.h sysdeps/generic/ldconfig.h" - - ac_config_commands="$ac_config_commands default" - -@@ -7897,6 +7897,10 @@ do - "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - "config.make") CONFIG_FILES="$CONFIG_FILES config.make" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; -+ "nss/db-Makefile") CONFIG_FILES="$CONFIG_FILES nss/db-Makefile" ;; -+ "resolv/netdb.h") CONFIG_FILES="$CONFIG_FILES resolv/netdb.h" ;; -+ "resolv/resolv.h") CONFIG_FILES="$CONFIG_FILES resolv/resolv.h" ;; -+ "sysdeps/generic/ldconfig.h") CONFIG_FILES="$CONFIG_FILES sysdeps/generic/ldconfig.h" ;; - "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; -Index: glibc-2.20/sysdeps/generic/ldconfig.h -=================================================================== ---- glibc-2.20.orig/sysdeps/generic/ldconfig.h -+++ /dev/null -@@ -1,94 +0,0 @@ --/* Copyright (C) 1999-2014 Free Software Foundation, Inc. -- This file is part of the GNU C Library. -- Contributed by Andreas Jaeger <aj@suse.de>, 1999. -- -- 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, see -- <http://www.gnu.org/licenses/>. */ -- --#ifndef _LDCONFIG_H --#define _LDCONFIG_H -- --#include <stdint.h> -- --#define FLAG_ANY -1 --#define FLAG_TYPE_MASK 0x00ff --#define FLAG_LIBC4 0x0000 --#define FLAG_ELF 0x0001 --#define FLAG_ELF_LIBC5 0x0002 --#define FLAG_ELF_LIBC6 0x0003 --#define FLAG_REQUIRED_MASK 0xff00 --#define FLAG_SPARC_LIB64 0x0100 --#define FLAG_IA64_LIB64 0x0200 --#define FLAG_X8664_LIB64 0x0300 --#define FLAG_S390_LIB64 0x0400 --#define FLAG_POWERPC_LIB64 0x0500 --#define FLAG_MIPS64_LIBN32 0x0600 --#define FLAG_MIPS64_LIBN64 0x0700 --#define FLAG_X8664_LIBX32 0x0800 --#define FLAG_ARM_LIBHF 0x0900 --#define FLAG_AARCH64_LIB64 0x0a00 --#define FLAG_ARM_LIBSF 0x0b00 --#define FLAG_MIPS_LIB32_NAN2008 0x0c00 --#define FLAG_MIPS64_LIBN32_NAN2008 0x0d00 --#define FLAG_MIPS64_LIBN64_NAN2008 0x0e00 -- --/* Name of auxiliary cache. */ --#define _PATH_LDCONFIG_AUX_CACHE "/var/cache/ldconfig/aux-cache" -- --/* Declared in cache.c. */ --extern void print_cache (const char *cache_name); -- --extern void init_cache (void); -- --extern void save_cache (const char *cache_name); -- --extern void add_to_cache (const char *path, const char *lib, int flags, -- unsigned int osversion, uint64_t hwcap); -- --extern void init_aux_cache (void); -- --extern void load_aux_cache (const char *aux_cache_name); -- --extern int search_aux_cache (struct stat64 *stat_buf, int *flags, -- unsigned int *osversion, char **soname); -- --extern void add_to_aux_cache (struct stat64 *stat_buf, int flags, -- unsigned int osversion, const char *soname); -- --extern void save_aux_cache (const char *aux_cache_name); -- --/* Declared in readlib.c. */ --extern int process_file (const char *real_file_name, const char *file_name, -- const char *lib, int *flag, unsigned int *osversion, -- char **soname, int is_link, struct stat64 *stat_buf); -- --extern char *implicit_soname (const char *lib, int flag); -- --/* Declared in readelflib.c. */ --extern int process_elf_file (const char *file_name, const char *lib, int *flag, -- unsigned int *osversion, char **soname, -- void *file_contents, size_t file_length); -- --/* Declared in chroot_canon.c. */ --extern char *chroot_canon (const char *chroot, const char *name); -- --/* Declared in ldconfig.c. */ --extern int opt_verbose; -- --extern int opt_format; -- --/* Prototypes for a few program-wide used functions. */ --#include <programs/xmalloc.h> -- --#endif /* ! _LDCONFIG_H */ -Index: glibc-2.20/sysdeps/generic/ldconfig.h.in -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/generic/ldconfig.h.in -@@ -0,0 +1,94 @@ -+/* Copyright (C) 1999-2014 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ Contributed by Andreas Jaeger <aj@suse.de>, 1999. -+ -+ 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, see -+ <http://www.gnu.org/licenses/>. */ -+ -+#ifndef _LDCONFIG_H -+#define _LDCONFIG_H -+ -+#include <stdint.h> -+ -+#define FLAG_ANY -1 -+#define FLAG_TYPE_MASK 0x00ff -+#define FLAG_LIBC4 0x0000 -+#define FLAG_ELF 0x0001 -+#define FLAG_ELF_LIBC5 0x0002 -+#define FLAG_ELF_LIBC6 0x0003 -+#define FLAG_REQUIRED_MASK 0xff00 -+#define FLAG_SPARC_LIB64 0x0100 -+#define FLAG_IA64_LIB64 0x0200 -+#define FLAG_X8664_LIB64 0x0300 -+#define FLAG_S390_LIB64 0x0400 -+#define FLAG_POWERPC_LIB64 0x0500 -+#define FLAG_MIPS64_LIBN32 0x0600 -+#define FLAG_MIPS64_LIBN64 0x0700 -+#define FLAG_X8664_LIBX32 0x0800 -+#define FLAG_ARM_LIBHF 0x0900 -+#define FLAG_AARCH64_LIB64 0x0a00 -+#define FLAG_ARM_LIBSF 0x0b00 -+#define FLAG_MIPS_LIB32_NAN2008 0x0c00 -+#define FLAG_MIPS64_LIBN32_NAN2008 0x0d00 -+#define FLAG_MIPS64_LIBN64_NAN2008 0x0e00 -+ -+/* Name of auxiliary cache. */ -+#define _PATH_LDCONFIG_AUX_CACHE "@libc_cv_localstatedir@/cache/ldconfig/aux-cache" -+ -+/* Declared in cache.c. */ -+extern void print_cache (const char *cache_name); -+ -+extern void init_cache (void); -+ -+extern void save_cache (const char *cache_name); -+ -+extern void add_to_cache (const char *path, const char *lib, int flags, -+ unsigned int osversion, uint64_t hwcap); -+ -+extern void init_aux_cache (void); -+ -+extern void load_aux_cache (const char *aux_cache_name); -+ -+extern int search_aux_cache (struct stat64 *stat_buf, int *flags, -+ unsigned int *osversion, char **soname); -+ -+extern void add_to_aux_cache (struct stat64 *stat_buf, int flags, -+ unsigned int osversion, const char *soname); -+ -+extern void save_aux_cache (const char *aux_cache_name); -+ -+/* Declared in readlib.c. */ -+extern int process_file (const char *real_file_name, const char *file_name, -+ const char *lib, int *flag, unsigned int *osversion, -+ char **soname, int is_link, struct stat64 *stat_buf); -+ -+extern char *implicit_soname (const char *lib, int flag); -+ -+/* Declared in readelflib.c. */ -+extern int process_elf_file (const char *file_name, const char *lib, int *flag, -+ unsigned int *osversion, char **soname, -+ void *file_contents, size_t file_length); -+ -+/* Declared in chroot_canon.c. */ -+extern char *chroot_canon (const char *chroot, const char *name); -+ -+/* Declared in ldconfig.c. */ -+extern int opt_verbose; -+ -+extern int opt_format; -+ -+/* Prototypes for a few program-wide used functions. */ -+#include <programs/xmalloc.h> -+ -+#endif /* ! _LDCONFIG_H */ diff --git a/sys-libs/glibc/files/2.20/glibc-2.20-gentoo-chk_fail.c b/sys-libs/glibc/files/2.20/glibc-2.20-gentoo-chk_fail.c deleted file mode 100644 index a8ab9d8..0000000 --- a/sys-libs/glibc/files/2.20/glibc-2.20-gentoo-chk_fail.c +++ /dev/null @@ -1,299 +0,0 @@ -/* Copyright (C) 2004-2014 Free Software Foundation, Inc. - Copyright (C) 2006-2014 Gentoo 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. */ - -/* Hardened Gentoo SSP and FORTIFY handler - - A failure handler that does not use functions from the rest of glibc; - it uses the INTERNAL_SYSCALL methods directly. This helps ensure no - possibility of recursion into the handler. - - Direct all bug reports to http://bugs.gentoo.org/ - - People who have contributed significantly to the evolution of this file: - Ned Ludd - <solar[@]gentoo.org> - Alexander Gabert - <pappy[@]gentoo.org> - The PaX Team - <pageexec[@]freemail.hu> - Peter S. Mazinger - <ps.m[@]gmx.net> - Yoann Vandoorselaere - <yoann[@]prelude-ids.org> - Robert Connolly - <robert[@]linuxfromscratch.org> - Cory Visi <cory[@]visi.name> - Mike Frysinger <vapier[@]gentoo.org> - Magnus Granberg <zorry[@]gentoo.org> - Kevin F. Quinn - <kevquinn[@]gentoo.org> - */ - -#include <errno.h> -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <signal.h> - -#include <sys/types.h> - -#include <sysdep-cancel.h> -#include <sys/syscall.h> - -#include <kernel-features.h> - -#include <alloca.h> -/* from sysdeps */ -#include <socketcall.h> -/* for the stuff in bits/socket.h */ -#include <sys/socket.h> -#include <sys/un.h> - -/* 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 const char *__progname = "<ldso>"; -#else -extern const char *__progname; -#endif - -#ifdef GENTOO_SSP_HANDLER -# define ERROR_MSG "stack smashing" -#else -# define ERROR_MSG "buffer overflow" -#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_fail(void) -{ -#define MESSAGE_BUFSIZ 512 - static pid_t pid; - static int plen, i, hlen; - static char message[MESSAGE_BUFSIZ]; - /* <11> is LOG_USER|LOG_ERR. A dummy date for loggers to skip over. */ - static const char msg_header[] = "<11>" __DATE__ " " __TIME__ " glibc-gentoo-hardened-check: "; - static const char msg_ssd[] = "*** " ERROR_MSG " detected ***: "; - static const char msg_terminated[] = " terminated; "; - static const char msg_report[] = "report to " REPORT_BUGS_TO "\n"; - static const char msg_unknown[] = "<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; \ - }) - - /* Tersely log the failure */ - plen = 0; - strconcat(msg_header); - hlen = plen; - strconcat(msg_ssd); - if (__progname != NULL) - strconcat(__progname); - else - strconcat(msg_unknown); - strconcat(msg_terminated); - strconcat(msg_report); - - /* Write out error message to STDERR, to syslog if open */ - INLINE_SYSCALL(write, 3, STDERR_FILENO, message + hlen, plen - hlen); - if (connect_result != -1) { - INLINE_SYSCALL(write, 3, log_socket, message, plen); - INLINE_SYSCALL(close, 1, log_socket); - } - - /* Time to kill self since we have no idea what is going on */ - pid = INLINE_SYSCALL(getpid, 0); - - if (ENABLE_SSP_SMASH_DUMPS_CORE) { - /* Remove any user-supplied handler for SIGABRT, before using it. */ -#if 0 - /* - * Note: Disabled because some programs catch & process their - * own crashes. We've already enabled this code path which - * means we want to let core dumps happen. - */ - static struct sigaction default_abort_act; - 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) -#endif - INLINE_SYSCALL(kill, 2, pid, SIGABRT); - } - - /* SIGKILL is only signal which cannot be caught */ - 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, 1, 137); -} - -__attribute__ ((__noreturn__)) -#ifdef GENTOO_SSP_HANDLER -void __stack_chk_fail(void) -#else -void __chk_fail(void) -#endif -{ - __hardened_gentoo_fail(); -} diff --git a/sys-libs/glibc/files/2.20/glibc-2.20-gentoo-stack_chk_fail.c b/sys-libs/glibc/files/2.20/glibc-2.20-gentoo-stack_chk_fail.c deleted file mode 100644 index 4a537bb..0000000 --- a/sys-libs/glibc/files/2.20/glibc-2.20-gentoo-stack_chk_fail.c +++ /dev/null @@ -1,2 +0,0 @@ -#define GENTOO_SSP_HANDLER -#include <debug/chk_fail.c> diff --git a/sys-libs/glibc/files/2.20/glibc-2.20-hardened-inittls-nosysenter.patch b/sys-libs/glibc/files/2.20/glibc-2.20-hardened-inittls-nosysenter.patch deleted file mode 100644 index 35eabe9..0000000 --- a/sys-libs/glibc/files/2.20/glibc-2.20-hardened-inittls-nosysenter.patch +++ /dev/null @@ -1,306 +0,0 @@ -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_PRE_TLS is defined - -csu/libc-tls.c: Use the no-sysenter version of sbrk when -INTERNAL_SYSCALL_PRE_TLS is defined. - -misc/sbrk.c: Define a no-sysenter version of sbrk, using the no-sysenter -version of brk - if INTERNAL_SYSCALL_PRE_TLS is defined. - -misc/brk.c: Define a no-sysenter version of brk if -INTERNAL_SYSCALL_PRE_TLS is defined. - -sysdeps/unix/sysv/linux/i386/sysdep.h: Define INTERNAL_SYSCALL_PRE_TLS -Make INTERNAL_SYSCALL always use the PIC variant, even if not SHARED. - -Patch by Kevin F. Quinn <kevquinn@gentoo.org> -Fixed for 2.10 by Magnus Granberg <zorry@ume.nu> -Fixed for 2.18 by Magnus Granberg <zorry@gentoo.org> -Fixed for 2.20 by Francisco Blas Izquierdo Riera <klondike@gentoo.org> - ---- a/csu/libc-start.c -+++ b/csu/libc-start.c -@@ -28,6 +28,7 @@ - extern int __libc_multiple_libcs; - - #include <tls.h> -+#include <sysdep.h> - #ifndef SHARED - # include <dl-osinfo.h> - extern void __pthread_initialize_minimal (void); -@@ -170,6 +171,11 @@ LIBC_START_MAIN (int (*main) (int, char - } - } - -+# ifdef INTERNAL_SYSCALL_PRE_TLS -+ /* 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_PRE_TLS - /* 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 (); ---- a/csu/libc-tls.c -+++ b/csu/libc-tls.c -@@ -22,12 +22,17 @@ - #include <unistd.h> - #include <stdio.h> - #include <sys/param.h> -+#include <sysdep.h> - - - #ifdef SHARED - #error makefile bug, this file is for static only - #endif - -+#ifdef INTERNAL_SYSCALL_PRE_TLS -+extern void *__sbrk_nosysenter (intptr_t __delta); -+#endif -+ - dtv_t _dl_static_dtv[2 + TLS_SLOTINFO_SURPLUS]; - - -@@ -139,20 +144,29 @@ __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. */ -+#ifdef INTERNAL_SYSCALL_PRE_TLS -+# define __sbrk __sbrk_nosysenter -+#endif - #if TLS_TCB_AT_TP - tcb_offset = roundup (memsz + GL(dl_tls_static_size), tcbalign); - tlsblock = __sbrk (tcb_offset + tcbsize + max_align); - #elif TLS_DTV_AT_TP - tcb_offset = roundup (tcbsize, align ?: 1); - tlsblock = __sbrk (tcb_offset + memsz + max_align - + TLS_PRE_TCB_SIZE + GL(dl_tls_static_size)); - tlsblock += TLS_PRE_TCB_SIZE; - #else - /* In case a model with a different layout for the TCB and DTV - is defined add another #elif here and in the following #ifs. */ - # error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined" - #endif -+#ifdef INTERNAL_SYSCALL_PRE_TLS -+# undef __sbrk -+#endif - - /* Align the TLS block. */ - tlsblock = (void *) (((uintptr_t) tlsblock + max_align - 1) ---- a/misc/sbrk.c -+++ b/misc/sbrk.c -@@ -18,6 +18,7 @@ - #include <errno.h> - #include <stdint.h> - #include <unistd.h> -+#include <sysdep.h> - - /* 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_PRE_TLS -+/* 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) - { ---- a/sysdeps/unix/sysv/linux/i386/brk.c -+++ b/sysdeps/unix/sysv/linux/i386/brk.c -@@ -31,6 +31,30 @@ - linker. */ - weak_alias (__curbrk, ___brk_addr) - -+#ifdef INTERNAL_SYSCALL_PRE_TLS -+/* 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_PRE_TLS (brk, err, 1, addr); -+ -+ __curbrk = newbrk; -+ -+ if (newbrk < addr) -+ { -+ __set_errno (ENOMEM); -+ return -1; -+ } -+ -+ return 0; -+} -+#endif -+ - int - __brk (void *addr) - { ---- a/sysdeps/unix/sysv/linux/i386/sysdep.h -+++ b/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 -+# ifdef __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 -+# ifdef __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_PRE_TLS(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 __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 +494,18 @@ - - #define RESTOREARGS_0 - #ifdef __PIC__ --# if defined I386_USE_SYSENTER && defined SHARED -+# if defined I386_USE_SYSENTER && 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" ---- a/sysdeps/i386/nptl/tls.h -+++ b/sysdeps/i386/nptl/tls.h -@@ -189,6 +189,15 @@ - desc->vals[3] = 0x51; - } - -+/* We have no sysenter until the tls is initialized which is a -+ problem for PIC. Thus we need to do the right call depending -+ on the situation. */ -+#ifndef INTERNAL_SYSCALL_PRE_TLS -+# define TLS_INIT_SYSCALL INTERNAL_SYSCALL -+#else -+# define TLS_INIT_SYSCALL INTERNAL_SYSCALL_PRE_TLS -+#endif -+ - /* Code to initially initialize the thread pointer. This might need - special attention since 'errno' is not yet available and if the - operation can cause a failure 'errno' must not be touched. */ -@@ -209,7 +218,7 @@ - \ - /* Install the TLS. */ \ - INTERNAL_SYSCALL_DECL (err); \ -- _result = INTERNAL_SYSCALL (set_thread_area, err, 1, &_segdescr.desc); \ -+ _result = TLS_INIT_SYSCALL (set_thread_area, err, 1, &_segdescr.desc); \ - \ - if (_result == 0) \ - /* We know the index in the GDT, now load the segment register. \ diff --git a/sys-libs/glibc/files/2.20/glibc-2.20-vdso-disable.patch b/sys-libs/glibc/files/2.20/glibc-2.20-vdso-disable.patch deleted file mode 100644 index 2b2de6b..0000000 --- a/sys-libs/glibc/files/2.20/glibc-2.20-vdso-disable.patch +++ /dev/null @@ -1,20 +0,0 @@ -disable vdso loading in ELF handler unconditionally for some buggy kernel -like that shipped with RHEL(likely CentOS and SL) 5.6 - - https://bugzilla.redhat.com/show_bug.cgi?id=673616 - -Benda Xu <heroxbd@gentoo.org> (24 Nov, 2014) - -Index: work/glibc-2.20/sysdeps/unix/sysv/linux/dl-sysdep.h -=================================================================== ---- work.orig/glibc-2.20/sysdeps/unix/sysv/linux/dl-sysdep.h -+++ work/glibc-2.20/sysdeps/unix/sysv/linux/dl-sysdep.h -@@ -23,7 +23,7 @@ - machines, we should look at it for unwind information even if - we aren't making direct use of it. So enable this across the board. */ - --#define NEED_DL_SYSINFO_DSO 1 -+#define NEED_DL_SYSINFO_DSO 0 - - - #ifndef __ASSEMBLER__ diff --git a/sys-libs/glibc/files/2.3.3/glibc-2.3.3-localedef-fix-trampoline.patch b/sys-libs/glibc/files/2.3.3/glibc-2.3.3-localedef-fix-trampoline.patch deleted file mode 100644 index 7c4399f..0000000 --- a/sys-libs/glibc/files/2.3.3/glibc-2.3.3-localedef-fix-trampoline.patch +++ /dev/null @@ -1,68 +0,0 @@ -#! /bin/sh -e - -# DP: Description: Fix localedef segfault when run under exec-shield, -# PaX or similar. (#231438, #198099) -# DP: Dpatch Author: James Troup <james@nocrew.org> -# DP: Patch Author: (probably) Jakub Jelinek <jakub@redhat.com> -# DP: Upstream status: Unknown -# DP: Status Details: Unknown -# DP: Date: 2004-03-16 - -if [ $# -ne 2 ]; then - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1 -fi -case "$1" in - -patch) patch -d "$2" -f --no-backup-if-mismatch -p1 < $0;; - -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p1 < $0;; - *) - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1 -esac -exit 0 - ---- glibc-2.3.3-net/locale/programs/3level.h 16 Jun 2003 07:19:09 -0000 1.1.1.5 -+++ glibc-2.3.3-redhat/locale/programs/3level.h 16 Jun 2003 09:32:40 -0000 1.4 -@@ -204,6 +204,42 @@ CONCAT(TABLE,_iterate) (struct TABLE *t, - } - } - } -+ -+/* GCC ATM seems to do a poor job with pointers to nested functions passed -+ to inlined functions. Help it a little bit with this hack. */ -+#define wchead_table_iterate(tp, fn) \ -+do \ -+ { \ -+ struct wchead_table *t = (tp); \ -+ uint32_t index1; \ -+ for (index1 = 0; index1 < t->level1_size; index1++) \ -+ { \ -+ uint32_t lookup1 = t->level1[index1]; \ -+ if (lookup1 != ((uint32_t) ~0)) \ -+ { \ -+ uint32_t lookup1_shifted = lookup1 << t->q; \ -+ uint32_t index2; \ -+ for (index2 = 0; index2 < (1 << t->q); index2++) \ -+ { \ -+ uint32_t lookup2 = t->level2[index2 + lookup1_shifted]; \ -+ if (lookup2 != ((uint32_t) ~0)) \ -+ { \ -+ uint32_t lookup2_shifted = lookup2 << t->p; \ -+ uint32_t index3; \ -+ for (index3 = 0; index3 < (1 << t->p); index3++) \ -+ { \ -+ struct element_t *lookup3 \ -+ = t->level3[index3 + lookup2_shifted]; \ -+ if (lookup3 != NULL) \ -+ fn ((((index1 << t->q) + index2) << t->p) + index3, \ -+ lookup3); \ -+ } \ -+ } \ -+ } \ -+ } \ -+ } \ -+ } while (0) -+ - #endif - - #ifndef NO_FINALIZE diff --git a/sys-libs/glibc/files/2.5/glibc-2.5-gentoo-stack_chk_fail.c b/sys-libs/glibc/files/2.5/glibc-2.5-gentoo-stack_chk_fail.c deleted file mode 100644 index e304440..0000000 --- a/sys-libs/glibc/files/2.5/glibc-2.5-gentoo-stack_chk_fail.c +++ /dev/null @@ -1,311 +0,0 @@ -/* 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 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 - <kevquinn[@]gentoo.org> - * - * The following people contributed to the glibc-2.3 Hardened - * Gentoo SSP handler, from which this implementation draws much: - * - * Ned Ludd - <solar[@]gentoo.org> - * Alexander Gabert - <pappy[@]gentoo.org> - * The PaX Team - <pageexec[@]freemail.hu> - * Peter S. Mazinger - <ps.m[@]gmx.net> - * Yoann Vandoorselaere - <yoann[@]prelude-ids.org> - * Robert Connolly - <robert[@]linuxfromscratch.org> - * Cory Visi <cory[@]visi.name> - * Mike Frysinger <vapier[@]gentoo.org> - */ - -#include <errno.h> -#include <stdlib.h> -#include <unistd.h> -#include <signal.h> - -#include <sys/types.h> - -#include <sysdep-cancel.h> -#include <sys/syscall.h> -#include <bp-checks.h> - -#include <kernel-features.h> - -#include <alloca.h> -/* from sysdeps */ -#include <socketcall.h> -/* for the stuff in bits/socket.h */ -#include <sys/socket.h> -#include <sys/un.h> - - -/* 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 -# if !defined _KERNEL_NSIG && !defined _NSIG -# error No _NSIG or _KERNEL_NSIG for rt_sigaction -# endif -# if !defined __NR_sigation && !defined __NR_rt_sigaction -# error Cannot do syscall sigaction or rt_sigaction -# endif -#endif - - - -/* Define DO_SOCKET/DO_CONNECT macros to deal with socketcall vs socket/connect */ -#ifdef __NR_socketcall - -# define DO_SOCKET(result,domain,type,protocol) \ - {socketargs[0] = domain; \ - socketargs[1] = type; \ - socketargs[2] = protocol; \ - socketargs[3] = 0; \ - result = INLINE_SYSCALL(socketcall,2,SOCKOP_socket,socketargs);} - -# define DO_CONNECT(result,sockfd,serv_addr,addrlen) \ - {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 - -# define DO_SOCKET(result,domain,type,protocol) \ - {result = INLINE_SYSCALL(socket,3,domain,type,protocol);} - -# define DO_CONNECT(result,sockfd,serv_addr,addrlen) \ - {result = INLINE_SYSCALL(connect,3,sockfd,serv_addr,addrlen);} - -#endif -/* __NR_socketcall */ - - -#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 = "<rtld>"; -#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. - */ -static inline void -__attribute__ ((__noreturn__ , __always_inline__)) -__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[]="<unknown>"; -#ifdef SSP_SMASH_DUMPS_CORE - static struct sigaction default_abort_act; -#endif - static int log_socket, connect_result; - static struct sockaddr_un sock; -#ifdef __NR_socketcall - static unsigned long int socketargs[4]; -#endif - - /* 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); -#ifdef SSP_SMASH_DUMPS_CORE - /* 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; - /* sigaction doesn't exist on amd64; however rt_sigaction seems to - * exist everywhere. rt_sigaction has an extra parameter - the - * size of sigset_t. - */ -# ifdef __NR_sigation - if (INLINE_SYSCALL(sigaction,3,SIGABRT,&default_abort_act,NULL) == 0) -# else - /* 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 - if (INLINE_SYSCALL(rt_sigaction,4,SIGABRT,&default_abort_act,NULL,_KERNEL_NSIG/8) == 0) -# else - if (INLINE_SYSCALL(rt_sigaction,4,SIGABRT,&default_abort_act,NULL,_NSIG/8) == 0) -# endif -# endif - INLINE_SYSCALL(kill,2,pid,SIGABRT); -#endif - /* 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); -} - -void -__attribute__ ((__noreturn__)) - __stack_chk_fail (void) -{ - __hardened_gentoo_stack_chk_fail(NULL,0); -} - -#ifdef ENABLE_OLD_SSP_COMPAT -void -__attribute__ ((__noreturn__)) -__stack_smash_handler(char func[], int damaged) -{ - __hardened_gentoo_stack_chk_fail(func,damaged); -} -#endif - diff --git a/sys-libs/glibc/files/2.5/glibc-2.5-hardened-configure-picdefault.patch b/sys-libs/glibc/files/2.5/glibc-2.5-hardened-configure-picdefault.patch deleted file mode 100644 index 253a61b..0000000 --- a/sys-libs/glibc/files/2.5/glibc-2.5-hardened-configure-picdefault.patch +++ /dev/null @@ -1,29 +0,0 @@ -Prevent default-fPIE from confusing configure into thinking -PIC code is default. This causes glibc to build both PIC and -non-PIC code as normal, which on the hardened compiler generates -PIC and PIE. - -Patch by Kevin F. Quinn <kevquinn@gentoo.org> - ---- configure.in -+++ configure.in -@@ -2145,7 +2145,7 @@ - # error PIC is default. - #endif - EOF --if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then -+if eval "${CC-cc} -fno-PIE -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then - pic_default=no - fi - rm -f conftest.*]) ---- configure -+++ configure -@@ -7698,7 +7698,7 @@ - # error PIC is default. - #endif - EOF --if eval "${CC-cc} -S conftest.c 2>&5 1>&5"; then -+if eval "${CC-cc} -fno-PIE -S conftest.c 2>&5 1>&5"; then - pic_default=no - fi - rm -f conftest.* diff --git a/sys-libs/glibc/files/2.5/glibc-2.5-hardened-inittls-nosysenter.patch b/sys-libs/glibc/files/2.5/glibc-2.5-hardened-inittls-nosysenter.patch deleted file mode 100644 index 420e6fd..0000000 --- a/sys-libs/glibc/files/2.5/glibc-2.5-hardened-inittls-nosysenter.patch +++ /dev/null @@ -1,283 +0,0 @@ -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 <kevquinn@gentoo.org> - ---- csu/libc-start.c.orig 2007-01-21 11:51:06.000000000 +0100 -+++ csu/libc-start.c 2007-01-21 11:55:57.000000000 +0100 -@@ -28,6 +28,7 @@ - extern int __libc_multiple_libcs; - - #include <tls.h> -+#include <sysdep.h> - #ifndef SHARED - # include <dl-osinfo.h> - extern void __pthread_initialize_minimal (void) -@@ -133,6 +134,14 @@ - # endif - _dl_aux_init (auxvec); - # endif -+# ifdef INTERNAL_SYSCALL_NOSYSENTER -+ /* Do the initial TLS initialization before _dl_osversion, -+ since the latter uses the uname syscall. */ -+# if !(USE_TLS - 0) && !defined NONTLS_INIT_TP -+ if (__pthread_initialize_minimal) -+# endif -+ __pthread_initialize_minimal (); -+# endif - # ifdef DL_SYSDEP_OSCHECK - if (!__libc_multiple_libcs) - { -@@ -142,15 +151,17 @@ - } - # 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. If there is no thread library and we - handle TLS the function is defined in the libc to initialized the - TLS handling. */ --# if !(USE_TLS - 0) && !defined NONTLS_INIT_TP -+# if !(USE_TLS - 0) && !defined NONTLS_INIT_TP - if (__pthread_initialize_minimal) --# endif -+# endif - __pthread_initialize_minimal (); -+# endif - #endif - - # ifndef SHARED ---- csu/libc-tls.c.orig 2007-01-21 11:37:02.000000000 +0100 -+++ csu/libc-tls.c 2007-01-21 12:09:33.000000000 +0100 -@@ -23,6 +23,7 @@ - #include <unistd.h> - #include <stdio.h> - #include <sys/param.h> -+#include <sysdep.h> - - - #ifdef SHARED -@@ -30,6 +31,9 @@ - #endif - - #ifdef USE_TLS -+# ifdef INTERNAL_SYSCALL_NOSYSENTER -+extern void *__sbrk_nosysenter (intptr_t __delta); -+# endif - extern ElfW(Phdr) *_dl_phdr; - extern size_t _dl_phnum; - -@@ -142,14 +146,26 @@ - - 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.orig 2007-01-21 11:38:27.000000000 +0100 -+++ misc/sbrk.c 2007-01-21 12:07:29.000000000 +0100 -@@ -18,6 +18,7 @@ - - #include <unistd.h> - #include <errno.h> -+#include <sysdep.h> - - /* 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.orig 2007-01-21 11:39:16.000000000 +0100 -+++ sysdeps/unix/sysv/linux/i386/brk.c 2007-01-21 11:44:01.000000000 +0100 -@@ -31,6 +31,30 @@ - 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 *__unbounded newbrk; -+ -+ INTERNAL_SYSCALL_DECL (err); -+ newbrk = (void *__unbounded) INTERNAL_SYSCALL_NOSYSENTER (brk, err, 1, -+ __ptrvalue (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.orig 2007-01-21 13:08:00.000000000 +0100 -+++ sysdeps/unix/sysv/linux/i386/sysdep.h 2007-01-21 13:19:10.000000000 +0100 -@@ -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/sys-libs/glibc/files/2.5/glibc-2.5-hardened-pie.patch b/sys-libs/glibc/files/2.5/glibc-2.5-hardened-pie.patch deleted file mode 100644 index 46f3de4..0000000 --- a/sys-libs/glibc/files/2.5/glibc-2.5-hardened-pie.patch +++ /dev/null @@ -1,39 +0,0 @@ -Change link commands for glibc executables to build PIEs - -Patch by Kevin F. Quinn <kevquinn@gentoo.org> - ---- Makeconfig -+++ Makeconfig -@@ -415,10 +415,10 @@ - - # Command for linking programs with the C library. - ifndef +link --+link = $(CC) -nostdlib -nostartfiles -o $@ \ -++link = $(CC) -nostdlib -nostartfiles -fPIE -pie -o $@ \ - $(sysdep-LDFLAGS) $(config-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \ - $(combreloc-LDFLAGS) $(relro-LDFLAGS) $(hashstyle-LDFLAGS) \ -- $(addprefix $(csu-objpfx),$(start-installed-name)) \ -+ $(addprefix $(csu-objpfx),S$(start-installed-name)) \ - $(+preinit) $(+prector) \ - $(filter-out $(addprefix $(csu-objpfx),start.o \ - $(start-installed-name))\ -@@ -429,7 +429,7 @@ - ifndef +link-static - +link-static = $(CC) -nostdlib -nostartfiles -static -o $@ \ - $(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \ -- $(addprefix $(csu-objpfx),$(static-start-installed-name)) \ -+ $(addprefix $(csu-objpfx),S$(static-start-installed-name)) \ - $(+preinit) $(+prector) \ - $(filter-out $(addprefix $(csu-objpfx),start.o \ - $(start-installed-name))\ -@@ -528,8 +528,8 @@ - ifeq ($(elf),yes) - +preinit = $(addprefix $(csu-objpfx),crti.o) - +postinit = $(addprefix $(csu-objpfx),crtn.o) --+prector = `$(CC) --print-file-name=crtbegin.o` --+postctor = `$(CC) --print-file-name=crtend.o` -++prector = `$(CC) --print-file-name=crtbeginS.o` -++postctor = `$(CC) --print-file-name=crtendS.o` - +interp = $(addprefix $(elf-objpfx),interp.os) - endif - csu-objpfx = $(common-objpfx)csu/ diff --git a/sys-libs/glibc/files/2.6/glibc-2.6-gentoo-stack_chk_fail.c b/sys-libs/glibc/files/2.6/glibc-2.6-gentoo-stack_chk_fail.c deleted file mode 100644 index 217bf1a..0000000 --- a/sys-libs/glibc/files/2.6/glibc-2.6-gentoo-stack_chk_fail.c +++ /dev/null @@ -1,321 +0,0 @@ -/* 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-2007 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 - <kevquinn[@]gentoo.org> - * - * The following people contributed to the glibc-2.3 Hardened - * Gentoo SSP handler, from which this implementation draws much: - * - * Ned Ludd - <solar[@]gentoo.org> - * Alexander Gabert - <pappy[@]gentoo.org> - * The PaX Team - <pageexec[@]freemail.hu> - * Peter S. Mazinger - <ps.m[@]gmx.net> - * Yoann Vandoorselaere - <yoann[@]prelude-ids.org> - * Robert Connolly - <robert[@]linuxfromscratch.org> - * Cory Visi <cory[@]visi.name> - * Mike Frysinger <vapier[@]gentoo.org> - */ - -#include <errno.h> -#include <stdlib.h> -#include <unistd.h> -#include <signal.h> - -#include <sys/types.h> - -#include <sysdep-cancel.h> -#include <sys/syscall.h> -#include <bp-checks.h> - -#include <kernel-features.h> - -#include <alloca.h> -/* from sysdeps */ -#include <socketcall.h> -/* for the stuff in bits/socket.h */ -#include <sys/socket.h> -#include <sys/un.h> - - -/* 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 = "<rtld>"; -#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[] = "<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/sys-libs/glibc/files/2.6/glibc-2.6-hardened-inittls-nosysenter.patch b/sys-libs/glibc/files/2.6/glibc-2.6-hardened-inittls-nosysenter.patch deleted file mode 100644 index be8ca19..0000000 --- a/sys-libs/glibc/files/2.6/glibc-2.6-hardened-inittls-nosysenter.patch +++ /dev/null @@ -1,273 +0,0 @@ -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 <kevquinn@gentoo.org> - ---- csu/libc-start.c -+++ csu/libc-start.c -@@ -28,6 +28,7 @@ - extern int __libc_multiple_libcs; - - #include <tls.h> -+#include <sysdep.h> - #ifndef SHARED - # include <dl-osinfo.h> - extern void __pthread_initialize_minimal (void); -@@ -129,6 +130,11 @@ - # endif - _dl_aux_init (auxvec); - # endif -+# 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 - #endif - - # ifndef SHARED ---- csu/libc-tls.c -+++ csu/libc-tls.c -@@ -23,6 +23,7 @@ - #include <unistd.h> - #include <stdio.h> - #include <sys/param.h> -+#include <sysdep.h> - - - #ifdef SHARED -@@ -29,6 +30,9 @@ - #error makefile bug, this file is for static only - #endif - -+#ifdef INTERNAL_SYSCALL_NOSYSENTER -+extern void *__sbrk_nosysenter (intptr_t __delta); -+#endif - extern ElfW(Phdr) *_dl_phdr; - extern size_t _dl_phnum; - -@@ -141,14 +145,26 @@ - - 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 <unistd.h> - #include <errno.h> -+#include <sysdep.h> - - /* 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,30 @@ - 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 *__unbounded newbrk; -+ -+ INTERNAL_SYSCALL_DECL (err); -+ newbrk = (void *__unbounded) INTERNAL_SYSCALL_NOSYSENTER (brk, err, 1, -+ __ptrvalue (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/sys-libs/glibc/files/2.7/glibc-2.7-hardened-inittls-nosysenter.patch b/sys-libs/glibc/files/2.7/glibc-2.7-hardened-inittls-nosysenter.patch deleted file mode 100644 index ecf57a9..0000000 --- a/sys-libs/glibc/files/2.7/glibc-2.7-hardened-inittls-nosysenter.patch +++ /dev/null @@ -1,273 +0,0 @@ -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 <kevquinn@gentoo.org> - ---- csu/libc-start.c -+++ csu/libc-start.c -@@ -28,6 +28,7 @@ - extern int __libc_multiple_libcs; - - #include <tls.h> -+#include <sysdep.h> - #ifndef SHARED - # include <dl-osinfo.h> - extern void __pthread_initialize_minimal (void); -@@ -129,6 +130,11 @@ - # endif - _dl_aux_init (auxvec); - # endif -+# 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 -@@ -23,6 +23,7 @@ - #include <unistd.h> - #include <stdio.h> - #include <sys/param.h> -+#include <sysdep.h> - - - #ifdef SHARED -@@ -29,6 +30,9 @@ - #error makefile bug, this file is for static only - #endif - -+#ifdef INTERNAL_SYSCALL_NOSYSENTER -+extern void *__sbrk_nosysenter (intptr_t __delta); -+#endif - extern ElfW(Phdr) *_dl_phdr; - extern size_t _dl_phnum; - -@@ -141,14 +145,26 @@ - - 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 <unistd.h> - #include <errno.h> -+#include <sysdep.h> - - /* 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,30 @@ - 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 *__unbounded newbrk; -+ -+ INTERNAL_SYSCALL_DECL (err); -+ newbrk = (void *__unbounded) INTERNAL_SYSCALL_NOSYSENTER (brk, err, 1, -+ __ptrvalue (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/sys-libs/glibc/files/eblits/common.eblit b/sys-libs/glibc/files/eblits/common.eblit deleted file mode 100644 index e56f10e..0000000 --- a/sys-libs/glibc/files/eblits/common.eblit +++ /dev/null @@ -1,380 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -alt_prefix() { - is_crosscompile && echo /usr/${CTARGET} -} - -if [[ ${EAPI:-0} == [012] ]] ; then - : ${ED:=${D}} - : ${EROOT:=${ROOT}} -fi -# This indirection is for binpkgs. #523332 -_nonfatal() { nonfatal "$@" ; } -if [[ ${EAPI:-0} == [0123] ]] ; then - nonfatal() { "$@" ; } - _nonfatal() { "$@" ; } -fi - -# 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. -# note: intentionally undocumented. -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 <linux/version.h>' | $(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" -} - -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 ! glibc_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 ! glibc_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 - ;; - ppc) - append-flags "-freorder-blocks" - ;; - 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=* - - # Bug 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 -- linuxthreads needs it and we want to be - # conservative here. -fno-strict-aliasing is to work around #155906 - filter-flags -O? - append-flags -O2 -fno-strict-aliasing - - # Can't build glibc itself with fortify code. Newer versions add - # this flag for us, so no need to do it manually. - version_is_at_least 2.16 ${PV} || append-cppflags -U_FORTIFY_SOURCE - - # building glibc with SSP is fraught with difficulty, especially - # due to __stack_chk_fail_local which would mean significant changes - # to the glibc build process. See bug #94325 #293721 - # Note we have to handle both user-given CFLAGS and gcc defaults via - # spec rules here. We can't simply add -fno-stack-protector as it gets - # added before user flags, and we can't just filter-flags because - # _filter_hardened doesn't support globs. - filter-flags -fstack-protector* - gcc-specs-ssp && append-flags $(test-flags -fno-stack-protector) - - if use hardened && gcc-specs-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 -} - -want_nptl() { - [[ -z ${LT_VER} ]] && return 0 - want_tls || return 1 - use nptl || return 1 - - # Older versions of glibc had incomplete arch support for nptl. - # But if you're building those now, you can handle USE=nptl yourself. - return 0 -} - -want_linuxthreads() { - [[ -z ${LT_VER} ]] && return 1 - use linuxthreads -} - -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 -- cant test linking yet - tc-has-tls -c ${CTARGET} - WANT__THREAD=$? - - return ${WANT__THREAD} -} - -use_multiarch() { - # 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 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 - - multilib_env ${CTARGET_OPT:-${CTARGET}} - if is_crosscompile || tc-is-cross-compiler ; then - if ! use multilib ; then - MULTILIB_ABIS=${DEFAULT_ABI} - else - MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} - fi - - # If the user has CFLAGS_<CTARGET> in their make.conf, use that, - # and fall back on CFLAGS. - local VAR=CFLAGS_${CTARGET//[-.]/_} - CFLAGS=${!VAR-${CFLAGS}} - fi - - setup_flags - - export ABI=${ABI:-${DEFAULT_ABI:-default}} - - 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}" -} - -foreach_abi() { - setup_env - - local ret=0 - local abilist="" - if use multilib ; then - abilist=$(get_install_abis) - else - abilist=${DEFAULT_ABI} - fi - evar_push ABI - export ABI - for ABI in ${abilist:-default} ; do - setup_env - einfo "Running $1 for ABI ${ABI}" - $1 - : $(( ret |= $? )) - done - evar_pop - return ${ret} -} - -just_headers() { - is_crosscompile && use crosscompile_opts_headers-only -} - -glibc_banner() { - local b="Gentoo ${PVR}" - [[ -n ${SNAP_VER} ]] && b+=" snapshot ${SNAP_VER}" - [[ -n ${BRANCH_UPDATE} ]] && b+=" branch ${BRANCH_UPDATE}" - [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" p${PATCH_VER}" - echo "${b}" -} diff --git a/sys-libs/glibc/files/eblits/pkg_postinst.eblit b/sys-libs/glibc/files/eblits/pkg_postinst.eblit deleted file mode 100644 index 8178fa1..0000000 --- a/sys-libs/glibc/files/eblits/pkg_postinst.eblit +++ /dev/null @@ -1,27 +0,0 @@ -# Copyright 1999-2012 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -eblit-glibc-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 - - # if the host locales.gen contains no entries, we'll install everything - local locale_list="${EROOT}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="${EROOT}usr/share/i18n/SUPPORTED" - fi - locale-gen -j $(makeopts_jobs) --config "${locale_list}" - fi -} diff --git a/sys-libs/glibc/files/eblits/pkg_preinst.eblit b/sys-libs/glibc/files/eblits/pkg_preinst.eblit deleted file mode 100644 index f40f402..0000000 --- a/sys-libs/glibc/files/eblits/pkg_preinst.eblit +++ /dev/null @@ -1,63 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -# Simple test to make sure our new glibc isnt 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 -} - -eblit-glibc-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 - elog "Defaulting /etc/host.conf:multi to on" - fi - - [[ ${ROOT} != "/" ]] && return 0 - [[ -d ${ED}/$(get_libdir) ]] || return 0 - [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check - - # For newer EAPIs, this was run in pkg_pretend. - if [[ ${EAPI:-0} == [0123] ]] ; then - check_devpts - fi -} diff --git a/sys-libs/glibc/files/eblits/pkg_pretend.eblit b/sys-libs/glibc/files/eblits/pkg_pretend.eblit deleted file mode 100644 index c900ccc..0000000 --- a/sys-libs/glibc/files/eblits/pkg_pretend.eblit +++ /dev/null @@ -1,157 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -glibc_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} -} - -glibc_run_test() { - local ret - - if [[ ${EMERGE_FROM} == "binary" ]] ; then - # ignore build failures when installing a binary package #324685 - glibc_compile_test "" "$@" 2>/dev/null || return 0 - else - if ! glibc_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} -} - -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 - - # Older versions always installed setuid, so no need to check. - in_iuse suid || 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." - # Do not die on older kernels as devpts did not export these settings #489520. - if version_is_at_least 2.6.25 $(uname -r) ; then - die "mount & fix your /dev/pts settings" - fi - fi -} - -eblit-glibc-pkg_pretend() { - # For older EAPIs, this is run in pkg_preinst. - if [[ ${EAPI:-0} != [0123] ]] ; then - check_devpts - fi - - # prevent native builds from downgrading ... maybe update to allow people - # to change between diff -r versions ? (2.3.6-r4 -> 2.3.6-r2) - if [[ ${MERGE_TYPE} != "buildonly" ]] && \ - [[ ${ROOT} == "/" ]] && \ - [[ ${CBUILD} == ${CHOST} ]] && \ - [[ ${CHOST} == ${CTARGET} ]] ; then - if has_version '>'${CATEGORY}/${PF} ; 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 ! glibc_run_test '#include <pwd.h>\nint main(){return getpwuid(0)==0;}\n' - then - eerror "Your patched vendor kernel is broken. You need to get an" - eerror "update from whoever is providing the kernel to you." - eerror "http://sourceware.org/bugzilla/show_bug.cgi?id=5227" - eerror "http://bugs.gentoo.org/262698" - die "keeping your system alive, say thank you" - fi - - if ! glibc_run_test '#include <unistd.h>\n#include <sys/syscall.h>\nint main(){return syscall(1000)!=-1;}\n' - then - eerror "Your old kernel is broken. You need to update it to" - eerror "a newer version as syscall(<bignum>) will break." - eerror "http://bugs.gentoo.org/279260" - die "keeping your system alive, say thank you" - 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 http://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 - - use hardened && ! gcc-specs-pie && \ - ewarn "PIE hardening not applied, as your compiler doesn't default to PIE" - - # Make sure host system is up to date #394453 - if has_version '<sys-libs/glibc-2.13' && \ - [[ -n $(scanelf -qys__guard -F'#s%F' "${EROOT}"/lib*/l*-*.so) ]] - then - ebegin "Scanning system for __guard to see if you need to rebuild first ..." - local files=$( - scanelf -qys__guard -F'#s%F' \ - "${EROOT}"/*bin/ \ - "${EROOT}"/lib* \ - "${EROOT}"/usr/*bin/ \ - "${EROOT}"/usr/lib* | \ - egrep -v \ - -e "^${EROOT}/lib.*/(libc|ld)-2.*.so$" \ - -e "^${EROOT}/sbin/(ldconfig|sln)$" - ) - [[ -z ${files} ]] - if ! eend $? ; then - eerror "Your system still has old SSP __guard symbols. You need to" - eerror "rebuild all the packages that provide these files first:" - eerror "${files}" - die "old __guard detected" - fi - fi -} diff --git a/sys-libs/glibc/files/eblits/pkg_setup.eblit b/sys-libs/glibc/files/eblits/pkg_setup.eblit deleted file mode 100644 index 2aff258..0000000 --- a/sys-libs/glibc/files/eblits/pkg_setup.eblit +++ /dev/null @@ -1,9 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -[[ ${EAPI:-0} == [0123] ]] && source "${FILESDIR}/eblits/pkg_pretend.eblit" - -eblit-glibc-pkg_setup() { - [[ ${EAPI:-0} == [0123] ]] && eblit-glibc-pkg_pretend -} diff --git a/sys-libs/glibc/files/eblits/src_compile.eblit b/sys-libs/glibc/files/eblits/src_compile.eblit deleted file mode 100644 index 7a38b3e..0000000 --- a/sys-libs/glibc/files/eblits/src_compile.eblit +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright 1999-2014 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -[[ ${EAPI:-0} == [01] ]] && source "${FILESDIR}/eblits/src_configure.eblit" - -toolchain-glibc_src_compile() { - local t - for t in linuxthreads nptl ; do - if want_${t} ; then - [[ ${EAPI:-0} == [01] ]] && glibc_do_configure ${t} - emake -C "$(builddir ${t})" || die "make ${t} for ${ABI} failed" - fi - done -} - -eblit-glibc-src_compile() { - if just_headers ; then - [[ ${EAPI:-0} == [01] ]] && toolchain-glibc_headers_configure - return - fi - - foreach_abi toolchain-glibc_src_compile -} diff --git a/sys-libs/glibc/files/eblits/src_configure.eblit b/sys-libs/glibc/files/eblits/src_configure.eblit deleted file mode 100644 index 5f2fec0..0000000 --- a/sys-libs/glibc/files/eblits/src_configure.eblit +++ /dev/null @@ -1,263 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -dump_toolchain_settings() { - echo - - einfo "$*" - - local v - for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC LD {AS,C,CPP,CXX,LD}FLAGS ; do - einfo " $(printf '%15s' ${v}:) ${!v}" - done - - # The glibc configure script doesn't properly use LDFLAGS all the time. - export CC="$(tc-getCC ${CTARGET}) ${LDFLAGS}" - einfo " $(printf '%15s' 'Manual CC:') ${CC}" - echo -} - -glibc_do_configure() { - # Glibc does not work with gold (for various reasons) #269274. - tc-ld-disable-gold - - dump_toolchain_settings "Configuring glibc for $1" - - local myconf=() - - # set addons - pushd "${S}" > /dev/null - local addons=$(echo */configure | sed \ - -e 's:/configure::g' \ - -e 's:\(linuxthreads\|nptl\|rtkaio\|glibc-compat\)\( \|$\)::g' \ - -e 's: \+$::' \ - -e 's! !,!g' \ - -e 's!^!,!' \ - -e '/^,\*$/d') - [[ -d ports ]] && addons+=",ports" - popd > /dev/null - - myconf+=( $(use_enable hardened stackguard-randomization) ) - if has_version '<sys-libs/glibc-2.13' ; then - myconf+=( --enable-old-ssp-compat ) - fi - - [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) - - if [[ $1 == "linuxthreads" ]] ; then - if want_tls ; then - myconf+=( --with-tls ) - - if ! want__thread || use glibc-compat20 || [[ ${LT_KER_VER} == 2.[02].* ]] ; then - myconf+=( --without-__thread ) - else - myconf+=( --with-__thread ) - fi - else - myconf+=( --without-tls --without-__thread ) - fi - - myconf+=( --disable-sanity-checks ) - addons="linuxthreads${addons}" - myconf+=( --enable-kernel=${LT_KER_VER} ) - elif [[ $1 == "nptl" ]] ; then - # Newer versions require nptl, so there is no addon for it. - version_is_at_least 2.20 || addons="nptl${addons}" - myconf+=( --enable-kernel=${NPTL_KERN_VER} ) - else - die "invalid pthread option" - fi - myconf+=( --enable-add-ons="${addons#,}" ) - - # 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) - --libexecdir="${EPREFIX}/usr/$(get_libdir)/misc/glibc" - --with-bugurl=http://bugs.gentoo.org/ - --with-pkgversion="$(glibc_banner)" - $(use_multiarch || echo --disable-multi-arch) - $(in_iuse rpc && use_enable rpc obsolete-rpc || echo --enable-obsolete-rpc) - $(in_iuse systemtap && use_enable systemtap) - $(in_iuse nscd && use_enable nscd) - ${EXTRA_ECONF} - ) - - # We rely on sys-libs/timezone-data for timezone tools normally. - if version_is_at_least 2.23 ; then - myconf+=( $(use_enable vanilla timezone-tools) ) - fi - - # These libs don't have configure flags. - ac_cv_lib_audit_audit_log_user_avc_message=$(in_iuse audit && usex audit || echo no) - ac_cv_lib_cap_cap_init=$(in_iuse caps && 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_slibdir="${EPREFIX}/$(get_libdir)" - export libc_cv_rootsbindir="${EPREFIX}/sbin" - - # 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 - - # 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 #465816 - if ! version_is_at_least 2.17 ; then - export ac_cv_prog_MAKEINFO=: - fi - - local builddir=$(builddir "$1") - mkdir -p "${builddir}" - cd "${builddir}" - ECONF_SOURCE="${S}" econf "${myconf[@]}" - - # 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-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die - mkdir -p sunrpc - cp $(which rpcgen) sunrpc/cross-rpcgen || die - touch -t 202001010101 sunrpc/cross-rpcgen || die - fi - fi -} - -toolchain-glibc_headers_configure() { - export ABI=default - - local builddir=$(builddir "headers") - mkdir -p "${builddir}" - cd "${builddir}" - - # if we don't have a compiler yet, we cant really test it now ... - # hopefully they don't affect header geneation, 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_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,stack_protector}=no - 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 - - # 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 - popd >/dev/null - fi - - 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) - ${EXTRA_ECONF} - ) - - local addons - [[ -d ${S}/ports ]] && addons+=",ports" - # Newer versions require nptl, so there is no addon for it. - version_is_at_least 2.20 || addons+=",nptl" - myconf+=( --enable-add-ons="${addons#,}" ) - - # Nothing is compiled here which would affect the headers for the target. - # So forcing CC/CFLAGS is sane. - CC="$(tc-getBUILD_CC)" \ - CFLAGS="-O1 -pipe" \ - CPPFLAGS="-U_FORTIFY_SOURCE" \ - LDFLAGS="" \ - ECONF_SOURCE="${S}" econf "${myconf[@]}" -} - -toolchain-glibc_src_configure() { - if just_headers ; then - toolchain-glibc_headers_configure - else - want_linuxthreads && glibc_do_configure linuxthreads - want_nptl && glibc_do_configure nptl - fi -} - -eblit-glibc-src_configure() { - foreach_abi toolchain-glibc_src_configure -} diff --git a/sys-libs/glibc/files/eblits/src_install.eblit b/sys-libs/glibc/files/eblits/src_install.eblit deleted file mode 100644 index a23173e..0000000 --- a/sys-libs/glibc/files/eblits/src_install.eblit +++ /dev/null @@ -1,244 +0,0 @@ -# Copyright 1999-2014 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -toolchain-glibc_src_install() { - local builddir=$(builddir $(want_linuxthreads && echo linuxthreads || echo nptl)) - cd "${builddir}" - - emake install_root="${D}$(alt_prefix)" install || die - - if want_linuxthreads && want_nptl ; then - einfo "Installing NPTL to $(alt_libdir)/tls/..." - cd "$(builddir nptl)" - dodir $(alt_libdir)/tls $(alt_usrlibdir)/nptl - - local l src_lib - for l in libc libm librt libpthread libthread_db ; do - # take care of shared lib first ... - l=${l}.so - if [[ -e ${l} ]] ; then - src_lib=${l} - else - src_lib=$(eval echo */${l}) - fi - cp -a ${src_lib} "${ED}"$(alt_libdir)/tls/${l} || die "copying nptl ${l}" - fperms a+rx $(alt_libdir)/tls/${l} - dosym ${l} $(alt_libdir)/tls/$(scanelf -qSF'%S#F' ${src_lib}) - - # then grab the linker script or the symlink ... - if [[ -L ${ED}$(alt_usrlibdir)/${l} ]] ; then - dosym $(alt_libdir)/tls/${l} $(alt_usrlibdir)/nptl/${l} - else - sed \ - -e "s:/${l}:/tls/${l}:g" \ - -e "s:/${l/%.so/_nonshared.a}:/nptl/${l/%.so/_nonshared.a}:g" \ - "${ED}"$(alt_usrlibdir)/${l} > "${ED}"$(alt_usrlibdir)/nptl/${l} - fi - - # then grab the static lib ... - src_lib=${src_lib/%.so/.a} - [[ ! -e ${src_lib} ]] && src_lib=${src_lib/%.a/_pic.a} - cp -a ${src_lib} "${ED}"$(alt_usrlibdir)/nptl/ || die "copying nptl ${src_lib}" - src_lib=${src_lib/%.a/_nonshared.a} - if [[ -e ${src_lib} ]] ; then - cp -a ${src_lib} "${ED}"$(alt_usrlibdir)/nptl/ || die "copying nptl ${src_lib}" - fi - done - - # use the nptl linker instead of the linuxthreads one as the linuxthreads - # one may lack TLS support and that can be really bad for business - cp -a elf/ld.so "${ED}"$(alt_libdir)/$(scanelf -qSF'%S#F' elf/ld.so) || die "copying nptl interp" - 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 in_iuse suid && ! 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. - cd "${ED}"$(alt_libdir)/.. - [[ -e lib ]] || mkdir lib - cd "${ED}"$(alt_usrlibdir)/.. - [[ -e lib ]] || mkdir 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 || die - doman *.[0-8] - insinto /etc - doins locale.gen || die - - # 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 /usr/$(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 || die - doins "${WORKDIR}"/extra/etc/*.conf || die - - if ! in_iuse nscd || use nscd ; then - doinitd "${WORKDIR}"/extra/etc/nscd || die - - local nscd_args=( - -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" - ) - version_is_at_least 2.16 || nscd_args+=( -e 's: --foreground : :' ) - sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd - - # Newer versions of glibc include the nscd.service themselves. - # TODO: Drop the $FILESDIR copy once 2.19 goes stable. - if version_is_at_least 2.19 ; then - systemd_dounit nscd/nscd.service || die - systemd_newtmpfilesd nscd/nscd.tmpfiles nscd.conf || die - else - 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 - fi - - echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc - doenvd "${T}"/00glibc || die - - for d in BUGS ChangeLog* CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do - [[ -s ${d} ]] && dodoc ${d} - done - - # Prevent overwriting of the /etc/localtime symlink. We'll handle the - # creation of the "factory" symlink in pkg_postinst(). - rm -f "${ED}"/etc/localtime -} - -toolchain-glibc_headers_install() { - local builddir=$(builddir "headers") - cd "${builddir}" - emake install_root="${D}$(alt_prefix)" install-headers || die - if ! version_is_at_least 2.16 ; then - insinto $(alt_headers)/bits - doins bits/stdio_lim.h || die - fi - insinto $(alt_headers)/gnu - doins "${S}"/include/gnu/stubs.h || die "doins include gnu" - # 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}"/*/libpthread-*.so - fi -} - -eblit-glibc-src_install() { - if just_headers ; then - export ABI=default - toolchain-glibc_headers_install - return - fi - - foreach_abi toolchain-glibc_src_install - src_strip -} diff --git a/sys-libs/glibc/files/eblits/src_prepare.eblit b/sys-libs/glibc/files/eblits/src_prepare.eblit deleted file mode 100644 index 162cf53..0000000 --- a/sys-libs/glibc/files/eblits/src_prepare.eblit +++ /dev/null @@ -1,63 +0,0 @@ -# Copyright 1999-2014 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -eblit-glibc-src_prepare() { - # XXX: We should do the branchupdate, before extracting the manpages and - # infopages else it does not help much (mtimes change if there is a change - # to them with branchupdate) - if [[ -n ${BRANCH_UPDATE} ]] ; then - epatch "${DISTDIR}"/glibc-${RELEASE_VER}-branch-update-${BRANCH_UPDATE}.patch.bz2 - - # Snapshot date patch - einfo "Patching version to display snapshot date ..." - sed -i -e "s:\(#define RELEASE\).*:\1 \"${BRANCH_UPDATE}\":" version.h - fi - - # tag, glibc is it - if ! version_is_at_least 2.17 ; then - [[ -e csu/Banner ]] && die "need new banner location" - glibc_banner > csu/Banner - fi - if [[ -n ${PATCH_VER} ]] && ! use vanilla ; then - EPATCH_MULTI_MSG="Applying Gentoo Glibc Patchset ${RELEASE_VER}-${PATCH_VER} ..." \ - EPATCH_EXCLUDE=${GLIBC_PATCH_EXCLUDE} \ - EPATCH_SUFFIX="patch" \ - ARCH=$(tc-arch) \ - epatch "${WORKDIR}"/patches - fi - - if just_headers ; then - if [[ -e ports/sysdeps/mips/preconfigure ]] ; then - # mips peeps like to screw with us. if building headers, - # we don't have a real compiler, so we can't let them - # insert -mabi on us. - sed -i '/CPPFLAGS=.*-mabi/s|.*|:|' ports/sysdeps/mips/preconfigure || die - find ports/sysdeps/mips/ -name Makefile -exec sed -i '/^CC.*-mabi=/s:-mabi=.*:-D_MIPS_SZPTR=32:' {} + - fi - fi - - epatch_user - - gnuconfig_update - - # Glibc is stupid sometimes, and doesn't realize that with a - # static C-Only gcc, -lgcc_eh doesn't exist. - # http://sourceware.org/ml/libc-alpha/2003-09/msg00100.html - # http://sourceware.org/ml/libc-alpha/2005-02/msg00042.html - # But! Finally fixed in recent versions: - # http://sourceware.org/ml/libc-alpha/2012-05/msg01865.html - if ! version_is_at_least 2.16 ; then - echo 'int main(){}' > "${T}"/gcc_eh_test.c - if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/gcc_eh_test.c -lgcc_eh 2>/dev/null ; then - sed -i -e 's:-lgcc_eh::' Makeconfig || die "sed gcc_eh" - fi - fi - - cd "${WORKDIR}" - find . -type f '(' -size 0 -o -name "*.orig" ')' -delete - find . -name configure -exec touch {} + - - # Fix permissions on some of the scripts. - chmod u+x "${S}"/scripts/*.sh -} diff --git a/sys-libs/glibc/files/eblits/src_test.eblit b/sys-libs/glibc/files/eblits/src_test.eblit deleted file mode 100644 index fc5b950..0000000 --- a/sys-libs/glibc/files/eblits/src_test.eblit +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright 1999-2014 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -glibc_src_test() { - cd "$(builddir $1)" - nonfatal emake -j1 check && return 0 - einfo "make check failed - re-running with --keep-going to get the rest of the results" - nonfatal emake -j1 -k check - ewarn "make check failed for ${ABI}-${CTARGET}-$1" - return 1 -} - -toolchain-glibc_src_test() { - local ret=0 t - for t in linuxthreads nptl ; do - if want_${t} ; then - glibc_src_test ${t} - : $(( ret |= $? )) - fi - done - return ${ret} -} - -eblit-glibc-src_test() { - # Give tests more time to complete. - export TIMEOUTFACTOR=5 - - foreach_abi toolchain-glibc_src_test || die "tests failed" -} diff --git a/sys-libs/glibc/files/eblits/src_unpack.eblit b/sys-libs/glibc/files/eblits/src_unpack.eblit deleted file mode 100644 index 8d4c740..0000000 --- a/sys-libs/glibc/files/eblits/src_unpack.eblit +++ /dev/null @@ -1,121 +0,0 @@ -# Copyright 1999-2014 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -[[ ${EAPI:-0} == [01] ]] && source "${FILESDIR}/eblits/src_prepare.eblit" - -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() { - [[ $(KV_to_int $1) -ge $(KV_to_int $2) ]] - eend $? -} - -get_kheader_version() { - printf '#include <linux/version.h>\nLINUX_VERSION_CODE\n' | \ - $(tc-getCPP ${CTARGET}) -I "${EPREFIX}/$(alt_build_headers)" - | \ - tail -n 1 -} - -check_nptl_support() { - # don't care about the compiler here as we arent using it - just_headers && return - - local run_kv build_kv want_kv - run_kv=$(int_to_KV $(get_KV)) - build_kv=$(int_to_KV $(get_kheader_version)) - want_kv=${NPTL_KERN_VER} - - 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 ! is_crosscompile && ! tc-is-cross-compiler ; then - # Building fails on an non-supporting kernel - ebegin "Checking 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} for NPTL support!" - 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} for NPTL support!" - die "linux-headers version too low!" - fi -} - -unpack_pkg() { - local a=${PN} - [[ -n ${SNAP_VER} ]] && a="${a}-${RELEASE_VER}" - [[ -n $1 ]] && a="${a}-$1" - if [[ -n ${SNAP_VER} ]] ; then - a="${a}-${SNAP_VER}" - else - if [[ -n $2 ]] ; then - a="${a}-$2" - else - a="${a}-${RELEASE_VER}" - fi - fi - if has ${a}.tar.xz ${A} ; then - unpacker ${a}.tar.xz - else - unpack ${a}.tar.bz2 - fi - [[ -n $1 ]] && { mv ${a} $1 || die ; } -} - -toolchain-glibc_src_unpack() { - # Check NPTL support _before_ we unpack things to save some time - want_nptl && check_nptl_support - - if [[ -n ${EGIT_REPO_URIS} ]] ; then - local i d - for ((i=0; i<${#EGIT_REPO_URIS[@]}; ++i)) ; do - EGIT_REPO_URI=${EGIT_REPO_URIS[$i]} - EGIT_SOURCEDIR=${EGIT_SOURCEDIRS[$i]} - git-2_src_unpack - done - else - unpack_pkg - fi - - cd "${S}" - touch locale/C-translit.h #185476 #218003 - [[ -n ${LT_VER} ]] && unpack_pkg linuxthreads ${LT_VER} - [[ -n ${PORTS_VER} ]] && unpack_pkg ports ${PORTS_VER} - [[ -n ${LIBIDN_VER} ]] && unpack_pkg libidn - - if [[ -n ${PATCH_VER} ]] ; then - cd "${WORKDIR}" - unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.bz2 - # pull out all the addons - local d - for d in extra/*/configure ; do - d=${d%/configure} - [[ -d ${S}/${d} ]] && die "${d} already exists in \${S}" - mv "${d}" "${S}" || die "moving ${d} failed" - done - fi -} - -eblit-glibc-src_unpack() { - setup_env - - toolchain-glibc_src_unpack - [[ ${EAPI:-0} == [01] ]] && cd "${S}" && eblit-glibc-src_prepare -} diff --git a/sys-libs/glibc/files/nscd b/sys-libs/glibc/files/nscd deleted file mode 100644 index b102de0..0000000 --- a/sys-libs/glibc/files/nscd +++ /dev/null @@ -1,64 +0,0 @@ -#!/sbin/runscript -# Copyright 1999-2005 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/nscd,v 1.7 2007/02/23 12:09:39 uberlord Exp $ - -depend() { - use dns ldap net slapd -} - -checkconfig() { - if [ ! -d /var/run/nscd ] ; then - mkdir -p /var/run/nscd - chmod 755 /var/run/nscd - fi - if [ -z "${NSCD_PERMS_OK}" ] && [ "$(stat -c %a /var/run/nscd)" != "755" ] ; then - echo "" - ewarn "nscd run dir is not world readable, you should reset the perms:" - ewarn "chmod 755 /var/run/nscd" - ewarn "chmod a+rw /var/run/nscd/socket" - echo "" - ewarn "To disable this warning, set 'NSCD_PERMS_OK' in /etc/conf.d/nscd" - echo "" - fi -} - -start() { - checkconfig - - ebegin "Starting Name Service Cache Daemon" - local secure=`while read curline ; do - table=${curline%:*} - entries=${curline##$table:} - table=${table%%[^a-z]*} - case $table in - passwd*|group*|hosts) - for entry in $entries ; do - case $entry in - nisplus*) - /usr/sbin/nscd_nischeck $table || \ - /echo "-S $table,yes" - ;; - esac - done - ;; - esac - done < /etc/nsswitch.conf` - local pidfile="$(strings /usr/sbin/nscd | grep nscd.pid)" - mkdir -p "$(dirname ${pidfile})" - save_options pidfile "${pidfile}" - start-stop-daemon --start --quiet \ - --exec /usr/sbin/nscd --pidfile "${pidfile}" \ - -- $secure - eend $? -} - -stop() { - local pidfile="$(get_options pidfile)" - [ -n "${pidfile}" ] && pidfile="--pidfile ${pidfile}" - ebegin "Shutting down Name Service Cache Daemon" - start-stop-daemon --stop --quiet --exec /usr/sbin/nscd ${pidfile} - eend $? -} - -# vim:ts=4 diff --git a/sys-libs/glibc/files/nscd.service b/sys-libs/glibc/files/nscd.service deleted file mode 100644 index 25a3b1d..0000000 --- a/sys-libs/glibc/files/nscd.service +++ /dev/null @@ -1,15 +0,0 @@ -[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/sys-libs/glibc/files/nscd.tmpfilesd b/sys-libs/glibc/files/nscd.tmpfilesd deleted file mode 100644 index 52edbba..0000000 --- a/sys-libs/glibc/files/nscd.tmpfilesd +++ /dev/null @@ -1,4 +0,0 @@ -# Configuration to create /run/nscd directory -# Used as part of systemd's tmpfiles - -d /run/nscd 0755 root root diff --git a/sys-libs/glibc/files/nsswitch.conf b/sys-libs/glibc/files/nsswitch.conf deleted file mode 100644 index eb16961..0000000 --- a/sys-libs/glibc/files/nsswitch.conf +++ /dev/null @@ -1,24 +0,0 @@ -# /etc/nsswitch.conf: -# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/nsswitch.conf,v 1.1 2005/05/17 00:52:41 vapier Exp $ - -passwd: compat -shadow: compat -group: compat - -# passwd: db files nis -# shadow: db files nis -# group: db files nis - -hosts: files dns -networks: files dns - -services: db files -protocols: db files -rpc: db files -ethers: db files -netmasks: files -netgroup: files -bootparams: files - -automount: files -aliases: files diff --git a/sys-libs/glibc/glibc-2.15-r1.ebuild b/sys-libs/glibc/glibc-2.15-r1.ebuild deleted file mode 100644 index 757f34d..0000000 --- a/sys-libs/glibc/glibc-2.15-r1.ebuild +++ /dev/null @@ -1,233 +0,0 @@ -# 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.15-r1.ebuild,v 1.17 2013/04/05 00:25:16 vapier Exp $ - -inherit eutils versionator toolchain-funcs flag-o-matic gnuconfig multilib 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="~amd64 -hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" -RESTRICT="strip" # strip ourself #46186 -EMULTILIB_PKG="true" - -# Configuration variables -RELEASE_VER="" -BRANCH_UPDATE="" -SNAP_VER="" -case ${PV} in -9999*) - EGIT_REPO_URIS=( "git://sourceware.org/git/glibc.git" "git://sourceware.org/git/glibc-ports.git" ) - EGIT_SOURCEDIRS=( "${S}" "${S}/ports" ) - inherit git-2 - ;; -*_p*) - RELEASE_VER=${PV%_p*} - SNAP_VER=${PV#*_p} - ;; -*) - RELEASE_VER=${PV} - ;; -esac -LIBIDN_VER="" # it's integrated into the main tarball now -PATCH_VER="13" # Gentoo patchset -PORTS_VER=${RELEASE_VER} # version of glibc ports addon -LT_VER="" # version of linuxthreads addon -NPTL_KERN_VER=${NPTL_KERN_VER:-"2.6.9"} # min kernel version nptl requires -#LT_KERN_VER=${LT_KERN_VER:-"2.4.1"} # min kernel version linuxthreads requires - -IUSE="debug gd hardened multilib selinux profile vanilla crosscompile_opts_headers-only ${LT_VER:+glibc-compat20 nptl linuxthreads}" -[[ -n ${RELEASE_VER} ]] && S=${WORKDIR}/glibc-${RELEASE_VER}${SNAP_VER:+-${SNAP_VER}} - -# 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.9/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 for as-needed -# arch: we need to make sure our binutils/gcc supports TLS -DEPEND=">=sys-devel/gcc-3.4.4 - arm? ( >=sys-devel/binutils-2.16.90 >=sys-devel/gcc-4.1.0 ) - x86? ( >=sys-devel/gcc-4.3 ) - amd64? ( >=sys-devel/binutils-2.19 >=sys-devel/gcc-4.3 ) - ppc? ( >=sys-devel/gcc-4.1.0 ) - ppc64? ( >=sys-devel/gcc-4.1.0 ) - >=sys-devel/binutils-2.15.94 - ${LT_VER:+nptl? (} >=sys-kernel/linux-headers-${NPTL_KERN_VER} ${LT_VER:+)} - >=app-misc/pax-utils-0.1.10 - virtual/os-headers - !<sys-apps/sandbox-1.2.18.1-r2 - !<sys-apps/portage-2.1.2 - !<sys-devel/patch-2.6 - selinux? ( sys-libs/libselinux )" -RDEPEND="!sys-kernel/ps3-sources - selinux? ( sys-libs/libselinux ) - !sys-libs/nss-db" - -if [[ ${CATEGORY} == cross-* ]] ; then - DEPEND="${DEPEND} !crosscompile_opts_headers-only? ( ${CATEGORY}/gcc )" - [[ ${CATEGORY} == *-linux* ]] && DEPEND="${DEPEND} ${CATEGORY}/linux-headers" -else - DEPEND="${DEPEND} !vanilla? ( >=sys-libs/timezone-data-2007c )" - RDEPEND="${RDEPEND} - vanilla? ( !sys-libs/timezone-data ) - !vanilla? ( sys-libs/timezone-data )" -fi - -SRC_URI=$( - upstream_uris() { - echo mirror://gnu/glibc/$1 ftp://sourceware.org/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1 - } - gentoo_uris() { - local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI" - devspace=${devspace//HTTP/http://dev.gentoo.org/} - echo mirror://gentoo/$1 ${devspace//URI/$1} - } - - TARNAME=${PN} - if [[ -n ${SNAP_VER} ]] ; then - TARNAME="${PN}-${RELEASE_VER}" - [[ -n ${PORTS_VER} ]] && PORTS_VER=${SNAP_VER} - upstream_uris ${TARNAME}-${SNAP_VER}.tar.bz2 - elif [[ -z ${EGIT_REPO_URIS} ]] ; then - upstream_uris ${TARNAME}-${RELEASE_VER}.tar.xz - fi - [[ -n ${LIBIDN_VER} ]] && upstream_uris glibc-libidn-${LIBIDN_VER}.tar.bz2 - [[ -n ${PORTS_VER} ]] && upstream_uris ${TARNAME}-ports-${PORTS_VER}.tar.xz - [[ -n ${LT_VER} ]] && upstream_uris ${TARNAME}-linuxthreads-${LT_VER}.tar.bz2 - [[ -n ${BRANCH_UPDATE} ]] && gentoo_uris glibc-${RELEASE_VER}-branch-update-${BRANCH_UPDATE}.patch.bz2 - [[ -n ${PATCH_VER} ]] && gentoo_uris glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.bz2 -) - -# eblit-include [--skip] <function> [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 <function> [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 <function> -# run the specified function if it is defined -eblit-run-maybe() { - [[ $(type -t "$@") == "function" ]] && "$@" -} - -# eblit-run <function> [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+=" 1200_all_glibc-${PV}-x32.patch" -} - -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.12/glibc-2.12-hardened-pie.patch - epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-configure-picdefault.patch - epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-inittls-nosysenter.patch - - einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler" - cp -f "${FILESDIR}"/2.6/glibc-2.6-gentoo-stack_chk_fail.c \ - debug/stack_chk_fail.c || die - cp -f "${FILESDIR}"/2.10/glibc-2.10-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 -} diff --git a/sys-libs/glibc/glibc-2.15-r2.ebuild b/sys-libs/glibc/glibc-2.15-r2.ebuild deleted file mode 100644 index 2d106b9..0000000 --- a/sys-libs/glibc/glibc-2.15-r2.ebuild +++ /dev/null @@ -1,225 +0,0 @@ -# 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.15-r2.ebuild,v 1.30 2013/04/05 00:25:16 vapier Exp $ - -inherit eutils versionator toolchain-funcs flag-o-matic gnuconfig multilib 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" -RESTRICT="strip" # strip ourself #46186 -EMULTILIB_PKG="true" - -# Configuration variables -RELEASE_VER="" -BRANCH_UPDATE="" -SNAP_VER="" -case ${PV} in -9999*) - EGIT_REPO_URIS=( "git://sourceware.org/git/glibc.git" "git://sourceware.org/git/glibc-ports.git" ) - EGIT_SOURCEDIRS=( "${S}" "${S}/ports" ) - inherit git-2 - ;; -*_p*) - RELEASE_VER=${PV%_p*} - SNAP_VER=${PV#*_p} - ;; -*) - RELEASE_VER=${PV} - ;; -esac -LIBIDN_VER="" # it's integrated into the main tarball now -PATCH_VER="21" # Gentoo patchset -PORTS_VER=${RELEASE_VER} # version of glibc ports addon -NPTL_KERN_VER=${NPTL_KERN_VER:-"2.6.9"} # min kernel version nptl requires - -IUSE="debug gd hardened multilib selinux profile vanilla crosscompile_opts_headers-only" -[[ -n ${RELEASE_VER} ]] && S=${WORKDIR}/glibc-${RELEASE_VER}${SNAP_VER:+-${SNAP_VER}} - -# 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.9/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 for as-needed -# arch: we need to make sure our binutils/gcc supports TLS -DEPEND=">=sys-devel/gcc-3.4.4 - arm? ( >=sys-devel/binutils-2.16.90 >=sys-devel/gcc-4.1.0 ) - x86? ( >=sys-devel/gcc-4.3 ) - amd64? ( >=sys-devel/binutils-2.19 >=sys-devel/gcc-4.3 ) - ppc? ( >=sys-devel/gcc-4.1.0 ) - ppc64? ( >=sys-devel/gcc-4.1.0 ) - >=sys-devel/binutils-2.15.94 - >=app-misc/pax-utils-0.1.10 - virtual/os-headers - !<sys-apps/sandbox-1.2.18.1-r2 - !<sys-apps/portage-2.1.2 - !<sys-devel/patch-2.6 - selinux? ( sys-libs/libselinux )" -RDEPEND="!sys-kernel/ps3-sources - selinux? ( sys-libs/libselinux ) - !sys-libs/nss-db" - -if [[ ${CATEGORY} == cross-* ]] ; then - DEPEND="${DEPEND} !crosscompile_opts_headers-only? ( ${CATEGORY}/gcc )" - [[ ${CATEGORY} == *-linux* ]] && DEPEND="${DEPEND} ${CATEGORY}/linux-headers" -else - DEPEND="${DEPEND} !vanilla? ( >=sys-libs/timezone-data-2007c )" - RDEPEND="${RDEPEND} - vanilla? ( !sys-libs/timezone-data ) - !vanilla? ( sys-libs/timezone-data )" -fi - -SRC_URI=$( - upstream_uris() { - echo mirror://gnu/glibc/$1 ftp://sourceware.org/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1 - } - gentoo_uris() { - local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI" - devspace=${devspace//HTTP/http://dev.gentoo.org/} - echo mirror://gentoo/$1 ${devspace//URI/$1} - } - - TARNAME=${PN} - if [[ -n ${SNAP_VER} ]] ; then - TARNAME="${PN}-${RELEASE_VER}" - [[ -n ${PORTS_VER} ]] && PORTS_VER=${SNAP_VER} - upstream_uris ${TARNAME}-${SNAP_VER}.tar.bz2 - elif [[ -z ${EGIT_REPO_URIS} ]] ; then - upstream_uris ${TARNAME}-${RELEASE_VER}.tar.xz - fi - [[ -n ${LIBIDN_VER} ]] && upstream_uris glibc-libidn-${LIBIDN_VER}.tar.bz2 - [[ -n ${PORTS_VER} ]] && upstream_uris ${TARNAME}-ports-${PORTS_VER}.tar.xz - [[ -n ${BRANCH_UPDATE} ]] && gentoo_uris glibc-${RELEASE_VER}-branch-update-${BRANCH_UPDATE}.patch.bz2 - [[ -n ${PATCH_VER} ]] && gentoo_uris glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.bz2 -) - -# eblit-include [--skip] <function> [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 <function> [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 <function> -# run the specified function if it is defined -eblit-run-maybe() { - [[ $(type -t "$@") == "function" ]] && "$@" -} - -# eblit-run <function> [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-post() { - if use hardened ; then - cd "${S}" - einfo "Patching to get working PIE binaries on PIE (hardened) platforms" - gcc-specs-pie && epatch "${FILESDIR}"/2.12/glibc-2.12-hardened-pie.patch - epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-configure-picdefault.patch - epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-inittls-nosysenter.patch - - einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler" - cp -f "${FILESDIR}"/2.6/glibc-2.6-gentoo-stack_chk_fail.c \ - debug/stack_chk_fail.c || die - cp -f "${FILESDIR}"/2.10/glibc-2.10-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 -} diff --git a/sys-libs/glibc/glibc-2.15-r3.ebuild b/sys-libs/glibc/glibc-2.15-r3.ebuild deleted file mode 100644 index fb2b257..0000000 --- a/sys-libs/glibc/glibc-2.15-r3.ebuild +++ /dev/null @@ -1,227 +0,0 @@ -# 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.15-r3.ebuild,v 1.14 2013/05/09 04:41:16 vapier Exp $ - -inherit eutils versionator toolchain-funcs flag-o-matic gnuconfig multilib 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 m68k ~mips ppc ppc64 s390 sh sparc x86" -RESTRICT="strip" # strip ourself #46186 -EMULTILIB_PKG="true" - -# Configuration variables -RELEASE_VER="" -BRANCH_UPDATE="" -SNAP_VER="" -case ${PV} in -9999*) - EGIT_REPO_URIS=( "git://sourceware.org/git/glibc.git" "git://sourceware.org/git/glibc-ports.git" ) - EGIT_SOURCEDIRS=( "${S}" "${S}/ports" ) - inherit git-2 - ;; -*_p*) - RELEASE_VER=${PV%_p*} - SNAP_VER=${PV#*_p} - ;; -*) - RELEASE_VER=${PV} - ;; -esac -LIBIDN_VER="" # it's integrated into the main tarball now -PATCH_VER="23" # Gentoo patchset -PORTS_VER=${RELEASE_VER} # version of glibc ports addon -NPTL_KERN_VER=${NPTL_KERN_VER:-"2.6.9"} # min kernel version nptl requires - -IUSE="debug gd hardened multilib selinux profile vanilla crosscompile_opts_headers-only" -[[ -n ${RELEASE_VER} ]] && S=${WORKDIR}/glibc-${RELEASE_VER}${SNAP_VER:+-${SNAP_VER}} - -# 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.9/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 for as-needed -# arch: we need to make sure our binutils/gcc supports TLS -DEPEND=">=sys-devel/gcc-3.4.4 - arm? ( >=sys-devel/binutils-2.16.90 >=sys-devel/gcc-4.1.0 ) - x86? ( >=sys-devel/gcc-4.3 ) - amd64? ( >=sys-devel/binutils-2.19 >=sys-devel/gcc-4.3 ) - ppc? ( >=sys-devel/gcc-4.1.0 ) - ppc64? ( >=sys-devel/gcc-4.1.0 ) - >=sys-devel/binutils-2.15.94 - >=app-misc/pax-utils-0.1.10 - virtual/os-headers - !<sys-apps/sandbox-1.2.18.1-r2 - !<sys-apps/portage-2.1.2 - !<sys-devel/patch-2.6 - selinux? ( sys-libs/libselinux )" -RDEPEND="!sys-kernel/ps3-sources - selinux? ( sys-libs/libselinux ) - !sys-libs/nss-db" - -if [[ ${CATEGORY} == cross-* ]] ; then - DEPEND="${DEPEND} !crosscompile_opts_headers-only? ( ${CATEGORY}/gcc )" - [[ ${CATEGORY} == *-linux* ]] && DEPEND="${DEPEND} ${CATEGORY}/linux-headers" -else - DEPEND="${DEPEND} !vanilla? ( >=sys-libs/timezone-data-2007c )" - RDEPEND="${RDEPEND} - vanilla? ( !sys-libs/timezone-data ) - !vanilla? ( sys-libs/timezone-data )" -fi - -SRC_URI=$( - upstream_uris() { - echo mirror://gnu/glibc/$1 ftp://sourceware.org/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1 - } - gentoo_uris() { - local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI" - devspace=${devspace//HTTP/http://dev.gentoo.org/} - echo mirror://gentoo/$1 ${devspace//URI/$1} - } - - TARNAME=${PN} - if [[ -n ${SNAP_VER} ]] ; then - TARNAME="${PN}-${RELEASE_VER}" - [[ -n ${PORTS_VER} ]] && PORTS_VER=${SNAP_VER} - upstream_uris ${TARNAME}-${SNAP_VER}.tar.bz2 - elif [[ -z ${EGIT_REPO_URIS} ]] ; then - upstream_uris ${TARNAME}-${RELEASE_VER}.tar.xz - fi - [[ -n ${LIBIDN_VER} ]] && upstream_uris glibc-libidn-${LIBIDN_VER}.tar.bz2 - [[ -n ${PORTS_VER} ]] && upstream_uris ${TARNAME}-ports-${PORTS_VER}.tar.xz - [[ -n ${BRANCH_UPDATE} ]] && gentoo_uris glibc-${RELEASE_VER}-branch-update-${BRANCH_UPDATE}.patch.bz2 - [[ -n ${PATCH_VER} ]] && gentoo_uris glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.bz2 -) - -# eblit-include [--skip] <function> [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 <function> [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 <function> -# run the specified function if it is defined -eblit-run-maybe() { - [[ $(type -t "$@") == "function" ]] && "$@" -} - -# eblit-run <function> [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-post() { - epatch "${FILESDIR}"/2.15/glibc-2.15-localstatedir-backport.patch - - if use hardened ; then - cd "${S}" - einfo "Patching to get working PIE binaries on PIE (hardened) platforms" - gcc-specs-pie && epatch "${FILESDIR}"/2.12/glibc-2.12-hardened-pie.patch - epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-configure-picdefault.patch - epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-inittls-nosysenter.patch - - einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler" - cp -f "${FILESDIR}"/2.6/glibc-2.6-gentoo-stack_chk_fail.c \ - debug/stack_chk_fail.c || die - cp -f "${FILESDIR}"/2.10/glibc-2.10-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 -} diff --git a/sys-libs/glibc/glibc-2.17.ebuild b/sys-libs/glibc/glibc-2.17.ebuild deleted file mode 100644 index 40b2f6c..0000000 --- a/sys-libs/glibc/glibc-2.17.ebuild +++ /dev/null @@ -1,228 +0,0 @@ -# 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 $ - -inherit eutils versionator toolchain-funcs flag-o-matic gnuconfig multilib systemd unpacker multiprocessing prefix - -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="7" # 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 - !<sys-apps/sandbox-1.6 - !<sys-apps/portage-2.1.2 - selinux? ( sys-libs/libselinux )" -RDEPEND="!sys-kernel/ps3-sources - selinux? ( sys-libs/libselinux ) - !sys-libs/nss-db" - -if [[ ${CATEGORY} == cross-* ]] ; then - DEPEND+=" !crosscompile_opts_headers-only? ( - >=${CATEGORY}/binutils-2.20 - >=${CATEGORY}/gcc-4.3 - )" - [[ ${CATEGORY} == *-linux* ]] && DEPEND+=" ${CATEGORY}/linux-headers" -else - DEPEND+=" - >=sys-devel/binutils-2.20 - >=sys-devel/gcc-4.3 - virtual/os-headers - !vanilla? ( >=sys-libs/timezone-data-2012c )" - RDEPEND+=" - vanilla? ( !sys-libs/timezone-data ) - !vanilla? ( sys-libs/timezone-data )" -fi - -SRC_URI=$( - upstream_uris() { - echo mirror://gnu/glibc/$1 ftp://sourceware.org/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1 - } - gentoo_uris() { - local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI" - devspace=${devspace//HTTP/http://dev.gentoo.org/} - echo mirror://gentoo/$1 ${devspace//URI/$1} - } - - [[ -z ${EGIT_REPO_URIS} ]] && upstream_uris ${P}.tar.xz - [[ -n ${PATCH_VER} ]] && gentoo_uris ${P}-patches-${PATCH_VER}.tar.bz2 -) - -# eblit-include [--skip] <function> [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 <function> [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 <function> -# run the specified function if it is defined -eblit-run-maybe() { - [[ $(type -t "$@") == "function" ]] && "$@" -} - -# eblit-run <function> [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+=" 6600_mips_librt-mips.patch" #456912 -} - -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.10/glibc-2.10-hardened-inittls-nosysenter.patch - - einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler" - cp -f "${FILESDIR}"/2.6/glibc-2.6-gentoo-stack_chk_fail.c \ - debug/stack_chk_fail.c || die - cp -f "${FILESDIR}"/2.10/glibc-2.10-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 - - # RHEL(likely CentOS and SL) 5.6 have kernels with vdso bug, - # https://bugzilla.redhat.com/show_bug.cgi?id=673616 - # we disable vdso loading in ELF handler, as suggest by Mike Frysinger - # http://article.gmane.org/gmane.comp.lib.glibc.user/1904 - # Benda Xu <heroxbd@gentoo.org> (3 Jul, 2013) - elog "Your kernel is known to have vdso bug, disabling this feature" - epatch "${FILESDIR}"/2.17/vdso-disable.patch - - epatch "${FILESDIR}"/2.17/locale-gen_prefix.patch - eprefixify "${WORKDIR}"/extra/locale/locale-gen - - cd "${S}" - epatch "${FILESDIR}"/2.17/glibc-2.17-runtime-prefix.patch - eprefixify glibc-compat/nss_{compat/compat-{grp,{,s}pwd},files/files-netgrp}.c \ - nis/nss_compat/compat-{grp,initgroups,{,s}pwd}.c \ - nss/{db-Makefile,{bug-erange,nss_files/files-init{,groups}}.c} \ - resolv/{netdb,resolv}.h sysdeps/{{generic,unix/sysv/linux}/paths.h,posix/system.c} \ - libio/iopopen.c - epatch "${FILESDIR}"/${PV}/${P}-shadow-prefix.patch -} - -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 -} diff --git a/sys-libs/glibc/glibc-2.19-r1.ebuild b/sys-libs/glibc/glibc-2.19-r1.ebuild deleted file mode 100644 index 8758b70..0000000 --- a/sys-libs/glibc/glibc-2.19-r1.ebuild +++ /dev/null @@ -1,227 +0,0 @@ -# Copyright 1999-2014 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.19-r1.ebuild,v 1.11 2014/10/26 08:05:50 vapier Exp $ - -inherit eutils versionator toolchain-funcs flag-o-matic gnuconfig multilib systemd unpacker multiprocessing prefix - -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 arm64 hppa ia64 m68k ~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 -GCC_BOOTSTRAP_VER="4.7.3-r1" -PATCH_VER="3" # 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 rap" - -# 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 - !<sys-apps/sandbox-1.6 - !<sys-apps/portage-2.1.2 - selinux? ( sys-libs/libselinux )" -RDEPEND="!sys-kernel/ps3-sources - selinux? ( sys-libs/libselinux ) - !sys-libs/nss-db" - -if [[ ${CATEGORY} == cross-* ]] ; then - DEPEND+=" !crosscompile_opts_headers-only? ( - >=${CATEGORY}/binutils-2.20 - >=${CATEGORY}/gcc-4.3 - )" - [[ ${CATEGORY} == *-linux* ]] && DEPEND+=" ${CATEGORY}/linux-headers" -else - DEPEND+=" - >=sys-devel/binutils-2.20 - >=sys-devel/gcc-4.3 - virtual/os-headers - !vanilla? ( >=sys-libs/timezone-data-2012c )" - RDEPEND+=" - vanilla? ( !sys-libs/timezone-data ) - !vanilla? ( sys-libs/timezone-data )" -fi - -upstream_uris() { - echo mirror://gnu/glibc/$1 ftp://sourceware.org/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1 -} -gentoo_uris() { - local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI" - devspace=${devspace//HTTP/http://dev.gentoo.org/} - echo mirror://gentoo/$1 ${devspace//URI/$1} -} -SRC_URI=$( - [[ -z ${EGIT_REPO_URIS} ]] && upstream_uris ${P}.tar.xz - [[ -n ${PATCH_VER} ]] && gentoo_uris ${P}-patches-${PATCH_VER}.tar.bz2 -) -SRC_URI+=" ${GCC_BOOTSTRAP_VER:+multilib? ( $(gentoo_uris gcc-${GCC_BOOTSTRAP_VER}-multilib-bootstrap.tar.bz2) )}" - -# eblit-include [--skip] <function> [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 <function> [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 <function> -# run the specified function if it is defined -eblit-run-maybe() { - [[ $(type -t "$@") == "function" ]] && "$@" -} - -# eblit-run <function> [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() { - [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib && unpack gcc-${GCC_BOOTSTRAP_VER}-multilib-bootstrap.tar.bz2 -} - -eblit-src_unpack-post() { - eprefixify extra/locale/locale-gen - - cd "${S}" - - if use hardened ; then - 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.19/glibc-2.19-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 - - if use rap; then - if type -p lsb_release > lsb-loc; then - local lsb_id=$(lsb_release -i) - local lsb_rel=$(lsb_release -r) - fi - - if [[ ${lsb_id} == *CentOS ]] || [[ ${lsb_id} == *RedHat* ]]; then - if [[ ${lsb_rel} == *5.6 ]]; then - elog "Your kernel is known to have vdso bug, disabling this feature" - elog "https://bugzilla.redhat.com/show_bug.cgi?id=678613" - epatch "${FILESDIR}"/${PV}/${P}-vdso-disable.patch - fi - fi - 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 -} diff --git a/sys-libs/glibc/glibc-2.20-r1.ebuild b/sys-libs/glibc/glibc-2.20-r1.ebuild deleted file mode 100644 index 967d32c..0000000 --- a/sys-libs/glibc/glibc-2.20-r1.ebuild +++ /dev/null @@ -1,202 +0,0 @@ -# Copyright 1999-2014 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.20-r1.ebuild,v 1.2 2014/12/31 08:22:30 vapier Exp $ - -EAPI="4" - -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 ~arm64 -hppa ~ia64 ~m68k ~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 -GCC_BOOTSTRAP_VER="4.7.3-r1" -PATCH_VER="3" # Gentoo patchset -: ${NPTL_KERN_VER:="2.6.32"} # min kernel version nptl requires - -IUSE="debug gd hardened multilib nscd selinux systemtap profile suid vanilla crosscompile_opts_headers-only rap" - -# 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 - -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 - !<sys-apps/sandbox-1.6 - !<sys-apps/portage-2.1.2 - selinux? ( sys-libs/libselinux )" -RDEPEND="!sys-kernel/ps3-sources - sys-apps/gentoo-functions - selinux? ( sys-libs/libselinux ) - !sys-libs/nss-db" - -if [[ ${CATEGORY} == cross-* ]] ; then - DEPEND+=" !crosscompile_opts_headers-only? ( - >=${CATEGORY}/binutils-2.24 - >=${CATEGORY}/gcc-4.4 - )" - [[ ${CATEGORY} == *-linux* ]] && DEPEND+=" ${CATEGORY}/linux-headers" -else - DEPEND+=" - >=sys-devel/binutils-2.24 - >=sys-devel/gcc-4.4 - virtual/os-headers" - RDEPEND+=" vanilla? ( !sys-libs/timezone-data )" - PDEPEND+=" !vanilla? ( sys-libs/timezone-data )" -fi - -upstream_uris() { - echo mirror://gnu/glibc/$1 ftp://sourceware.org/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1 -} -gentoo_uris() { - local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI HTTP~blueness/glibc/URI" - devspace=${devspace//HTTP/http://dev.gentoo.org/} - echo mirror://gentoo/$1 ${devspace//URI/$1} -} -SRC_URI=$( - [[ -z ${EGIT_REPO_URIS} ]] && upstream_uris ${P}.tar.xz - [[ -n ${PATCH_VER} ]] && gentoo_uris ${P}-patches-${PATCH_VER}.tar.bz2 -) -SRC_URI+=" ${GCC_BOOTSTRAP_VER:+multilib? ( $(gentoo_uris gcc-${GCC_BOOTSTRAP_VER}-multilib-bootstrap.tar.bz2) )}" - -# eblit-include [--skip] <function> [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 <function> [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 <function> -# run the specified function if it is defined -eblit-run-maybe() { - [[ $(type -t "$@") == "function" ]] && "$@" -} - -# eblit-run <function> [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_prepare() { eblit-run src_prepare ; } -src_configure() { eblit-run src_configure ; } -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() { - [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib && unpack gcc-${GCC_BOOTSTRAP_VER}-multilib-bootstrap.tar.bz2 -} - -eblit-src_prepare-post() { - eprefixify extra/locale/locale-gen - - cd "${S}" - - if use hardened ; then - 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.20/glibc-2.20-hardened-inittls-nosysenter.patch - - # We don't enable these for non-hardened as the output is very terse -- - # it only states that a crash happened. The default upstream behavior - # includes backtraces and symbols. - einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler" - cp "${FILESDIR}"/2.20/glibc-2.20-gentoo-stack_chk_fail.c debug/stack_chk_fail.c || die - cp "${FILESDIR}"/2.20/glibc-2.20-gentoo-chk_fail.c debug/chk_fail.c || die - - if use debug ; then - # Allow SIGABRT to dump core on non-hardened systems, or when debug is requested. - sed -i \ - -e '/^CFLAGS-backtrace.c/ iCPPFLAGS-stack_chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \ - -e '/^CFLAGS-backtrace.c/ iCPPFLAGS-chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \ - debug/Makefile || die - fi - - # Build various bits with ssp-all - sed -i \ - -e 's:-fstack-protector$:-fstack-protector-all:' \ - */Makefile || die - fi - - if use rap; then - if type -p lsb_release > lsb-loc; then - local lsb_id=$(lsb_release -i) - local lsb_rel=$(lsb_release -r) - fi - - epatch "${FILESDIR}"/2.17/${PN}-2.17-runtime-prefix.patch - eprefixify sysdeps/{{generic,unix/sysv/linux}/paths.h,posix/system.c} \ - libio/iopopen.c - epatch "${FILESDIR}"/${PV}/${P}-configurable-paths.patch - fi -} diff --git a/sys-libs/glibc/glibc-2.20.ebuild b/sys-libs/glibc/glibc-2.20.ebuild deleted file mode 100644 index 182bdff..0000000 --- a/sys-libs/glibc/glibc-2.20.ebuild +++ /dev/null @@ -1,201 +0,0 @@ -# Copyright 1999-2014 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.20.ebuild,v 1.6 2014/11/11 02:08:50 vapier Exp $ - -EAPI="4" - -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 ~arm64 -hppa ~ia64 ~m68k ~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 -GCC_BOOTSTRAP_VER="4.7.3-r1" -PATCH_VER="1" # Gentoo patchset -: ${NPTL_KERN_VER:="2.6.32"} # min kernel version nptl requires - -IUSE="debug gd hardened multilib nscd selinux systemtap profile suid vanilla crosscompile_opts_headers-only rap" - -# 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 - -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 - !<sys-apps/sandbox-1.6 - !<sys-apps/portage-2.1.2 - selinux? ( sys-libs/libselinux )" -RDEPEND="!sys-kernel/ps3-sources - selinux? ( sys-libs/libselinux ) - !sys-libs/nss-db" - -if [[ ${CATEGORY} == cross-* ]] ; then - DEPEND+=" !crosscompile_opts_headers-only? ( - >=${CATEGORY}/binutils-2.24 - >=${CATEGORY}/gcc-4.4 - )" - [[ ${CATEGORY} == *-linux* ]] && DEPEND+=" ${CATEGORY}/linux-headers" -else - DEPEND+=" - >=sys-devel/binutils-2.24 - >=sys-devel/gcc-4.4 - virtual/os-headers" - RDEPEND+=" vanilla? ( !sys-libs/timezone-data )" - PDEPEND+=" !vanilla? ( sys-libs/timezone-data )" -fi - -upstream_uris() { - echo mirror://gnu/glibc/$1 ftp://sourceware.org/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1 -} -gentoo_uris() { - local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI" - devspace=${devspace//HTTP/http://dev.gentoo.org/} - echo mirror://gentoo/$1 ${devspace//URI/$1} -} -SRC_URI=$( - [[ -z ${EGIT_REPO_URIS} ]] && upstream_uris ${P}.tar.xz - [[ -n ${PATCH_VER} ]] && gentoo_uris ${P}-patches-${PATCH_VER}.tar.bz2 -) -SRC_URI+=" ${GCC_BOOTSTRAP_VER:+multilib? ( $(gentoo_uris gcc-${GCC_BOOTSTRAP_VER}-multilib-bootstrap.tar.bz2) )}" - -# eblit-include [--skip] <function> [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 <function> [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 <function> -# run the specified function if it is defined -eblit-run-maybe() { - [[ $(type -t "$@") == "function" ]] && "$@" -} - -# eblit-run <function> [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_prepare() { eblit-run src_prepare ; } -src_configure() { eblit-run src_configure ; } -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() { - [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib && unpack gcc-${GCC_BOOTSTRAP_VER}-multilib-bootstrap.tar.bz2 -} - -eblit-src_prepare-post() { - eprefixify extra/locale/locale-gen - - cd "${S}" - - if use hardened ; then - 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.20/glibc-2.20-hardened-inittls-nosysenter.patch - - # We don't enable these for non-hardened as the output is very terse -- - # it only states that a crash happened. The default upstream behavior - # includes backtraces and symbols. - einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler" - cp "${FILESDIR}"/2.20/glibc-2.20-gentoo-stack_chk_fail.c debug/stack_chk_fail.c || die - cp "${FILESDIR}"/2.20/glibc-2.20-gentoo-chk_fail.c debug/chk_fail.c || die - - if use debug ; then - # Allow SIGABRT to dump core on non-hardened systems, or when debug is requested. - sed -i \ - -e '/^CFLAGS-backtrace.c/ iCPPFLAGS-stack_chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \ - -e '/^CFLAGS-backtrace.c/ iCPPFLAGS-chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \ - debug/Makefile || die - fi - - # Build various bits with ssp-all - sed -i \ - -e 's:-fstack-protector$:-fstack-protector-all:' \ - */Makefile || die - fi - - if use rap; then - if type -p lsb_release > lsb-loc; then - local lsb_id=$(lsb_release -i) - local lsb_rel=$(lsb_release -r) - fi - - epatch "${FILESDIR}"/2.17/${PN}-2.17-runtime-prefix.patch - eprefixify sysdeps/{{generic,unix/sysv/linux}/paths.h,posix/system.c} \ - libio/iopopen.c - epatch "${FILESDIR}"/${PV}/${P}-configurable-paths.patch - fi -} diff --git a/sys-libs/glibc/glibc-2.23-r2.ebuild b/sys-libs/glibc/glibc-2.23-r2.ebuild deleted file mode 100644 index 14b66ad..0000000 --- a/sys-libs/glibc/glibc-2.23-r2.ebuild +++ /dev/null @@ -1,208 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -EAPI="4" - -inherit eutils versionator toolchain-funcs flag-o-matic gnuconfig multilib systemd unpacker multiprocessing prefix - -DESCRIPTION="GNU libc6 (also called glibc2) C library" -HOMEPAGE="https://www.gnu.org/software/libc/libc.html" - -LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~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 -GCC_BOOTSTRAP_VER="4.7.3-r1" -PATCH_VER="4" # Gentoo patchset -: ${NPTL_KERN_VER:="2.6.32"} # min kernel version nptl requires - -IUSE="audit caps debug gd hardened multilib nscd +rpc 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 - -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. -COMMON_DEPEND=" - nscd? ( selinux? ( - audit? ( sys-process/audit ) - caps? ( sys-libs/libcap ) - ) ) - suid? ( caps? ( sys-libs/libcap ) ) - selinux? ( sys-libs/libselinux ) -" -DEPEND="${COMMON_DEPEND} - >=app-misc/pax-utils-0.1.10 - !<sys-apps/sandbox-1.6 - !<sys-apps/portage-2.1.2" -RDEPEND="${COMMON_DEPEND} - !sys-kernel/ps3-sources - sys-apps/gentoo-functions - !sys-libs/nss-db" - -if [[ ${CATEGORY} == cross-* ]] ; then - DEPEND+=" !crosscompile_opts_headers-only? ( - >=${CATEGORY}/binutils-2.24 - >=${CATEGORY}/gcc-4.7 - )" - [[ ${CATEGORY} == *-linux* ]] && DEPEND+=" ${CATEGORY}/linux-headers" -else - DEPEND+=" - >=sys-devel/binutils-2.24 - >=sys-devel/gcc-4.7 - virtual/os-headers" - RDEPEND+=" vanilla? ( !sys-libs/timezone-data )" - PDEPEND+=" !vanilla? ( sys-libs/timezone-data )" -fi - -upstream_uris() { - echo mirror://gnu/glibc/$1 ftp://sourceware.org/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1 -} -gentoo_uris() { - local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI" - devspace=${devspace//HTTP/https://dev.gentoo.org/} - echo mirror://gentoo/$1 ${devspace//URI/$1} -} -SRC_URI=$( - [[ -z ${EGIT_REPO_URIS} ]] && upstream_uris ${P}.tar.xz - [[ -n ${PATCH_VER} ]] && gentoo_uris ${P}-patches-${PATCH_VER}.tar.bz2 -) -SRC_URI+=" ${GCC_BOOTSTRAP_VER:+multilib? ( $(gentoo_uris gcc-${GCC_BOOTSTRAP_VER}-multilib-bootstrap.tar.bz2) )}" - -# eblit-include [--skip] <function> [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 <function> [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 <function> -# run the specified function if it is defined -eblit-run-maybe() { - [[ $(type -t "$@") == "function" ]] && "$@" -} - -# eblit-run <function> [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_prepare() { eblit-run src_prepare ; } -src_configure() { eblit-run src_configure ; } -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 pretend 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() { - [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib && unpack gcc-${GCC_BOOTSTRAP_VER}-multilib-bootstrap.tar.bz2 - # Bug 558636 we don't apply the pie works around for 2.22. It shoud have the support. #558636 - GLIBC_PATCH_EXCLUDE+=" 00_all_0002-workaround-crash-when-handling-signals-in-static-PIE.patch" - GLIBC_PATCH_EXCLUDE+=" 00_all_0012-disable-PIE-when-checking-for-PIC-default.patch" - GLIBC_PATCH_EXCLUDE+=" 00_all_0009-sys-types.h-drop-sys-sysmacros.h-include.patch" -} - -eblit-src_prepare-post() { - eprefixify extra/locale/locale-gen - - cd "${S}" - - epatch "${FILESDIR}"/2.19/${PN}-2.19-ia64-gcc-4.8-reloc-hack.patch #503838 - - if use hardened ; then - # We don't enable these for non-hardened as the output is very terse -- - # it only states that a crash happened. The default upstream behavior - # includes backtraces and symbols. - einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler" - cp "${FILESDIR}"/2.20/glibc-2.20-gentoo-stack_chk_fail.c debug/stack_chk_fail.c || die - cp "${FILESDIR}"/2.20/glibc-2.20-gentoo-chk_fail.c debug/chk_fail.c || die - - if use debug ; then - # Allow SIGABRT to dump core on non-hardened systems, or when debug is requested. - sed -i \ - -e '/^CFLAGS-backtrace.c/ iCPPFLAGS-stack_chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \ - -e '/^CFLAGS-backtrace.c/ iCPPFLAGS-chk_fail.c = -DSSP_SMASH_DUMPS_CORE' \ - debug/Makefile || die - fi - - # Build various bits with ssp-all - sed -i \ - -e 's:-fstack-protector$:-fstack-protector-all:' \ - */Makefile || die - fi - - case $(gcc-fullversion) in - 4.8.[0-3]|4.9.0) - eerror "You need to switch to a newer compiler; gcc-4.8.[0-3] and gcc-4.9.0 miscompile" - eerror "glibc. See https://bugs.gentoo.org/547420 for details." - die "need to switch compilers #547420" - ;; - esac -} diff --git a/sys-libs/glibc/glibc-9999.ebuild b/sys-libs/glibc/glibc-9999.ebuild deleted file mode 100644 index 9d19150..0000000 --- a/sys-libs/glibc/glibc-9999.ebuild +++ /dev/null @@ -1,204 +0,0 @@ -# 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-9999.ebuild,v 1.21 2013/04/10 16:40:27 vapier Exp $ - -inherit eutils versionator toolchain-funcs flag-o-matic gnuconfig multilib 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="" # 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 - !<sys-apps/sandbox-1.6 - !<sys-apps/portage-2.1.2 - selinux? ( sys-libs/libselinux )" -RDEPEND="!sys-kernel/ps3-sources - selinux? ( sys-libs/libselinux ) - !sys-libs/nss-db" - -if [[ ${CATEGORY} == cross-* ]] ; then - DEPEND+=" !crosscompile_opts_headers-only? ( - >=${CATEGORY}/binutils-2.20 - >=${CATEGORY}/gcc-4.3 - )" - [[ ${CATEGORY} == *-linux* ]] && DEPEND+=" ${CATEGORY}/linux-headers" -else - DEPEND+=" - >=sys-devel/binutils-2.20 - >=sys-devel/gcc-4.3 - virtual/os-headers - !vanilla? ( >=sys-libs/timezone-data-2012c )" - RDEPEND+=" - vanilla? ( !sys-libs/timezone-data ) - !vanilla? ( sys-libs/timezone-data )" -fi - -SRC_URI=$( - upstream_uris() { - echo mirror://gnu/glibc/$1 ftp://sourceware.org/pub/glibc/{releases,snapshots}/$1 mirror://gentoo/$1 - } - gentoo_uris() { - local devspace="HTTP~vapier/dist/URI HTTP~azarah/glibc/URI" - devspace=${devspace//HTTP/http://dev.gentoo.org/} - echo mirror://gentoo/$1 ${devspace//URI/$1} - } - - [[ -z ${EGIT_REPO_URIS} ]] && upstream_uris ${P}.tar.xz - [[ -n ${PATCH_VER} ]] && gentoo_uris ${P}-patches-${PATCH_VER}.tar.bz2 -) - -# eblit-include [--skip] <function> [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 <function> [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 <function> -# run the specified function if it is defined -eblit-run-maybe() { - [[ $(type -t "$@") == "function" ]] && "$@" -} - -# eblit-run <function> [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-post() { - if use hardened ; then - cd "${S}" - einfo "Patching to get working PIE binaries on PIE (hardened) platforms" - gcc-specs-pie && epatch "${FILESDIR}"/2.16/glibc-2.16-hardened-pie.patch - epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-configure-picdefault.patch - epatch "${FILESDIR}"/2.10/glibc-2.10-hardened-inittls-nosysenter.patch - - einfo "Installing Hardened Gentoo SSP and FORTIFY_SOURCE handler" - cp -f "${FILESDIR}"/2.6/glibc-2.6-gentoo-stack_chk_fail.c \ - debug/stack_chk_fail.c || die - cp -f "${FILESDIR}"/2.10/glibc-2.10-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 -} diff --git a/sys-libs/glibc/metadata.xml b/sys-libs/glibc/metadata.xml deleted file mode 100644 index f1f3fd9..0000000 --- a/sys-libs/glibc/metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> -<herd>toolchain</herd> -<use> - <flag name='gd'>build memusage and memusagestat tools</flag> - <flag name='nscd'>Build, and enable support for, the Name Service Cache Daemon</flag> - <flag name='suid'>Make internal pt_chown helper setuid -- not needed if using Linux and have /dev/pts mounted with gid=5</flag> - <flag name='systemtap'>enable systemtap static probe points</flag> -</use> -</pkgmetadata> |