diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2021-04-28 20:21:43 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2021-04-28 20:21:43 +0100 |
commit | 40aaaa64e86ba6710bbeb31c4615a6ce80e75e11 (patch) | |
tree | 758c221bad35c9288d0bd6df9c7dfc226728e52c /dev-lang/rust | |
parent | 8d5dbd847cbc704a6a06405856e94b461011afe3 (diff) |
gentoo resync : 28.04.2021
Diffstat (limited to 'dev-lang/rust')
19 files changed, 705 insertions, 3156 deletions
diff --git a/dev-lang/rust/Manifest b/dev-lang/rust/Manifest index 8f2faaca926d..112d15c9d998 100644 --- a/dev-lang/rust/Manifest +++ b/dev-lang/rust/Manifest @@ -1,91 +1,27 @@ -AUX 0012-Ignore-broken-and-non-applicable-tests.patch 3387 BLAKE2B 6809f3d5c2cf5698d516ccd74dbbf66cc4265200f75567fa197743672895ddee418367751ac3d99a263ff3417ed89718cd3602c609d0dfac7ba2fd5ac18dce76 SHA512 0c41c238dc0b5a7130398d8c1d6bb6987c9bff704c89875830e9d6ad28d49d9b300c1fe7c982ef9be9a92ed0057f6fc04a604d189d1aec2dc2b014d6d50a7d8d -AUX 1.44.0-libressl.patch 8969 BLAKE2B 1ae707140a93fd76ec825e0e8c49f1408cda5a3b290a07c974d8ba8ba9b82e230bc2a4864cdecc744425d77ded819690da9328af2f648c636e8fd9ba3f0bb131 SHA512 81421ce6a0eb89bb51ff6a95be79159fce18be51c341f29aaf9d18e9b4aa1d3324e0c3472f72881c94a053b6dc4490c16b5ca2ac9cece0ea2d01051e3ed28a56 -AUX 1.46.0-don-t-create-prefix-at-time-of-check.patch 1322 BLAKE2B 2355cb6da8f2ecef611d7f7d1b82f6ebed6c5d3b579fcdd34024413d8156605db1134ae5d3b6fbdb15e33b063dd8e827580a32065f7b6ddf65c5063f0c73d9ab SHA512 95f883b6638a10bae3ab88864a8d8f0a4463c62db94f9e138edf0f0b1c2378432c766f8d7222fdd0d00950752b222e22b1b7edb856c7e9104878a3ddf8af44d2 AUX 1.47.0-ignore-broken-and-non-applicable-tests.patch 2862 BLAKE2B 96363bfcaf3634185160d54f475711409c5af1e31b8deb3f1cb8650629eed6f4db6b8d758b84055c9ebe2983a213485f9d4d6de4f551ea1e3d122f7c3baad77e SHA512 4a2c7eab2d3930ba6d8bc042f52c993683a3e21bf023ae609bfb4db65df8c5750ce94264d6ee9196e4dfd3b3e204f10c70d6f3a2e752d0b373fee4ada4c5fe53 AUX 1.47.0-libressl.patch 8929 BLAKE2B b48e2ab7b9e391aefcca890dbb65276a873f40fb59b1c0bbd18548b678c2f1c10b3508f255015f5916897f887062a426b7419e37e0eee542edaf5bed455e028b SHA512 0638f67832e35674df1a6ff0ad2a05fef7a8fb9b4c4115ab6d926ded70aadd1494d9d9348f3af0e142c86acee62a68b43ad1bdd66e1feff1e6603dc813d36bf5 -AUX 1.47.0-llvm-tensorflow-fix.patch 2535 BLAKE2B 8baf9b938f59d4180af536d24d99789bf1d9d5258eab8c85add4b0c78fcaceea173606711d68bc9597be06cda5384c528e53d01ee5b66408efe66c38cf75b9ba SHA512 206148d8f017dfe206a0e9d436cbdef68f1e433ce0adb7b865d0dfccbb509a6c16f8c8ca76d433ec68992871cf6ac1d808dcbc66995dcaa87928cac08237dad7 -AUX 1.48.0-gentoo-musl-target-specs.patch 6489 BLAKE2B 37330507a03aee9b807b2142e264f6418ea63a1838bf0c39460d3cb972423dc515334e0d440088ede2f1062c0bc3e382fa4e86dc256baccfe4fe82eaa3e69125 SHA512 6e87a5d166c4f876c48a8b65f3420cfe48bc711d3126f31fa4c432968986724469cf04bf5bc301390a47022dcec5c885ca706fa543e5117329c47510fd88b04f AUX 1.49.0-gentoo-musl-target-specs.patch 6377 BLAKE2B 07e037353210292bc576ebbbda2afc489efeb696dffb34b4c5edffbb512b0ba5944cf641e625dd8a158cc7234b70d49d377397aab8cb9a86b4ec6f5a50a6cba6 SHA512 e166d4ed3e321257cef03655be98915badef432de10aa2bde2a4b9f1913dbb774a29a72d7d2861f69d02a37fd9f7c753c551a3e65fb7da4dfa78a8601eab8d38 -AUX 1.49.0-llvm-ver-display.patch 1248 BLAKE2B 756e0d9a2b0e223d931dd4c85929420bb9ff35c77dfb4c0f69aa999c0dac527dfc2d28684d1e6a8aef4a03d0b1ab638d0fe5092529fcc7304fc0e4209eb6ac7b SHA512 f349fb65e742953092f7b84f05355c1157e68f7d3401d63b89b43d07ba44cf6dccf389025444a7e30c414c0a8dc2c09424916e6644bafe5529118746a8c62af3 -AUX gentoo-musl-target-specs.patch 6500 BLAKE2B 07fe556fa39789a7b2ad0f3cb2e3885dd2a234216abb1e6a6aec4653b0d5da2ca9b29f2c2b5ac3ad95cde65203722c90079169dd46719f04a7c3cf5cffb7d8cb SHA512 55678d07fd7834e85da6ede69ee71115f5af92919deda122b5aac8be73c4d92f437e790f6dc8a566b0b738f07a0d6e0c738d4b5c8cec004b86de206b8d939c8f -DIST rust-1.45.1-aarch64-unknown-linux-gnu.tar.xz 110598096 BLAKE2B a3defd33d2c223012c9eb7b094c77f338ae9beb8661412966a62b4bc868175cf91489f4328a8dc7d0b84b892dad713d2c4f4d180c55dbcd2ffd58c3920585e84 SHA512 fd64aaa3d8137d62c838f0ef554ff159c84263a4734556c0e4ef911d3f87921f846d70d76983fe8ebe9679477915255ceea69c8a9769797893827d5d67e97b0b -DIST rust-1.45.1-arm-unknown-linux-gnueabi.tar.xz 115140648 BLAKE2B 537fe3874c0b09b8cad304c09ca36824cd77916508e7527b9b53a3a8a37ddeab3e760bb1f40c185a91a1eeba7953d7d9d2687e1d341b0833e2a129994e4a9014 SHA512 a3c36dee2f7cda77dd307ad61065c7ce20a433689a3396d8c286b07f0f2aea666881dd4089e2332a0793a51a72189928919a477e72e7f44a64b41101c65cf9ed -DIST rust-1.45.1-arm-unknown-linux-gnueabihf.tar.xz 113215036 BLAKE2B 36cabfcf77dd533b7f5f89dd5b94244d148cc4c6e19c76a9d677c01a4daffd8075f6842b98314f5ab37c66b223901cfe8a16e7637f3f805f5e75c705979fe8e4 SHA512 770fa7b73fc08979da63f83155cd424b0b7a543a5e6c47a2cb20aeb4f3470360622b70adc9d527a9316bc6b388a696d60c9de9119fe9be448d26cd48871b533d -DIST rust-1.45.1-armv7-unknown-linux-gnueabihf.tar.xz 116371752 BLAKE2B 3feecd7c1917294bd2384c36a9bfc371df1fa551f04c509e13d21ad3f95bdc06d2f0aac97edef10a87eef65b41b95bc34acae3741fd9648996f4ed43d4a54db7 SHA512 6dec92d112c0bbbe0434162d10df630505ba179b99fb51800140204fb2e52215d387162d97dadd3aff2324c81a4bbc944e45f4d39e55bf85e244d741e556a391 -DIST rust-1.45.1-i686-unknown-linux-gnu.tar.xz 131991636 BLAKE2B 2c012695d39e3665fc35fe5f66d4f0dcbbbd5525d1c8a8e26de2edc2edeee3985df1e5aa39e3122ac723f4dad1d9792be215748d80157d6f717584cbed656a98 SHA512 80f3bb328666766e177587c11cac4fb0db515ea16fc0462a29816a8474669f49c69461d2939919833337f3a95fbd1da09a55307f3f1936220bc2065f760a2345 -DIST rust-1.45.1-mips-unknown-linux-gnu.tar.xz 101183232 BLAKE2B f04ff7601935aad83e00ee062823b289d7bad8b591cd7d2ddb7c0d77be1b987621484ae829e56fd24971ac92c4dcce93d35d7313476d937b67da88cd4353aa2f SHA512 e70efa6c04f9ac4e4ef23d80457abee2219f04e81a743e67aa5305022265f0fac7db4998cae3d5587c38c17ae8f6d8e8d7052897a08c6939bce882bb6186bb2c -DIST rust-1.45.1-mips64-unknown-linux-gnuabi64.tar.xz 107235492 BLAKE2B 425dca5246a6c4648fa061c73a09b38650a838e86760d55ab51cb655385f3066c29bb520d5c12271b4d04e4b961d948782b9a27078a849fafc867882720d0505 SHA512 f1ccc296c8f5e806795630aa8939ca3025cde76bf7fb0285e656b1bbf0d0e29b70f3ef7e6598a8146250d0d743d41b372018777aecde8bbde015e276d365db6c -DIST rust-1.45.1-mipsel-unknown-linux-gnu.tar.xz 104260264 BLAKE2B b39b3305a1624daf0023ff5564dea21933999c2e488e6ca0da32a52be9891e4e9e3836e7509e8b7de8d3f2fab58b1360f21c2519da7bd1be8ed539f901973997 SHA512 de4e294e45d07e1544bb20e1fde78dcdf183e291f643f119959f61d075b691bff1290b3060c365a469dec7ae9bbf516e0b613b7b2b707b4fe23c37f972f40861 -DIST rust-1.45.1-powerpc-unknown-linux-gnu.tar.xz 106026300 BLAKE2B 73456028e79893ddb252a010ec0fa03443be874f5fd3b82f64ce221bd5685aea94acf29551ea3493155dc7caa7087b6db6df760b59dafc344f3040dd5e145ea6 SHA512 bbd6fdd879a8a7125f818946851e59f869c17997e58c90119370f4066c20db9d83f1250d59dccfc560d8b23cab45ce5c2d7edaef131f89ef7e2ce1ad903f2768 -DIST rust-1.45.1-powerpc64-unknown-linux-gnu.tar.xz 116528188 BLAKE2B 56a9d1a8d967b67b160aba248b50731744d21df4bb80f509a3008dbb6f2ed1c0271c9bcb621786354ece55c2f0aba63e9baad8ffdf30627b7e3167de645f9165 SHA512 12413ebf48a369ab869c4c7d40f6dcbe9cf53e094983eefbf142149759ce74a3f961dc8b68dfe4607b17c2ca34e5a97a38e0ccb2c14dea157fe93eccfd511bd5 -DIST rust-1.45.1-powerpc64le-unknown-linux-gnu.tar.xz 119234164 BLAKE2B 4148957ff2f95a8c440609e66956bfaed983e689dbcb5ae041e8ca092ef5da366324806d4c6075d0a73af6110c1f16d2bde09b369166b6fe47e42c104a5f2df5 SHA512 5222d1baa2836138ea65646a8ced3f186486bf7cf3b988f93280e2153371aa593c0ba660be9830ff4dd6cfdbe6cda32ead27a824a2e71c51d23749ea4a20c39d -DIST rust-1.45.1-s390x-unknown-linux-gnu.tar.xz 124758156 BLAKE2B ff62e14d5ae9f7213ebc24d694317ff292cb0d7d2a67f0ca284cddd2b9f594547b01a6c647780d47989d4405072f377d37fc03933431a3df804e37bc1248e803 SHA512 278411c6308eaa4d732ff4c0f448d808a5ee74dae5f3eaf04773ccf65c9bc5963153f62346d30de0f577dd6da89c55bed280c2fb0e50d2075e3c30a3649fc4e8 -DIST rust-1.45.1-x86_64-unknown-linux-gnu.tar.xz 117764080 BLAKE2B cafe6e4f7c28112879089d75703a1b1ce7c0cf9b5ab5beeb4ddf343f7bc93e8704bc105ba0bd95f1df6d62439f206d8f4ae9090330af857ec0a249540eb63122 SHA512 13ee5ff7cae29440e32fb140404ff01414d66f0ea8d79777fb1586541de1ee6ef8e12f9249c35374501460a2352f7d0f6035b5bdc2f0daa91d772a157657ec0b -DIST rust-1.45.1-x86_64-unknown-linux-musl.tar.xz 123820216 BLAKE2B 1afe48589e5eec15d8fdb31d52b2ada49688e78a311298d421a8b2d4c0cc6a708223e5976518d66506584dc2adc63651b62b8c1fc3c3ccfaff80e2ef7ade5078 SHA512 39875878acfeb05d7b72bab2dea51063a523fa7ad136d582ba28603df7f8b1c3360e5838e5f9b08f396969e52bb1fc672fa4c08cf5f8ffc39128af129b6b17a6 -DIST rust-1.46.0-aarch64-unknown-linux-gnu.tar.xz 127384736 BLAKE2B a1efd25cf429a309a454ef5db38c68d642920e859ef6effbe88ace7f3c4050ae7e9cf10d2f5b70405475ffcbbbc80338e3a5e4b3cb632c555e31a0ebc1b76cd4 SHA512 53e5d8afadaa9505286dce4acbb911126d17bc7bf45ea4685070ff07be7f6c7860e543a7686eeac695e7e3e127ca38ba2f09b73467fbf5f92d0b2195467c51f2 -DIST rust-1.46.0-arm-unknown-linux-gnueabi.tar.xz 121741008 BLAKE2B d277cb19c9f9641f216eba9ddb8bdb0a1bf70b7376e82798dad3116ff6d976c6ec8f6442831ae6a3c64cfdb46c59cf47b482df5200af49ba5eeccb663538084b SHA512 74cc1c8f56c88bdb669d52edca69c8aed7500e51498e8bf4099b2edbf85a2beab1e6d447029eb24e12fdfcbf2272f5d8b741eb4aa48fe83dac44759478429284 -DIST rust-1.46.0-arm-unknown-linux-gnueabihf.tar.xz 120726564 BLAKE2B 5ef9c319d4744016e336a8d8bde99b2b9183dd13fc6873d4f0e239a52a86e054d42ee48ca1a84ac42d140b1bbe234f4eeaf90717f14959ad6966681429eef233 SHA512 89972cc03c05dd5bc003f6cf16e062b935b3fda288ae0c3d32a3d08ccdcbf7699c306aa3c017a13e76f13f8dca7a951ec98f23507de978ae87cffb6d6907af5c -DIST rust-1.46.0-armv7-unknown-linux-gnueabihf.tar.xz 123912836 BLAKE2B 97cdb2e8d643826f7dd1554096e14c58c35b38cc2eebb49c478343bf8bc157995a9f1099c014800701d34edbf0f0798ac29babbd2a5bf261d1956bc731b0a99c SHA512 c7e320fd5169c99bf8a12fb5bf1c5fb19a05d14f75ce655e4b64cad3456594ef09be1da7ac34a09b5d84da0c857d1a6e5a0695b5ff04cda491ea92fea15d28dc -DIST rust-1.46.0-i686-unknown-linux-gnu.tar.xz 141319800 BLAKE2B 712227e42b8597ee1c645cb344042e79ca40aef0e22d783c4a0c042bd07f686aafd9b80bebe0dfe69b4b012056509bfe510fffa8ba5357656d459fe5885fe0fe SHA512 b01e9b06c9de50e43bc6b5e1a5e6cc49dab1cf28b9cf0a8b974d2630c7ed4c6a5df6f321c872e11eb622c42f1d8cfaec77c1b67254a84365464fe3415acfa07f -DIST rust-1.46.0-mips-unknown-linux-gnu.tar.xz 110175584 BLAKE2B 23e38e81d281d0df23795ff60e4a7503f63d443d966bc6d5068edc50fc0dd90e2fe45eb90b901a1fb3f8f813375533eaa142d625b661f5d76d2097b0cf572606 SHA512 0635060dd15f548834e5c946ec8deea10bf234f550f6a01d4d491f45e0d5f16e957f99caba14c91225d100e7c59e909869b816dfffe9f8681c09e9e5b6ca2bdd -DIST rust-1.46.0-mips64-unknown-linux-gnuabi64.tar.xz 117357812 BLAKE2B c3118a0b710ceaffda8523840551306d4bbc7c78fc26016fc1ac0037c2a7cd68f56c11999f7e3bc435f93e0dbebf348fdc52255cc5978bdffb2d55dc9d56e23e SHA512 5dc6de40429e72ecad9546390f1f5e626d388938c7bc50a56fb258787b45e8d7363170d8d1a2bff56fbd8bef22060b6cb0c50fb016ccc7d4fb767ba6b7e80c2d -DIST rust-1.46.0-mipsel-unknown-linux-gnu.tar.xz 111804692 BLAKE2B 4779d5602f2107321d5c6042dce1baaf6eec2f60cf2ba4330bf72fda0868d7e8294cf573b3ffab3654a0689d11599f2fc37430005686e91439abc7ae6fefb977 SHA512 3c9d17fa89636d37e125d7665883abc9912330d4a1f5291d44771fd1cbb17d604deccc07685cb567f1b141dde3668d5ef55f3661b04e4506d5337d69acc6738c -DIST rust-1.46.0-powerpc-unknown-linux-gnu.tar.xz 111495200 BLAKE2B d618c61a05507abe13d1294594187a4552896cb61396c2f8bd6e506a71ab4bb5cd26ae3b2b573d1d5a4ea79fb4dd2238a2ae34059357ef397264beb0b67cbc34 SHA512 38df2204bd4bfe7371365266651a84da218ba909c3ae107432f6fef892e71488d193b8f54fe6738edd91aa0ca029038d864806b25289254711bd10f736bcc2d7 -DIST rust-1.46.0-powerpc64-unknown-linux-gnu.tar.xz 124882812 BLAKE2B 2362e25d39cfd2039ce18db08f43bceaaccd208ec113c16f6718803eadda964bb254a6afc606765a00026adc93cf366495d3546d6aac8a7444088f519d421c9b SHA512 40f9423d838cab74b9920372e728c4ca7057005d83af587387dd2b164a0bf93de65cebc035320bce25f80914c63ce65b84218b9a776b0b905428e4cba0821b8b -DIST rust-1.46.0-powerpc64le-unknown-linux-gnu.tar.xz 130200900 BLAKE2B d38a7f131983aee27e6af59ab03999e7420745a0f9256b2623e71f36dd6f12605025dbdc510bd5ffb73e0d31a5c7e56a791bdf718b2eba629d08e2f75221b1c8 SHA512 986f0bf7995f35836b73fb7045cf43ae5efe0c2543c75c66cdcc0f8c1dd3513def3c291e021241e328142deaca690ce113526ffc870c4412a7841f244258a43e -DIST rust-1.46.0-s390x-unknown-linux-gnu.tar.xz 134521076 BLAKE2B d3efd71dd7db812736680929185ad5f58a2dbf7d1b8a6f851834dd7b41713fc171dbcdf2472bedc13751bfeed58070d919d2a1138765ab75c0f4bdf817cb6418 SHA512 b6146695225ff6d0516e7bb6bc4620599356bb89b14f429a09d9d7f8715a94e8e218402346d5c9a10eeb54c0bdc40fb179289216b0cb4edd5bdf886f6b69aab4 -DIST rust-1.46.0-x86_64-unknown-linux-gnu.tar.xz 127200200 BLAKE2B 7d755e0622cda99d111490197b21ff4aaeb7b13292804566bc677b7b1d833eaa644b7a801863a1a01e3aa34be28a80344cae69edc57f8c8788884c78e037b750 SHA512 95f5adc2d2137010c7e5ac8a0fc70485250b4f9a909cb8b164b35fffff76ab88e9b09d305bfac37324ed080c5fc7643001d2abec5454ca911dc3513f1af52c88 -DIST rust-1.46.0-x86_64-unknown-linux-musl.tar.xz 142372372 BLAKE2B 7d3672234b61b772e2311127db569b37296bf3a9bf86841fb78c6d20da6a6abfc6c866ba4aa7cc44c12eebb0744fbeb401b491314db9eb481b926792cadcca22 SHA512 e2599c4c10fe9725e63524d89c0be869d43347620b0f6ff1a93cee5e7219f5560c6171d8eda99e5624eba60b9d488bfe0942c23eacdbac2ba42e4cd63f14b7c9 -DIST rust-1.47.0-aarch64-unknown-linux-gnu.tar.xz 136486128 BLAKE2B 872226c232141e25466413d9a998bb021a6f4955dd8ccb5d68f8cca70ea8f7056a6f7b4125134b48a3106331dd3db2e77b32a0083fca3c66a348b77699c49e7a SHA512 7df7045df341f03508f1ad795a9117b39c1f4c4cc778c7fd9d78c42e7da662ce244d018084ac9e80d9409cf8b3b5d1ccc25ef4cb71a2b8727398d30a4e962e19 -DIST rust-1.47.0-arm-unknown-linux-gnueabi.tar.xz 133989400 BLAKE2B 301c17d6f9c048f43d460898ca352e189f7770539431721d178239d5cd64e9e62c05a63482049c18d6fe3fbaa463616d64cf6d82f2bd846576dedc6fc19bd3bd SHA512 db9caa96f142145c3f515730a1aee2fb24c9990f7b9b56e277997975409786904c6490609dfb29712acd9bba077acf36103e4d612bc6c2a74581b40fb50d12ad -DIST rust-1.47.0-arm-unknown-linux-gnueabihf.tar.xz 133431024 BLAKE2B ab94ee2961ac3060154834d21a47384dd09a55213f1a7082911e0976ab9e572b5b234e175ad068cee0fa9355ef2d85acd7ebfff109565be013f14c32e61a71ff SHA512 fa0643c4b2eb36c2bcf4c786517d27fee4428114b79565e0da3b5626700275e9368ce6a68e93b4eae9881265ecca474cced25d63f352ffe3c8617a725185cd28 -DIST rust-1.47.0-armv7-unknown-linux-gnueabihf.tar.xz 137060904 BLAKE2B 8e6cbd665cdffcdd059dc4278dfb1647d046a96619f784dfe45299a0c29f1af51de4511b87cb8c0d0d166ba76b484f4249819e22275e2c1775c53b2ee5b1ffb5 SHA512 b207ab7c478dce6db4018527888f539938c8e77b5ceccb460b9d52ffee13a2329d225d03a605b60729cae6254129245bdd69730aebb6ec91dd0c83005cf25253 -DIST rust-1.47.0-i686-unknown-linux-gnu.tar.xz 154793612 BLAKE2B a8063a9241fb9fa8b7f9c430d65fd2353d3a1014e51148c9cd1b5686338ccf5170fbde78cb6f95a9d4db5441392ad4e7bf14e5a39418208937cda4019cf4e2e2 SHA512 551204b4edfc1500aa83108c88b845997bb6befba0dd3401e9ae5294ab27960421f1b3130159946b996171c1d46f7532afa0c3ae767a9318985db0bb7c88dba0 -DIST rust-1.47.0-mips-unknown-linux-gnu.tar.xz 122428884 BLAKE2B 10778716e282f9b74ef1a3daeec70ed1bb4f4dcc4a31baeed90c26f398bbe313df58b62469595ced95c73df9aad4739210add4eb3c6f0f94b5fa3dc937967394 SHA512 0e39ef2cd814474c33adc38658cbc2e84879f0208fbb37c1a4bf3719d3cace071606e7b03fd8464ba80f6328cc0a0bd38ec8e7772cc460b5a2d2d8b704042c49 -DIST rust-1.47.0-mips64-unknown-linux-gnuabi64.tar.xz 125553888 BLAKE2B 27c9f5d860025ceff4acb1e40ecfa0ec4c053ac694e4bec3bab41e2a193492afb8b4ac22ca471d3170ebe5c3e0fce628d0bf8060b5831af10bd99d614caaceb6 SHA512 186324da11997a65586930e5f2422c687a6ad817e3e0a5766caadbd51153cd29dd1e0d472586117c654d5db20e0ea2bd4073e05a94f3197bed2403dc325b31d5 -DIST rust-1.47.0-mipsel-unknown-linux-gnu.tar.xz 122801616 BLAKE2B 667712f3441ce63bcfc245801dd580ba8a9a06e0695b9f9a713baa55d8f9b8ca208a02f043918814490166a4c3dd2cb6ffa0d669b9533845f9c241063ee9b9c1 SHA512 8cd441739a25af20298ed25d877f8da4b81969e6f591d45527b94187808b7ce04ef6106785fc050d1318f71fccd00c295f60cdbf8fb79288aac80d92be9e57c4 -DIST rust-1.47.0-powerpc-unknown-linux-gnu.tar.xz 125781632 BLAKE2B 00e966a5ba83702ee36fc2dadd9d058f655d4ea8b3b0072b61d221508ccddb82efae0f5028768a4744b6c439e0f7080db5f727e9f2f7facd7d57964bc332b5a3 SHA512 8a20462ed79f22b868a3e64ba147b32c32eb0b0a149a7a571cc91ffe1ae9fe2d71a244c910817f3c151464f6c417550923a4f02e9dc433670b38502684bf349f -DIST rust-1.47.0-powerpc64-unknown-linux-gnu.tar.xz 134272040 BLAKE2B c7b4256df6c7a031a53e022ba00999706674e273c041534b75743fee1d366567dcd86fb805ec9997737cff3902641e21269f2a95fef651227cac5da34c947091 SHA512 46fa1c042aebb06db4185fed6ef3bc7772f2a13f2290a20f5499757aae2a05dc984026315be7b5813aac172f52f50565e56aa074d32f6271858590a9ceb9e1c7 -DIST rust-1.47.0-powerpc64le-unknown-linux-gnu.tar.xz 141965604 BLAKE2B b4b7ce862b2201526e6a96249e509faa7bce2d841e571b6dd241c9a82bd9011c92e0918df649ffcce7f3c6c93aa47aa8f66b99e6529b1b3cecbe16622b08e0b2 SHA512 d5c6580861786545f0540cc9591884fb9f2036061bdd451d17cf8bfb427008d365cacd14e5054028c72b83d1d5eb347ab74478a882cbbd7fcc75a7421657561c -DIST rust-1.47.0-s390x-unknown-linux-gnu.tar.xz 146987276 BLAKE2B 1810e7bfbd235613563677449376167700c33960eb57b100e65058f6a00692316db518f2f4b79b39e414f3892c62bb1ec09b0866ff2221641c4a3056659a1668 SHA512 dd5877b6ff5c310ca6aa23c1cc621e6b0675d4c46f5a06b2a0b107641b604a1a2101109ba8e286267bab1158768c601d5d9a922a8da72486c91755ef465720c0 -DIST rust-1.47.0-x86_64-unknown-linux-gnu.tar.xz 150891572 BLAKE2B 45ff02465ba82ae96de25dd616fa08abb2396be21236d2f66f831effb349f39b047a380b38cb83254f27e56cecdbea8478f4de8ccc0aa23b11de2f11a28f501b SHA512 f695986ab8e67636b0e92ca7ea223984121e3c22788434a6f1062690e7932f6b30c0c302160fef96831f821acedaf8a909bd3d00a9aa873c7200d2b8fa39013f -DIST rust-1.47.0-x86_64-unknown-linux-musl.tar.xz 166456672 BLAKE2B d6ccfc574a81ae3e9e6a96805e6863009970b5c480f35ee0d582a204b782fe513b9c6c7094d1adea509de1a3097a8a0524ac00c2186b968f70f390615904eb5a SHA512 f71b162635955ecd8a6ec322818be69c788c18d4e923d84d901916648f2eb58573b1f97b460209294ee64198e76566b78e472f9cbca8665c59444adfc5ae603c -DIST rust-1.48.0-aarch64-unknown-linux-gnu.tar.xz 133782948 BLAKE2B 95e80db4734a91a1aed6433cb6dcc65358ef713f365216f6c344c4940c2b5e43b7dc5805f53635c4e7585e70c9d5773b6c93034fa2ffd0a28efb2f20a18f1be8 SHA512 6ebbd936b1bc2ccf30b62dbbbc6f3986fb57738d89e33a23d58bab09be57a445c17df7912866add91cc108ef7547d229a08c6206db2d2fb00d72887ff6a0894d -DIST rust-1.48.0-arm-unknown-linux-gnueabi.tar.xz 133293068 BLAKE2B f98129d16e0de958a164233a1cc6317dc64eeeee76aa88b6982af2cb0a4b9f798a989b6bc153dcd55a7a6dfd3a8a6b36330faae82fedc133ae927b75638629aa SHA512 8958b8548711bb393e188d7516a842dcde5e7f9751804a90621d28a787a28b330057f343f14f930bafdcbdd8fa2cf391d6a4c1953f6d33a34bcbc65fd0e24e9b -DIST rust-1.48.0-arm-unknown-linux-gnueabihf.tar.xz 132424008 BLAKE2B ed0aad5dba3eff6ca18eac5e7fc1864d2b72e262b5c8d6b510196653edc505bcb2327d529b326b10279ad19d6e2258e40103ed39067094f6ac2bd9dfed170b35 SHA512 d932676a579eed1849e58c133aa3759750b01436aa6f837098953cc558b9025427bdd54f1f2688aa0022934c48177da34874e27cc319c7bf1c96e219615d2bb2 -DIST rust-1.48.0-armv7-unknown-linux-gnueabihf.tar.xz 134716224 BLAKE2B 1918eadca80dbaacb4700dc5af8c791cc0966a29b4d01bba10e8ec31d5506a2748f4a0c9ed6695e9aa9cd88511e0dc347354a1410b419013757d9ae443e9e9af SHA512 9763b0c5bc5dc7b265b86636ed32947aab98bd9b5732c4b298ade93e9a09bab82ad37fc7ca2d7c97dfd87634756b3c55015d47696c0a6ed2cb44be03659bcf55 -DIST rust-1.48.0-i686-unknown-linux-gnu.tar.xz 161602224 BLAKE2B e4f1d1b51d520f85f7af8ddd12ad716d8c501a25d1bcdf40efd23902da9c35168108ba705c08a7aa3617ac1afb41584180d1d2399732918900f9126158111c25 SHA512 b8b3c5407304a333fc6c10ad70363589a88673640dda7b5fde8971097e679f56a8c733da31b2183044ae2ce30700db923cc3c3cb8c590d785df680b60b199451 -DIST rust-1.48.0-mips-unknown-linux-gnu.tar.xz 96393696 BLAKE2B 6cd06b3b1b8aeb4b251bc14e47dd8b8cd099f9292705402d718657de4efd480f8999bf23694d9be455236e3ebd4d330b2645a0333eeab7f9a189239df5e02698 SHA512 973130e8c0924e4a22e3b803102b96e80d6247328879a92c3bf0d9e80ec185264b980bd481ee79b6f8afe8e47f7fd61b9657a85adb7ae99008357d39e2428a39 -DIST rust-1.48.0-mips64-unknown-linux-gnuabi64.tar.xz 107548156 BLAKE2B 98b481032689f094490689b3af5a0a9162c8bf0ac8a60203b0be2de0f0ac555296e0401d1d534934d2faee852c61b20324aadf0a1696dd57607b71389f03071a SHA512 b3adf893d3e1a36da859bbd3cb39acebb2358522591694e636574ac5a1f81484a60ee53a9de7f348717fbfdaac9f2dd6ec27ea78959cdf94346d251d4a6be877 -DIST rust-1.48.0-mipsel-unknown-linux-gnu.tar.xz 97538116 BLAKE2B c4777428637bf2a08964b0abf048c2ea3b895901130f6b2c4307bfd448c7e09e2d8e862d0a10bab23c73a580aa2e9d868c7716d6a7fd103fa40f0d4207090c71 SHA512 09529c30c2b31317a495b058ee48d8ad7b0c89a59a70e62c9085d59bbd2f22a37223956a13959175cd05b195b7541feac9b8acc49438f575fce3fad26d2bd927 -DIST rust-1.48.0-powerpc-unknown-linux-gnu.tar.xz 106401772 BLAKE2B 2b10bb21198b9104dee49038ca4a7bee9dc93331465166ce9ca451d84c7e759e7bd5635c017223f6a1b96f71430a8240bd65022e9067fb20e5be85d06e79baba SHA512 b77afbca6fe9f1122c863bee14a764adb1dc5f233058292c5aaa72e50f473c1f9cccd1fc08c427485a7edab460fcea595544fd902d5f96d290e208aa03d910a3 -DIST rust-1.48.0-powerpc64-unknown-linux-gnu.tar.xz 120497676 BLAKE2B 6aa1dedcf5953f1292997fa7aac19067a6daa5e676a7e5fb7b7a29707831328b5514a88904edcc00dcf76d32e911646c8a349e40431a531585c373ce755bfb3c SHA512 f79e1f984cc3c4dce08599418be2885666e0b6f73e639b10e97ffff4b900606d880c0596b6c2ab7c5f999cfc364d22b2ca6ab88db6ba38b8b227670b222fe23b -DIST rust-1.48.0-powerpc64le-unknown-linux-gnu.tar.xz 124335896 BLAKE2B fe95cb27e69258d4b0fe471e856bc98d4ddae3d90c7d5bbd723575cb86da28061c8b0ca8f5fd945f0ce4789997f5e7658edf5f40b57aa215d76ffeb3c3207602 SHA512 7ddd2b0599872012f8613ccab456622cb05a0a43587b7d389e8b7fdf9381f0387763726d892da931233c89e8e3ce45c2b303ed00b1cce1f91c88d8f88d6b148d -DIST rust-1.48.0-s390x-unknown-linux-gnu.tar.xz 127221600 BLAKE2B 08511be6aadc0feb36caa19df5914a207565eed3b4b3914cad7fc8f7170011a7431c14d50b1334f5d5e00b4c94e7e84ee59afad179286e889480cc9b21e1f402 SHA512 b2b1565f3b1cc0c3bf4aa06aba1da7df775c6e29c892ca7727d0e549f175b632080433be2586e799c5636231de6c678f0228dedee8358fbf167016a1f7d25389 -DIST rust-1.48.0-x86_64-unknown-linux-gnu.tar.xz 155254844 BLAKE2B 37bce978eb297bb1732f9d513bb6fdcee4aefc42a578496a84b5f8abbb9f90f1c524c73f28c85f33c25a365bf5ba566253b1739009bb112c2e1d46a2ed978e10 SHA512 0784e156e70c47386abfa88ecfeb62b1109364459b1fee225de0749c30379c4eb443ff3ff7faa7dc1a6ff373bc6eb43997007f937889cb35daf940a74641753b -DIST rust-1.48.0-x86_64-unknown-linux-musl.tar.xz 168361012 BLAKE2B efeb9a9812f2fa2cbf1cfd963b5b714cf18d73ca9b7a3de4efa701acf7e2e8fc3b610cd90f7391b10bddd1c9d44b8b0aa910f58ce739750d4e910b063825dc28 SHA512 7188fb0b1bf6fd6ab320089cd17f334867baefec1a9c57a81e6cb729276456e56850938dbd0eafbc52375266a87392ad3045a4dbd2c41689bba6b0da152e4034 -DIST rust-1.49.0-aarch64-unknown-linux-gnu.tar.xz 179627172 BLAKE2B 911fc176a7161bf3ca1a6ec01ec38d4f1792b11feb3c24c9587f8feb2923b42aa97f0e3391449ee1189507b9bdc2ef16be8f064ac3161f73aba18fd7b11c8f5d SHA512 fa81b618359c2952de941e094eabfe2966e3c1a39a1b20452a77f1a68a54dde9cc5cade18db911cf448ffe947d934461ce752112bd9b5b5430e1fcdabbd8b56a -DIST rust-1.49.0-arm-unknown-linux-gnueabi.tar.xz 172021916 BLAKE2B 69e80df9f8d582c8216adfcd27ce8a19a9af49f27423fc3ee478ccb8b60b489e36c1f38633c86c58a504b2110cebf4026dc418e55897caf60865c21209ea2366 SHA512 2ea1d8564577cb4f687384e0d933e6ed7e1e5c95aeb49410d660409a23867959bc175344fa00bdc342cf511ea867cb2d97507af117e7d5b34714e69d4b8ffaff -DIST rust-1.49.0-arm-unknown-linux-gnueabihf.tar.xz 173557760 BLAKE2B 63c1815b3bfdcb5bf1c745bd8b85cee052b2c85f42a800166da6ee66374716e899919fac7b9c75d0a6b0ddc963e22e2b842ac382eca431433cb1ef4c1d568ad4 SHA512 9c4a49b8a3bf11d5e0f3d54032e2dfee8779f3fb68676a219c9b8e344539a3dd840d912167783f3fbaa3bd3fbf73b6bdd5afa9343c042a67496ab57c9a9ca96e -DIST rust-1.49.0-armv7-unknown-linux-gnueabihf.tar.xz 176194076 BLAKE2B 1d2a1eca1d44d48cdd542411acc0f1a81767b6e62c744c800a840f3ecdcc060acd7552d342539230f85cf3e2771f8aa4a2c1ff88efaccf7021bbb2e0af71c222 SHA512 1cba85fc958371aeb1d521e8842ad576e65d244147e2c75c34eaa776552ed025434d10284fa976d901d6cede69f6db3e5fdd770005ca0b93bb5e3202b9f9392a -DIST rust-1.49.0-i686-unknown-linux-gnu.tar.xz 201492368 BLAKE2B b666693ffd3468330c3aaabc81556d3f6c907e136f98edde9ea4605bd95a5750e57432a51e5eba0643a816b4281129f1cc295cf9821d5f285cdfd8cb3cb68c3f SHA512 b4d39cb234314f013969b5db3d365d21719d7a01f2dc0816e4f221c5e6d4abecd7f9e83f54b8640173d00d3e701cb3cbb61cef32f00db9356139005a1ce3bd19 -DIST rust-1.49.0-mips-unknown-linux-gnu.tar.xz 134041460 BLAKE2B 0e779b3494221f22529ba7a4b9e1098186965d36f7cb94b5d76c84bd4703c354ebc57aa03a58fe3b5592c1543ac6193575f9d443cd8fa663a69d9af1ae7d0b82 SHA512 9293814a64d7382f97beb137ccb8beeeb76ae5f71d6db7d2c70f3c643a877f5991c0abc2d53270bccaa6aa5c8de4f0e46fe4b92ad09e2253e5cd5487a3f46d6c -DIST rust-1.49.0-mips64-unknown-linux-gnuabi64.tar.xz 143820152 BLAKE2B f22869487eac68f5ed698da1b05b1c53ae138cff79d2c5011008663b027858c5b91ce1b2f26924ecc17d13ca9559ff444e1b03a44a5b3b536e66753075c8d05a SHA512 ea1d90a388c44a2e5bd5f51dd5e8b95721e49c8284369cd638560e9c729c8a7c54ba6cccf55547f0b0b1731498623eaf743783cfd67e61c13f89f0ad9275c051 -DIST rust-1.49.0-mipsel-unknown-linux-gnu.tar.xz 140145252 BLAKE2B 5a26ca9e2af4a2d96c34da29e50c5c68b1fb0f2e6db20685853a4211042aee76f0f86b17c4697bcecce99de21ac7b60b055ed43cd2acf03dfa043eb5e3546692 SHA512 a2079d5068737cae36532c2922fc4aebf4aac723208804a128a1234ae78868f20a6559a967cf01a456ba7de2bf48ea3961fc9a31dd3bc45130b0de328a712295 -DIST rust-1.49.0-powerpc-unknown-linux-gnu.tar.xz 147163992 BLAKE2B 4822af4b54a22214425e0dd993081f0bc7b0ae0973c0e11d021a2a8671f05272b2cb6b3ca307eef9b3ad25db6a1eef7976f1e8e4ead8ac4c5226d9c7596c0f6d SHA512 905c624baccf0bbcd166407a8722909b2645c7e1993e80a37aa4cfe43d0dce5b92db2c5443295ecb79fa6c3c2cbe6e0e67ad7f8ba312075fb8960cbe50183a25 -DIST rust-1.49.0-powerpc64-unknown-linux-gnu.tar.xz 160585188 BLAKE2B f0e4a5da3767b1bfb633c899c1b9b2ee9725d8bea9154142037cbcc9212d67a364f0eb130ea4d2a4c62d0fe55a8d9d880faac2f6e167155a99a235f7ee28fc1d SHA512 36f94b0ae399f872a22c697225abcb35a893ae6e4ed369961edb693299cb58e294267b1d73a99555057618f179202a70ae2fdcff2b3bedbabf2774b3809a2a62 -DIST rust-1.49.0-powerpc64le-unknown-linux-gnu.tar.xz 169253520 BLAKE2B 4648467a84d7f81f63ddf610fce6e1e2388ce5c91a7ce73c8b8d054356bfcba379d4d0a543fdbc9bad9b689b10f8dffa4c145b83ff02ac1d77ede7f600bb5924 SHA512 c17eb27ec4dbcc56da3edffbc57e0edda99744d6a0d38369fa08af066894aeb13dd78c7b8055f2246fc3bf13c654842675ea4df44b7bc8852e0f9952acdf7e7c -DIST rust-1.49.0-s390x-unknown-linux-gnu.tar.xz 170753008 BLAKE2B a81618240d86d4a70bd27f3e33caf0258868539b3b081a8f8f461a3debf82ab1493fea18dd5a32083d1f34db268f4bff471f5f45fb3d4910dd9559f227dc3aab SHA512 25259ea2e499c89459b14571e2c54f230d642af9cfe539dc2b8be15eff0e23b8c6e60af4c567bcbb6c6c185b4537eaab19c3395fce48b1f6e5ef1234efc31e3a -DIST rust-1.49.0-x86_64-unknown-linux-gnu.tar.xz 144752500 BLAKE2B 188fafdbff02cbffae22e8a48d259119c59aa435252477ba3b4f4522cc00c90d9a242bd5ac76e8d8210bd032b8f78538e5f95606fe2c862ffd7477acdfb6e1a7 SHA512 c008aa50e17db6a0134fb85235a958258d345410f5063bc77175f7c28b2e35895427b9e68cd1ac9acb769769c83313cd59fe6465b453e891cf415a2514b7722d -DIST rust-1.49.0-x86_64-unknown-linux-musl.tar.xz 217795696 BLAKE2B 264348951db96a9f046e4bec599b92a5ee6d185d961f833f8d2127c1ac4578b91401834d09b5eed421f03d14933ff3b2e85961ff09927d19bf6c701d80eb1b67 SHA512 be165de42e3acd50f6e6a21fe386ea2333fd0f19abedbb059d6eb8ce8c80a8e79257eab8a7775e3b72307596b52e803bd8c4c46330a6e66acbadbe2f63cea42a -DIST rustc-1.46.0-src.tar.xz 101868452 BLAKE2B da9798596b124a10d79c236a871228f05e5f571d22c2259328e7026c91e088c85f5de9c0536a16531e0cb10477bfcd16d3ac11467979f5561cb6199442b877ef SHA512 099857f1d295043587a4e2a65ef3e6a90e12c8b6958e98535a1656c113c553f9a9b621aba8a19cf21bd8d2c79d27cbfa4b8e6fabbcb3cbfee23b545be7b450b4 -DIST rustc-1.47.0-src.tar.xz 104143736 BLAKE2B 0454094dde35275488046826da87655e51bf0795481d6d08fd70d644bfc12481bca8641166106ef32f20494906025244715b16ff21a1c023f4bd2818aab42521 SHA512 6ba83c0158f8130ddeae7e070417a2121d8a548c8fe97e28bce116d84048636c75aaee78e0c92cd43a50f5679a1223fc226cc8c5ba9bbd1465e84c5c6034d5c9 -DIST rustc-1.48.0-src.tar.xz 105951736 BLAKE2B 42468fc5ac5e80c4793cfe0913cbb8e43a8def28cc8cf5ed25ab989561e2bf33e155c83e180183362535cbc9008f341eb1273087a2364672b1a4032ac2d6ca45 SHA512 4e12baa6893238a8d336ec9ebe891477d18676f271b32763474fa7a6a8b58fb3187dd4e2aa95bce482989b692cc2e1360221669d6811eec71b326f22a1756c23 -DIST rustc-1.49.0-src.tar.xz 108330280 BLAKE2B 65e36253482ded2df225cbbf15253b6c9a8ae935053b071d9fb9e7b1d47d5d3ac47a138876e4a5cfeda455c655ac06ceff2658c8668cef7d2206116906740653 SHA512 fd8bc67ec0a73d3b6bf9c1fabb7ea981ef817644b4e6ced982fa90b12eae9b55de074634a670bdfb38bfee6588603e818ddcbcc2f2a05f83057c061b4194b4b7 -DIST rustc-1.50.0-src.tar.xz 108666272 BLAKE2B abb1b6f57093334bae5892dd99c964ffaf5e2b906cc92f0b92d5786cf80484cff923643169f24f4f92a5724c21b8bd671c72531c2cd1f6fbe0ea7107b5bd923b SHA512 df3c83c0fdc9ebce6fdccddda781dea0cdbd88d2b2a8220cac40cc3a8fa957923ae834d1fa45283d4ad227b334bd9e220e37a4a1ad7a1c7aeb806ed9ed387245 -EBUILD rust-1.46.0.ebuild 17326 BLAKE2B 0b299e783401047098bb3fc9146bea45082801b7be5407f975f2da2250197bfcd0320ef4e283713da3c55dba536522664f48c256f433697e1852921abb3b3d38 SHA512 deb46f85391ade9568e4393b17590d07f64e29bdd02559b980b7e9a3717d9ac7ceb07c14585bf01fce300bae6d401779189bcaa9ea2639f283755d1529645cf0 -EBUILD rust-1.47.0-r2.ebuild 18735 BLAKE2B 7b091d544d5ee7598d5a2136ed53cbfab02d369ce4de067cba14ce43d30b930428299dab206549c5bff279d8b283bad1823064450de288b81f7383ec3efaaf4d SHA512 d46a1a7f04cf1320ca0e2c9dfbf44a4a84e93f52ec24d459bd62b489a1f572ee47b2e9c16699d1fa4df37472e9a30379ce455c4b00863283f0f3905992f792d2 -EBUILD rust-1.48.0.ebuild 18059 BLAKE2B e31f43e18ba19ef5ff3abafaf96b982efd06adf70913ee6cb150ed0695890e3df0cabe56ddc5a7182899160fb0e1d29b80b7b9f13f725c8308bcc42d1459be80 SHA512 ecc1bfa9d4a560eddf96372e5ae09a40c71b9faa7e4d318a5dac2fb7aa15a000d985726e8e1da7fa4a6fc9888ac6f3250bd9a1f14780aeec8c7660bf81e5a29b -EBUILD rust-1.49.0.ebuild 18104 BLAKE2B 88703ad5473125ef8eb7639b78c490e22ad2c0dca50145de961225eec232304db8c26ee0e9ac372b360dd44086246fbfe9a42e9b0d67eef551e93fbb7d34833f SHA512 2c83ad1d28bb6840e79a0eddb3da5f8406a9a2c5ca0bfe167ff3c087a2a145b4c49d18ce99566322c1d486e27d1f3e882a0635ee89abecef713891db7b8ac36f -EBUILD rust-1.50.0.ebuild 18277 BLAKE2B 0a5898906b7e97b10ee4d447d6955537eeac4cf1a347d2643c16e8c9eeb247319de718ba5e8829ab4f83d63f0c305550726e19354b42de7678955663bdf4297b SHA512 136377e7e90d407802923fe57d46e921b1e1932fa24556fab1155d3dd1e63b133fca6418ff643ffef2f80cd9dd9d41e45017e48917b1682d72446941370fd7eb +AUX 1.51.0-bootstrap-panic.patch 1508 BLAKE2B c5fec1047e0fd5ec7413a4555edb427f192ab5f7e6012ca52ecb5809034f932c5acc4a2be17cf7ac2e344acfdcbb380dbf208fab45635f264924389ef044c0fc SHA512 9209503c56b56bbc3aaafc7bc5a91b53099f24b21d19a345270ede4963a5cafe82161a419653cf25ee05a3e02a86d0cbfc63947d9c9a78506ab6e516fd94488f +AUX rustc-1.51.0-backport-pr81728.patch 6614 BLAKE2B 886dcb10fafba0a388a5230ddf3688844493ab902b6e93f65379eaaa7313b8363b601ac3b115b53dfedc5e02879790fd5df3d30fe2b5d3fe11666fbcdbf29df0 SHA512 e68f116293770a9ba1f5d11e19b445d930f93268f88c634a9975c532ecdb04e75a3dde92a1e56b57e22630d3bb659ce7a2e849656c7d9541b85369e1db41bcdf +AUX rustc-1.51.0-backport-pr81741.patch 1832 BLAKE2B 62f333f7aa81e5889ad266c322badf0949f041500c5be099b5b03150b851de255e43403aee46ef047190f3e5aa75055ec07d250534be16c4e8731a2fb863aa6b SHA512 7a4d3d6d4528c9049f255d6c6eb1b023fea11f6a8e0e193a8f8aefd23237fd05c3505d6a9de5d571f24403e9e8d7d7b8ffd783b4975db50ba9c54aa8585fbcd2 +AUX rustc-1.51.0-backport-pr82289.patch 3403 BLAKE2B 67e6ed9c8ad2398baddf51bc901169db7aab5d2692040356df8f6609866a0880d679b2bb2647b93d37a47f89eb07f4ea066dd22f25ddb6422ec49b1c3356f3b8 SHA512 803ae2873106e99a353b0c807c5fccd694ea02238d2647a0296297afafdde05573930b94044d26e2ffde8b0fc798e195a0f29cd81cc95291a5dfd74d36d21a1f +AUX rustc-1.51.0-backport-pr82292.patch 3968 BLAKE2B c9e9f07ccf2f80e13a6e701fdf13680ee1a8d3c4d83e72e0abbe50f3a05aafe67c5dfa59a4ace938491c53205d5897f5bc5dd204b33ab11bf0b5dd5cf8a6cfe3 SHA512 a3b237941c6f5af22a1f692bf69632e5623b22d5a66b8aee900eae1d16bfee11fcc6979976c9f68e27409c1b03ba3945d0de4cd217a29d6e0d93e1de82b66335 +AUX rustc-1.51.0-backport-pr83629.patch 4860 BLAKE2B 8a42293184820b5c34a133af37bfa5956ad5f83d41db0333b8539d106a7dac9c93b27aa815d98ac889667796013704d25532faf7b8ff71b3d5a2582dad33271b SHA512 3bff1e63f224d4ec0ec9ba98044eff4310bc410fb2518a4cdc868e3817ec2eae88697e7771e03d514c29066fa6c3650c8473555868b305f53f8465e5bbc77d87 +DIST rust-1.50.0-aarch64-unknown-linux-gnu.tar.xz 203382140 BLAKE2B c9547661356bfb2eb328992ecbfd488114bc68c00e551cbbeb925fd1650b5a4c0ab33145c6e994184766ef5046cc2881eb0009ac9d9448208cf896317bf47c63 SHA512 e6b409afc8e85a88ecb9ff439a6eb9dcb93d5553e81549fb4f332b9e2d946dce0424319c5092e60aab9435944af70d0117d15c12d54d2059ef73c1fdf36d8273 +DIST rust-1.50.0-aarch64-unknown-linux-musl.tar.xz 204473556 BLAKE2B b47fe60f8e558a673b1c5fa47a0ebe9f73b09012b5df718baf0683536fa94d840cf0006830f6f4c36740d5e598b1c67b9d0df69a4e8d698520f05f5644cc3b69 SHA512 6a15af6a30c59325c21587689e3f99ca20a9a8ee0b19866569f2f7405d2b176ed88903776799e1ebcabbfc665b5e0f3c7878f841db6c5a75eceda57ace18185a +DIST rust-1.50.0-arm-unknown-linux-gnueabi.tar.xz 193322872 BLAKE2B 2654e604a609f287b2722bbcac325461cc8a84d47e449470da1925f3d21a042d665e55d07f4f268e37630184998ed330b2c2e315485ebeee960c63555550c9cd SHA512 eb3aefa4ff7d2b832a847b6d4fd4427d88885cc72c3a9f97837e2516d202af39da7d523de2d1578fde20aeb76e843a84c37b4ba33f85668caa0b28d63a20968a +DIST rust-1.50.0-arm-unknown-linux-gnueabihf.tar.xz 191287452 BLAKE2B 34958b97d034f6c643036c61d64e25aaedf1c93046ca039e39c9083a54d030d715d17a3174bd69bdad3f9bdb8b89c9b92f977b7d3c29da4eb28efe933402e86b SHA512 7b1f61fd53fbb361fc6b3ee603917f899f3cfc8062df3cadb0751e8014e1e2633f32ba198912e8bca34102543c427f2607e861b724143d60fd1f9682578be70d +DIST rust-1.50.0-armv7-unknown-linux-gnueabihf.tar.xz 194656336 BLAKE2B d02323d9f47d380f4a06e8273b02ac3c9091257400a59b3efd1140ef22aa3bcbb71b4c5e70aaeb2cd118839a84b3513d9c85ff8020b5a1f6e68791ae5d81b8f3 SHA512 c3314436afc4ebed697bf6828b9eacbc12f96838b156241331a3b71e99e1438f8ad82e701615ea302ebfc459464479442fe653232bd319cf824027362438970d +DIST rust-1.50.0-i686-unknown-linux-gnu.tar.xz 222946404 BLAKE2B 38801f395ab8f5aeee1cb709cd7fda6b6573476f9d763931086c76b0064ec0d5dff03415bc2f6f13419fb1a326cb44a0086dd42db99d1e14d520b33c6382e340 SHA512 bff117733d11731f56e8659265d0b47327e2af3f7c46aca494747a92b4f634dd35fa9731a1be59dd69821042f88bded253e1d7b5693ca237c9a167408ca7f898 +DIST rust-1.50.0-mips-unknown-linux-gnu.tar.xz 150524936 BLAKE2B 950424444394dd55fd81c6b850798552166d78588fcc2c4dfdd4bbc900600957eed06c4a03c83713f2f820252949f57651d69e4d2a2b78d7de42fd7e0c0404f4 SHA512 849d70b5f4b4364070c5f708e466a86afead7d82d7fde4d1ef7c8800bc1ebcafdd4e1bc69f059e393fd8fce104f2d97201f09ecb3b894676e6ff6db9c949c897 +DIST rust-1.50.0-mips64-unknown-linux-gnuabi64.tar.xz 159792596 BLAKE2B a361c13c036d7cc964ace781c34ed815946c976071d38d361110856e889174e2629ad9602dde5f6d5a704044cab670687b67643470b199ee18e95944dbccba16 SHA512 d85c2abff3249ccca63d14abfa85f5320e5d227b17faf7b4b47a5254a4b8ee3a4cf3ccb84e31f13dae7780176411e2a5d04894e2422ae5921f547cc5e07fd1b9 +DIST rust-1.50.0-mipsel-unknown-linux-gnu.tar.xz 156597932 BLAKE2B 57bf7d105f6f9d3a50904466439e88e32c99b5fd85f220ef48e82fe91b2c05c28d6783233dd3e9ba7b49e79eeeb358cd1df60369bbd927a9a867a0bdaed471c7 SHA512 019df8180520bc4fd29a258017e2477a59a30338d921f185871f64aa81d8b5499e88676d09d5887f9c6726824ae4bf50f8a9e6fae1f03e9e728f0f08ab0271c4 +DIST rust-1.50.0-powerpc-unknown-linux-gnu.tar.xz 168133824 BLAKE2B d2ce955ae8975d667c854fc1f8dab5de8b8a3ecf08e52dab57f40f5a036138b6006554f053616c7d369e054f9ba3dbc502b2fa47ff0463e077f831f75b831c4f SHA512 1411063401432b2aed58f53c7e9c87d70177cb7745753378df052676a6b0ee19bf7e56298584356b77707758ad531e5d4d59140cd6e686bd7cee53488553214a +DIST rust-1.50.0-powerpc64-unknown-linux-gnu.tar.xz 180157804 BLAKE2B 8d3c38cdea4901f38665e66f880301c409d0de4ade5fd931c834680ee21d014fe6efb6928a417bcc747ac10ceeabccf287c0a29c009525e2d2fec92db60bad01 SHA512 d60fa7d029c52403c08722b4cdda8ebcfbbf23f57770db786007b21c8e0590577f58823b8e0b89adb38c351102b6aba0c02afa5c3582eecec5165bccb50b4944 +DIST rust-1.50.0-powerpc64le-unknown-linux-gnu.tar.xz 189754060 BLAKE2B 8579349a7d916ee701f29bd66d08a76d8433ad86020571e5484edbc8d9a984088e6942e31b18179698a199ade2fcee3b1b9aed1cc0d5a3b996e763ef2b8e0b33 SHA512 e3dc75ba7dff3a358042542afa398ec8771a23f5f699454a876ddc1f3583d399fe5350696a5da62d71ca97ea882c9ae1fcb60dc2e9fdf76bc7a9af892096371e +DIST rust-1.50.0-s390x-unknown-linux-gnu.tar.xz 190157972 BLAKE2B 4fe8ec73293815ade006e2c383d1a6d541d87d4ebba76b3ace65793f7debfd54d3dc07cac89c43e41947f8d0b69bd0f213dbdca8173f610ca2da03bccdd55ddd SHA512 733513af2a7ef7a782a5ebfbd080071194ac47084022b54b4830de84facef9986d65525f8666a4c226e9878e43b00ebced26d6077e5fb1b7f775ac8f290fba97 +DIST rust-1.50.0-x86_64-unknown-linux-gnu.tar.xz 152873328 BLAKE2B b0bb91487186f13a7a1a49edeac28bc347c300911f574aba0e70c37e05b688176f5941c97cc4ad0ceddf32f2fbc0bdda6f8a1fdfa482aeb9682ea1fade28206e SHA512 ab49e3ecb14e4af8e48548845184e9ab3d564ab2341c1e5462b7847347c79d13324211b860988d219ccb646143bf142fb14c3ab03663b06cfe9ca275128d9fa0 +DIST rust-1.50.0-x86_64-unknown-linux-musl.tar.xz 242743828 BLAKE2B f20feb709cc07ad43f69e30a7fcefa81b5de94ee4c90cbce2616fcda8af2591a27cfa0770b71138762e21f6e07263bf3c2548bcce1b707831ab544de12ab746a SHA512 68403236e213a4f2c156b36a03ca4dd7866fdb69e87170efc76426d937dcf5cf2c5578aaf73483131b1ce7750302f9d02de1bcbc52e1283b08220d5b22be82ca +DIST rustc-1.51.0-src.tar.xz 109596164 BLAKE2B c1ac89655adfe7db8005476d42c748cf1896f52888141229fd6dda43855dbb08c21c8e1f11398d2f1f9dd5f8d508d9158a3bda4f1b282d1b184ea4c701100837 SHA512 ded91468ddf3e6627f00e7ec3d44452aa24eb727a183c0de9d90264f593119a54300d56b09251a88260db480b48554181ae195c538996a32d68d48b6587ac0df +EBUILD rust-1.51.0-r2.ebuild 19445 BLAKE2B 95353dee1cfe0b3b00625aca734bb3d4d54e92c446d40edbca1f5a83c77cd76a9c3fa642d6e6bbac53d12b46deb135be076a08270820c22df05dbbe0ef483e26 SHA512 e85db3365f9ec9c7d21810e8aa4b5327cfb38a9ef52234ee55cac28014f5aef133d2224704311dc48379871d5a6d9bc0b361ee8d1afa8a7323192a5db3cb5240 MISC metadata.xml 1083 BLAKE2B 7a7b093c22dcaef58bd67f9c2fd84a000696b234d2bc27315999bf6751cfd2a79441fd22efc284a542ecc84ce1a12ff9ca3495d249eaffa5bc1722b385c6109e SHA512 bfe8c140753e93db67244c92e9a7d193691ceb67de796c30a851966a1262bc5c897ead6e13d728775fa524215b6851609dcbee582022d9d75bb8d1e6fabc4ef4 diff --git a/dev-lang/rust/files/0012-Ignore-broken-and-non-applicable-tests.patch b/dev-lang/rust/files/0012-Ignore-broken-and-non-applicable-tests.patch deleted file mode 100644 index 45fda8aeaf8f..000000000000 --- a/dev-lang/rust/files/0012-Ignore-broken-and-non-applicable-tests.patch +++ /dev/null @@ -1,89 +0,0 @@ -From 1879d1d1a284bf51c752e47db284ce22701ed5d0 Mon Sep 17 00:00:00 2001 -From: Samuel Holland <samuel@sholland.org> -Date: Sun, 16 Sep 2018 16:38:48 +0000 -Subject: [PATCH 12/15] Ignore broken and non-applicable tests - -c-link-to-rust-va-list-fn: unstable feature, broken on aarch64, #56475 -env-funky-keys: can't handle LD_PRELOAD (e.g. sandbox) -long-linker-command-lines: takes >10 minutes to run (but still passes) -simd-intrinsic-generic-bitmask.rs: broken on BE, #59356 -sparc-struct-abi: no sparc target -sysroot-crates-are-unstable: can't run rustc without RPATH ---- - src/test/codegen/sparc-struct-abi.rs | 1 + - src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile | 2 ++ - src/test/run-make-fulldeps/long-linker-command-lines/Makefile | 2 ++ - src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile | 2 ++ - src/test/ui/env-funky-keys.rs | 1 + - src/test/ui/simd/simd-intrinsic-generic-bitmask.rs | 2 ++ - 6 files changed, 10 insertions(+) - -diff --git a/src/test/codegen/sparc-struct-abi.rs b/src/test/codegen/sparc-struct-abi.rs -index 78e5b14a212..6f93e93286b 100644 ---- a/src/test/codegen/sparc-struct-abi.rs -+++ b/src/test/codegen/sparc-struct-abi.rs -@@ -4,6 +4,7 @@ - - // only-sparc64 - // compile-flags: -O --target=sparc64-unknown-linux-gnu --crate-type=rlib -+// ignore-test - #![feature(no_core, lang_items)] - #![no_core] - -diff --git a/src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile b/src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile -index f124ca2ab61..363b18f0985 100644 ---- a/src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile -+++ b/src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile -@@ -1,3 +1,5 @@ -+# ignore-aarch64 -+ - -include ../tools.mk - - all: -diff --git a/src/test/run-make-fulldeps/long-linker-command-lines/Makefile b/src/test/run-make-fulldeps/long-linker-command-lines/Makefile -index 5876fbc94bc..5f167ece1a2 100644 ---- a/src/test/run-make-fulldeps/long-linker-command-lines/Makefile -+++ b/src/test/run-make-fulldeps/long-linker-command-lines/Makefile -@@ -1,3 +1,5 @@ -+# ignore-test -+ - -include ../tools.mk - - all: -diff --git a/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile b/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile -index 9e770706857..6d92ec5cec8 100644 ---- a/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile -+++ b/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile -@@ -1,1 +1,3 @@ -+# ignore-test -+ - all: - python2.7 test.py -diff --git a/src/test/ui/env-funky-keys.rs b/src/test/ui/env-funky-keys.rs -index c5c824ac58d..f3fe047a79c 100644 ---- a/src/test/ui/env-funky-keys.rs -+++ b/src/test/ui/env-funky-keys.rs -@@ -1,6 +1,7 @@ - // run-pass - // Ignore this test on Android, because it segfaults there. - -+// ignore-test - // ignore-android - // ignore-windows - // ignore-cloudabi no execve -diff --git a/src/test/ui/simd/simd-intrinsic-generic-bitmask.rs b/src/test/ui/simd/simd-intrinsic-generic-bitmask.rs -index b28f742a92e..3ee4ccce731 100644 ---- a/src/test/ui/simd/simd-intrinsic-generic-bitmask.rs -+++ b/src/test/ui/simd/simd-intrinsic-generic-bitmask.rs -@@ -2,6 +2,8 @@ - #![allow(non_camel_case_types)] - - // ignore-emscripten -+// ignore-powerpc -+// ignore-powerpc64 - - // Test that the simd_bitmask intrinsic produces correct results. - --- -2.24.1 - diff --git a/dev-lang/rust/files/1.44.0-libressl.patch b/dev-lang/rust/files/1.44.0-libressl.patch deleted file mode 100644 index 3bbae36e0161..000000000000 --- a/dev-lang/rust/files/1.44.0-libressl.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 3d1be8d8981a0f847e935312a78bd2ba5129f90e Mon Sep 17 00:00:00 2001 -From: Stefan Strogin <steils@gentoo.org> -Date: Fri, 5 Jun 2020 06:37:06 +0300 -Subject: [PATCH] Support LibreSSL 3.2.x - -Signed-off-by: Stefan Strogin <steils@gentoo.org> ---- - vendor/openssl-sys/.cargo-checksum.json | 2 +- - vendor/openssl-sys/build/main.rs | 5 ++++- - 2 files changed, 5 insertions(+), 2 deletions(-) - -diff --git a/vendor/openssl-sys/.cargo-checksum.json b/vendor/openssl-sys/.cargo-checksum.json -index 7f63bae3d..76025fe7f 100644 ---- a/vendor/openssl-sys/.cargo-checksum.json -+++ b/vendor/openssl-sys/.cargo-checksum.json -@@ -1 +1 @@ --{"files":{"CHANGELOG.md":"ffd4bbaeec2740afbcab5a6828f9e65523aaff8638e3d5d13c93a3241fb8ed2f","Cargo.toml":"3eb2f65dda1aa74c8b47814878b56bf4999b4d01bc5864fc9f3c0ece9a5694a7","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"949fb3913ec7f94229242978dfeee5e19261b6d7506fc91dcd153bb0d2a84895","build/cfgs.rs":"56cee620b082d87b1c9cdeba7c6c022e6aa7d3a99e2b66ec18a534ceaf2e2bb7","build/expando.c":"c4fa8a4424b2321f1857edfc5ce1ac1f03eda54440367d3142310c0eb5553004","build/find_normal.rs":"0a2dc417eace7fc72c27b9046ebaf53c75e418b27baa877434925a81fe6c23ed","build/find_vendored.rs":"7bf0e59c5646d72ee5a4392ad970fdf5c20288ddaf54dd86a8caff49583b38f5","build/main.rs":"6e800f4dc5c2cbbd54d1b1b995a2915ff941e17e11300d7091858210d3ce788d","src/aes.rs":"822bf666db351fe6ef9607c918081d6ad378fc1cedb05290bb746f86980c6088","src/asn1.rs":"254025cb408dbeff73bee6d06325acba9042cb11db30bdad04eedfb789be84b3","src/bio.rs":"1f38a3ec4029511fecd7a51548965a265f3e7772891b5514e22bfb1d061b3a90","src/bn.rs":"c71b9c79f704a94a889d27bf75e7e5b1f9f10b0df0aeb485aef509cf05d7467f","src/cms.rs":"f21a403fea95e7b7efe0539a429831cfa51c8818adb79c7ebf73ae2a6f2dc87e","src/conf.rs":"511e008c18039f54d856d70b80009426fc7f4ce34fe4304e2c58ebf465031de0","src/crypto.rs":"a1279719ade9704be3d9af55ff679abbe918d525f332ca15810146d45e9080cf","src/dh.rs":"7cc334e86d16b3eae165dfa3a6c8e488bc0fe590c17beda38893d2e9d784d5a6","src/dsa.rs":"ae79baf231681900ea76304285b3ffacf5298c90b8c04d371269cf4adbb5b9fa","src/dtls1.rs":"45e1dbf94a42d587fd948d553dc30187aa6aa2b5b82d554cf725ff36df768aa0","src/ec.rs":"81372dfe497db2fc90457a470a3b8ccb249828b3ce2bf4fd2da8ec42afd6a6b3","src/err.rs":"f6641be5df397086a9db80667e191fb1d92972c29151e617df86672c1a16d3ad","src/evp.rs":"5afdfc0ab87259b13a55375c178ae3af934b3281240aa24ca27afac7acccea42","src/hmac.rs":"fa3976d94a1383f300bdec228270afb8b47c97bb019d727c7d59ba783be3c42e","src/lib.rs":"c464eca1beb33844718044946f6ffb1bc27356d65b5b70ebcd2d4082520e7235","src/macros.rs":"638fb9098f6024e82b331eeee50c64cefdb58456dba28ee42560be655a0c2bf6","src/obj_mac.rs":"7203d356f7654c5805600b823eccf8e1d9d9cbce9a01859938612a3f0aae4cdc","src/object.rs":"7539eb2164c3fe2162a339ef5b45f1c835010a1522307803815779a01825eed7","src/ocsp.rs":"1db59566d2f072f7ae981f0c07e1604fcdf60e66845afe0689d588f8e4272115","src/ossl_typ.rs":"13bf789702e37dc4b9f74f3a0e61ae6e5602e4dedf45c05d884c41257b32d76c","src/pem.rs":"4427060f543ae9e6745d9a8f7f76cb72acfb06afacaf396b011afff6a221714b","src/pkcs12.rs":"93aab2820008ad90dc346a7dcc02f9201d94bff0bb7d1d71031c097850287c50","src/pkcs7.rs":"5370c8d4bfbf1502fa33aff635cb730e7c87814580f1df9bdb1412a492377813","src/rand.rs":"469601b4fbb56d4dbf5cf5d7bb8483e3bde411edea18601e7d1ed6ef27180fd3","src/rsa.rs":"0e8c1f0bc37620a9208175542143bfd411ae88188974d2d5b37a2b8b77d0e2c8","src/safestack.rs":"6c39e28565d34efad707d77561d4caa99e3f028fcac3a2ef6fd403a78de1190c","src/sha.rs":"1a6b028a63654d2419417a9a8af790cd22409a4643682a0686ecdb9441264eba","src/srtp.rs":"306047f3f31828fe7d15de154b375f071ae07012a94c0b5c909f5fe57962a11b","src/ssl.rs":"34ad7d5413d77f9052815cfd7344d5a21868b5ae0d38dadd6f4ed3b5c4b33760","src/ssl3.rs":"9336c816e00847d552dea22587d4ac72ff3cbd469fa5ff750423a19ea11e68eb","src/stack.rs":"1a509907283e5a2bf88cf193ce607f49ce7d2d95547c2ce2abc0fd4567aad334","src/tls1.rs":"60ca3dea1bbfda645bde563b4a878dac129c3f760e3ad572381000fc7a8ef522","src/x509.rs":"20e221731587221aab00aef21b4e4bebb7635603d265d424f3dd3c60d4c511e2","src/x509_vfy.rs":"5609f6300ab37a4d4755c81f7af1e6bb93a2f1a6f333c6e42f1e73ebf83ddc05","src/x509v3.rs":"30c58ce7d80670cc597d041e0f59862c1100e38743fc9dde2aec6dc811a4a558"},"package":"1024c0a59774200a555087a6da3f253a9095a5f344e353b212ac4c8b8e450986"} -\ No newline at end of file -+{"files":{"CHANGELOG.md":"ffd4bbaeec2740afbcab5a6828f9e65523aaff8638e3d5d13c93a3241fb8ed2f","Cargo.toml":"3eb2f65dda1aa74c8b47814878b56bf4999b4d01bc5864fc9f3c0ece9a5694a7","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"949fb3913ec7f94229242978dfeee5e19261b6d7506fc91dcd153bb0d2a84895","build/cfgs.rs":"56cee620b082d87b1c9cdeba7c6c022e6aa7d3a99e2b66ec18a534ceaf2e2bb7","build/expando.c":"c4fa8a4424b2321f1857edfc5ce1ac1f03eda54440367d3142310c0eb5553004","build/find_normal.rs":"0a2dc417eace7fc72c27b9046ebaf53c75e418b27baa877434925a81fe6c23ed","build/find_vendored.rs":"7bf0e59c5646d72ee5a4392ad970fdf5c20288ddaf54dd86a8caff49583b38f5","build/main.rs":"049f7020b6a1f8bb831cb750054fbc0f408e048e34c0817644696ec9d0cfb06e","src/aes.rs":"822bf666db351fe6ef9607c918081d6ad378fc1cedb05290bb746f86980c6088","src/asn1.rs":"254025cb408dbeff73bee6d06325acba9042cb11db30bdad04eedfb789be84b3","src/bio.rs":"1f38a3ec4029511fecd7a51548965a265f3e7772891b5514e22bfb1d061b3a90","src/bn.rs":"c71b9c79f704a94a889d27bf75e7e5b1f9f10b0df0aeb485aef509cf05d7467f","src/cms.rs":"f21a403fea95e7b7efe0539a429831cfa51c8818adb79c7ebf73ae2a6f2dc87e","src/conf.rs":"511e008c18039f54d856d70b80009426fc7f4ce34fe4304e2c58ebf465031de0","src/crypto.rs":"a1279719ade9704be3d9af55ff679abbe918d525f332ca15810146d45e9080cf","src/dh.rs":"7cc334e86d16b3eae165dfa3a6c8e488bc0fe590c17beda38893d2e9d784d5a6","src/dsa.rs":"ae79baf231681900ea76304285b3ffacf5298c90b8c04d371269cf4adbb5b9fa","src/dtls1.rs":"45e1dbf94a42d587fd948d553dc30187aa6aa2b5b82d554cf725ff36df768aa0","src/ec.rs":"81372dfe497db2fc90457a470a3b8ccb249828b3ce2bf4fd2da8ec42afd6a6b3","src/err.rs":"f6641be5df397086a9db80667e191fb1d92972c29151e617df86672c1a16d3ad","src/evp.rs":"5afdfc0ab87259b13a55375c178ae3af934b3281240aa24ca27afac7acccea42","src/hmac.rs":"fa3976d94a1383f300bdec228270afb8b47c97bb019d727c7d59ba783be3c42e","src/lib.rs":"c464eca1beb33844718044946f6ffb1bc27356d65b5b70ebcd2d4082520e7235","src/macros.rs":"638fb9098f6024e82b331eeee50c64cefdb58456dba28ee42560be655a0c2bf6","src/obj_mac.rs":"7203d356f7654c5805600b823eccf8e1d9d9cbce9a01859938612a3f0aae4cdc","src/object.rs":"7539eb2164c3fe2162a339ef5b45f1c835010a1522307803815779a01825eed7","src/ocsp.rs":"1db59566d2f072f7ae981f0c07e1604fcdf60e66845afe0689d588f8e4272115","src/ossl_typ.rs":"13bf789702e37dc4b9f74f3a0e61ae6e5602e4dedf45c05d884c41257b32d76c","src/pem.rs":"4427060f543ae9e6745d9a8f7f76cb72acfb06afacaf396b011afff6a221714b","src/pkcs12.rs":"93aab2820008ad90dc346a7dcc02f9201d94bff0bb7d1d71031c097850287c50","src/pkcs7.rs":"5370c8d4bfbf1502fa33aff635cb730e7c87814580f1df9bdb1412a492377813","src/rand.rs":"469601b4fbb56d4dbf5cf5d7bb8483e3bde411edea18601e7d1ed6ef27180fd3","src/rsa.rs":"0e8c1f0bc37620a9208175542143bfd411ae88188974d2d5b37a2b8b77d0e2c8","src/safestack.rs":"6c39e28565d34efad707d77561d4caa99e3f028fcac3a2ef6fd403a78de1190c","src/sha.rs":"1a6b028a63654d2419417a9a8af790cd22409a4643682a0686ecdb9441264eba","src/srtp.rs":"306047f3f31828fe7d15de154b375f071ae07012a94c0b5c909f5fe57962a11b","src/ssl.rs":"34ad7d5413d77f9052815cfd7344d5a21868b5ae0d38dadd6f4ed3b5c4b33760","src/ssl3.rs":"9336c816e00847d552dea22587d4ac72ff3cbd469fa5ff750423a19ea11e68eb","src/stack.rs":"1a509907283e5a2bf88cf193ce607f49ce7d2d95547c2ce2abc0fd4567aad334","src/tls1.rs":"60ca3dea1bbfda645bde563b4a878dac129c3f760e3ad572381000fc7a8ef522","src/x509.rs":"20e221731587221aab00aef21b4e4bebb7635603d265d424f3dd3c60d4c511e2","src/x509_vfy.rs":"5609f6300ab37a4d4755c81f7af1e6bb93a2f1a6f333c6e42f1e73ebf83ddc05","src/x509v3.rs":"30c58ce7d80670cc597d041e0f59862c1100e38743fc9dde2aec6dc811a4a558"},"package":"1024c0a59774200a555087a6da3f253a9095a5f344e353b212ac4c8b8e450986"} -diff --git a/vendor/openssl-sys/build/main.rs b/vendor/openssl-sys/build/main.rs -index 162e11a66..6754ddeef 100644 ---- a/vendor/openssl-sys/build/main.rs -+++ b/vendor/openssl-sys/build/main.rs -@@ -204,6 +204,9 @@ See rust-openssl README for more information: - (3, 0, 0) => ('3', '0', '0'), - (3, 0, 1) => ('3', '0', '1'), - (3, 0, _) => ('3', '0', 'x'), -+ (3, 1, 0) => ('3', '1', '0'), -+ (3, 1, _) => ('3', '1', 'x'), -+ (3, 2, _) => ('3', '2', 'x'), - _ => version_error(), - }; - -@@ -244,7 +247,7 @@ fn version_error() -> ! { - " - - This crate is only compatible with OpenSSL 1.0.1 through 1.1.1, or LibreSSL 2.5 --through 3.0.x, but a different version of OpenSSL was found. The build is now aborting -+through 3.2.x, but a different version of OpenSSL was found. The build is now aborting - due to this version mismatch. - - " --- -2.27.0 - diff --git a/dev-lang/rust/files/1.46.0-don-t-create-prefix-at-time-of-check.patch b/dev-lang/rust/files/1.46.0-don-t-create-prefix-at-time-of-check.patch deleted file mode 100644 index 9064a52ac2d3..000000000000 --- a/dev-lang/rust/files/1.46.0-don-t-create-prefix-at-time-of-check.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 6b31232a9d32529e30765108f30365ac48587ce6 Mon Sep 17 00:00:00 2001 -From: Georgy Yakovlev <gyakovlev@gentoo.org> -Date: Thu, 8 Oct 2020 15:48:33 -0700 -Subject: [PATCH] don't create prefix at time of check - ---- - src/bootstrap/install.rs | 8 ++------ - 1 file changed, 2 insertions(+), 6 deletions(-) - -diff --git a/src/bootstrap/install.rs b/src/bootstrap/install.rs -index d9ee3bc..c5da9ce 100644 ---- a/src/bootstrap/install.rs -+++ b/src/bootstrap/install.rs -@@ -73,12 +73,8 @@ fn install_sh( - let docdir_default = datadir_default.join("doc/rust"); - let libdir_default = PathBuf::from("lib"); - let mandir_default = datadir_default.join("man"); -- let prefix = builder.config.prefix.as_ref().map_or(prefix_default, |p| { -- fs::create_dir_all(p) -- .unwrap_or_else(|err| panic!("could not create {}: {}", p.display(), err)); -- fs::canonicalize(p) -- .unwrap_or_else(|err| panic!("could not canonicalize {}: {}", p.display(), err)) -- }); -+ -+ let prefix = builder.config.prefix.as_ref().unwrap_or(&prefix_default); - let sysconfdir = builder.config.sysconfdir.as_ref().unwrap_or(&sysconfdir_default); - let datadir = builder.config.datadir.as_ref().unwrap_or(&datadir_default); - let docdir = builder.config.docdir.as_ref().unwrap_or(&docdir_default); --- -2.28.0 - diff --git a/dev-lang/rust/files/1.47.0-llvm-tensorflow-fix.patch b/dev-lang/rust/files/1.47.0-llvm-tensorflow-fix.patch deleted file mode 100644 index 5b12c15ff40e..000000000000 --- a/dev-lang/rust/files/1.47.0-llvm-tensorflow-fix.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 8dcb88f7705fb3927938dd9bd103efcabafcefb0 Mon Sep 17 00:00:00 2001 -From: Georgy Yakovlev <gyakovlev@gentoo.org> -Date: Tue, 27 Oct 2020 18:20:56 -0700 -Subject: [PATCH] backport D88371, guard `find_library(tensorflow_c_api ...)` - -Differential Revision: https://reviews.llvm.org/D88371 -Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org> ---- - src/llvm-project/llvm/CMakeLists.txt | 15 +++++++-------- - 1 file changed, 7 insertions(+), 8 deletions(-) - -diff --git a/src/llvm-project/llvm/CMakeLists.txt b/src/llvm-project/llvm/CMakeLists.txt -index 1f137f0..4112def 100644 ---- a/src/llvm-project/llvm/CMakeLists.txt -+++ b/src/llvm-project/llvm/CMakeLists.txt -@@ -832,6 +832,11 @@ configure_file( - ${LLVM_INCLUDE_DIR}/llvm/Config/Targets.def - ) - -+# They are not referenced. See set_output_directory(). -+set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/bin ) -+set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} ) -+set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} ) -+ - # For up-to-date instructions for installing the Tensorflow dependency, refer to - # the bot setup script: https://github.com/google/ml-compiler-opt/blob/master/buildbot/buildbot_init.sh - # In this case, the latest C API library is available for download from -@@ -840,9 +845,9 @@ configure_file( - # LLVM_HAVE_TF_API, through llvm-config.h, so that a user of the LLVM library may - # also leverage the dependency. - set(TENSORFLOW_C_LIB_PATH "" CACHE PATH "Path to TensorFlow C library install") --find_library(tensorflow_c_api tensorflow PATHS ${TENSORFLOW_C_LIB_PATH}/lib) - --if (tensorflow_c_api) -+if (TENSORFLOW_C_LIB_PATH) -+ find_library(tensorflow_c_api tensorflow PATHS ${TENSORFLOW_C_LIB_PATH}/lib NO_DEFAULT_PATH REQUIRED) - set(LLVM_HAVE_TF_API "ON" CACHE BOOL "Full Tensorflow API available") - include_directories(${TENSORFLOW_C_LIB_PATH}/include) - endif() -@@ -877,12 +882,6 @@ add_custom_target(srpm - COMMAND rpmbuild -bs --define '_topdir ${LLVM_SRPM_DIR}' ${LLVM_SRPM_BINARY_SPECFILE}) - set_target_properties(srpm PROPERTIES FOLDER "Misc") - -- --# They are not referenced. See set_output_directory(). --set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/bin ) --set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} ) --set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} ) -- - if(APPLE AND DARWIN_LTO_LIBRARY) - set(CMAKE_EXE_LINKER_FLAGS - "${CMAKE_EXE_LINKER_FLAGS} -Wl,-lto_library -Wl,${DARWIN_LTO_LIBRARY}") --- -2.26.2 - diff --git a/dev-lang/rust/files/1.48.0-gentoo-musl-target-specs.patch b/dev-lang/rust/files/1.48.0-gentoo-musl-target-specs.patch deleted file mode 100644 index 850257f932ea..000000000000 --- a/dev-lang/rust/files/1.48.0-gentoo-musl-target-specs.patch +++ /dev/null @@ -1,164 +0,0 @@ -From 671ef2d1c228aed031b4232b8bea96f17b825263 Mon Sep 17 00:00:00 2001 -From: Georgy Yakovlev <gyakovlev@gentoo.org> -Date: Mon, 23 Nov 2020 14:52:04 -0800 -Subject: [PATCH] add gentoo musl target specs - ---- - .../src/spec/aarch64_gentoo_linux_musl.rs | 11 +++++++++++ - .../src/spec/armv7_gentoo_linux_musleabihf.rs | 11 +++++++++++ - .../rustc_target/src/spec/i686_gentoo_linux_musl.rs | 11 +++++++++++ - compiler/rustc_target/src/spec/mod.rs | 8 ++++++++ - .../src/spec/powerpc64_gentoo_linux_musl.rs | 11 +++++++++++ - .../src/spec/powerpc64le_gentoo_linux_musl.rs | 11 +++++++++++ - .../src/spec/powerpc_gentoo_linux_musl.rs | 11 +++++++++++ - .../rustc_target/src/spec/x86_64_gentoo_linux_musl.rs | 11 +++++++++++ - 8 files changed, 85 insertions(+) - create mode 100644 compiler/rustc_target/src/spec/aarch64_gentoo_linux_musl.rs - create mode 100644 compiler/rustc_target/src/spec/armv7_gentoo_linux_musleabihf.rs - create mode 100644 compiler/rustc_target/src/spec/i686_gentoo_linux_musl.rs - create mode 100644 compiler/rustc_target/src/spec/powerpc64_gentoo_linux_musl.rs - create mode 100644 compiler/rustc_target/src/spec/powerpc64le_gentoo_linux_musl.rs - create mode 100644 compiler/rustc_target/src/spec/powerpc_gentoo_linux_musl.rs - create mode 100644 compiler/rustc_target/src/spec/x86_64_gentoo_linux_musl.rs - -diff --git a/compiler/rustc_target/src/spec/aarch64_gentoo_linux_musl.rs b/compiler/rustc_target/src/spec/aarch64_gentoo_linux_musl.rs -new file mode 100644 -index 0000000..420fe7c ---- /dev/null -+++ b/compiler/rustc_target/src/spec/aarch64_gentoo_linux_musl.rs -@@ -0,0 +1,11 @@ -+use crate::spec::TargetResult; -+ -+pub fn target() -> TargetResult { -+ let mut base = super::aarch64_unknown_linux_musl::target()?; -+ -+ base.llvm_target = "aarch64-gentoo-linux-musl".to_string(); -+ base.target_vendor = "gentoo".to_string(); -+ base.options.crt_static_default = false; -+ -+ Ok(base) -+} -diff --git a/compiler/rustc_target/src/spec/armv7_gentoo_linux_musleabihf.rs b/compiler/rustc_target/src/spec/armv7_gentoo_linux_musleabihf.rs -new file mode 100644 -index 0000000..067e2d6 ---- /dev/null -+++ b/compiler/rustc_target/src/spec/armv7_gentoo_linux_musleabihf.rs -@@ -0,0 +1,11 @@ -+use crate::spec::TargetResult; -+ -+pub fn target() -> TargetResult { -+ let mut base = super::armv7_unknown_linux_musleabihf::target()?; -+ -+ base.llvm_target = "armv7-gentoo-linux-musleabihf".to_string(); -+ base.target_vendor = "gentoo".to_string(); -+ base.options.crt_static_default = false; -+ -+ Ok(base) -+} -diff --git a/compiler/rustc_target/src/spec/i686_gentoo_linux_musl.rs b/compiler/rustc_target/src/spec/i686_gentoo_linux_musl.rs -new file mode 100644 -index 0000000..1cd39cd ---- /dev/null -+++ b/compiler/rustc_target/src/spec/i686_gentoo_linux_musl.rs -@@ -0,0 +1,11 @@ -+use crate::spec::TargetResult; -+ -+pub fn target() -> TargetResult { -+ let mut base = super::i686_unknown_linux_musl::target()?; -+ -+ base.llvm_target = "i686-gentoo-linux-musl".to_string(); -+ base.target_vendor = "gentoo".to_string(); -+ base.options.crt_static_default = false; -+ -+ Ok(base) -+} -diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs -index f1e8330..d8c0ba0 100644 ---- a/compiler/rustc_target/src/spec/mod.rs -+++ b/compiler/rustc_target/src/spec/mod.rs -@@ -490,6 +490,14 @@ macro_rules! supported_targets { - } - - supported_targets! { -+ ("aarch64-gentoo-linux-musl", aarch64_gentoo_linux_musl), -+ ("armv7-gentoo-linux-musleabihf", armv7_gentoo_linux_musleabihf), -+ ("i686-gentoo-linux-musl", i686_gentoo_linux_musl), -+ ("powerpc-gentoo-linux-musl", powerpc_gentoo_linux_musl), -+ ("powerpc64-gentoo-linux-musl", powerpc64_gentoo_linux_musl), -+ ("powerpc64le-gentoo-linux-musl", powerpc64le_gentoo_linux_musl), -+ ("x86_64-gentoo-linux-musl", x86_64_gentoo_linux_musl), -+ - ("x86_64-unknown-linux-gnu", x86_64_unknown_linux_gnu), - ("x86_64-unknown-linux-gnux32", x86_64_unknown_linux_gnux32), - ("i686-unknown-linux-gnu", i686_unknown_linux_gnu), -diff --git a/compiler/rustc_target/src/spec/powerpc64_gentoo_linux_musl.rs b/compiler/rustc_target/src/spec/powerpc64_gentoo_linux_musl.rs -new file mode 100644 -index 0000000..e840bb2 ---- /dev/null -+++ b/compiler/rustc_target/src/spec/powerpc64_gentoo_linux_musl.rs -@@ -0,0 +1,11 @@ -+use crate::spec::TargetResult; -+ -+pub fn target() -> TargetResult { -+ let mut base = super::powerpc64_unknown_linux_musl::target()?; -+ -+ base.llvm_target = "powerpc64-gentoo-linux-musl".to_string(); -+ base.target_vendor = "gentoo".to_string(); -+ base.options.crt_static_default = false; -+ -+ Ok(base) -+} -diff --git a/compiler/rustc_target/src/spec/powerpc64le_gentoo_linux_musl.rs b/compiler/rustc_target/src/spec/powerpc64le_gentoo_linux_musl.rs -new file mode 100644 -index 0000000..1037d82 ---- /dev/null -+++ b/compiler/rustc_target/src/spec/powerpc64le_gentoo_linux_musl.rs -@@ -0,0 +1,11 @@ -+use crate::spec::TargetResult; -+ -+pub fn target() -> TargetResult { -+ let mut base = super::powerpc64le_unknown_linux_musl::target()?; -+ -+ base.llvm_target = "powerpc64le-gentoo-linux-musl".to_string(); -+ base.target_vendor = "gentoo".to_string(); -+ base.options.crt_static_default = false; -+ -+ Ok(base) -+} -diff --git a/compiler/rustc_target/src/spec/powerpc_gentoo_linux_musl.rs b/compiler/rustc_target/src/spec/powerpc_gentoo_linux_musl.rs -new file mode 100644 -index 0000000..a623ffe ---- /dev/null -+++ b/compiler/rustc_target/src/spec/powerpc_gentoo_linux_musl.rs -@@ -0,0 +1,11 @@ -+use crate::spec::TargetResult; -+ -+pub fn target() -> TargetResult { -+ let mut base = super::powerpc_unknown_linux_musl::target()?; -+ -+ base.llvm_target = "powerpc-gentoo-linux-musl".to_string(); -+ base.target_vendor = "gentoo".to_string(); -+ base.options.crt_static_default = false; -+ -+ Ok(base) -+} -diff --git a/compiler/rustc_target/src/spec/x86_64_gentoo_linux_musl.rs b/compiler/rustc_target/src/spec/x86_64_gentoo_linux_musl.rs -new file mode 100644 -index 0000000..f330473 ---- /dev/null -+++ b/compiler/rustc_target/src/spec/x86_64_gentoo_linux_musl.rs -@@ -0,0 +1,11 @@ -+use crate::spec::TargetResult; -+ -+pub fn target() -> TargetResult { -+ let mut base = super::x86_64_unknown_linux_musl::target()?; -+ -+ base.llvm_target = "x86_64-gentoo-linux-musl".to_string(); -+ base.target_vendor = "gentoo".to_string(); -+ base.options.crt_static_default = false; -+ -+ Ok(base) -+} --- -2.29.2 - diff --git a/dev-lang/rust/files/1.49.0-llvm-ver-display.patch b/dev-lang/rust/files/1.49.0-llvm-ver-display.patch deleted file mode 100644 index e2b6396b5eb8..000000000000 --- a/dev-lang/rust/files/1.49.0-llvm-ver-display.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 64c1b0d614949f405d8b4498a3b2ea59d9ec230e Mon Sep 17 00:00:00 2001 -From: bjorn3 <bjorn3@users.noreply.github.com> -Date: Wed, 13 Jan 2021 12:15:42 +0100 -Subject: [PATCH] Fix -Cpasses=list and llvm version print with -vV - ---- - compiler/rustc_driver/src/lib.rs | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/compiler/rustc_driver/src/lib.rs b/compiler/rustc_driver/src/lib.rs -index f434673c39e10..c668c94bb08c4 100644 ---- a/compiler/rustc_driver/src/lib.rs -+++ b/compiler/rustc_driver/src/lib.rs -@@ -808,7 +808,7 @@ pub fn version(binary: &str, matches: &getopts::Matches) { - println!("commit-date: {}", unw(util::commit_date_str())); - println!("host: {}", config::host_triple()); - println!("release: {}", unw(util::release_str())); -- if cfg!(llvm) { -+ if cfg!(feature = "llvm") { - get_builtin_codegen_backend("llvm")().print_version(); - } - } -@@ -1096,7 +1096,7 @@ pub fn handle_options(args: &[String]) -> Option<getopts::Matches> { - } - - if cg_flags.iter().any(|x| *x == "passes=list") { -- if cfg!(llvm) { -+ if cfg!(feature = "llvm") { - get_builtin_codegen_backend("llvm")().print_passes(); - } - return None; diff --git a/dev-lang/rust/files/1.51.0-bootstrap-panic.patch b/dev-lang/rust/files/1.51.0-bootstrap-panic.patch new file mode 100644 index 000000000000..529d5a1f402f --- /dev/null +++ b/dev-lang/rust/files/1.51.0-bootstrap-panic.patch @@ -0,0 +1,43 @@ +From 31c93397bde772764cda3058e16f9cef61895090 Mon Sep 17 00:00:00 2001 +From: Joshua Nelson <jyn514@gmail.com> +Date: Mon, 8 Feb 2021 22:51:21 -0500 +Subject: [PATCH] Use format string in bootstrap panic instead of a string + directly + +This fixes the following warning when compiling with nightly: + +``` +warning: panic message is not a string literal + --> src/bootstrap/builder.rs:1515:24 + | +1515 | panic!(out); + | ^^^ + | + = note: `#[warn(non_fmt_panic)]` on by default + = note: this is no longer accepted in Rust 2021 +help: add a "{}" format string to Display the message + | +1515 | panic!("{}", out); + | ^^^^^ +help: or use std::panic::panic_any instead + | +1515 | std::panic::panic_any(out); + | ^^^^^^^^^^^^^^^^^^^^^^ +``` +--- + src/bootstrap/builder.rs | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs +index f1a160250dbe1..0f5fcb4af400d 100644 +--- a/src/bootstrap/builder.rs ++++ b/src/bootstrap/builder.rs +@@ -1490,7 +1490,7 @@ impl<'a> Builder<'a> { + for el in stack.iter().rev() { + out += &format!("\t{:?}\n", el); + } +- panic!(out); ++ panic!("{}", out); + } + if let Some(out) = self.cache.get(&step) { + self.verbose(&format!("{}c {:?}", " ".repeat(stack.len()), step)); diff --git a/dev-lang/rust/files/gentoo-musl-target-specs.patch b/dev-lang/rust/files/gentoo-musl-target-specs.patch deleted file mode 100644 index 0661a26841b7..000000000000 --- a/dev-lang/rust/files/gentoo-musl-target-specs.patch +++ /dev/null @@ -1,168 +0,0 @@ -From 9fb44efd4a6270443ca2a06a098c83cf9820cc8b Mon Sep 17 00:00:00 2001 -From: Georgy Yakovlev <gyakovlev@gentoo.org> -Date: Thu, 8 Oct 2020 22:38:54 -0700 -Subject: [PATCH] add gentoo musl target specs - -Directly based on patch by Samuel Holland <samuel@sholland.org> -Found at: https://github.com/smaeul/portage-overlay/blob/master/dev-lang/rust/files/ - -Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org> ---- - src/librustc_target/spec/aarch64_gentoo_linux_musl.rs | 11 +++++++++++ - .../spec/armv7_gentoo_linux_musleabihf.rs | 11 +++++++++++ - src/librustc_target/spec/i686_gentoo_linux_musl.rs | 11 +++++++++++ - src/librustc_target/spec/mod.rs | 8 ++++++++ - .../spec/powerpc64_gentoo_linux_musl.rs | 11 +++++++++++ - .../spec/powerpc64le_gentoo_linux_musl.rs | 11 +++++++++++ - src/librustc_target/spec/powerpc_gentoo_linux_musl.rs | 11 +++++++++++ - src/librustc_target/spec/x86_64_gentoo_linux_musl.rs | 11 +++++++++++ - 8 files changed, 85 insertions(+) - create mode 100644 src/librustc_target/spec/aarch64_gentoo_linux_musl.rs - create mode 100644 src/librustc_target/spec/armv7_gentoo_linux_musleabihf.rs - create mode 100644 src/librustc_target/spec/i686_gentoo_linux_musl.rs - create mode 100644 src/librustc_target/spec/powerpc64_gentoo_linux_musl.rs - create mode 100644 src/librustc_target/spec/powerpc64le_gentoo_linux_musl.rs - create mode 100644 src/librustc_target/spec/powerpc_gentoo_linux_musl.rs - create mode 100644 src/librustc_target/spec/x86_64_gentoo_linux_musl.rs - -diff --git a/src/librustc_target/spec/aarch64_gentoo_linux_musl.rs b/src/librustc_target/spec/aarch64_gentoo_linux_musl.rs -new file mode 100644 -index 0000000..420fe7c ---- /dev/null -+++ b/src/librustc_target/spec/aarch64_gentoo_linux_musl.rs -@@ -0,0 +1,11 @@ -+use crate::spec::TargetResult; -+ -+pub fn target() -> TargetResult { -+ let mut base = super::aarch64_unknown_linux_musl::target()?; -+ -+ base.llvm_target = "aarch64-gentoo-linux-musl".to_string(); -+ base.target_vendor = "gentoo".to_string(); -+ base.options.crt_static_default = false; -+ -+ Ok(base) -+} -diff --git a/src/librustc_target/spec/armv7_gentoo_linux_musleabihf.rs b/src/librustc_target/spec/armv7_gentoo_linux_musleabihf.rs -new file mode 100644 -index 0000000..067e2d6 ---- /dev/null -+++ b/src/librustc_target/spec/armv7_gentoo_linux_musleabihf.rs -@@ -0,0 +1,11 @@ -+use crate::spec::TargetResult; -+ -+pub fn target() -> TargetResult { -+ let mut base = super::armv7_unknown_linux_musleabihf::target()?; -+ -+ base.llvm_target = "armv7-gentoo-linux-musleabihf".to_string(); -+ base.target_vendor = "gentoo".to_string(); -+ base.options.crt_static_default = false; -+ -+ Ok(base) -+} -diff --git a/src/librustc_target/spec/i686_gentoo_linux_musl.rs b/src/librustc_target/spec/i686_gentoo_linux_musl.rs -new file mode 100644 -index 0000000..1cd39cd ---- /dev/null -+++ b/src/librustc_target/spec/i686_gentoo_linux_musl.rs -@@ -0,0 +1,11 @@ -+use crate::spec::TargetResult; -+ -+pub fn target() -> TargetResult { -+ let mut base = super::i686_unknown_linux_musl::target()?; -+ -+ base.llvm_target = "i686-gentoo-linux-musl".to_string(); -+ base.target_vendor = "gentoo".to_string(); -+ base.options.crt_static_default = false; -+ -+ Ok(base) -+} -diff --git a/src/librustc_target/spec/mod.rs b/src/librustc_target/spec/mod.rs -index fa29ff3..a685600 100644 ---- a/src/librustc_target/spec/mod.rs -+++ b/src/librustc_target/spec/mod.rs -@@ -490,6 +490,14 @@ macro_rules! supported_targets { - } - - supported_targets! { -+ ("aarch64-gentoo-linux-musl", aarch64_gentoo_linux_musl), -+ ("armv7-gentoo-linux-musleabihf", armv7_gentoo_linux_musleabihf), -+ ("i686-gentoo-linux-musl", i686_gentoo_linux_musl), -+ ("powerpc-gentoo-linux-musl", powerpc_gentoo_linux_musl), -+ ("powerpc64-gentoo-linux-musl", powerpc64_gentoo_linux_musl), -+ ("powerpc64le-gentoo-linux-musl", powerpc64le_gentoo_linux_musl), -+ ("x86_64-gentoo-linux-musl", x86_64_gentoo_linux_musl), -+ - ("x86_64-unknown-linux-gnu", x86_64_unknown_linux_gnu), - ("x86_64-unknown-linux-gnux32", x86_64_unknown_linux_gnux32), - ("i686-unknown-linux-gnu", i686_unknown_linux_gnu), -diff --git a/src/librustc_target/spec/powerpc64_gentoo_linux_musl.rs b/src/librustc_target/spec/powerpc64_gentoo_linux_musl.rs -new file mode 100644 -index 0000000..e840bb2 ---- /dev/null -+++ b/src/librustc_target/spec/powerpc64_gentoo_linux_musl.rs -@@ -0,0 +1,11 @@ -+use crate::spec::TargetResult; -+ -+pub fn target() -> TargetResult { -+ let mut base = super::powerpc64_unknown_linux_musl::target()?; -+ -+ base.llvm_target = "powerpc64-gentoo-linux-musl".to_string(); -+ base.target_vendor = "gentoo".to_string(); -+ base.options.crt_static_default = false; -+ -+ Ok(base) -+} -diff --git a/src/librustc_target/spec/powerpc64le_gentoo_linux_musl.rs b/src/librustc_target/spec/powerpc64le_gentoo_linux_musl.rs -new file mode 100644 -index 0000000..1037d82 ---- /dev/null -+++ b/src/librustc_target/spec/powerpc64le_gentoo_linux_musl.rs -@@ -0,0 +1,11 @@ -+use crate::spec::TargetResult; -+ -+pub fn target() -> TargetResult { -+ let mut base = super::powerpc64le_unknown_linux_musl::target()?; -+ -+ base.llvm_target = "powerpc64le-gentoo-linux-musl".to_string(); -+ base.target_vendor = "gentoo".to_string(); -+ base.options.crt_static_default = false; -+ -+ Ok(base) -+} -diff --git a/src/librustc_target/spec/powerpc_gentoo_linux_musl.rs b/src/librustc_target/spec/powerpc_gentoo_linux_musl.rs -new file mode 100644 -index 0000000..a623ffe ---- /dev/null -+++ b/src/librustc_target/spec/powerpc_gentoo_linux_musl.rs -@@ -0,0 +1,11 @@ -+use crate::spec::TargetResult; -+ -+pub fn target() -> TargetResult { -+ let mut base = super::powerpc_unknown_linux_musl::target()?; -+ -+ base.llvm_target = "powerpc-gentoo-linux-musl".to_string(); -+ base.target_vendor = "gentoo".to_string(); -+ base.options.crt_static_default = false; -+ -+ Ok(base) -+} -diff --git a/src/librustc_target/spec/x86_64_gentoo_linux_musl.rs b/src/librustc_target/spec/x86_64_gentoo_linux_musl.rs -new file mode 100644 -index 0000000..f330473 ---- /dev/null -+++ b/src/librustc_target/spec/x86_64_gentoo_linux_musl.rs -@@ -0,0 +1,11 @@ -+use crate::spec::TargetResult; -+ -+pub fn target() -> TargetResult { -+ let mut base = super::x86_64_unknown_linux_musl::target()?; -+ -+ base.llvm_target = "x86_64-gentoo-linux-musl".to_string(); -+ base.target_vendor = "gentoo".to_string(); -+ base.options.crt_static_default = false; -+ -+ Ok(base) -+} --- -2.28.0 - diff --git a/dev-lang/rust/files/rustc-1.51.0-backport-pr81728.patch b/dev-lang/rust/files/rustc-1.51.0-backport-pr81728.patch new file mode 100644 index 000000000000..20373f42d307 --- /dev/null +++ b/dev-lang/rust/files/rustc-1.51.0-backport-pr81728.patch @@ -0,0 +1,181 @@ +From 70f17ca715d3d7e2fd79cc909b95fd3a6357c13e Mon Sep 17 00:00:00 2001 +From: Yechan Bae <yechan@gatech.edu> +Date: Wed, 3 Feb 2021 16:36:33 -0500 +Subject: [PATCH 1/2] Fixes #80335 + +--- + library/alloc/src/str.rs | 42 ++++++++++++++++++++++---------------- + library/alloc/tests/str.rs | 30 +++++++++++++++++++++++++++ + 2 files changed, 54 insertions(+), 18 deletions(-) + +diff --git a/library/alloc/src/str.rs b/library/alloc/src/str.rs +index 70e0c7dba5ea..a7584c6b6510 100644 +--- a/library/alloc/src/str.rs ++++ b/library/alloc/src/str.rs +@@ -90,8 +90,8 @@ fn join(slice: &Self, sep: &str) -> String { + } + } + +-macro_rules! spezialize_for_lengths { +- ($separator:expr, $target:expr, $iter:expr; $($num:expr),*) => { ++macro_rules! specialize_for_lengths { ++ ($separator:expr, $target:expr, $iter:expr; $($num:expr),*) => {{ + let mut target = $target; + let iter = $iter; + let sep_bytes = $separator; +@@ -102,7 +102,8 @@ macro_rules! spezialize_for_lengths { + $num => { + for s in iter { + copy_slice_and_advance!(target, sep_bytes); +- copy_slice_and_advance!(target, s.borrow().as_ref()); ++ let content_bytes = s.borrow().as_ref(); ++ copy_slice_and_advance!(target, content_bytes); + } + }, + )* +@@ -110,11 +111,13 @@ macro_rules! spezialize_for_lengths { + // arbitrary non-zero size fallback + for s in iter { + copy_slice_and_advance!(target, sep_bytes); +- copy_slice_and_advance!(target, s.borrow().as_ref()); ++ let content_bytes = s.borrow().as_ref(); ++ copy_slice_and_advance!(target, content_bytes); + } + } + } +- }; ++ target ++ }} + } + + macro_rules! copy_slice_and_advance { +@@ -153,7 +156,7 @@ fn join_generic_copy<B, T, S>(slice: &[S], sep: &[T]) -> Vec<T> + // if the `len` calculation overflows, we'll panic + // we would have run out of memory anyway and the rest of the function requires + // the entire Vec pre-allocated for safety +- let len = sep_len ++ let reserved_len = sep_len + .checked_mul(iter.len()) + .and_then(|n| { + slice.iter().map(|s| s.borrow().as_ref().len()).try_fold(n, usize::checked_add) +@@ -161,22 +164,25 @@ fn join_generic_copy<B, T, S>(slice: &[S], sep: &[T]) -> Vec<T> + .expect("attempt to join into collection with len > usize::MAX"); + + // crucial for safety +- let mut result = Vec::with_capacity(len); +- assert!(result.capacity() >= len); ++ let mut result = Vec::with_capacity(reserved_len); ++ debug_assert!(result.capacity() >= reserved_len); + + result.extend_from_slice(first.borrow().as_ref()); + + unsafe { +- { +- let pos = result.len(); +- let target = result.get_unchecked_mut(pos..len); +- +- // copy separator and slices over without bounds checks +- // generate loops with hardcoded offsets for small separators +- // massive improvements possible (~ x2) +- spezialize_for_lengths!(sep, target, iter; 0, 1, 2, 3, 4); +- } +- result.set_len(len); ++ let pos = result.len(); ++ let target = result.get_unchecked_mut(pos..reserved_len); ++ ++ // copy separator and slices over without bounds checks ++ // generate loops with hardcoded offsets for small separators ++ // massive improvements possible (~ x2) ++ let remain = specialize_for_lengths!(sep, target, iter; 0, 1, 2, 3, 4); ++ ++ // issue #80335: A weird borrow implementation can return different ++ // slices for the length calculation and the actual copy, so ++ // `remain.len()` might be non-zero. ++ let result_len = reserved_len - remain.len(); ++ result.set_len(result_len); + } + result + } +diff --git a/library/alloc/tests/str.rs b/library/alloc/tests/str.rs +index 604835e6cc4a..6df8d8c2f354 100644 +--- a/library/alloc/tests/str.rs ++++ b/library/alloc/tests/str.rs +@@ -160,6 +160,36 @@ fn test_join_for_different_lengths_with_long_separator() { + test_join!("~~~~~a~~~~~bc", ["", "a", "bc"], "~~~~~"); + } + ++#[test] ++fn test_join_isue_80335() { ++ use core::{borrow::Borrow, cell::Cell}; ++ ++ struct WeirdBorrow { ++ state: Cell<bool>, ++ } ++ ++ impl Default for WeirdBorrow { ++ fn default() -> Self { ++ WeirdBorrow { state: Cell::new(false) } ++ } ++ } ++ ++ impl Borrow<str> for WeirdBorrow { ++ fn borrow(&self) -> &str { ++ let state = self.state.get(); ++ if state { ++ "0" ++ } else { ++ self.state.set(true); ++ "123456" ++ } ++ } ++ } ++ ++ let arr: [WeirdBorrow; 3] = Default::default(); ++ test_join!("0-0-0", arr, "-"); ++} ++ + #[test] + #[cfg_attr(miri, ignore)] // Miri is too slow + fn test_unsafe_slice() { +-- +2.31.1 + + +From 10020817d2e6756be1ff2ac3c182af97cf7fe904 Mon Sep 17 00:00:00 2001 +From: Yechan Bae <yechan@gatech.edu> +Date: Sat, 20 Mar 2021 13:42:54 -0400 +Subject: [PATCH 2/2] Update the comment + +--- + library/alloc/src/str.rs | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/library/alloc/src/str.rs b/library/alloc/src/str.rs +index a7584c6b6510..4d1e876457b8 100644 +--- a/library/alloc/src/str.rs ++++ b/library/alloc/src/str.rs +@@ -163,7 +163,7 @@ fn join_generic_copy<B, T, S>(slice: &[S], sep: &[T]) -> Vec<T> + }) + .expect("attempt to join into collection with len > usize::MAX"); + +- // crucial for safety ++ // prepare an uninitialized buffer + let mut result = Vec::with_capacity(reserved_len); + debug_assert!(result.capacity() >= reserved_len); + +@@ -178,9 +178,9 @@ fn join_generic_copy<B, T, S>(slice: &[S], sep: &[T]) -> Vec<T> + // massive improvements possible (~ x2) + let remain = specialize_for_lengths!(sep, target, iter; 0, 1, 2, 3, 4); + +- // issue #80335: A weird borrow implementation can return different +- // slices for the length calculation and the actual copy, so +- // `remain.len()` might be non-zero. ++ // A weird borrow implementation may return different ++ // slices for the length calculation and the actual copy. ++ // Make sure we don't expose uninitialized bytes to the caller. + let result_len = reserved_len - remain.len(); + result.set_len(result_len); + } +-- +2.31.1 + diff --git a/dev-lang/rust/files/rustc-1.51.0-backport-pr81741.patch b/dev-lang/rust/files/rustc-1.51.0-backport-pr81741.patch new file mode 100644 index 000000000000..8ef22eea56fd --- /dev/null +++ b/dev-lang/rust/files/rustc-1.51.0-backport-pr81741.patch @@ -0,0 +1,44 @@ +From 40d3f2d7ef5835317fe9df9ecc01f4c363def4fd Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com> +Date: Thu, 4 Feb 2021 10:23:01 +0200 +Subject: [PATCH] Increment `self.index` before calling + `Iterator::self.a.__iterator_get_unchecked` in `Zip` `TrustedRandomAccess` + specialization + +Otherwise if `Iterator::self.a.__iterator_get_unchecked` panics the +index would not have been incremented yet and another call to +`Iterator::next` would read from the same index again, which is not +allowed according to the API contract of `TrustedRandomAccess` for +`!Clone`. + +Fixes https://github.com/rust-lang/rust/issues/81740 + +(cherry picked from commit 86a4b27475aab52b998c15f5758540697cc9cff0) +--- + library/core/src/iter/adapters/zip.rs | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/library/core/src/iter/adapters/zip.rs b/library/core/src/iter/adapters/zip.rs +index 98b8dca96140..9f9835345200 100644 +--- a/library/core/src/iter/adapters/zip.rs ++++ b/library/core/src/iter/adapters/zip.rs +@@ -198,12 +198,13 @@ fn next(&mut self) -> Option<(A::Item, B::Item)> { + Some((self.a.__iterator_get_unchecked(i), self.b.__iterator_get_unchecked(i))) + } + } else if A::may_have_side_effect() && self.index < self.a.size() { ++ let i = self.index; ++ self.index += 1; + // match the base implementation's potential side effects +- // SAFETY: we just checked that `self.index` < `self.a.len()` ++ // SAFETY: we just checked that `i` < `self.a.len()` + unsafe { +- self.a.__iterator_get_unchecked(self.index); ++ self.a.__iterator_get_unchecked(i); + } +- self.index += 1; + None + } else { + None +-- +2.31.1 + diff --git a/dev-lang/rust/files/rustc-1.51.0-backport-pr82289.patch b/dev-lang/rust/files/rustc-1.51.0-backport-pr82289.patch new file mode 100644 index 000000000000..5cf543319775 --- /dev/null +++ b/dev-lang/rust/files/rustc-1.51.0-backport-pr82289.patch @@ -0,0 +1,96 @@ +From 5222e2ba2d97cd716a379b4ae6bc62c5f7c2dd36 Mon Sep 17 00:00:00 2001 +From: Giacomo Stevanato <giaco.stevanato@gmail.com> +Date: Fri, 19 Feb 2021 12:15:37 +0100 +Subject: [PATCH 1/3] Increment self.len in specialized ZipImpl to avoid + underflow in size_hint + +(cherry picked from commit 66a260617a88ed1ad55a46f03c5a90d5ad3004d3) +--- + library/core/src/iter/adapters/zip.rs | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/library/core/src/iter/adapters/zip.rs b/library/core/src/iter/adapters/zip.rs +index 9f9835345200..f08bfac837fe 100644 +--- a/library/core/src/iter/adapters/zip.rs ++++ b/library/core/src/iter/adapters/zip.rs +@@ -200,6 +200,7 @@ fn next(&mut self) -> Option<(A::Item, B::Item)> { + } else if A::may_have_side_effect() && self.index < self.a.size() { + let i = self.index; + self.index += 1; ++ self.len += 1; + // match the base implementation's potential side effects + // SAFETY: we just checked that `i` < `self.a.len()` + unsafe { +-- +2.31.1 + + +From d39669fc8282830a374d19d204f7b4ee8eb1e381 Mon Sep 17 00:00:00 2001 +From: Giacomo Stevanato <giaco.stevanato@gmail.com> +Date: Fri, 19 Feb 2021 12:16:12 +0100 +Subject: [PATCH 2/3] Add test for underflow in specialized Zip's size_hint + +(cherry picked from commit 8b9ac4d4155c74db5b317046033ab9c05a09e351) +--- + library/core/tests/iter/adapters/zip.rs | 20 ++++++++++++++++++++ + 1 file changed, 20 insertions(+) + +diff --git a/library/core/tests/iter/adapters/zip.rs b/library/core/tests/iter/adapters/zip.rs +index 1fce0951e365..a59771039295 100644 +--- a/library/core/tests/iter/adapters/zip.rs ++++ b/library/core/tests/iter/adapters/zip.rs +@@ -245,3 +245,23 @@ fn test_double_ended_zip() { + assert_eq!(it.next_back(), Some((3, 3))); + assert_eq!(it.next(), None); + } ++ ++#[test] ++fn test_issue_82282() { ++ fn overflowed_zip(arr: &[i32]) -> impl Iterator<Item = (i32, &())> { ++ static UNIT_EMPTY_ARR: [(); 0] = []; ++ ++ let mapped = arr.into_iter().map(|i| *i); ++ let mut zipped = mapped.zip(UNIT_EMPTY_ARR.iter()); ++ zipped.next(); ++ zipped ++ } ++ ++ let arr = [1, 2, 3]; ++ let zip = overflowed_zip(&arr).zip(overflowed_zip(&arr)); ++ ++ assert_eq!(zip.size_hint(), (0, Some(0))); ++ for _ in zip { ++ panic!(); ++ } ++} +-- +2.31.1 + + +From 4b382167dd5ed5a6eac0cf314bfb86e3704b6e76 Mon Sep 17 00:00:00 2001 +From: Giacomo Stevanato <giaco.stevanato@gmail.com> +Date: Fri, 19 Feb 2021 12:17:48 +0100 +Subject: [PATCH 3/3] Remove useless comparison since now self.index <= + self.len is an invariant + +(cherry picked from commit aeb4ea739efb70e0002a4a9c4c7b8027dd0620b3) +--- + library/core/src/iter/adapters/zip.rs | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/library/core/src/iter/adapters/zip.rs b/library/core/src/iter/adapters/zip.rs +index f08bfac837fe..dcbcb1ce7200 100644 +--- a/library/core/src/iter/adapters/zip.rs ++++ b/library/core/src/iter/adapters/zip.rs +@@ -261,7 +261,7 @@ fn next_back(&mut self) -> Option<(A::Item, B::Item)> + if sz_a != sz_b { + let sz_a = self.a.size(); + if a_side_effect && sz_a > self.len { +- for _ in 0..sz_a - cmp::max(self.len, self.index) { ++ for _ in 0..sz_a - self.len { + self.a.next_back(); + } + } +-- +2.31.1 + diff --git a/dev-lang/rust/files/rustc-1.51.0-backport-pr82292.patch b/dev-lang/rust/files/rustc-1.51.0-backport-pr82292.patch new file mode 100644 index 000000000000..4baf72a26190 --- /dev/null +++ b/dev-lang/rust/files/rustc-1.51.0-backport-pr82292.patch @@ -0,0 +1,120 @@ +From 0babb88efc4d36f3defafc3c3c0343793fa05d52 Mon Sep 17 00:00:00 2001 +From: Giacomo Stevanato <giaco.stevanato@gmail.com> +Date: Wed, 3 Mar 2021 21:09:01 +0100 +Subject: [PATCH 1/2] Prevent Zip specialization from calling + __iterator_get_unchecked twice with the same index after calling next_back + +(cherry picked from commit 2371914a05f8f2763dffe6e2511d0870bcd6b461) +--- + library/core/src/iter/adapters/zip.rs | 13 +++++++++---- + 1 file changed, 9 insertions(+), 4 deletions(-) + +diff --git a/library/core/src/iter/adapters/zip.rs b/library/core/src/iter/adapters/zip.rs +index dcbcb1ce7200..7dac0c63ca2d 100644 +--- a/library/core/src/iter/adapters/zip.rs ++++ b/library/core/src/iter/adapters/zip.rs +@@ -13,9 +13,10 @@ + pub struct Zip<A, B> { + a: A, + b: B, +- // index and len are only used by the specialized version of zip ++ // index, len and a_len are only used by the specialized version of zip + index: usize, + len: usize, ++ a_len: usize, + } + impl<A: Iterator, B: Iterator> Zip<A, B> { + pub(in crate::iter) fn new(a: A, b: B) -> Zip<A, B> { +@@ -110,6 +111,7 @@ impl<A, B> ZipImpl<A, B> for Zip<A, B> + b, + index: 0, // unused + len: 0, // unused ++ a_len: 0, // unused + } + } + +@@ -184,8 +186,9 @@ impl<A, B> ZipImpl<A, B> for Zip<A, B> + B: TrustedRandomAccess + Iterator, + { + fn new(a: A, b: B) -> Self { +- let len = cmp::min(a.size(), b.size()); +- Zip { a, b, index: 0, len } ++ let a_len = a.size(); ++ let len = cmp::min(a_len, b.size()); ++ Zip { a, b, index: 0, len, a_len } + } + + #[inline] +@@ -197,7 +200,7 @@ fn next(&mut self) -> Option<(A::Item, B::Item)> { + unsafe { + Some((self.a.__iterator_get_unchecked(i), self.b.__iterator_get_unchecked(i))) + } +- } else if A::may_have_side_effect() && self.index < self.a.size() { ++ } else if A::may_have_side_effect() && self.index < self.a_len { + let i = self.index; + self.index += 1; + self.len += 1; +@@ -264,6 +267,7 @@ fn next_back(&mut self) -> Option<(A::Item, B::Item)> + for _ in 0..sz_a - self.len { + self.a.next_back(); + } ++ self.a_len = self.len; + } + let sz_b = self.b.size(); + if b_side_effect && sz_b > self.len { +@@ -275,6 +279,7 @@ fn next_back(&mut self) -> Option<(A::Item, B::Item)> + } + if self.index < self.len { + self.len -= 1; ++ self.a_len -= 1; + let i = self.len; + // SAFETY: `i` is smaller than the previous value of `self.len`, + // which is also smaller than or equal to `self.a.len()` and `self.b.len()` +-- +2.31.1 + + +From 19af66a6f3e2bbb4780bb9eae7eb53bd13e3dd0f Mon Sep 17 00:00:00 2001 +From: Giacomo Stevanato <giaco.stevanato@gmail.com> +Date: Fri, 19 Feb 2021 15:25:09 +0100 +Subject: [PATCH 2/2] Add relevant test + +(cherry picked from commit c1bfb9a78db6d481be1d03355672712c766e20b0) +--- + library/core/tests/iter/adapters/zip.rs | 23 +++++++++++++++++++++++ + 1 file changed, 23 insertions(+) + +diff --git a/library/core/tests/iter/adapters/zip.rs b/library/core/tests/iter/adapters/zip.rs +index a59771039295..000c15f72c88 100644 +--- a/library/core/tests/iter/adapters/zip.rs ++++ b/library/core/tests/iter/adapters/zip.rs +@@ -265,3 +265,26 @@ fn overflowed_zip(arr: &[i32]) -> impl Iterator<Item = (i32, &())> { + panic!(); + } + } ++ ++#[test] ++fn test_issue_82291() { ++ use std::cell::Cell; ++ ++ let mut v1 = [()]; ++ let v2 = [()]; ++ ++ let called = Cell::new(0); ++ ++ let mut zip = v1 ++ .iter_mut() ++ .map(|r| { ++ called.set(called.get() + 1); ++ r ++ }) ++ .zip(&v2); ++ ++ zip.next_back(); ++ assert_eq!(called.get(), 1); ++ zip.next(); ++ assert_eq!(called.get(), 1); ++} +-- +2.31.1 + diff --git a/dev-lang/rust/files/rustc-1.51.0-backport-pr83629.patch b/dev-lang/rust/files/rustc-1.51.0-backport-pr83629.patch new file mode 100644 index 000000000000..7f68d95cc7f4 --- /dev/null +++ b/dev-lang/rust/files/rustc-1.51.0-backport-pr83629.patch @@ -0,0 +1,142 @@ +From 3834e7b7393bf1a0d7df02ccd1d2e896c1465769 Mon Sep 17 00:00:00 2001 +From: The8472 <git@infinite-source.de> +Date: Mon, 29 Mar 2021 04:22:34 +0200 +Subject: [PATCH 1/2] add testcase for double-drop during Vec in-place + collection + +--- + library/alloc/tests/vec.rs | 38 +++++++++++++++++++++++++++++++++++++- + 1 file changed, 37 insertions(+), 1 deletion(-) + +diff --git a/library/alloc/tests/vec.rs b/library/alloc/tests/vec.rs +index 5c7ff67bc621..4cdb7eefcdf1 100644 +--- a/library/alloc/tests/vec.rs ++++ b/library/alloc/tests/vec.rs +@@ -954,7 +954,7 @@ fn test_from_iter_specialization_head_tail_drop() { + } + + #[test] +-fn test_from_iter_specialization_panic_drop() { ++fn test_from_iter_specialization_panic_during_iteration_drops() { + let drop_count: Vec<_> = (0..=2).map(|_| Rc::new(())).collect(); + let src: Vec<_> = drop_count.iter().cloned().collect(); + let iter = src.into_iter(); +@@ -977,6 +977,42 @@ fn test_from_iter_specialization_panic_drop() { + ); + } + ++#[test] ++fn test_from_iter_specialization_panic_during_drop_leaks() { ++ static mut DROP_COUNTER: usize = 0; ++ ++ #[derive(Debug)] ++ enum Droppable { ++ DroppedTwice(Box<i32>), ++ PanicOnDrop, ++ } ++ ++ impl Drop for Droppable { ++ fn drop(&mut self) { ++ match self { ++ Droppable::DroppedTwice(_) => { ++ unsafe { ++ DROP_COUNTER += 1; ++ } ++ println!("Dropping!") ++ } ++ Droppable::PanicOnDrop => { ++ if !std::thread::panicking() { ++ panic!(); ++ } ++ } ++ } ++ } ++ } ++ ++ let _ = std::panic::catch_unwind(AssertUnwindSafe(|| { ++ let v = vec![Droppable::DroppedTwice(Box::new(123)), Droppable::PanicOnDrop]; ++ let _ = v.into_iter().take(0).collect::<Vec<_>>(); ++ })); ++ ++ assert_eq!(unsafe { DROP_COUNTER }, 1); ++} ++ + #[test] + fn test_cow_from() { + let borrowed: &[_] = &["borrowed", "(slice)"]; +-- +2.31.1 + + +From 8e2706343e1ce1c5a2d3a2ceaaaa010aaeb21d93 Mon Sep 17 00:00:00 2001 +From: The8472 <git@infinite-source.de> +Date: Mon, 29 Mar 2021 04:22:48 +0200 +Subject: [PATCH 2/2] fix double-drop in in-place collect specialization + +--- + library/alloc/src/vec/into_iter.rs | 27 ++++++++++++++------- + library/alloc/src/vec/source_iter_marker.rs | 4 +-- + 2 files changed, 20 insertions(+), 11 deletions(-) + +diff --git a/library/alloc/src/vec/into_iter.rs b/library/alloc/src/vec/into_iter.rs +index f131d06bb18f..74adced53f6d 100644 +--- a/library/alloc/src/vec/into_iter.rs ++++ b/library/alloc/src/vec/into_iter.rs +@@ -85,20 +85,29 @@ fn as_raw_mut_slice(&mut self) -> *mut [T] { + ptr::slice_from_raw_parts_mut(self.ptr as *mut T, self.len()) + } + +- pub(super) fn drop_remaining(&mut self) { +- unsafe { +- ptr::drop_in_place(self.as_mut_slice()); +- } +- self.ptr = self.end; +- } ++ /// Drops remaining elements and relinquishes the backing allocation. ++ /// ++ /// This is roughly equivalent to the following, but more efficient ++ /// ++ /// ``` ++ /// # let mut into_iter = Vec::<u8>::with_capacity(10).into_iter(); ++ /// (&mut into_iter).for_each(core::mem::drop); ++ /// unsafe { core::ptr::write(&mut into_iter, Vec::new().into_iter()); } ++ /// ``` ++ pub(super) fn forget_allocation_drop_remaining(&mut self) { ++ let remaining = self.as_raw_mut_slice(); + +- /// Relinquishes the backing allocation, equivalent to +- /// `ptr::write(&mut self, Vec::new().into_iter())` +- pub(super) fn forget_allocation(&mut self) { ++ // overwrite the individual fields instead of creating a new ++ // struct and then overwriting &mut self. ++ // this creates less assembly + self.cap = 0; + self.buf = unsafe { NonNull::new_unchecked(RawVec::NEW.ptr()) }; + self.ptr = self.buf.as_ptr(); + self.end = self.buf.as_ptr(); ++ ++ unsafe { ++ ptr::drop_in_place(remaining); ++ } + } + } + +diff --git a/library/alloc/src/vec/source_iter_marker.rs b/library/alloc/src/vec/source_iter_marker.rs +index 8c0e95559fa1..9301f7a5184e 100644 +--- a/library/alloc/src/vec/source_iter_marker.rs ++++ b/library/alloc/src/vec/source_iter_marker.rs +@@ -78,9 +78,9 @@ impl<T, I> SpecFromIter<T, I> for Vec<T> + } + + // drop any remaining values at the tail of the source +- src.drop_remaining(); + // but prevent drop of the allocation itself once IntoIter goes out of scope +- src.forget_allocation(); ++ // if the drop panics then we also leak any elements collected into dst_buf ++ src.forget_allocation_drop_remaining(); + + let vec = unsafe { + let len = dst.offset_from(dst_buf) as usize; +-- +2.31.1 + diff --git a/dev-lang/rust/rust-1.46.0.ebuild b/dev-lang/rust/rust-1.46.0.ebuild deleted file mode 100644 index 67e1a0ba5904..000000000000 --- a/dev-lang/rust/rust-1.46.0.ebuild +++ /dev/null @@ -1,586 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{7..9} ) - -inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing multilib-build python-any-r1 rust-toolchain toolchain-funcs - -if [[ ${PV} = *beta* ]]; then - betaver=${PV//*beta} - BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" - MY_P="rustc-beta" - SLOT="beta/${PV}" - SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz" -else - ABI_VER="$(ver_cut 1-2)" - SLOT="stable/${ABI_VER}" - MY_P="rustc-${PV}" - SRC="${MY_P}-src.tar.xz" - KEYWORDS="amd64 arm arm64 ppc64 x86" -fi - -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).1" - -DESCRIPTION="Systems programming language from Mozilla" -HOMEPAGE="https://www.rust-lang.org/" - -SRC_URI=" - https://static.rust-lang.org/dist/${SRC} - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) ) -" - -ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 - NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore ) -ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) -LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?} - -LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA" - -IUSE="clippy cpu_flags_x86_sse2 debug doc libressl miri nightly parallel-compiler rls rustfmt system-bootstrap system-llvm wasm ${ALL_LLVM_TARGETS[*]}" - -# Please keep the LLVM dependency block separate. Since LLVM is slotted, -# we need to *really* make sure we're not pulling more than one slot -# simultaneously. - -# How to use it: -# 1. List all the working slots (with min versions) in ||, newest first. -# 2. Update the := to specify *max* version, e.g. < 11. -# 3. Specify LLVM_MAX_SLOT, e.g. 10. -LLVM_DEPEND=" - || ( - sys-devel/llvm:10[${LLVM_TARGET_USEDEPS// /,}] - sys-devel/llvm:9[${LLVM_TARGET_USEDEPS// /,}] - ) - <sys-devel/llvm-11:= - wasm? ( sys-devel/lld ) -" -LLVM_MAX_SLOT=10 - -BOOTSTRAP_DEPEND="|| ( >=dev-lang/rust-1.$(($(ver_cut 2) - 1)) >=dev-lang/rust-bin-1.$(($(ver_cut 2) - 1)) )" - -BDEPEND="${PYTHON_DEPS} - app-eselect/eselect-rust - || ( - >=sys-devel/gcc-4.7 - >=sys-devel/clang-3.5 - ) - system-bootstrap? ( ${BOOTSTRAP_DEPEND} ) - !system-llvm? ( - dev-util/cmake - dev-util/ninja - ) -" - -# libgit2 should be at least same as bundled into libgit-sys #707746 -DEPEND=" - >=dev-libs/libgit2-0.99:= - net-libs/libssh2:= - net-libs/http-parser:= - net-misc/curl:=[http2,ssl] - sys-libs/zlib:= - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl:0= ) - elibc_musl? ( sys-libs/libunwind ) - system-llvm? ( - ${LLVM_DEPEND} - ) -" - -RDEPEND="${DEPEND} - app-eselect/eselect-rust -" - -REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} ) - miri? ( nightly ) - parallel-compiler? ( nightly ) - wasm? ( llvm_targets_WebAssembly ) - x86? ( cpu_flags_x86_sse2 ) -" - -# we don't use cmake.eclass, but can get a warnin -l -CMAKE_WARN_UNUSED_CLI=no - -QA_FLAGS_IGNORED=" - usr/bin/.*-${PV} - usr/lib.*/${P}/lib.*.so.* - usr/lib.*/${P}/rustlib/.*/bin/.* - usr/lib.*/${P}/rustlib/.*/lib/lib.*.so.* -" - -QA_SONAME=" - usr/lib.*/${P}/lib.*.so.* - usr/lib.*/${P}/rustlib/.*/lib/lib.*.so.* -" - -# still disabled, almost ready to enable -RESTRICT="test" - -PATCHES=( - "${FILESDIR}"/0012-Ignore-broken-and-non-applicable-tests.patch - "${FILESDIR}"/1.44.0-libressl.patch -) - -S="${WORKDIR}/${MY_P}-src" - -toml_usex() { - usex "$1" true false -} - -boostrap_rust_version_check() { - # never call from pkg_pretend. eselect-rust may be not installed yet. - [[ ${MERGE_TYPE} == binary ]] && return - local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))" - local rustc_version=( $(eselect --brief rust show 2>/dev/null) ) - rustc_version=${rustc_version[0]#rust-bin-} - rustc_version=${rustc_version#rust-} - - [[ -z "${rustc_version}" ]] && die "Failed to determine rustc version!" - - if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then - eerror "Rust >=${rustc_wanted} is required" - eerror "please run \'eselect rust\' and set correct rust version" - die - else - einfo "Using rust ${rustc_version} to build" - fi -} - -pre_build_checks() { - local M=6144 - M=$(( $(usex clippy 128 0) + ${M} )) - M=$(( $(usex miri 128 0) + ${M} )) - M=$(( $(usex rls 512 0) + ${M} )) - M=$(( $(usex rustfmt 256 0) + ${M} )) - M=$(( $(usex system-llvm 0 2048) + ${M} )) - M=$(( $(usex wasm 256 0) + ${M} )) - M=$(( $(usex debug 15 10) * ${M} / 10 )) - eshopts_push -s extglob - if is-flagq '-g?(gdb)?([1-9])'; then - M=$(( 15 * ${M} / 10 )) - fi - eshopts_pop - M=$(( $(usex system-bootstrap 0 1024) + ${M} )) - M=$(( $(usex doc 256 0) + ${M} )) - CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} -} - -pkg_pretend() { - pre_build_checks -} - -pkg_setup() { - pre_build_checks - python-any-r1_pkg_setup - use system-bootstrap && boostrap_rust_version_check - - # required to link agains system libs, otherwise - # crates use bundled sources and compile own static version - export LIBGIT2_SYS_USE_PKG_CONFIG=1 - export LIBSSH2_SYS_USE_PKG_CONFIG=1 - export PKG_CONFIG_ALLOW_CROSS=1 - - if use system-llvm; then - llvm_pkg_setup - - local llvm_config="$(get_llvm_prefix "$LLVM_MAX_SLOT")/bin/llvm-config" - - export LLVM_LINK_SHARED=1 - export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)" - fi -} - -src_prepare() { - if ! use system-bootstrap; then - local rust_stage0_root="${WORKDIR}"/rust-stage0 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)" - - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \ - --destdir="${rust_stage0_root}" --prefix=/ || die - fi - - default -} - -src_configure() { - local rust_target="" rust_targets="" arch_cflags - - # Collect rust target names to compile standard libs for all ABIs. - for v in $(multilib_get_enabled_abi_pairs); do - rust_targets="${rust_targets},\"$(rust_abi $(get_abi_CHOST ${v##*.}))\"" - done - if use wasm; then - rust_targets="${rust_targets},\"wasm32-unknown-unknown\"" - if use system-llvm; then - # un-hardcode rust-lld linker for this target - # https://bugs.gentoo.org/715348 - sed -i '/linker:/ s/rust-lld/wasm-ld/' src/librustc_target/spec/wasm32_base.rs || die - fi - fi - rust_targets="${rust_targets#,}" - - local tools="\"cargo\"," - if use clippy; then - tools="\"clippy\",$tools" - fi - if use miri; then - tools="\"miri\",$tools" - fi - if use rls; then - tools="\"rls\",\"analysis\",\"src\",$tools" - fi - if use rustfmt; then - tools="\"rustfmt\",$tools" - fi - - local rust_stage0_root - if use system-bootstrap; then - rust_stage0_root="$(rustc --print sysroot)" - else - rust_stage0_root="${WORKDIR}"/rust-stage0 - fi - - rust_target="$(rust_abi)" - - cat <<- EOF > "${S}"/config.toml - [llvm] - optimize = $(toml_usex !debug) - release-debuginfo = $(toml_usex debug) - assertions = $(toml_usex debug) - ninja = true - targets = "${LLVM_TARGETS// /;}" - experimental-targets = "" - link-shared = $(toml_usex system-llvm) - [build] - build = "${rust_target}" - host = ["${rust_target}"] - target = [${rust_targets}] - cargo = "${rust_stage0_root}/bin/cargo" - rustc = "${rust_stage0_root}/bin/rustc" - docs = $(toml_usex doc) - compiler-docs = $(toml_usex doc) - submodules = false - python = "${EPYTHON}" - locked-deps = true - vendor = true - extended = true - tools = [${tools}] - verbose = 2 - sanitizers = false - profiler = false - cargo-native-static = false - [install] - prefix = "${EPREFIX}/usr" - libdir = "$(get_libdir)/${P}" - docdir = "share/doc/${PF}" - mandir = "share/${P}/man" - [rust] - optimize = true - debug = $(toml_usex debug) - debug-assertions = $(toml_usex debug) - debuginfo-level-rustc = 0 - backtrace = true - incremental = false - default-linker = "$(tc-getCC)" - parallel-compiler = $(toml_usex parallel-compiler) - channel = "$(usex nightly nightly stable)" - rpath = false - verbose-tests = true - optimize-tests = $(toml_usex !debug) - codegen-tests = true - dist-src = false - remap-debuginfo = true - lld = $(usex system-llvm false $(toml_usex wasm)) - backtrace-on-ice = true - jemalloc = false - [dist] - src-tarball = false - EOF - - for v in $(multilib_get_enabled_abi_pairs); do - rust_target=$(rust_abi $(get_abi_CHOST ${v##*.})) - arch_cflags="$(get_abi_CFLAGS ${v##*.})" - - cat <<- EOF >> "${S}"/config.env - CFLAGS_${rust_target}=${arch_cflags} - EOF - - cat <<- EOF >> "${S}"/config.toml - [target.${rust_target}] - cc = "$(tc-getBUILD_CC)" - cxx = "$(tc-getBUILD_CXX)" - linker = "$(tc-getCC)" - ar = "$(tc-getAR)" - EOF - # librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true; - if use elibc_musl; then - cat <<- EOF >> "${S}"/config.toml - crt-static = false - EOF - fi - if use system-llvm; then - cat <<- EOF >> "${S}"/config.toml - llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" - EOF - fi - done - if use wasm; then - cat <<- EOF >> "${S}"/config.toml - [target.wasm32-unknown-unknown] - linker = "$(usex system-llvm lld rust-lld)" - EOF - fi - - if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then #whitespace intentionally shifted below - # experimental cross support - # discussion: https://bugs.gentoo.org/679878 - # TODO: c*flags, clang, system-llvm, cargo.eclass target support - # it would be much better if we could split out stdlib - # complilation to separate ebuild and abuse CATEGORY to - # just install to /usr/lib/rustlib/<target> - - # extra targets defined as a bash array - # spec format: <LLVM target>:<rust-target>:<CTARGET> - # best place would be /etc/portage/env/dev-lang/rust - # Example: - # RUST_CROSS_TARGETS=( - # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu" - # ) - # no extra hand holding is done, no target transformations, all - # values are passed as-is with just basic checks, so it's up to user to supply correct values - # valid rust targets can be obtained with - # rustc --print target-list - # matching cross toolchain has to be installed - # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one) - # only gcc toolchains installed with crossdev are checked for now. - - # BUG: we can't pass host flags to cross compiler, so just filter for now - # BUG: this should be more fine-grained. - filter-flags '-mcpu=*' '-march=*' '-mtune=*' - - local cross_target_spec - for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do - # extracts first element form <LLVM target>:<rust-target>:<CTARGET> - local cross_llvm_target="${cross_target_spec%%:*}" - # extracts toolchain triples, <rust-target>:<CTARGET> - local cross_triples="${cross_target_spec#*:}" - # extracts first element after before : separator - local cross_rust_target="${cross_triples%%:*}" - # extracts last element after : separator - local cross_toolchain="${cross_triples##*:}" - use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled" - command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain" - - cat <<- EOF >> "${S}"/config.toml - [target.${cross_rust_target}] - cc = "${cross_toolchain}-gcc" - cxx = "${cross_toolchain}-g++" - linker = "${cross_toolchain}-gcc" - ar = "${cross_toolchain}-ar" - EOF - if use system-llvm; then - cat <<- EOF >> "${S}"/config.toml - llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" - EOF - fi - - # append cross target to "normal" target list - # example 'target = ["powerpc64le-unknown-linux-gnu"]' - # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]' - - rust_targets="${rust_targets},\"${cross_rust_target}\"" - sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die - - ewarn - ewarn "Enabled ${cross_rust_target} rust target" - ewarn "Using ${cross_toolchain} cross toolchain" - ewarn - if ! has_version -b 'sys-devel/binutils[multitarget]' ; then - ewarn "'sys-devel/binutils[multitarget]' is not installed" - ewarn "'strip' will be unable to strip cross libraries" - ewarn "cross targets will be installed with full debug information" - ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files" - ewarn - ewarn "Alternatively llvm-strip can be used, it supports stripping any target" - ewarn "define STRIP=\"llvm-strip\" to use it (experimental)" - ewarn - fi - done - fi # I_KNOW_WHAT_I_AM_DOING_CROSS - - einfo "Rust configured with the following settings:" - cat "${S}"/config.toml || die -} - -src_compile() { - env $(cat "${S}"/config.env) RUST_BACKTRACE=1\ - "${EPYTHON}" ./x.py build -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die -} - -src_test() { - # https://rustc-dev-guide.rust-lang.org/tests/intro.html - - # those are basic and codegen tests. - local tests=( - codegen - codegen-units - compile-fail - incremental - mir-opt - pretty - run-make - ) - - # fails if llvm is not built with ALL targets. - # use system-llvm || tests+=( assembly ) - - # fragile/expensive/less important tests - # or tests that require extra build time - # TODO: instead of skipping, just make some nonfatal. - if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then - tests+=( - rustdoc - rustdoc-js - rustdoc-js-std - rustdoc-ui - run-make-fulldeps - ui - ui-fulldeps - ) - fi - - local i failed=() - einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}" - for i in "${tests[@]}"; do - local t="src/test/${i}" - einfo "rust_src_test: running ${t}" - if ! nonfatal env $(cat "${S}"/config.env) RUST_BACKTRACE=1 \ - "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \ - -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"; then - - failed+=( "${t}" ) - eerror "rust_src_test: ${t} failed" - fi - done - - if [[ ${#failed[@]} -ne 0 ]]; then - eerror "rust_src_test: failure summary: ${failed[@]}" - die "aborting due to test failures" - fi -} - -src_install() { - env $(cat "${S}"/config.env) DESTDIR="${D}" \ - "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml || die - - # bug #689562, #689160 - rm "${D}/etc/bash_completion.d/cargo" || die - rmdir "${D}"/etc{/bash_completion.d,} || die - dobashcomp build/tmp/dist/cargo-image/etc/bash_completion.d/cargo - - mv "${ED}/usr/bin/rustc" "${ED}/usr/bin/rustc-${PV}" || die - mv "${ED}/usr/bin/rustdoc" "${ED}/usr/bin/rustdoc-${PV}" || die - mv "${ED}/usr/bin/rust-gdb" "${ED}/usr/bin/rust-gdb-${PV}" || die - mv "${ED}/usr/bin/rust-gdbgui" "${ED}/usr/bin/rust-gdbgui-${PV}" || die - mv "${ED}/usr/bin/rust-lldb" "${ED}/usr/bin/rust-lldb-${PV}" || die - mv "${ED}/usr/bin/cargo" "${ED}/usr/bin/cargo-${PV}" || die - if use clippy; then - mv "${ED}/usr/bin/clippy-driver" "${ED}/usr/bin/clippy-driver-${PV}" || die - mv "${ED}/usr/bin/cargo-clippy" "${ED}/usr/bin/cargo-clippy-${PV}" || die - fi - if use miri; then - mv "${ED}/usr/bin/miri" "${ED}/usr/bin/miri-${PV}" || die - mv "${ED}/usr/bin/cargo-miri" "${ED}/usr/bin/cargo-miri-${PV}" || die - fi - if use rls; then - mv "${ED}/usr/bin/rls" "${ED}/usr/bin/rls-${PV}" || die - fi - if use rustfmt; then - mv "${ED}/usr/bin/rustfmt" "${ED}/usr/bin/rustfmt-${PV}" || die - mv "${ED}/usr/bin/cargo-fmt" "${ED}/usr/bin/cargo-fmt-${PV}" || die - fi - - # Copy shared library versions of standard libraries for all targets - # into the system's abi-dependent lib directories because the rust - # installer only does so for the native ABI. - - local abi_libdir rust_target - for v in $(multilib_get_enabled_abi_pairs); do - if [ ${v##*.} = ${DEFAULT_ABI} ]; then - continue - fi - abi_libdir=$(get_abi_LIBDIR ${v##*.}) - rust_target=$(rust_abi $(get_abi_CHOST ${v##*.})) - mkdir -p "${ED}/usr/${abi_libdir}/${P}" - cp "${ED}/usr/$(get_libdir)/${P}/rustlib/${rust_target}/lib"/*.so \ - "${ED}/usr/${abi_libdir}/${P}" || die - done - - # versioned libdir/mandir support - newenvd - "50${P}" <<-_EOF_ - LDPATH="${EPREFIX}/usr/$(get_libdir)/${P}" - MANPATH="${EPREFIX}/usr/share/${P}/man" - _EOF_ - - dodoc COPYRIGHT - rm -rf "${ED}/usr/$(get_libdir)/${P}"/*.old || die - rm "${ED}/usr/share/doc/${P}"/*.old || die - rm "${ED}/usr/share/doc/${P}/LICENSE-APACHE" || die - rm "${ED}/usr/share/doc/${P}/LICENSE-MIT" || die - - # note: eselect-rust adds EROOT to all paths below - cat <<-EOF > "${T}/provider-${P}" - /usr/bin/cargo - /usr/bin/rustdoc - /usr/bin/rust-gdb - /usr/bin/rust-gdbgui - /usr/bin/rust-lldb - EOF - if use clippy; then - echo /usr/bin/clippy-driver >> "${T}/provider-${P}" - echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" - fi - if use miri; then - echo /usr/bin/miri >> "${T}/provider-${P}" - echo /usr/bin/cargo-miri >> "${T}/provider-${P}" - fi - if use rls; then - echo /usr/bin/rls >> "${T}/provider-${P}" - fi - if use rustfmt; then - echo /usr/bin/rustfmt >> "${T}/provider-${P}" - echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" - fi - - insinto /etc/env.d/rust - doins "${T}/provider-${P}" -} - -pkg_postinst() { - eselect rust update - - elog "Rust installs a helper script for calling GDB and LLDB," - elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}." - - if has_version app-editors/emacs; then - elog "install app-emacs/rust-mode to get emacs support for rust." - fi - - if has_version app-editors/gvim || has_version app-editors/vim; then - elog "install app-vim/rust-vim to get vim support for rust." - fi - - if use elibc_musl; then - ewarn "${PN} on *-musl targets is configured with crt-static" - ewarn "" - ewarn "you will need to set RUSTFLAGS=\"-C target-feature=-crt-static\" in make.conf" - ewarn "to use it with portage, otherwise you may see failures like" - ewarn "error: cannot produce proc-macro for serde_derive v1.0.98 as the target " - ewarn "x86_64-unknown-linux-musl does not support these crate types" - fi -} - -pkg_postrm() { - eselect rust cleanup -} diff --git a/dev-lang/rust/rust-1.47.0-r2.ebuild b/dev-lang/rust/rust-1.47.0-r2.ebuild deleted file mode 100644 index c5a1c92a3412..000000000000 --- a/dev-lang/rust/rust-1.47.0-r2.ebuild +++ /dev/null @@ -1,644 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{7..9} ) - -inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing multilib-build python-any-r1 rust-toolchain toolchain-funcs - -if [[ ${PV} = *beta* ]]; then - betaver=${PV//*beta} - BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" - MY_P="rustc-beta" - SLOT="beta/${PV}" - SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz" -else - ABI_VER="$(ver_cut 1-2)" - SLOT="stable/${ABI_VER}" - MY_P="rustc-${PV}" - SRC="${MY_P}-src.tar.xz" - KEYWORDS="amd64 arm arm64 ppc64 x86" -fi - -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0" - -DESCRIPTION="Systems programming language from Mozilla" -HOMEPAGE="https://www.rust-lang.org/" - -SRC_URI=" - https://static.rust-lang.org/dist/${SRC} - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) ) -" - -# keep in sync with llvm ebuild of the same version as bundled one. -ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430 - NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore ) -ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) -LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?} - -LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA" - -IUSE="clippy cpu_flags_x86_sse2 debug doc libressl miri nightly parallel-compiler rls rustfmt system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" - -# Please keep the LLVM dependency block separate. Since LLVM is slotted, -# we need to *really* make sure we're not pulling more than one slot -# simultaneously. - -# How to use it: -# 1. List all the working slots (with min versions) in ||, newest first. -# 2. Update the := to specify *max* version, e.g. < 12. -# 3. Specify LLVM_MAX_SLOT, e.g. 11. -LLVM_DEPEND=" - || ( - sys-devel/llvm:11[${LLVM_TARGET_USEDEPS// /,}] - ) - <sys-devel/llvm-12:= - wasm? ( sys-devel/lld ) -" -LLVM_MAX_SLOT=11 - -# to bootstrap we need at least exactly previous version, or same. -# most of the time previous versions fail to bootstrap with newer -# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok, -# but it fails to bootstrap with 1.48.x -# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.txt -BOOTSTRAP_DEPEND="|| - ( - =dev-lang/rust-$(ver_cut 1).$(($(ver_cut 2) - 1))* - =dev-lang/rust-bin-$(ver_cut 1).$(($(ver_cut 2) - 1))* - =dev-lang/rust-$(ver_cut 1).$(ver_cut 2)* - =dev-lang/rust-bin-$(ver_cut 1).$(ver_cut 2)* - ) -" - -BDEPEND="${PYTHON_DEPS} - app-eselect/eselect-rust - || ( - >=sys-devel/gcc-4.7 - >=sys-devel/clang-3.5 - ) - system-bootstrap? ( ${BOOTSTRAP_DEPEND} ) - !system-llvm? ( - dev-util/cmake - dev-util/ninja - ) -" - -DEPEND=" - >=app-arch/xz-utils-5.2 - net-misc/curl:=[http2,ssl] - sys-libs/zlib:= - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl:0= ) - elibc_musl? ( sys-libs/libunwind:= ) - system-llvm? ( - ${LLVM_DEPEND} - ) -" - -# we need to block older versions due to layout changes. -RDEPEND="${DEPEND} - app-eselect/eselect-rust - !<dev-lang/rust-1.46.0 - !<dev-lang/rust-bin-1.46.0 -" - -REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} ) - miri? ( nightly ) - parallel-compiler? ( nightly ) - test? ( ${ALL_LLVM_TARGETS[*]} ) - wasm? ( llvm_targets_WebAssembly ) - x86? ( cpu_flags_x86_sse2 ) -" - -# we don't use cmake.eclass, but can get a warnings -CMAKE_WARN_UNUSED_CLI=no - -QA_FLAGS_IGNORED=" - usr/lib/${PN}/${PV}/bin/.* - usr/lib/${PN}/${PV}/lib/lib.*.so - usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.* - usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so -" - -QA_SONAME=" - usr/lib/${PN}/${PV}/lib/lib.*.so.* - usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so -" - -# causes double bootstrap -RESTRICT="test" - -PATCHES=( - "${FILESDIR}"/1.47.0-libressl.patch - "${FILESDIR}"/1.46.0-don-t-create-prefix-at-time-of-check.patch - "${FILESDIR}"/1.47.0-ignore-broken-and-non-applicable-tests.patch - "${FILESDIR}"/1.47.0-llvm-tensorflow-fix.patch - "${FILESDIR}"/gentoo-musl-target-specs.patch -) - -S="${WORKDIR}/${MY_P}-src" - -toml_usex() { - usex "${1}" true false -} - -boostrap_rust_version_check() { - # never call from pkg_pretend. eselect-rust may be not installed yet. - [[ ${MERGE_TYPE} == binary ]] && return - local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))" - local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))" - local rustc_version=( $(eselect --brief rust show 2>/dev/null) ) - rustc_version=${rustc_version[0]#rust-bin-} - rustc_version=${rustc_version#rust-} - - [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output" - - if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then - eerror "Rust >=${rustc_wanted} is required" - eerror "please run 'eselect rust' and set correct rust version" - die "selected rust version is too old" - elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then - eerror "Rust <${rustc_toonew} is required" - eerror "please run 'eselect rust' and set correct rust version" - die "selected rust version is too new" - else - einfo "Using rust ${rustc_version} to build" - fi -} - -pre_build_checks() { - # minimal useflags with system-llvm and system-bootstrap - local M=7680 - - # approximate component sizes - M=$(( $(usex clippy 256 0) + ${M} )) - M=$(( $(usex miri 256 0) + ${M} )) - M=$(( $(usex rls 512 0) + ${M} )) - M=$(( $(usex rustfmt 512 0) + ${M} )) - M=$(( $(usex wasm 512 0) + ${M} )) - - # multiply by 1.5 if debug enabled - M=$(( $(usex debug 15 10) * ${M} / 10 )) - - # multiply by 1.5 if target-cpu in rustflags - case "${RUSTFLAGS}" in - *target-cpu=*) - M=$(( 15 * ${M} / 10 )) - ;; - esac - - # count all enabled llvm targets - if ! use system-llvm; then - # base requirement is about 2G and 0.5 per llvm target - M=$(( 2048 + ${M} )) - local llvm_target - for llvm_target in ${ALL_LLVM_TARGETS}; do - use "${llvm_target}" && M=$(( 512 + ${M} )) - done - fi - - # multiply by 1.5 if debugging *flags found - eshopts_push -s extglob - if is-flagq '-g?(gdb)?([1-9])'; then - M=$(( 15 * ${M} / 10 )) - fi - eshopts_pop - - # account for bootstrap compiler - # on ppc64 we unpack both BE and LE archive, so double that. - M=$(( $(usex system-bootstrap 0 $(usex ppc64 2048 1024) ) + ${M} )) - - # docs appended last as those usually don't depend on flags - M=$(( $(usex doc 512 0) + ${M} )) - - CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} -} - -pkg_pretend() { - pre_build_checks -} - -pkg_setup() { - pre_build_checks - python-any-r1_pkg_setup - - export LIBGIT2_NO_PKG_CONFIG=1 #749381 - - use system-bootstrap && boostrap_rust_version_check - - if use system-llvm; then - llvm_pkg_setup - - local llvm_config="$(get_llvm_prefix "$LLVM_MAX_SLOT")/bin/llvm-config" - export LLVM_LINK_SHARED=1 - export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)" - fi -} - -src_prepare() { - if ! use system-bootstrap; then - local rust_stage0_root="${WORKDIR}"/rust-stage0 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)" - - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \ - --destdir="${rust_stage0_root}" --prefix=/ || die - fi - - default -} - -src_configure() { - local rust_target="" rust_targets="" arch_cflags - - # Collect rust target names to compile standard libs for all ABIs. - for v in $(multilib_get_enabled_abi_pairs); do - rust_targets="${rust_targets},\"$(rust_abi $(get_abi_CHOST ${v##*.}))\"" - done - if use wasm; then - rust_targets="${rust_targets},\"wasm32-unknown-unknown\"" - if use system-llvm; then - # un-hardcode rust-lld linker for this target - # https://bugs.gentoo.org/715348 - sed -i '/linker:/ s/rust-lld/wasm-ld/' src/librustc_target/spec/wasm32_base.rs || die - fi - fi - rust_targets="${rust_targets#,}" - - local tools="\"cargo\"," - if use clippy; then - tools="\"clippy\",$tools" - fi - if use miri; then - tools="\"miri\",$tools" - fi - if use rls; then - tools="\"rls\",\"analysis\",\"src\",$tools" - fi - if use rustfmt; then - tools="\"rustfmt\",$tools" - fi - - local rust_stage0_root - if use system-bootstrap; then - rust_stage0_root="$(rustc --print sysroot)" - else - rust_stage0_root="${WORKDIR}"/rust-stage0 - fi - - rust_target="$(rust_abi)" - - cat <<- _EOF_ > "${S}"/config.toml - [llvm] - optimize = $(toml_usex !debug) - release-debuginfo = $(toml_usex debug) - assertions = $(toml_usex debug) - ninja = true - targets = "${LLVM_TARGETS// /;}" - experimental-targets = "" - link-shared = $(toml_usex system-llvm) - [build] - build = "${rust_target}" - host = ["${rust_target}"] - target = [${rust_targets}] - cargo = "${rust_stage0_root}/bin/cargo" - rustc = "${rust_stage0_root}/bin/rustc" - docs = $(toml_usex doc) - compiler-docs = $(toml_usex doc) - submodules = false - python = "${EPYTHON}" - locked-deps = true - vendor = true - extended = true - tools = [${tools}] - verbose = 2 - sanitizers = false - profiler = false - cargo-native-static = false - [install] - prefix = "${EPREFIX}/usr/lib/${PN}/${PV}" - sysconfdir = "etc" - docdir = "share/doc/rust" - bindir = "bin" - libdir = "lib" - mandir = "share/man" - [rust] - # https://github.com/rust-lang/rust/issues/54872 - codegen-units-std = 1 - optimize = true - debug = $(toml_usex debug) - debug-assertions = $(toml_usex debug) - debuginfo-level-rustc = 0 - backtrace = true - incremental = false - default-linker = "$(tc-getCC)" - parallel-compiler = $(toml_usex parallel-compiler) - channel = "$(usex nightly nightly stable)" - rpath = false - verbose-tests = true - optimize-tests = $(toml_usex !debug) - codegen-tests = true - dist-src = false - remap-debuginfo = true - lld = $(usex system-llvm false $(toml_usex wasm)) - backtrace-on-ice = true - jemalloc = false - [dist] - src-tarball = false - _EOF_ - - for v in $(multilib_get_enabled_abi_pairs); do - rust_target=$(rust_abi $(get_abi_CHOST ${v##*.})) - arch_cflags="$(get_abi_CFLAGS ${v##*.})" - - cat <<- _EOF_ >> "${S}"/config.env - CFLAGS_${rust_target}=${arch_cflags} - _EOF_ - - cat <<- _EOF_ >> "${S}"/config.toml - [target.${rust_target}] - cc = "$(tc-getBUILD_CC)" - cxx = "$(tc-getBUILD_CXX)" - linker = "$(tc-getCC)" - ar = "$(tc-getAR)" - _EOF_ - # librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true; - if use elibc_musl; then - cat <<- _EOF_ >> "${S}"/config.toml - crt-static = false - _EOF_ - fi - if use system-llvm; then - cat <<- _EOF_ >> "${S}"/config.toml - llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" - _EOF_ - fi - done - if use wasm; then - cat <<- _EOF_ >> "${S}"/config.toml - [target.wasm32-unknown-unknown] - linker = "$(usex system-llvm lld rust-lld)" - _EOF_ - fi - - if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below - # experimental cross support - # discussion: https://bugs.gentoo.org/679878 - # TODO: c*flags, clang, system-llvm, cargo.eclass target support - # it would be much better if we could split out stdlib - # complilation to separate ebuild and abuse CATEGORY to - # just install to /usr/lib/rustlib/<target> - - # extra targets defined as a bash array - # spec format: <LLVM target>:<rust-target>:<CTARGET> - # best place would be /etc/portage/env/dev-lang/rust - # Example: - # RUST_CROSS_TARGETS=( - # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu" - # ) - # no extra hand holding is done, no target transformations, all - # values are passed as-is with just basic checks, so it's up to user to supply correct values - # valid rust targets can be obtained with - # rustc --print target-list - # matching cross toolchain has to be installed - # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one) - # only gcc toolchains installed with crossdev are checked for now. - - # BUG: we can't pass host flags to cross compiler, so just filter for now - # BUG: this should be more fine-grained. - filter-flags '-mcpu=*' '-march=*' '-mtune=*' - - local cross_target_spec - for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do - # extracts first element form <LLVM target>:<rust-target>:<CTARGET> - local cross_llvm_target="${cross_target_spec%%:*}" - # extracts toolchain triples, <rust-target>:<CTARGET> - local cross_triples="${cross_target_spec#*:}" - # extracts first element after before : separator - local cross_rust_target="${cross_triples%%:*}" - # extracts last element after : separator - local cross_toolchain="${cross_triples##*:}" - use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled" - command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain" - - cat <<- _EOF_ >> "${S}"/config.toml - [target.${cross_rust_target}] - cc = "${cross_toolchain}-gcc" - cxx = "${cross_toolchain}-g++" - linker = "${cross_toolchain}-gcc" - ar = "${cross_toolchain}-ar" - _EOF_ - if use system-llvm; then - cat <<- _EOF_ >> "${S}"/config.toml - llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" - _EOF_ - fi - - # append cross target to "normal" target list - # example 'target = ["powerpc64le-unknown-linux-gnu"]' - # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]' - - rust_targets="${rust_targets},\"${cross_rust_target}\"" - sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die - - ewarn - ewarn "Enabled ${cross_rust_target} rust target" - ewarn "Using ${cross_toolchain} cross toolchain" - ewarn - if ! has_version -b 'sys-devel/binutils[multitarget]' ; then - ewarn "'sys-devel/binutils[multitarget]' is not installed" - ewarn "'strip' will be unable to strip cross libraries" - ewarn "cross targets will be installed with full debug information" - ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files" - ewarn - ewarn "Alternatively llvm-strip can be used, it supports stripping any target" - ewarn "define STRIP=\"llvm-strip\" to use it (experimental)" - ewarn - fi - done - fi # I_KNOW_WHAT_I_AM_DOING_CROSS - - einfo "Rust configured with the following settings:" - cat "${S}"/config.toml || die -} - -src_compile() { - # we need \n IFS to have config.env with spaces loaded properly. #734018 - ( - IFS=$'\n' - env $(cat "${S}"/config.env) RUST_BACKTRACE=1\ - "${EPYTHON}" ./x.py dist -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die - ) -} - -src_test() { - # https://rustc-dev-guide.rust-lang.org/tests/intro.html - - # those are basic and codegen tests. - local tests=( - codegen - codegen-units - compile-fail - incremental - mir-opt - pretty - run-make - ) - - # fails if llvm is not built with ALL targets. - # and known to fail with system llvm sometimes. - use system-llvm || tests+=( assembly ) - - # fragile/expensive/less important tests - # or tests that require extra builds - # TODO: instead of skipping, just make some nonfatal. - if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then - tests+=( - rustdoc - rustdoc-js - rustdoc-js-std - rustdoc-ui - run-make-fulldeps - ui - ui-fulldeps - ) - fi - - local i failed=() - einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}" - for i in "${tests[@]}"; do - local t="src/test/${i}" - einfo "rust_src_test: running ${t}" - if ! ( - IFS=$'\n' - env $(cat "${S}"/config.env) RUST_BACKTRACE=1 \ - "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \ - -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}" - ) - then - failed+=( "${t}" ) - eerror "rust_src_test: ${t} failed" - fi - done - - if [[ ${#failed[@]} -ne 0 ]]; then - eerror "rust_src_test: failure summary: ${failed[@]}" - die "aborting due to test failures" - fi -} - -src_install() { - # https://github.com/rust-lang/rust/issues/77721 - # also 1.46.0-don-t-create-prefix-at-time-of-check.patch - dodir "/usr/lib/${PN}/${PV}" - ( - IFS=$'\n' - env $(cat "${S}"/config.env) DESTDIR="${D}" \ - "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml || die - ) - - # bug #689562, #689160 - rm -v "${D}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die - rmdir -v "${D}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die - dobashcomp build/tmp/dist/cargo-image/etc/bash_completion.d/cargo - - local symlinks=( - cargo - rustc - rustdoc - rust-gdb - rust-gdbgui - rust-lldb - ) - - use clippy && symlinks+=( clippy-driver cargo-clippy ) - use miri && symlinks+=( miri cargo-miri ) - use rls && symlinks+=( rls ) - use rustfmt && symlinks+=( rustfmt cargo-fmt ) - - einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}" - local i - for i in "${symlinks[@]}"; do - # we need realpath on /usr/bin/* symlink return version-appended binary path. - # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver> - # need to fix eselect-rust to remove this hack. - local ver_i="${i}-${PV}" - if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then - einfo "Installing ${i} symlink" - ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die - else - ewarn "${i} symlink requested, but source file not found" - ewarn "please report this" - fi - dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}" - done - - # symlinks to switch components to active rust in eselect - dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}" - dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}" - dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}" - dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" - - newenvd - "50${P}" <<-_EOF_ - LDPATH="${EPREFIX}/usr/lib/rust/lib" - MANPATH="${EPREFIX}/usr/lib/rust/man" - $(usex elibc_musl 'CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '') - _EOF_ - - rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die - rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die - - # note: eselect-rust adds EROOT to all paths below - cat <<-_EOF_ > "${T}/provider-${P}" - /usr/bin/cargo - /usr/bin/rustdoc - /usr/bin/rust-gdb - /usr/bin/rust-gdbgui - /usr/bin/rust-lldb - /usr/lib/rustlib - /usr/lib/rust/lib - /usr/lib/rust/man - /usr/share/doc/rust - _EOF_ - - if use clippy; then - echo /usr/bin/clippy-driver >> "${T}/provider-${P}" - echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" - fi - if use miri; then - echo /usr/bin/miri >> "${T}/provider-${P}" - echo /usr/bin/cargo-miri >> "${T}/provider-${P}" - fi - if use rls; then - echo /usr/bin/rls >> "${T}/provider-${P}" - fi - if use rustfmt; then - echo /usr/bin/rustfmt >> "${T}/provider-${P}" - echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" - fi - - insinto /etc/env.d/rust - doins "${T}/provider-${P}" -} - -pkg_postinst() { - eselect rust update - - if has_version sys-devel/gdb || has_version dev-util/lldb; then - elog "Rust installs a helper script for calling GDB and LLDB," - elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}." - fi - - if has_version app-editors/emacs; then - elog "install app-emacs/rust-mode to get emacs support for rust." - fi - - if has_version app-editors/gvim || has_version app-editors/vim; then - elog "install app-vim/rust-vim to get vim support for rust." - fi -} - -pkg_postrm() { - eselect rust cleanup -} diff --git a/dev-lang/rust/rust-1.48.0.ebuild b/dev-lang/rust/rust-1.48.0.ebuild deleted file mode 100644 index b5c4bdb4f9b8..000000000000 --- a/dev-lang/rust/rust-1.48.0.ebuild +++ /dev/null @@ -1,615 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{7..9} ) - -inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing multilib-build python-any-r1 rust-toolchain toolchain-funcs - -if [[ ${PV} = *beta* ]]; then - betaver=${PV//*beta} - BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" - MY_P="rustc-beta" - SLOT="beta/${PV}" - SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz" -else - ABI_VER="$(ver_cut 1-2)" - SLOT="stable/${ABI_VER}" - MY_P="rustc-${PV}" - SRC="${MY_P}-src.tar.xz" - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" -fi - -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0" - -DESCRIPTION="Systems programming language from Mozilla" -HOMEPAGE="https://www.rust-lang.org/" - -SRC_URI=" - https://static.rust-lang.org/dist/${SRC} - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) ) -" - -# keep in sync with llvm ebuild of the same version as bundled one. -ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430 - NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore ) -ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) -LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?} - -LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA" - -IUSE="clippy cpu_flags_x86_sse2 debug doc libressl miri nightly parallel-compiler rls rustfmt system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" - -# Please keep the LLVM dependency block separate. Since LLVM is slotted, -# we need to *really* make sure we're not pulling more than one slot -# simultaneously. - -# How to use it: -# 1. List all the working slots (with min versions) in ||, newest first. -# 2. Update the := to specify *max* version, e.g. < 12. -# 3. Specify LLVM_MAX_SLOT, e.g. 11. -LLVM_DEPEND=" - || ( - sys-devel/llvm:11[${LLVM_TARGET_USEDEPS// /,}] - ) - <sys-devel/llvm-12:= - wasm? ( sys-devel/lld ) -" -LLVM_MAX_SLOT=11 - -# to bootstrap we need at least exactly previous version, or same. -# most of the time previous versions fail to bootstrap with newer -# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok, -# but it fails to bootstrap with 1.48.x -# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.txt -BOOTSTRAP_DEPEND="|| - ( - =dev-lang/rust-$(ver_cut 1).$(($(ver_cut 2) - 1))* - =dev-lang/rust-bin-$(ver_cut 1).$(($(ver_cut 2) - 1))* - =dev-lang/rust-$(ver_cut 1).$(ver_cut 2)* - =dev-lang/rust-bin-$(ver_cut 1).$(ver_cut 2)* - ) -" - -BDEPEND="${PYTHON_DEPS} - app-eselect/eselect-rust - || ( - >=sys-devel/gcc-4.7 - >=sys-devel/clang-3.5 - ) - system-bootstrap? ( ${BOOTSTRAP_DEPEND} ) - !system-llvm? ( - dev-util/cmake - dev-util/ninja - ) -" - -DEPEND=" - >=app-arch/xz-utils-5.2 - net-misc/curl:=[http2,ssl] - sys-libs/zlib:= - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl:0= ) - elibc_musl? ( sys-libs/libunwind:= ) - system-llvm? ( - ${LLVM_DEPEND} - ) -" - -# we need to block older versions due to layout changes. -RDEPEND="${DEPEND} - app-eselect/eselect-rust - !<dev-lang/rust-1.47.0-r1 - !<dev-lang/rust-bin-1.47.0-r1 -" - -REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} ) - miri? ( nightly ) - parallel-compiler? ( nightly ) - test? ( ${ALL_LLVM_TARGETS[*]} ) - wasm? ( llvm_targets_WebAssembly ) - x86? ( cpu_flags_x86_sse2 ) -" - -# we don't use cmake.eclass, but can get a warnings -CMAKE_WARN_UNUSED_CLI=no - -QA_FLAGS_IGNORED=" - usr/lib/${PN}/${PV}/bin/.* - usr/lib/${PN}/${PV}/lib/lib.*.so - usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.* - usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so -" - -QA_SONAME=" - usr/lib/${PN}/${PV}/lib/lib.*.so.* - usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so -" - -# causes double bootstrap -RESTRICT="test" - -PATCHES=( - "${FILESDIR}"/1.47.0-libressl.patch - "${FILESDIR}"/1.46.0-don-t-create-prefix-at-time-of-check.patch - "${FILESDIR}"/1.47.0-ignore-broken-and-non-applicable-tests.patch - "${FILESDIR}"/1.47.0-llvm-tensorflow-fix.patch - "${FILESDIR}"/1.48.0-gentoo-musl-target-specs.patch -) - -S="${WORKDIR}/${MY_P}-src" - -toml_usex() { - usex "${1}" true false -} - -boostrap_rust_version_check() { - # never call from pkg_pretend. eselect-rust may be not installed yet. - [[ ${MERGE_TYPE} == binary ]] && return - local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))" - local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))" - local rustc_version=( $(eselect --brief rust show 2>/dev/null) ) - rustc_version=${rustc_version[0]#rust-bin-} - rustc_version=${rustc_version#rust-} - - [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output" - - if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then - eerror "Rust >=${rustc_wanted} is required" - eerror "please run 'eselect rust' and set correct rust version" - die "selected rust version is too old" - elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then - eerror "Rust <${rustc_toonew} is required" - eerror "please run 'eselect rust' and set correct rust version" - die "selected rust version is too new" - else - einfo "Using rust ${rustc_version} to build" - fi -} - -pre_build_checks() { - local M=6144 - M=$(( $(usex clippy 128 0) + ${M} )) - M=$(( $(usex miri 128 0) + ${M} )) - M=$(( $(usex rls 512 0) + ${M} )) - M=$(( $(usex rustfmt 256 0) + ${M} )) - M=$(( $(usex system-llvm 0 2048) + ${M} )) - M=$(( $(usex wasm 256 0) + ${M} )) - M=$(( $(usex debug 15 10) * ${M} / 10 )) - eshopts_push -s extglob - if is-flagq '-g?(gdb)?([1-9])'; then - M=$(( 15 * ${M} / 10 )) - fi - eshopts_pop - M=$(( $(usex system-bootstrap 0 1024) + ${M} )) - M=$(( $(usex doc 256 0) + ${M} )) - CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} -} - -pkg_pretend() { - pre_build_checks -} - -pkg_setup() { - pre_build_checks - python-any-r1_pkg_setup - - export LIBGIT2_NO_PKG_CONFIG=1 #749381 - - use system-bootstrap && boostrap_rust_version_check - - if use system-llvm; then - llvm_pkg_setup - - local llvm_config="$(get_llvm_prefix "$LLVM_MAX_SLOT")/bin/llvm-config" - export LLVM_LINK_SHARED=1 - export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)" - fi -} - -src_prepare() { - if ! use system-bootstrap; then - local rust_stage0_root="${WORKDIR}"/rust-stage0 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)" - - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \ - --destdir="${rust_stage0_root}" --prefix=/ || die - fi - - default -} - -src_configure() { - local rust_target="" rust_targets="" arch_cflags - - # Collect rust target names to compile standard libs for all ABIs. - for v in $(multilib_get_enabled_abi_pairs); do - rust_targets="${rust_targets},\"$(rust_abi $(get_abi_CHOST ${v##*.}))\"" - done - if use wasm; then - rust_targets="${rust_targets},\"wasm32-unknown-unknown\"" - if use system-llvm; then - # un-hardcode rust-lld linker for this target - # https://bugs.gentoo.org/715348 - sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/wasm32_base.rs || die - fi - fi - rust_targets="${rust_targets#,}" - - local tools="\"cargo\"," - if use clippy; then - tools="\"clippy\",$tools" - fi - if use miri; then - tools="\"miri\",$tools" - fi - if use rls; then - tools="\"rls\",\"analysis\",\"src\",$tools" - fi - if use rustfmt; then - tools="\"rustfmt\",$tools" - fi - - local rust_stage0_root - if use system-bootstrap; then - rust_stage0_root="$(rustc --print sysroot)" - else - rust_stage0_root="${WORKDIR}"/rust-stage0 - fi - - rust_target="$(rust_abi)" - - cat <<- _EOF_ > "${S}"/config.toml - [llvm] - optimize = $(toml_usex !debug) - release-debuginfo = $(toml_usex debug) - assertions = $(toml_usex debug) - ninja = true - targets = "${LLVM_TARGETS// /;}" - experimental-targets = "" - link-shared = $(toml_usex system-llvm) - [build] - build = "${rust_target}" - host = ["${rust_target}"] - target = [${rust_targets}] - cargo = "${rust_stage0_root}/bin/cargo" - rustc = "${rust_stage0_root}/bin/rustc" - docs = $(toml_usex doc) - compiler-docs = $(toml_usex doc) - submodules = false - python = "${EPYTHON}" - locked-deps = true - vendor = true - extended = true - tools = [${tools}] - verbose = 2 - sanitizers = false - profiler = false - cargo-native-static = false - [install] - prefix = "${EPREFIX}/usr/lib/${PN}/${PV}" - sysconfdir = "etc" - docdir = "share/doc/rust" - bindir = "bin" - libdir = "lib" - mandir = "share/man" - [rust] - # https://github.com/rust-lang/rust/issues/54872 - codegen-units-std = 1 - optimize = true - debug = $(toml_usex debug) - debug-assertions = $(toml_usex debug) - debuginfo-level-rustc = 0 - backtrace = true - incremental = false - default-linker = "$(tc-getCC)" - parallel-compiler = $(toml_usex parallel-compiler) - channel = "$(usex nightly nightly stable)" - rpath = false - verbose-tests = true - optimize-tests = $(toml_usex !debug) - codegen-tests = true - dist-src = false - remap-debuginfo = true - lld = $(usex system-llvm false $(toml_usex wasm)) - backtrace-on-ice = true - jemalloc = false - [dist] - src-tarball = false - _EOF_ - - for v in $(multilib_get_enabled_abi_pairs); do - rust_target=$(rust_abi $(get_abi_CHOST ${v##*.})) - arch_cflags="$(get_abi_CFLAGS ${v##*.})" - - cat <<- _EOF_ >> "${S}"/config.env - CFLAGS_${rust_target}=${arch_cflags} - _EOF_ - - cat <<- _EOF_ >> "${S}"/config.toml - [target.${rust_target}] - cc = "$(tc-getBUILD_CC)" - cxx = "$(tc-getBUILD_CXX)" - linker = "$(tc-getCC)" - ar = "$(tc-getAR)" - _EOF_ - # librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true; - if use elibc_musl; then - cat <<- _EOF_ >> "${S}"/config.toml - crt-static = false - _EOF_ - fi - if use system-llvm; then - cat <<- _EOF_ >> "${S}"/config.toml - llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" - _EOF_ - fi - done - if use wasm; then - cat <<- _EOF_ >> "${S}"/config.toml - [target.wasm32-unknown-unknown] - linker = "$(usex system-llvm lld rust-lld)" - _EOF_ - fi - - if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below - # experimental cross support - # discussion: https://bugs.gentoo.org/679878 - # TODO: c*flags, clang, system-llvm, cargo.eclass target support - # it would be much better if we could split out stdlib - # complilation to separate ebuild and abuse CATEGORY to - # just install to /usr/lib/rustlib/<target> - - # extra targets defined as a bash array - # spec format: <LLVM target>:<rust-target>:<CTARGET> - # best place would be /etc/portage/env/dev-lang/rust - # Example: - # RUST_CROSS_TARGETS=( - # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu" - # ) - # no extra hand holding is done, no target transformations, all - # values are passed as-is with just basic checks, so it's up to user to supply correct values - # valid rust targets can be obtained with - # rustc --print target-list - # matching cross toolchain has to be installed - # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one) - # only gcc toolchains installed with crossdev are checked for now. - - # BUG: we can't pass host flags to cross compiler, so just filter for now - # BUG: this should be more fine-grained. - filter-flags '-mcpu=*' '-march=*' '-mtune=*' - - local cross_target_spec - for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do - # extracts first element form <LLVM target>:<rust-target>:<CTARGET> - local cross_llvm_target="${cross_target_spec%%:*}" - # extracts toolchain triples, <rust-target>:<CTARGET> - local cross_triples="${cross_target_spec#*:}" - # extracts first element after before : separator - local cross_rust_target="${cross_triples%%:*}" - # extracts last element after : separator - local cross_toolchain="${cross_triples##*:}" - use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled" - command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain" - - cat <<- _EOF_ >> "${S}"/config.toml - [target.${cross_rust_target}] - cc = "${cross_toolchain}-gcc" - cxx = "${cross_toolchain}-g++" - linker = "${cross_toolchain}-gcc" - ar = "${cross_toolchain}-ar" - _EOF_ - if use system-llvm; then - cat <<- _EOF_ >> "${S}"/config.toml - llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" - _EOF_ - fi - - # append cross target to "normal" target list - # example 'target = ["powerpc64le-unknown-linux-gnu"]' - # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]' - - rust_targets="${rust_targets},\"${cross_rust_target}\"" - sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die - - ewarn - ewarn "Enabled ${cross_rust_target} rust target" - ewarn "Using ${cross_toolchain} cross toolchain" - ewarn - if ! has_version -b 'sys-devel/binutils[multitarget]' ; then - ewarn "'sys-devel/binutils[multitarget]' is not installed" - ewarn "'strip' will be unable to strip cross libraries" - ewarn "cross targets will be installed with full debug information" - ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files" - ewarn - ewarn "Alternatively llvm-strip can be used, it supports stripping any target" - ewarn "define STRIP=\"llvm-strip\" to use it (experimental)" - ewarn - fi - done - fi # I_KNOW_WHAT_I_AM_DOING_CROSS - - einfo "Rust configured with the following settings:" - cat "${S}"/config.toml || die -} - -src_compile() { - # we need \n IFS to have config.env with spaces loaded properly. #734018 - ( - IFS=$'\n' - env $(cat "${S}"/config.env) RUST_BACKTRACE=1\ - "${EPYTHON}" ./x.py dist -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die - ) -} - -src_test() { - # https://rustc-dev-guide.rust-lang.org/tests/intro.html - - # those are basic and codegen tests. - local tests=( - codegen - codegen-units - compile-fail - incremental - mir-opt - pretty - run-make - ) - - # fails if llvm is not built with ALL targets. - # and known to fail with system llvm sometimes. - use system-llvm || tests+=( assembly ) - - # fragile/expensive/less important tests - # or tests that require extra builds - # TODO: instead of skipping, just make some nonfatal. - if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then - tests+=( - rustdoc - rustdoc-js - rustdoc-js-std - rustdoc-ui - run-make-fulldeps - ui - ui-fulldeps - ) - fi - - local i failed=() - einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}" - for i in "${tests[@]}"; do - local t="src/test/${i}" - einfo "rust_src_test: running ${t}" - if ! ( - IFS=$'\n' - env $(cat "${S}"/config.env) RUST_BACKTRACE=1 \ - "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \ - -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}" - ) - then - failed+=( "${t}" ) - eerror "rust_src_test: ${t} failed" - fi - done - - if [[ ${#failed[@]} -ne 0 ]]; then - eerror "rust_src_test: failure summary: ${failed[@]}" - die "aborting due to test failures" - fi -} - -src_install() { - # https://github.com/rust-lang/rust/issues/77721 - # also 1.46.0-don-t-create-prefix-at-time-of-check.patch - dodir "/usr/lib/${PN}/${PV}" - ( - IFS=$'\n' - env $(cat "${S}"/config.env) DESTDIR="${D}" \ - "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml || die - ) - - # bug #689562, #689160 - rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die - rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die - dobashcomp build/tmp/dist/cargo-image/etc/bash_completion.d/cargo - - local symlinks=( - cargo - rustc - rustdoc - rust-gdb - rust-gdbgui - rust-lldb - ) - - use clippy && symlinks+=( clippy-driver cargo-clippy ) - use miri && symlinks+=( miri cargo-miri ) - use rls && symlinks+=( rls ) - use rustfmt && symlinks+=( rustfmt cargo-fmt ) - - einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}" - local i - for i in "${symlinks[@]}"; do - # we need realpath on /usr/bin/* symlink return version-appended binary path. - # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver> - # need to fix eselect-rust to remove this hack. - local ver_i="${i}-${PV}" - if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then - einfo "Installing ${i} symlink" - ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die - else - ewarn "${i} symlink requested, but source file not found" - ewarn "please report this" - fi - dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}" - done - - # symlinks to switch components to active rust in eselect - dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}" - dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}" - dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}" - dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" - - newenvd - "50${P}" <<-_EOF_ - LDPATH="${EPREFIX}/usr/lib/rust/lib" - MANPATH="${EPREFIX}/usr/lib/rust/man" - $(usex elibc_musl 'CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '') - _EOF_ - - rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die - rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die - - # note: eselect-rust adds EROOT to all paths below - cat <<-_EOF_ > "${T}/provider-${P}" - /usr/bin/cargo - /usr/bin/rustdoc - /usr/bin/rust-gdb - /usr/bin/rust-gdbgui - /usr/bin/rust-lldb - /usr/lib/rustlib - /usr/lib/rust/lib - /usr/lib/rust/man - /usr/share/doc/rust - _EOF_ - - if use clippy; then - echo /usr/bin/clippy-driver >> "${T}/provider-${P}" - echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" - fi - if use miri; then - echo /usr/bin/miri >> "${T}/provider-${P}" - echo /usr/bin/cargo-miri >> "${T}/provider-${P}" - fi - if use rls; then - echo /usr/bin/rls >> "${T}/provider-${P}" - fi - if use rustfmt; then - echo /usr/bin/rustfmt >> "${T}/provider-${P}" - echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" - fi - - insinto /etc/env.d/rust - doins "${T}/provider-${P}" -} - -pkg_postinst() { - eselect rust update - - if has_version sys-devel/gdb || has_version dev-util/lldb; then - elog "Rust installs a helper script for calling GDB and LLDB," - elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}." - fi - - if has_version app-editors/emacs; then - elog "install app-emacs/rust-mode to get emacs support for rust." - fi - - if has_version app-editors/gvim || has_version app-editors/vim; then - elog "install app-vim/rust-vim to get vim support for rust." - fi -} - -pkg_postrm() { - eselect rust cleanup -} diff --git a/dev-lang/rust/rust-1.49.0.ebuild b/dev-lang/rust/rust-1.49.0.ebuild deleted file mode 100644 index 1ff75dfdbed3..000000000000 --- a/dev-lang/rust/rust-1.49.0.ebuild +++ /dev/null @@ -1,616 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{7..9} ) - -inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing multilib-build python-any-r1 rust-toolchain toolchain-funcs - -if [[ ${PV} = *beta* ]]; then - betaver=${PV//*beta} - BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" - MY_P="rustc-beta" - SLOT="beta/${PV}" - SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz" -else - ABI_VER="$(ver_cut 1-2)" - SLOT="stable/${ABI_VER}" - MY_P="rustc-${PV}" - SRC="${MY_P}-src.tar.xz" - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" -fi - -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0" - -DESCRIPTION="Systems programming language from Mozilla" -HOMEPAGE="https://www.rust-lang.org/" - -SRC_URI=" - https://static.rust-lang.org/dist/${SRC} - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) ) -" - -# keep in sync with llvm ebuild of the same version as bundled one. -ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430 - NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore ) -ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) -LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?} - -LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA" - -IUSE="clippy cpu_flags_x86_sse2 debug doc libressl miri nightly parallel-compiler rls rustfmt system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" - -# Please keep the LLVM dependency block separate. Since LLVM is slotted, -# we need to *really* make sure we're not pulling more than one slot -# simultaneously. - -# How to use it: -# 1. List all the working slots (with min versions) in ||, newest first. -# 2. Update the := to specify *max* version, e.g. < 12. -# 3. Specify LLVM_MAX_SLOT, e.g. 11. -LLVM_DEPEND=" - || ( - sys-devel/llvm:11[${LLVM_TARGET_USEDEPS// /,}] - ) - <sys-devel/llvm-12:= - wasm? ( sys-devel/lld ) -" -LLVM_MAX_SLOT=11 - -# to bootstrap we need at least exactly previous version, or same. -# most of the time previous versions fail to bootstrap with newer -# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok, -# but it fails to bootstrap with 1.48.x -# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.txt -BOOTSTRAP_DEPEND="|| - ( - =dev-lang/rust-$(ver_cut 1).$(($(ver_cut 2) - 1))* - =dev-lang/rust-bin-$(ver_cut 1).$(($(ver_cut 2) - 1))* - =dev-lang/rust-$(ver_cut 1).$(ver_cut 2)* - =dev-lang/rust-bin-$(ver_cut 1).$(ver_cut 2)* - ) -" - -BDEPEND="${PYTHON_DEPS} - app-eselect/eselect-rust - || ( - >=sys-devel/gcc-4.7 - >=sys-devel/clang-3.5 - ) - system-bootstrap? ( ${BOOTSTRAP_DEPEND} ) - !system-llvm? ( - dev-util/cmake - dev-util/ninja - ) -" - -DEPEND=" - >=app-arch/xz-utils-5.2 - net-misc/curl:=[http2,ssl] - sys-libs/zlib:= - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl:0= ) - elibc_musl? ( sys-libs/libunwind:= ) - system-llvm? ( - ${LLVM_DEPEND} - ) -" - -# we need to block older versions due to layout changes. -RDEPEND="${DEPEND} - app-eselect/eselect-rust - !<dev-lang/rust-1.47.0-r1 - !<dev-lang/rust-bin-1.47.0-r1 -" - -REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} ) - miri? ( nightly ) - parallel-compiler? ( nightly ) - test? ( ${ALL_LLVM_TARGETS[*]} ) - wasm? ( llvm_targets_WebAssembly ) - x86? ( cpu_flags_x86_sse2 ) -" - -# we don't use cmake.eclass, but can get a warnings -CMAKE_WARN_UNUSED_CLI=no - -QA_FLAGS_IGNORED=" - usr/lib/${PN}/${PV}/bin/.* - usr/lib/${PN}/${PV}/lib/lib.*.so - usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.* - usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so -" - -QA_SONAME=" - usr/lib/${PN}/${PV}/lib/lib.*.so.* - usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so -" - -# causes double bootstrap -RESTRICT="test" - -PATCHES=( - "${FILESDIR}"/1.47.0-libressl.patch - "${FILESDIR}"/1.46.0-don-t-create-prefix-at-time-of-check.patch - "${FILESDIR}"/1.47.0-ignore-broken-and-non-applicable-tests.patch - "${FILESDIR}"/1.47.0-llvm-tensorflow-fix.patch - "${FILESDIR}"/1.49.0-gentoo-musl-target-specs.patch - "${FILESDIR}"/1.49.0-llvm-ver-display.patch -) - -S="${WORKDIR}/${MY_P}-src" - -toml_usex() { - usex "${1}" true false -} - -boostrap_rust_version_check() { - # never call from pkg_pretend. eselect-rust may be not installed yet. - [[ ${MERGE_TYPE} == binary ]] && return - local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))" - local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))" - local rustc_version=( $(eselect --brief rust show 2>/dev/null) ) - rustc_version=${rustc_version[0]#rust-bin-} - rustc_version=${rustc_version#rust-} - - [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output" - - if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then - eerror "Rust >=${rustc_wanted} is required" - eerror "please run 'eselect rust' and set correct rust version" - die "selected rust version is too old" - elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then - eerror "Rust <${rustc_toonew} is required" - eerror "please run 'eselect rust' and set correct rust version" - die "selected rust version is too new" - else - einfo "Using rust ${rustc_version} to build" - fi -} - -pre_build_checks() { - local M=6144 - M=$(( $(usex clippy 128 0) + ${M} )) - M=$(( $(usex miri 128 0) + ${M} )) - M=$(( $(usex rls 512 0) + ${M} )) - M=$(( $(usex rustfmt 256 0) + ${M} )) - M=$(( $(usex system-llvm 0 2048) + ${M} )) - M=$(( $(usex wasm 256 0) + ${M} )) - M=$(( $(usex debug 15 10) * ${M} / 10 )) - eshopts_push -s extglob - if is-flagq '-g?(gdb)?([1-9])'; then - M=$(( 15 * ${M} / 10 )) - fi - eshopts_pop - M=$(( $(usex system-bootstrap 0 1024) + ${M} )) - M=$(( $(usex doc 256 0) + ${M} )) - CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} -} - -pkg_pretend() { - pre_build_checks -} - -pkg_setup() { - pre_build_checks - python-any-r1_pkg_setup - - export LIBGIT2_NO_PKG_CONFIG=1 #749381 - - use system-bootstrap && boostrap_rust_version_check - - if use system-llvm; then - llvm_pkg_setup - - local llvm_config="$(get_llvm_prefix "$LLVM_MAX_SLOT")/bin/llvm-config" - export LLVM_LINK_SHARED=1 - export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)" - fi -} - -src_prepare() { - if ! use system-bootstrap; then - local rust_stage0_root="${WORKDIR}"/rust-stage0 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)" - - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \ - --destdir="${rust_stage0_root}" --prefix=/ || die - fi - - default -} - -src_configure() { - local rust_target="" rust_targets="" arch_cflags - - # Collect rust target names to compile standard libs for all ABIs. - for v in $(multilib_get_enabled_abi_pairs); do - rust_targets="${rust_targets},\"$(rust_abi $(get_abi_CHOST ${v##*.}))\"" - done - if use wasm; then - rust_targets="${rust_targets},\"wasm32-unknown-unknown\"" - if use system-llvm; then - # un-hardcode rust-lld linker for this target - # https://bugs.gentoo.org/715348 - sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/wasm32_base.rs || die - fi - fi - rust_targets="${rust_targets#,}" - - local tools="\"cargo\"," - if use clippy; then - tools="\"clippy\",$tools" - fi - if use miri; then - tools="\"miri\",$tools" - fi - if use rls; then - tools="\"rls\",\"analysis\",\"src\",$tools" - fi - if use rustfmt; then - tools="\"rustfmt\",$tools" - fi - - local rust_stage0_root - if use system-bootstrap; then - rust_stage0_root="$(rustc --print sysroot)" - else - rust_stage0_root="${WORKDIR}"/rust-stage0 - fi - - rust_target="$(rust_abi)" - - cat <<- _EOF_ > "${S}"/config.toml - [llvm] - optimize = $(toml_usex !debug) - release-debuginfo = $(toml_usex debug) - assertions = $(toml_usex debug) - ninja = true - targets = "${LLVM_TARGETS// /;}" - experimental-targets = "" - link-shared = $(toml_usex system-llvm) - [build] - build = "${rust_target}" - host = ["${rust_target}"] - target = [${rust_targets}] - cargo = "${rust_stage0_root}/bin/cargo" - rustc = "${rust_stage0_root}/bin/rustc" - docs = $(toml_usex doc) - compiler-docs = $(toml_usex doc) - submodules = false - python = "${EPYTHON}" - locked-deps = true - vendor = true - extended = true - tools = [${tools}] - verbose = 2 - sanitizers = false - profiler = false - cargo-native-static = false - [install] - prefix = "${EPREFIX}/usr/lib/${PN}/${PV}" - sysconfdir = "etc" - docdir = "share/doc/rust" - bindir = "bin" - libdir = "lib" - mandir = "share/man" - [rust] - # https://github.com/rust-lang/rust/issues/54872 - codegen-units-std = 1 - optimize = true - debug = $(toml_usex debug) - debug-assertions = $(toml_usex debug) - debuginfo-level-rustc = 0 - backtrace = true - incremental = false - default-linker = "$(tc-getCC)" - parallel-compiler = $(toml_usex parallel-compiler) - channel = "$(usex nightly nightly stable)" - rpath = false - verbose-tests = true - optimize-tests = $(toml_usex !debug) - codegen-tests = true - dist-src = false - remap-debuginfo = true - lld = $(usex system-llvm false $(toml_usex wasm)) - backtrace-on-ice = true - jemalloc = false - [dist] - src-tarball = false - _EOF_ - - for v in $(multilib_get_enabled_abi_pairs); do - rust_target=$(rust_abi $(get_abi_CHOST ${v##*.})) - arch_cflags="$(get_abi_CFLAGS ${v##*.})" - - cat <<- _EOF_ >> "${S}"/config.env - CFLAGS_${rust_target}=${arch_cflags} - _EOF_ - - cat <<- _EOF_ >> "${S}"/config.toml - [target.${rust_target}] - cc = "$(tc-getBUILD_CC)" - cxx = "$(tc-getBUILD_CXX)" - linker = "$(tc-getCC)" - ar = "$(tc-getAR)" - _EOF_ - # librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true; - if use elibc_musl; then - cat <<- _EOF_ >> "${S}"/config.toml - crt-static = false - _EOF_ - fi - if use system-llvm; then - cat <<- _EOF_ >> "${S}"/config.toml - llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" - _EOF_ - fi - done - if use wasm; then - cat <<- _EOF_ >> "${S}"/config.toml - [target.wasm32-unknown-unknown] - linker = "$(usex system-llvm lld rust-lld)" - _EOF_ - fi - - if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below - # experimental cross support - # discussion: https://bugs.gentoo.org/679878 - # TODO: c*flags, clang, system-llvm, cargo.eclass target support - # it would be much better if we could split out stdlib - # complilation to separate ebuild and abuse CATEGORY to - # just install to /usr/lib/rustlib/<target> - - # extra targets defined as a bash array - # spec format: <LLVM target>:<rust-target>:<CTARGET> - # best place would be /etc/portage/env/dev-lang/rust - # Example: - # RUST_CROSS_TARGETS=( - # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu" - # ) - # no extra hand holding is done, no target transformations, all - # values are passed as-is with just basic checks, so it's up to user to supply correct values - # valid rust targets can be obtained with - # rustc --print target-list - # matching cross toolchain has to be installed - # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one) - # only gcc toolchains installed with crossdev are checked for now. - - # BUG: we can't pass host flags to cross compiler, so just filter for now - # BUG: this should be more fine-grained. - filter-flags '-mcpu=*' '-march=*' '-mtune=*' - - local cross_target_spec - for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do - # extracts first element form <LLVM target>:<rust-target>:<CTARGET> - local cross_llvm_target="${cross_target_spec%%:*}" - # extracts toolchain triples, <rust-target>:<CTARGET> - local cross_triples="${cross_target_spec#*:}" - # extracts first element after before : separator - local cross_rust_target="${cross_triples%%:*}" - # extracts last element after : separator - local cross_toolchain="${cross_triples##*:}" - use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled" - command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain" - - cat <<- _EOF_ >> "${S}"/config.toml - [target.${cross_rust_target}] - cc = "${cross_toolchain}-gcc" - cxx = "${cross_toolchain}-g++" - linker = "${cross_toolchain}-gcc" - ar = "${cross_toolchain}-ar" - _EOF_ - if use system-llvm; then - cat <<- _EOF_ >> "${S}"/config.toml - llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" - _EOF_ - fi - - # append cross target to "normal" target list - # example 'target = ["powerpc64le-unknown-linux-gnu"]' - # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]' - - rust_targets="${rust_targets},\"${cross_rust_target}\"" - sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die - - ewarn - ewarn "Enabled ${cross_rust_target} rust target" - ewarn "Using ${cross_toolchain} cross toolchain" - ewarn - if ! has_version -b 'sys-devel/binutils[multitarget]' ; then - ewarn "'sys-devel/binutils[multitarget]' is not installed" - ewarn "'strip' will be unable to strip cross libraries" - ewarn "cross targets will be installed with full debug information" - ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files" - ewarn - ewarn "Alternatively llvm-strip can be used, it supports stripping any target" - ewarn "define STRIP=\"llvm-strip\" to use it (experimental)" - ewarn - fi - done - fi # I_KNOW_WHAT_I_AM_DOING_CROSS - - einfo "Rust configured with the following settings:" - cat "${S}"/config.toml || die -} - -src_compile() { - # we need \n IFS to have config.env with spaces loaded properly. #734018 - ( - IFS=$'\n' - env $(cat "${S}"/config.env) RUST_BACKTRACE=1\ - "${EPYTHON}" ./x.py dist -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die - ) -} - -src_test() { - # https://rustc-dev-guide.rust-lang.org/tests/intro.html - - # those are basic and codegen tests. - local tests=( - codegen - codegen-units - compile-fail - incremental - mir-opt - pretty - run-make - ) - - # fails if llvm is not built with ALL targets. - # and known to fail with system llvm sometimes. - use system-llvm || tests+=( assembly ) - - # fragile/expensive/less important tests - # or tests that require extra builds - # TODO: instead of skipping, just make some nonfatal. - if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then - tests+=( - rustdoc - rustdoc-js - rustdoc-js-std - rustdoc-ui - run-make-fulldeps - ui - ui-fulldeps - ) - fi - - local i failed=() - einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}" - for i in "${tests[@]}"; do - local t="src/test/${i}" - einfo "rust_src_test: running ${t}" - if ! ( - IFS=$'\n' - env $(cat "${S}"/config.env) RUST_BACKTRACE=1 \ - "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \ - -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}" - ) - then - failed+=( "${t}" ) - eerror "rust_src_test: ${t} failed" - fi - done - - if [[ ${#failed[@]} -ne 0 ]]; then - eerror "rust_src_test: failure summary: ${failed[@]}" - die "aborting due to test failures" - fi -} - -src_install() { - # https://github.com/rust-lang/rust/issues/77721 - # also 1.46.0-don-t-create-prefix-at-time-of-check.patch - dodir "/usr/lib/${PN}/${PV}" - ( - IFS=$'\n' - env $(cat "${S}"/config.env) DESTDIR="${D}" \ - "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml || die - ) - - # bug #689562, #689160 - rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die - rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die - dobashcomp build/tmp/dist/cargo-image/etc/bash_completion.d/cargo - - local symlinks=( - cargo - rustc - rustdoc - rust-gdb - rust-gdbgui - rust-lldb - ) - - use clippy && symlinks+=( clippy-driver cargo-clippy ) - use miri && symlinks+=( miri cargo-miri ) - use rls && symlinks+=( rls ) - use rustfmt && symlinks+=( rustfmt cargo-fmt ) - - einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}" - local i - for i in "${symlinks[@]}"; do - # we need realpath on /usr/bin/* symlink return version-appended binary path. - # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver> - # need to fix eselect-rust to remove this hack. - local ver_i="${i}-${PV}" - if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then - einfo "Installing ${i} symlink" - ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die - else - ewarn "${i} symlink requested, but source file not found" - ewarn "please report this" - fi - dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}" - done - - # symlinks to switch components to active rust in eselect - dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}" - dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}" - dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}" - dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" - - newenvd - "50${P}" <<-_EOF_ - LDPATH="${EPREFIX}/usr/lib/rust/lib" - MANPATH="${EPREFIX}/usr/lib/rust/man" - $(usex elibc_musl 'CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '') - _EOF_ - - rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die - rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die - - # note: eselect-rust adds EROOT to all paths below - cat <<-_EOF_ > "${T}/provider-${P}" - /usr/bin/cargo - /usr/bin/rustdoc - /usr/bin/rust-gdb - /usr/bin/rust-gdbgui - /usr/bin/rust-lldb - /usr/lib/rustlib - /usr/lib/rust/lib - /usr/lib/rust/man - /usr/share/doc/rust - _EOF_ - - if use clippy; then - echo /usr/bin/clippy-driver >> "${T}/provider-${P}" - echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" - fi - if use miri; then - echo /usr/bin/miri >> "${T}/provider-${P}" - echo /usr/bin/cargo-miri >> "${T}/provider-${P}" - fi - if use rls; then - echo /usr/bin/rls >> "${T}/provider-${P}" - fi - if use rustfmt; then - echo /usr/bin/rustfmt >> "${T}/provider-${P}" - echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" - fi - - insinto /etc/env.d/rust - doins "${T}/provider-${P}" -} - -pkg_postinst() { - eselect rust update - - if has_version sys-devel/gdb || has_version dev-util/lldb; then - elog "Rust installs a helper script for calling GDB and LLDB," - elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}." - fi - - if has_version app-editors/emacs; then - elog "install app-emacs/rust-mode to get emacs support for rust." - fi - - if has_version app-editors/gvim || has_version app-editors/vim; then - elog "install app-vim/rust-vim to get vim support for rust." - fi -} - -pkg_postrm() { - eselect rust cleanup -} diff --git a/dev-lang/rust/rust-1.50.0.ebuild b/dev-lang/rust/rust-1.51.0-r2.ebuild index e98848b6f30b..c2db84721a71 100644 --- a/dev-lang/rust/rust-1.50.0.ebuild +++ b/dev-lang/rust/rust-1.51.0-r2.ebuild @@ -18,7 +18,7 @@ else SLOT="stable/${ABI_VER}" MY_P="rustc-${PV}" SRC="${MY_P}-src.tar.xz" - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" + KEYWORDS="amd64 arm arm64 ppc64 x86" fi RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0" @@ -35,7 +35,7 @@ SRC_URI=" ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430 NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore ) ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) -LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?} +LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA" @@ -46,17 +46,26 @@ IUSE="clippy cpu_flags_x86_sse2 debug doc libressl miri nightly parallel-compile # simultaneously. # How to use it: -# 1. List all the working slots (with min versions) in ||, newest first. -# 2. Update the := to specify *max* version, e.g. < 12. -# 3. Specify LLVM_MAX_SLOT, e.g. 11. -LLVM_DEPEND=" - || ( - sys-devel/llvm:11[${LLVM_TARGET_USEDEPS// /,}] - ) - <sys-devel/llvm-12:= +# List all the working slots in LLVM_VALID_SLOTS, newest first. +LLVM_VALID_SLOTS=( 11 ) +LLVM_MAX_SLOT="${LLVM_VALID_SLOTS[0]}" + +# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation +# (-) usedep needed because we may build with older llvm without that target +LLVM_DEPEND="|| ( " +for _s in ${LLVM_VALID_SLOTS[@]}; do + LLVM_DEPEND+=" ( " + for _x in ${ALL_LLVM_TARGETS[@]}; do + LLVM_DEPEND+=" + ${_x}? ( sys-devel/llvm:${_s}[${_x}(-)] )" + done + LLVM_DEPEND+=" )" +done +unset _s _x +LLVM_DEPEND+=" ) + <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):= wasm? ( sys-devel/lld ) " -LLVM_MAX_SLOT=11 # to bootstrap we need at least exactly previous version, or same. # most of the time previous versions fail to bootstrap with newer @@ -83,6 +92,7 @@ BDEPEND="${PYTHON_DEPS} dev-util/cmake dev-util/ninja ) + test? ( sys-devel/gdb ) " DEPEND=" @@ -92,9 +102,7 @@ DEPEND=" !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:0= ) elibc_musl? ( sys-libs/libunwind:= ) - system-llvm? ( - ${LLVM_DEPEND} - ) + system-llvm? ( ${LLVM_DEPEND} ) " # we need to block older versions due to layout changes. @@ -134,9 +142,13 @@ RESTRICT="test" PATCHES=( "${FILESDIR}"/1.47.0-libressl.patch "${FILESDIR}"/1.47.0-ignore-broken-and-non-applicable-tests.patch - "${FILESDIR}"/1.47.0-llvm-tensorflow-fix.patch "${FILESDIR}"/1.49.0-gentoo-musl-target-specs.patch - "${FILESDIR}"/1.49.0-llvm-ver-display.patch + "${FILESDIR}"/1.51.0-bootstrap-panic.patch + "${FILESDIR}"/rustc-1.51.0-backport-pr81728.patch + "${FILESDIR}"/rustc-1.51.0-backport-pr81741.patch + "${FILESDIR}"/rustc-1.51.0-backport-pr82289.patch + "${FILESDIR}"/rustc-1.51.0-backport-pr82292.patch + "${FILESDIR}"/rustc-1.51.0-backport-pr83629.patch ) S="${WORKDIR}/${MY_P}-src" @@ -170,12 +182,23 @@ boostrap_rust_version_check() { } pre_build_checks() { - local M=6144 + local M=8192 + # multiply requirements by 1.5 if we are doing x86-multilib + if use amd64; then + M=$(( $(usex abi_x86_32 15 10) * ${M} / 10 )) + fi M=$(( $(usex clippy 128 0) + ${M} )) M=$(( $(usex miri 128 0) + ${M} )) M=$(( $(usex rls 512 0) + ${M} )) M=$(( $(usex rustfmt 256 0) + ${M} )) - M=$(( $(usex system-llvm 0 2048) + ${M} )) + # add 2G if we compile llvm and 256M per llvm_target + if ! use system-llvm; then + M=$(( 2048 + ${M} )) + local ltarget + for ltarget in ${ALL_LLVM_TARGETS[@]}; do + M=$(( $(usex ${ltarget} 256 0) + ${M} )) + done + fi M=$(( $(usex wasm 256 0) + ${M} )) M=$(( $(usex debug 15 10) * ${M} / 10 )) eshopts_push -s extglob @@ -188,6 +211,10 @@ pre_build_checks() { CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} } +llvm_check_deps() { + has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]" +} + pkg_pretend() { pre_build_checks } @@ -203,7 +230,7 @@ pkg_setup() { if use system-llvm; then llvm_pkg_setup - local llvm_config="$(get_llvm_prefix "$LLVM_MAX_SLOT")/bin/llvm-config" + local llvm_config="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" export LLVM_LINK_SHARED=1 export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)" fi @@ -215,7 +242,7 @@ src_prepare() { local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)" "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \ - --destdir="${rust_stage0_root}" --prefix=/ || die + --without=rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die fi default @@ -263,6 +290,7 @@ src_configure() { cat <<- _EOF_ > "${S}"/config.toml [llvm] + download-ci-llvm = false optimize = $(toml_usex !debug) release-debuginfo = $(toml_usex debug) assertions = $(toml_usex debug) @@ -276,8 +304,9 @@ src_configure() { target = [${rust_targets}] cargo = "${rust_stage0_root}/bin/cargo" rustc = "${rust_stage0_root}/bin/rustc" + rustfmt = "${rust_stage0_root}/bin/rustfmt" docs = $(toml_usex doc) - compiler-docs = $(toml_usex doc) + compiler-docs = false submodules = false python = "${EPYTHON}" locked-deps = true @@ -307,6 +336,7 @@ src_configure() { default-linker = "$(tc-getCC)" parallel-compiler = $(toml_usex parallel-compiler) channel = "$(usex nightly nightly stable)" + description = "gentoo" rpath = false verbose-tests = true optimize-tests = $(toml_usex !debug) @@ -314,6 +344,10 @@ src_configure() { dist-src = false remap-debuginfo = true lld = $(usex system-llvm false $(toml_usex wasm)) + # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it + # https://github.com/rust-lang/rust/issues/74976 + # https://github.com/rust-lang/rust/issues/76526 + deny-warnings = $(usex wasm $(usex doc false true) true) backtrace-on-ice = true jemalloc = false [dist] @@ -501,13 +535,10 @@ src_test() { } src_install() { - # https://github.com/rust-lang/rust/issues/77721 - # also 1.46.0-don-t-create-prefix-at-time-of-check.patch - dodir "/usr/lib/${PN}/${PV}" ( IFS=$'\n' env $(cat "${S}"/config.env) DESTDIR="${D}" \ - "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml || die + "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die ) # bug #689562, #689160 |