diff options
Diffstat (limited to 'www/firefox/files/patch-bug1376411')
| -rw-r--r-- | www/firefox/files/patch-bug1376411 | 9687 |
1 files changed, 0 insertions, 9687 deletions
diff --git a/www/firefox/files/patch-bug1376411 b/www/firefox/files/patch-bug1376411 deleted file mode 100644 index fe4d6ab7b44d..000000000000 --- a/www/firefox/files/patch-bug1376411 +++ /dev/null @@ -1,9687 +0,0 @@ -Update libc crate to 0.2.24 for FreeBSD aarch64 support. - -diff --git js/src/Cargo.lock js/src/Cargo.lock -index 8466b5f1a9e5..438516496682 100644 ---- js/src/Cargo.lock -+++ js/src/Cargo.lock -@@ -2,7 +2,7 @@ - name = "mozjs_sys" - version = "0.0.0" - dependencies = [ -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "libz-sys 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)", - ] - -@@ -13,7 +13,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" - - [[package]] - name = "libc" --version = "0.2.20" -+version = "0.2.24" - source = "registry+https://github.com/rust-lang/crates.io-index" - - [[package]] -@@ -22,7 +22,7 @@ version = "1.0.12" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "gcc 0.3.42 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - ] - -@@ -33,6 +33,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" - - [metadata] - "checksum gcc 0.3.42 (registry+https://github.com/rust-lang/crates.io-index)" = "291055c78f59ca3d84c99026c9501c469413d386bb46be1e1cf1d285cd1db3b0" --"checksum libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)" = "684f330624d8c3784fb9558ca46c4ce488073a8d22450415c5eb4f4cfb0d11b5" -+"checksum libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)" = "38f5c2b18a287cf78b4097db62e20f43cace381dc76ae5c0a3073067f78b7ddc" - "checksum libz-sys 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)" = "7616099a575493da60cddc1174b686fcfb00ece89dc6f61f31ff47c35f07bbe8" - "checksum pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "3a8b4c6b8165cd1a1cd4b9b120978131389f64bdaf456435caa41e630edba903" -diff --git third_party/rust/libc/.cargo-checksum.json third_party/rust/libc/.cargo-checksum.json -index e1e2ea34c5e4..3514e55b4293 100644 ---- third_party/rust/libc/.cargo-checksum.json -+++ third_party/rust/libc/.cargo-checksum.json -@@ -1 +1 @@ --{"files":{".cargo-ok":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",".gitignore":"7150ee9391a955b2ef7e0762fc61c0c1aab167620ca36d88d78062d93b8334ba",".travis.yml":"7cdd02047a3044fcc50a43aacede564cfbe061bab9ccd143a58e7e92e64750c2","Cargo.toml":"00205808e35bc6a436829e57222639e63a899330cd2fd6303a37d5b2f2335667","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb","README.md":"4222225ac1d974faee08172b0b0773dfe2b312a13054f090f04c651aa1d1e6ef","appveyor.yml":"c0d70c650b6231e6ff78a352224f1a522a9be69d9da4251adbaddb3f0393294d","ci/README.md":"be804f15e2128e5fd4b160cb0b13cff5f19e7d77b55ec5254aa6fd8731c84f0d","ci/docker/aarch64-unknown-linux-gnu/Dockerfile":"62ca7317439f9c303990e897450a91cd467be05eb75dfc01456d417932ac8672","ci/docker/arm-linux-androideabi/Dockerfile":"172bac5a76024737847ffdac49f68e2b3d890cb2fc1b5e3f7aaaf19b46916830","ci/docker/arm-linux-androideabi/accept-licenses.sh":"84ad00815f628005ed22c5d6cd14990ebc97812a7163bd275b2877904eddab53","ci/docker/arm-linux-androideabi/install-ndk.sh":"eef063bb01a16c0f90471dbce1b5a395b53141d7704e15a3c9a1c4fc5e06d4b1","ci/docker/arm-linux-androideabi/install-sdk.sh":"42c04b17c4a35bef58757332e960a6e4aba1b5e41f8fc0182265163ff93f6182","ci/docker/arm-unknown-linux-gnueabihf/Dockerfile":"e349f7caa463adbde8d6ec4d2b9f7720ed81c77f48d75bbfb78c89751f55c2dc","ci/docker/i686-unknown-linux-gnu/Dockerfile":"07e9df6ba91025cbec7ae81ade63f8cfb8a54c5e1e5a8f8def0617e17bd59db0","ci/docker/i686-unknown-linux-musl/Dockerfile":"1a4d064adff4a8f58773305567cfe5d915bcd0762bcb0e101cf6f4ca628a96da","ci/docker/mips-unknown-linux-gnu/Dockerfile":"860299d96ee50ebdbd788e65eb6ba1f561ef66107647bddffcb2567ac350896b","ci/docker/mips-unknown-linux-musl/Dockerfile":"711c43122fa34cee83a69944493213924b0ff1fccd78c7a141cb2b2127526484","ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile":"163776e0fd38f66df7415421202ac29efc7d345a628947434e573c3885594ab5","ci/docker/mipsel-unknown-linux-musl/Dockerfile":"aef213df08da03ab6a723c3e6e5594a0586251950d81482cf53179d8e64e95c7","ci/docker/powerpc-unknown-linux-gnu/Dockerfile":"08b846a338c2ee70100f4e80db812668dc58bfb536c44a95cd1cf004d965186b","ci/docker/powerpc64-unknown-linux-gnu/Dockerfile":"4da285ffd035d16f5da9e3701841eb86049c8cfa417fa81e53da4ef74152eac0","ci/docker/x86_64-rumprun-netbsd/Dockerfile":"44c3107fb30380785aaed6ff73fa334017a5bb4e3b5c7d4876154f09023a2b99","ci/docker/x86_64-unknown-freebsd/Dockerfile":"ef0f9f63065218728d2daafaa5ba71b17e4ccc23d72e859e0a7133fc64c0815e","ci/docker/x86_64-unknown-linux-gnu/Dockerfile":"67fabbc8c6ac02376cf9344251ad49ecdac396b71accb572fd1ae65225325bc0","ci/docker/x86_64-unknown-linux-musl/Dockerfile":"f71019fed5204b950843ef5e56144161fda7e27fad68ed0e8bc4353c388c7bcf","ci/docker/x86_64-unknown-openbsd/Dockerfile":"dfa5c23a6cff8c7a9a846668118c71a8406a360801fd3632fb12e8fbda6b7338","ci/dox.sh":"9ea240a4a607036235fd68c01b5d2a59f365768d103d3be774dcf34aa3ff563e","ci/landing-page-footer.html":"b70b3112c2147f5c967e7481061ef38bc2d79a28dd55a16fb916d9c9426da2c4","ci/landing-page-head.html":"ad69663fac7924f27d0209bc519d55838e86edfc4133713a6fd08caadac1b142","ci/run-docker.sh":"7f6c68dbca93788111170ac4678608957a179e76cfe8c5a51d11dfea1742d7f2","ci/run-qemu.sh":"bb859421170871ef23a8940c5e150efec0c01b95e32d2ce2d37b79a45d9d346c","ci/run.sh":"b6a6307ea989b6a84bad0fd7d46c3206b30f7aa06d0b3e92d6cb1c855f4e0c42","ci/style.rs":"60564abc1d5197ed1598426dd0d6ee9939a16d2875b03373538f58843bb616c4","src/dox.rs":"f732d3c0dcd6ace854ee32d8f898b96ac42204a799c6e386c4ba88f6e58673dc","src/lib.rs":"cc328e10a4c2879e7de1858aabc30e667cb07398e021e0d2d002f4195632127a","src/macros.rs":"bd9802772b0e5c8b3c550d1c24307f06c0d1e4ce656b4ae1cf092142bbe5412c","src/redox.rs":"3dd158ba9fbbabe96ce2607e91dbf07b93b37c0427734118702dcb4901fe8964","src/unix/bsd/apple/b32.rs":"110ecff78da0e8d405d861447904da403d8b3f6da1f0f9dc9987633f3f04fe46","src/unix/bsd/apple/b64.rs":"e6808081c0b276cca3189628716f507c7c0d00b62417cd44addbdaefe848cec7","src/unix/bsd/apple/mod.rs":"1e854694c38e8eee8ce17e93c4c92755b4b4838cf002a7740108605f58e7d029","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"2c65314cfb38c540979facaea9f97596446dffbc0a2efa29db7c1ace5243f6ee","src/unix/bsd/freebsdlike/freebsd/mod.rs":"77b6c96a8b30761c9ed77f55fd39778fa2248b57ca60c59c8a1035c2821ec5ca","src/unix/bsd/freebsdlike/freebsd/x86.rs":"54311d3ebf2bb091ab22361e377e6ef9224aec2ecfe459fbfcedde4932db9c58","src/unix/bsd/freebsdlike/freebsd/x86_64.rs":"c7f46b9ae23fde5a9e245a28ed1380066e67f081323b4d253a18e9da3b97b860","src/unix/bsd/freebsdlike/mod.rs":"66ba7ca5a09a893776e955f7632e5c3cb9457bf39e3823f1b337ec841569b776","src/unix/bsd/mod.rs":"55bf99b86abf3149f2b03f73f3dad3b67f6d11e5ddca4adfb550f6f116449fe0","src/unix/bsd/netbsdlike/mod.rs":"b19e7f839bfeb6ae83fcd73574083d80a5b1b90dbd168b33a6ed0e94a5f5e2b3","src/unix/bsd/netbsdlike/netbsd/mod.rs":"d8539c69d1db8e2e8e3126b3dd6f175eb8157530cec21a05578bed66b55efe5b","src/unix/bsd/netbsdlike/netbsd/other/b32/mod.rs":"bd251a102bed65d5cb3459275f6ec3310fe5803ff4c9651212115548f86256d0","src/unix/bsd/netbsdlike/netbsd/other/b64/mod.rs":"927eeccaf3269d299db4c2a55f8010807bf43dfa894aea6a783215f5d3560baa","src/unix/bsd/netbsdlike/netbsd/other/mod.rs":"4d9f7091af8e166943ac6f42ce85558909e5b6e61325039bff7adfbcf4b90212","src/unix/bsd/netbsdlike/openbsdlike/bitrig.rs":"f8cd05dacd3a3136c58da5a2fbe26f703767823b28e74fe8a2b57a7bd98d6d5c","src/unix/bsd/netbsdlike/openbsdlike/mod.rs":"48a32d25326ce03aec64ff0eaac4d921b1a1144f48d020a623306ecf986ea52a","src/unix/bsd/netbsdlike/openbsdlike/openbsd.rs":"b1b9cf7be9f0e4d294a57092594074ad03a65fe0eeac9d1104fa874c313e7900","src/unix/bsd/netbsdlike/openbsdlike/other/b32/mod.rs":"bd251a102bed65d5cb3459275f6ec3310fe5803ff4c9651212115548f86256d0","src/unix/bsd/netbsdlike/openbsdlike/other/b64/mod.rs":"927eeccaf3269d299db4c2a55f8010807bf43dfa894aea6a783215f5d3560baa","src/unix/bsd/netbsdlike/openbsdlike/other/mod.rs":"f5d8db6f54efd05520b31b764a6bacbf612e1aebce097d2d5bfaaef3b91f37b5","src/unix/haiku/b32.rs":"bd251a102bed65d5cb3459275f6ec3310fe5803ff4c9651212115548f86256d0","src/unix/haiku/b64.rs":"b422430c550c0ba833c9206d1350861e344e3a2eb33d7d58693efb35044be1cc","src/unix/haiku/mod.rs":"245d5500a1d836974ef407edeadee36a51a486bf9d5566d129aaa8f51741e966","src/unix/mod.rs":"1dd0ac155b99862e2368618e16ceb071a2a9b525e7a02dea5ef91d624b21f7ce","src/unix/notbsd/android/b32.rs":"148e1b4ed8b4f700d5aa24178af925164176e1c18b54db877ced4b55ba9f03d4","src/unix/notbsd/android/b64.rs":"302caf0aa95fa022030717c58de17d85d814b04350eca081a722ec435bc4f217","src/unix/notbsd/android/mod.rs":"d255ba6737efea3c4c3ef7ef499a54bc1875debdfec4233cbe8e2601afadc994","src/unix/notbsd/linux/mips/mips32.rs":"b268f603f71d854614c20cea00431812def9b683d43e6254ae62a8f88a14f7c3","src/unix/notbsd/linux/mips/mips64.rs":"8bce84a47a6ad7fc95234fdd3513ddb8c78634f4ac18209c0276ab705c092ebe","src/unix/notbsd/linux/mips/mod.rs":"5eaf645c3ce69860062adf2df6bf56bdcad955990401dee671d4f5b8fea755a4","src/unix/notbsd/linux/mod.rs":"ed2287e8a77f3c97ea1ae0497832984b1c3d5b306413428f1823d58490ed25bc","src/unix/notbsd/linux/musl/b32/arm.rs":"0ad8c97458743dc7d81200df0e1223f0a20936933ace77fe786477027597dd7b","src/unix/notbsd/linux/musl/b32/asmjs.rs":"085e410f990312de76f74cb9bbf9fcc27d686e94334143b34511f565d1b8bb91","src/unix/notbsd/linux/musl/b32/mips.rs":"01a92b5dc28ca67e41d7791e398f75210208368e53a848297186de5829d158ec","src/unix/notbsd/linux/musl/b32/mod.rs":"fc7e055edbe6fa170c2bda6b3415066c1871b3e60ebb70a6329d008f77100f0b","src/unix/notbsd/linux/musl/b32/x86.rs":"b47963c6bc5fceec96fded47d58e1c0466b190ec7ae207d666d23be35131c638","src/unix/notbsd/linux/musl/b64/aarch64.rs":"4009c7eaf703472daef2a70bdac910d9fc395a33689ef2e8cf1c4e692445d3f0","src/unix/notbsd/linux/musl/b64/mod.rs":"3f7cc45104103ecff4f7ea6cfdc76d2b0132cff31f7e36a0da2f613ac076256c","src/unix/notbsd/linux/musl/b64/powerpc64.rs":"dc28f5b7284235d6cf5519053cac59a1c16dc39223b71cca0871e4880755f852","src/unix/notbsd/linux/musl/b64/x86_64.rs":"43291acc0dfc92c2fec8ba6ce77ee9ca3c20bcdccec18e149f95ba911cee704b","src/unix/notbsd/linux/musl/mod.rs":"926a5e041377406ec3dc869fae42b1cba3b41e163aacbdbb8122f6a41756baaf","src/unix/notbsd/linux/other/b32/arm.rs":"f5cb989075fa3b5f997e7101495532c8d5c9f3577412d4c07e4c8c1a16f7b43c","src/unix/notbsd/linux/other/b32/mod.rs":"6122be151c5d85b9df6a3aaefc5cafd0657b371cafa9cb31ed9b1a394976af45","src/unix/notbsd/linux/other/b32/powerpc.rs":"3b62052bb9741afa5349098e6e9c675b60e822e41fed6b5e1b694be1872097b1","src/unix/notbsd/linux/other/b32/x86.rs":"1eda37736f5966c7968b594f74f5018f56b6b8c67bbdeb31fc3db1b6e4ac31b4","src/unix/notbsd/linux/other/b64/aarch64.rs":"e0637555c38346f264e666bb235e8c53ae2dfa79310eeaee6e7d916e8e9a7aff","src/unix/notbsd/linux/other/b64/mod.rs":"bee90e8d9217ee344d0e99fd483766a1b28e8b1ded930d44a0400a5e5224bb6a","src/unix/notbsd/linux/other/b64/powerpc64.rs":"3653528376afdd267aaa3ae0020d2e4aca16c28303dcf731cfa96a8ff5db1a5c","src/unix/notbsd/linux/other/b64/sparc64.rs":"fbfb3b17da347723ddf15fb490e51acdddc9ca7e6b4db072370ba2619cc2ff97","src/unix/notbsd/linux/other/b64/x86_64.rs":"8c9bad7d14fc787ec7aa943fd552b7f35b74548a122e53711708de809ef1148d","src/unix/notbsd/linux/other/mod.rs":"9d6643fddab3e68dafa1d34424ea04561d3b414530dd9ce0adde5bc6af828b3a","src/unix/notbsd/linux/s390x.rs":"0ed3108cca67cb731f334d6beecbb99fdfc16de475320007d354fe1c4571fbd8","src/unix/notbsd/mod.rs":"da50b86c6649c3dc12e23185def473d4562128470c3037fae648aeeb27eb5569","src/unix/solaris/mod.rs":"f3956d14342be8631806c56f677d8e14178131578bd26f92d5e90a3cf3f5f37d","src/windows.rs":"acccbd341e81206cb1dc66af41762c193ac0dd719d700b64f7e26c967ee7d670"},"package":"684f330624d8c3784fb9558ca46c4ce488073a8d22450415c5eb4f4cfb0d11b5"} -\ No newline at end of file -+{"files":{".cargo-ok":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",".gitignore":"7150ee9391a955b2ef7e0762fc61c0c1aab167620ca36d88d78062d93b8334ba",".travis.yml":"85d7a35a85a0653ea7072811fd0ba37cf00df4e0b2bcc3781bfc171220046001","Cargo.toml":"7ea5ce66ef7d756befcc155bdeb4135171920a934ecd384eb9f54359a4ce547a","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb","README.md":"8a9859c60f78d9075e22bc9f85b40e0b0216cccaeb7025c9f464cc33dcddaf5c","appveyor.yml":"483ae27670e061eb91f055699a9ad88255050b7b300f183b8580340407751bb4","ci/README.md":"be804f15e2128e5fd4b160cb0b13cff5f19e7d77b55ec5254aa6fd8731c84f0d","ci/android-accept-licenses.sh":"84ad00815f628005ed22c5d6cd14990ebc97812a7163bd275b2877904eddab53","ci/android-install-ndk.sh":"73c5f21438c024ce1b8c793184447ff9aecd83c87cbde8de580b782842b3563f","ci/android-install-sdk.sh":"891900fe4e4ceb04717b91a253753858270defc6d6401936d08c09801c1de178","ci/android-sysimage.sh":"901415631752827454c827e8c51906ba4260612e4021eda98eb7fff771c7d0e8","ci/docker/aarch64-linux-android/Dockerfile":"68f375c6e0b3716f8c0b6ed217bc6c3631fa2b86c578b983a0bf60d0344efd74","ci/docker/aarch64-unknown-linux-gnu/Dockerfile":"62ca7317439f9c303990e897450a91cd467be05eb75dfc01456d417932ac8672","ci/docker/arm-linux-androideabi/Dockerfile":"1193bf048efbeb9be3c9fac0836dcf6ae07e12cdf09b36b386dd4cbd62abbffa","ci/docker/arm-unknown-linux-gnueabihf/Dockerfile":"e349f7caa463adbde8d6ec4d2b9f7720ed81c77f48d75bbfb78c89751f55c2dc","ci/docker/i686-linux-android/Dockerfile":"7c353aecdf0b21d8584392cc6ea31d455adad769034c3ea09191a1b26a2521e1","ci/docker/i686-unknown-linux-gnu/Dockerfile":"07e9df6ba91025cbec7ae81ade63f8cfb8a54c5e1e5a8f8def0617e17bd59db0","ci/docker/i686-unknown-linux-musl/Dockerfile":"fcaedc90fbb90375186b36b4324bff0a042aae70695be0f2b632e3cf7479eae6","ci/docker/mips-unknown-linux-gnu/Dockerfile":"860299d96ee50ebdbd788e65eb6ba1f561ef66107647bddffcb2567ac350896b","ci/docker/mips-unknown-linux-musl/Dockerfile":"711c43122fa34cee83a69944493213924b0ff1fccd78c7a141cb2b2127526484","ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile":"163776e0fd38f66df7415421202ac29efc7d345a628947434e573c3885594ab5","ci/docker/mipsel-unknown-linux-musl/Dockerfile":"aef213df08da03ab6a723c3e6e5594a0586251950d81482cf53179d8e64e95c7","ci/docker/powerpc-unknown-linux-gnu/Dockerfile":"08b846a338c2ee70100f4e80db812668dc58bfb536c44a95cd1cf004d965186b","ci/docker/powerpc64-unknown-linux-gnu/Dockerfile":"4da285ffd035d16f5da9e3701841eb86049c8cfa417fa81e53da4ef74152eac0","ci/docker/x86_64-linux-android/Dockerfile":"a73a344c60575b8ef78b0178f93285ffa2e2d9aa5eb0d2e86d4bad3cab63276f","ci/docker/x86_64-rumprun-netbsd/Dockerfile":"44c3107fb30380785aaed6ff73fa334017a5bb4e3b5c7d4876154f09023a2b99","ci/docker/x86_64-unknown-freebsd/Dockerfile":"ef0f9f63065218728d2daafaa5ba71b17e4ccc23d72e859e0a7133fc64c0815e","ci/docker/x86_64-unknown-linux-gnu/Dockerfile":"67fabbc8c6ac02376cf9344251ad49ecdac396b71accb572fd1ae65225325bc0","ci/docker/x86_64-unknown-linux-musl/Dockerfile":"f71019fed5204b950843ef5e56144161fda7e27fad68ed0e8bc4353c388c7bcf","ci/docker/x86_64-unknown-openbsd/Dockerfile":"dfa5c23a6cff8c7a9a846668118c71a8406a360801fd3632fb12e8fbda6b7338","ci/dox.sh":"9ea240a4a607036235fd68c01b5d2a59f365768d103d3be774dcf34aa3ff563e","ci/ios/deploy_and_run_on_ios_simulator.rs":"3175066fd7f82390f6226d881e1a1dda9767ea2705656870e0d7774e2731800e","ci/landing-page-footer.html":"b70b3112c2147f5c967e7481061ef38bc2d79a28dd55a16fb916d9c9426da2c4","ci/landing-page-head.html":"ad69663fac7924f27d0209bc519d55838e86edfc4133713a6fd08caadac1b142","ci/run-docker.sh":"655712ba6127eb2efe2c641cf4cf1246f3e485096d72ec57b423e9d2bff6fb73","ci/run-qemu.sh":"bb859421170871ef23a8940c5e150efec0c01b95e32d2ce2d37b79a45d9d346c","ci/run.sh":"48c0318287f02889cb73a55e3e2058e79c556d11797d47a1ed66d7c55d1be12f","ci/style.rs":"60564abc1d5197ed1598426dd0d6ee9939a16d2875b03373538f58843bb616c4","src/dox.rs":"bb9a85519e0d4a8d3bfb81301759b9b938435d79da9ce2918248fb2b0df19638","src/lib.rs":"651696755aed40230cde8a505a2dfef61bea52d6349c9b9343497a5c7158ec92","src/macros.rs":"bd9802772b0e5c8b3c550d1c24307f06c0d1e4ce656b4ae1cf092142bbe5412c","src/redox.rs":"3dd158ba9fbbabe96ce2607e91dbf07b93b37c0427734118702dcb4901fe8964","src/unix/bsd/apple/b32.rs":"110ecff78da0e8d405d861447904da403d8b3f6da1f0f9dc9987633f3f04fe46","src/unix/bsd/apple/b64.rs":"2c51c1c063bfb5076ecf08fbc9371ce9473878d2e046c186eb9433955f6f8ba6","src/unix/bsd/apple/mod.rs":"8e437addefb32336671f46b93a5a8827260163abcf623c0f1613d4d685faca34","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"54b3b30c4cac35ced9197e7267f209b0f168de8a6899ab0cba290c5ae399f0e7","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"c7f46b9ae23fde5a9e245a28ed1380066e67f081323b4d253a18e9da3b97b860","src/unix/bsd/freebsdlike/freebsd/mod.rs":"ba1bd1487b41be91115a21e3968d15e4d877043ba4946cd11ed2be2ee66afc19","src/unix/bsd/freebsdlike/freebsd/x86.rs":"54311d3ebf2bb091ab22361e377e6ef9224aec2ecfe459fbfcedde4932db9c58","src/unix/bsd/freebsdlike/freebsd/x86_64.rs":"c7f46b9ae23fde5a9e245a28ed1380066e67f081323b4d253a18e9da3b97b860","src/unix/bsd/freebsdlike/mod.rs":"6b184872bf7979e5da042399a8aa3a46fff6716301f3d068912a2d6296c6ab94","src/unix/bsd/mod.rs":"c75c328dc62a621ce2a9408cb8764206e365e6f14db1bfe535a23c4728521d97","src/unix/bsd/netbsdlike/mod.rs":"50ca4e29f06669a0ebff72f2f24b2b08ff55478f580b1684e16a0cf6938a6a50","src/unix/bsd/netbsdlike/netbsd/mod.rs":"51f6f2309d59f8fb5dbd6b29ac4aa7ad431f1dddae151aef2db9f66c5f3362b0","src/unix/bsd/netbsdlike/netbsd/other/b32/mod.rs":"bd251a102bed65d5cb3459275f6ec3310fe5803ff4c9651212115548f86256d0","src/unix/bsd/netbsdlike/netbsd/other/b64/mod.rs":"927eeccaf3269d299db4c2a55f8010807bf43dfa894aea6a783215f5d3560baa","src/unix/bsd/netbsdlike/netbsd/other/mod.rs":"4d9f7091af8e166943ac6f42ce85558909e5b6e61325039bff7adfbcf4b90212","src/unix/bsd/netbsdlike/openbsdlike/bitrig.rs":"f8cd05dacd3a3136c58da5a2fbe26f703767823b28e74fe8a2b57a7bd98d6d5c","src/unix/bsd/netbsdlike/openbsdlike/mod.rs":"97a7cdb8824949e6ca7202691bde4e1c46c2cfdeb5f3735a033448b52da1bb59","src/unix/bsd/netbsdlike/openbsdlike/openbsd.rs":"31686679c2df5f11437a338b9281fa0dd4f8d061dcd895d67619992171e115c9","src/unix/bsd/netbsdlike/openbsdlike/other/b32/mod.rs":"bd251a102bed65d5cb3459275f6ec3310fe5803ff4c9651212115548f86256d0","src/unix/bsd/netbsdlike/openbsdlike/other/b64/mod.rs":"927eeccaf3269d299db4c2a55f8010807bf43dfa894aea6a783215f5d3560baa","src/unix/bsd/netbsdlike/openbsdlike/other/mod.rs":"f5d8db6f54efd05520b31b764a6bacbf612e1aebce097d2d5bfaaef3b91f37b5","src/unix/haiku/b32.rs":"bd251a102bed65d5cb3459275f6ec3310fe5803ff4c9651212115548f86256d0","src/unix/haiku/b64.rs":"b422430c550c0ba833c9206d1350861e344e3a2eb33d7d58693efb35044be1cc","src/unix/haiku/mod.rs":"f0daa9910d2beade8be1d67bab652c239e779a27e4be54f93b7bceb7afe45d30","src/unix/mod.rs":"841d523014553865ee35355425da44fe1a31944a991831efc7c046263ad44a89","src/unix/notbsd/android/b32/arm.rs":"d63a234f3a2399bdef1fa13c6a209386cb5ddac04c90f2c6d42badc8235dc49d","src/unix/notbsd/android/b32/mod.rs":"c09b53e42b286a7ec56fb28d0a3e71ec42fecaec39b2015d1d4a3338b172c570","src/unix/notbsd/android/b32/x86.rs":"10e6879dcbf136f0e907337987a0609b357e27e0f24ccb907525fcad881c24c3","src/unix/notbsd/android/b64/aarch64.rs":"d0a25e73f8d02f8412fa9237e41d3f4993b45603a2a8f8d1690bc6624a190d42","src/unix/notbsd/android/b64/mod.rs":"172d704a50d6fb9f67683c7e66ff15b5c9f7b11e7064aa8bd129228ff074393f","src/unix/notbsd/android/b64/x86_64.rs":"a2b048dad18c60ede035645bbfea2ba3dd75197c1ee0d54fb5fcab14d6c35194","src/unix/notbsd/android/mod.rs":"25d09d308f0beb7925a3efdf1fae8412251ea04f595f6852e52114df51b6747e","src/unix/notbsd/linux/mips/mips32.rs":"003b4e204e13380cd7f1ce783a0eded0f520f4e7d25634738e8ee50fc09b07c9","src/unix/notbsd/linux/mips/mips64.rs":"a8d3e38e9f9359233db04c66d7a8de957530ad2b8596661d3ac25ea81ee44a78","src/unix/notbsd/linux/mips/mod.rs":"7157a427fabff6e970288c75cb246981e316f76f3c2bb59b254d613a8389f859","src/unix/notbsd/linux/mod.rs":"c200ff5e7c7ad5d0b4c01531384acd408057665cb49175fba0d453b08c166bcf","src/unix/notbsd/linux/musl/b32/arm.rs":"d43ba5c528926261b1ccd529ab55636254360a084ab84a7ec22a4eb5afddb8f8","src/unix/notbsd/linux/musl/b32/asmjs.rs":"085e410f990312de76f74cb9bbf9fcc27d686e94334143b34511f565d1b8bb91","src/unix/notbsd/linux/musl/b32/mips.rs":"941c88bc413ba2b87eb6a6cfe03355ee148b865f39598456965b3d04b3adbbe6","src/unix/notbsd/linux/musl/b32/mod.rs":"fc7e055edbe6fa170c2bda6b3415066c1871b3e60ebb70a6329d008f77100f0b","src/unix/notbsd/linux/musl/b32/x86.rs":"ffa5781b52a7d2774a34b1e3e2034a498b919fd96eb85e88098dba2e674a3797","src/unix/notbsd/linux/musl/b64/aarch64.rs":"4009c7eaf703472daef2a70bdac910d9fc395a33689ef2e8cf1c4e692445d3f0","src/unix/notbsd/linux/musl/b64/mod.rs":"d9b03a59a54a568b07ffa4380103a926cbb45dbfd87745edef79cd971ef31283","src/unix/notbsd/linux/musl/b64/powerpc64.rs":"dc28f5b7284235d6cf5519053cac59a1c16dc39223b71cca0871e4880755f852","src/unix/notbsd/linux/musl/b64/x86_64.rs":"43291acc0dfc92c2fec8ba6ce77ee9ca3c20bcdccec18e149f95ba911cee704b","src/unix/notbsd/linux/musl/mod.rs":"0bd97702f5c84181c53f45466fb04afb9441f6950580b6ad59257e5c73089796","src/unix/notbsd/linux/other/b32/arm.rs":"d373022fd152341ec8f5d106937c7898dd68fb4c0346bd94a37526542a605e9a","src/unix/notbsd/linux/other/b32/mod.rs":"6122be151c5d85b9df6a3aaefc5cafd0657b371cafa9cb31ed9b1a394976af45","src/unix/notbsd/linux/other/b32/powerpc.rs":"cc85e75675abc37414fc7701dda7c3f6396e7b2d3c52eea7febdc41f7b033ea9","src/unix/notbsd/linux/other/b32/x86.rs":"5a6c789355da5abf64c2a0c867d2dfd4f72f004d0bd6c476fd34172b340ea1c3","src/unix/notbsd/linux/other/b64/aarch64.rs":"ce342b37a4a60c216625c8e177a50b3f328bdfd5c527e32e06c73f4aa5926829","src/unix/notbsd/linux/other/b64/mod.rs":"bee90e8d9217ee344d0e99fd483766a1b28e8b1ded930d44a0400a5e5224bb6a","src/unix/notbsd/linux/other/b64/powerpc64.rs":"fc7131f39a75a9e35d474d70b0bc829c52590dadf472ae5785972a94ffb95f12","src/unix/notbsd/linux/other/b64/sparc64.rs":"0ba7f399349bc586ebb73d0caef5c67f195c9e3a942eabfb2efd133b4cea9872","src/unix/notbsd/linux/other/b64/x86_64.rs":"bf17645b237d8059da5e9cc0f6d2d56bc665b0946a6deb8aedf46e5b44578fa6","src/unix/notbsd/linux/other/mod.rs":"46b060787a60493e71406be35b77c24048cdc54326b65c9961fbb1fb9d354de3","src/unix/notbsd/linux/s390x.rs":"2dec96036cadd8354cd56ef8dd7018e75ae92326ec7b5963bc9cdbba0c7d694b","src/unix/notbsd/mod.rs":"bb4550e749328a3aebc450a1684c136821babc3fc161093eecb231f3998cfe8c","src/unix/solaris/mod.rs":"ba70c4ebd371f2580c1fb8f3f6cd32a391ec017e1eed9812137caa94e5149a03","src/unix/uclibc/mips/mips32.rs":"31b23e466cffb86116421ec9240b86e7419aacd84b0b1b04d23c7142c8717566","src/unix/uclibc/mips/mips64.rs":"e67eec1636a998b047d89a4cda1c99cb6bc3071db017762675179a68201c4438","src/unix/uclibc/mips/mod.rs":"74817a9b1ee3998d8e0b751a555d57225f70fd979c283c94ada344a162a8b856","src/unix/uclibc/mod.rs":"3cef4087b743e5af239a8c699c2eeaeda4e19bb57a3683736c8bd87dc71e0a2d","src/unix/uclibc/x86_64/mod.rs":"98e6685519372f7b247e3bb0008ed2ee8d94fd7cca0ed2f0b9336485c734d8a9","src/windows.rs":"acccbd341e81206cb1dc66af41762c193ac0dd719d700b64f7e26c967ee7d670"},"package":"38f5c2b18a287cf78b4097db62e20f43cace381dc76ae5c0a3073067f78b7ddc"} -\ No newline at end of file -diff --git third_party/rust/libc/.travis.yml third_party/rust/libc/.travis.yml -index fa07ffc7c7b6..b7721b5e6049 100644 ---- third_party/rust/libc/.travis.yml -+++ third_party/rust/libc/.travis.yml -@@ -4,8 +4,7 @@ dist: trusty - services: - - docker - install: -- - curl https://static.rust-lang.org/rustup.sh | -- sh -s -- --add-target=$TARGET --disable-sudo -y --prefix=`rustc --print sysroot` -+ - if [ -z "$NO_ADD" ]; then rustup target add $TARGET; fi - script: - - cargo build - - cargo build --no-default-features -@@ -17,7 +16,6 @@ script: - sh ci/run.sh $TARGET; - fi - - rustc ci/style.rs && ./style src --osx_image: xcode7.3 - env: - global: - secure: "e2/3QjgRN9atOuSHp22TrYG7QVKcYUWY48Hi9b60w+r1+BhPkTseIJLte7WefRhdXtqpjjUJTooKDhnurFOeHaCT+nmBgiv+FPU893sBl4bhesY4m0vgUJVbNZcs6lTImYekWVb+aqjGdgV/XAgCw7c3kPmrZV0MzGDWL64Xaps=" -@@ -25,26 +23,26 @@ matrix: - include: - # 1.0.0 compat - - os: linux -- env: TARGET=x86_64-unknown-linux-gnu -+ env: TARGET=x86_64-unknown-linux-gnu NO_ADD=1 - rust: 1.0.0 - script: cargo build - install: - - # build documentation - - os: linux -- env: TARGET=x86_64-unknown-linux-gnu -+ env: TARGET=x86_64-unknown-linux-gnu NO_ADD=1 - rust: nightly - script: sh ci/dox.sh - - # stable compat - - os: linux -- env: TARGET=x86_64-unknown-linux-gnu -+ env: TARGET=x86_64-unknown-linux-gnu NO_ADD=1 - rust: stable - - os: linux - env: TARGET=i686-unknown-linux-gnu - rust: stable - - os: osx -- env: TARGET=x86_64-apple-darwin -+ env: TARGET=x86_64-apple-darwin NO_ADD=1 - rust: stable - - os: osx - env: TARGET=i686-apple-darwin -@@ -53,6 +51,16 @@ matrix: - env: TARGET=arm-linux-androideabi - rust: stable - - os: linux -+ env: TARGET=aarch64-linux-android -+ rust: stable -+ - os: linux -+ env: TARGET=i686-linux-android -+ rust: stable -+ # as of 2017/05/03 x86_64-linux-android are not on stable -+ - os: linux -+ env: TARGET=x86_64-linux-android -+ rust: beta -+ - os: linux - env: TARGET=x86_64-unknown-linux-musl - rust: stable - - os: linux -@@ -65,9 +73,11 @@ matrix: - env: TARGET=aarch64-unknown-linux-gnu - rust: stable - - os: osx -+ osx_image: xcode8.2 - env: TARGET=i386-apple-ios - rust: stable - - os: osx -+ osx_image: xcode8.2 - env: TARGET=x86_64-apple-ios - rust: stable - - os: linux -@@ -94,18 +104,18 @@ matrix: - - # beta - - os: linux -- env: TARGET=x86_64-unknown-linux-gnu -+ env: TARGET=x86_64-unknown-linux-gnu NO_ADD=1 - rust: beta - - os: osx -- env: TARGET=x86_64-apple-darwin -+ env: TARGET=x86_64-apple-darwin NO_ADD=1 - rust: beta - - # nightly - - os: linux -- env: TARGET=x86_64-unknown-linux-gnu -+ env: TARGET=x86_64-unknown-linux-gnu NO_ADD=1 - rust: nightly - - os: osx -- env: TARGET=x86_64-apple-darwin -+ env: TARGET=x86_64-apple-darwin NO_ADD=1 - rust: nightly - - # QEMU based targets that compile in an emulator -diff --git third_party/rust/libc/Cargo.toml third_party/rust/libc/Cargo.toml -index 084337e0d30f..ecebaed935bb 100644 ---- third_party/rust/libc/Cargo.toml -+++ third_party/rust/libc/Cargo.toml -@@ -1,7 +1,7 @@ - [package] - - name = "libc" --version = "0.2.20" -+version = "0.2.24" - authors = ["The Rust Project Developers"] - license = "MIT/Apache-2.0" - readme = "README.md" -diff --git third_party/rust/libc/README.md third_party/rust/libc/README.md -index 255283643508..67535d211e9c 100644 ---- third_party/rust/libc/README.md -+++ third_party/rust/libc/README.md -@@ -98,6 +98,25 @@ We have two automated tests running on [Travis](https://travis-ci.org/rust-lang/ - 2. Style checker - - `rustc ci/style.rs && ./style src` - -+### Releasing your change to crates.io -+ -+Now that you've done the amazing job of landing your new API or your new -+platform in this crate, the next step is to get that sweet, sweet usage from -+crates.io! The only next step is to bump the version of libc and then publish -+it. If you'd like to get a release out ASAP you can follow these steps: -+ -+1. Update the version number in `Cargo.toml`, you'll just be bumping the patch -+ version number. -+2. Run `cargo update` to regenerate the lockfile to encode your version bump in -+ the lock file. You may pull in some other updated dependencies, that's ok. -+3. Send a PR to this repository. It should [look like this][example], but it'd -+ also be nice to fill out the description with a small rationale for the -+ release (any rationale is ok though!) -+4. Once merged the release will be tagged and published by one of the libc crate -+ maintainers. -+ -+[example]: https://github.com/rust-lang/libc/pull/583 -+ - ## Platforms and Documentation - - The following platforms are currently tested and have documentation available: -@@ -111,7 +130,7 @@ Tested: - * [`i686-apple-darwin`](https://doc.rust-lang.org/libc/i686-apple-darwin/libc/) - * [`x86_64-apple-darwin`](https://doc.rust-lang.org/libc/x86_64-apple-darwin/libc/) - (OSX) -- * `i686-apple-ios` -+ * `i386-apple-ios` - * `x86_64-apple-ios` - * [`i686-unknown-linux-gnu`](https://doc.rust-lang.org/libc/i686-unknown-linux-gnu/libc/) - * [`x86_64-unknown-linux-gnu`](https://doc.rust-lang.org/libc/x86_64-unknown-linux-gnu/libc/) -diff --git third_party/rust/libc/appveyor.yml third_party/rust/libc/appveyor.yml -index a851bb87b6c3..b6c666c8b538 100644 ---- third_party/rust/libc/appveyor.yml -+++ third_party/rust/libc/appveyor.yml -@@ -7,7 +7,7 @@ environment: - - TARGET: x86_64-pc-windows-msvc - - TARGET: i686-pc-windows-msvc - install: -- - curl -sSf -o rustup-init.exe https://win.rustup.rs/ -+ - appveyor-retry appveyor DownloadFile https://win.rustup.rs/ -FileName rustup-init.exe - - rustup-init.exe -y --default-host %TARGET% - - set PATH=%PATH%;C:\Users\appveyor\.cargo\bin - - if defined MSYS2_BITS set PATH=%PATH%;C:\msys64\mingw%MSYS2_BITS%\bin -diff --git third_party/rust/libc/ci/android-accept-licenses.sh third_party/rust/libc/ci/android-accept-licenses.sh -new file mode 100755 -index 000000000000..8d8f60a5ec26 ---- /dev/null -+++ third_party/rust/libc/ci/android-accept-licenses.sh -@@ -0,0 +1,15 @@ -+#!/usr/bin/expect -f -+# ignore-license -+ -+set timeout 1800 -+set cmd [lindex $argv 0] -+set licenses [lindex $argv 1] -+ -+spawn {*}$cmd -+expect { -+ "Do you accept the license '*'*" { -+ exp_send "y\r" -+ exp_continue -+ } -+ eof -+} -diff --git third_party/rust/libc/ci/android-install-ndk.sh third_party/rust/libc/ci/android-install-ndk.sh -new file mode 100644 -index 000000000000..75bcd20f2f77 ---- /dev/null -+++ third_party/rust/libc/ci/android-install-ndk.sh -@@ -0,0 +1,36 @@ -+#!/bin/sh -+# Copyright 2016 The Rust Project Developers. See the COPYRIGHT -+# file at the top-level directory of this distribution and at -+# http://rust-lang.org/COPYRIGHT. -+# -+# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or -+# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license -+# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your -+# option. This file may not be copied, modified, or distributed -+# except according to those terms. -+ -+set -ex -+ -+curl -O https://dl.google.com/android/repository/android-ndk-r13b-linux-x86_64.zip -+unzip -q android-ndk-r13b-linux-x86_64.zip -+ -+case "$1" in -+ aarch64) -+ arch=arm64 -+ ;; -+ -+ i686) -+ arch=x86 -+ ;; -+ -+ *) -+ arch=$1 -+ ;; -+esac; -+ -+android-ndk-r13b/build/tools/make_standalone_toolchain.py \ -+ --install-dir /android/ndk-$1 \ -+ --arch $arch \ -+ --api 24 -+ -+rm -rf ./android-ndk-r13b-linux-x86_64.zip ./android-ndk-r13b -diff --git third_party/rust/libc/ci/android-install-sdk.sh third_party/rust/libc/ci/android-install-sdk.sh -new file mode 100644 -index 000000000000..d03b7623bf78 ---- /dev/null -+++ third_party/rust/libc/ci/android-install-sdk.sh -@@ -0,0 +1,57 @@ -+#!/bin/sh -+# Copyright 2016 The Rust Project Developers. See the COPYRIGHT -+# file at the top-level directory of this distribution and at -+# http://rust-lang.org/COPYRIGHT. -+# -+# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or -+# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license -+# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your -+# option. This file may not be copied, modified, or distributed -+# except according to those terms. -+ -+set -ex -+ -+# Prep the SDK and emulator -+# -+# Note that the update process requires that we accept a bunch of licenses, and -+# we can't just pipe `yes` into it for some reason, so we take the same strategy -+# located in https://github.com/appunite/docker by just wrapping it in a script -+# which apparently magically accepts the licenses. -+ -+mkdir sdk -+curl https://dl.google.com/android/repository/tools_r25.2.5-linux.zip -O -+unzip -d sdk tools_r25.2.5-linux.zip -+ -+filter="platform-tools,android-24" -+ -+case "$1" in -+ arm | armv7) -+ abi=armeabi-v7a -+ ;; -+ -+ aarch64) -+ abi=arm64-v8a -+ ;; -+ -+ i686) -+ abi=x86 -+ ;; -+ -+ x86_64) -+ abi=x86_64 -+ ;; -+ -+ *) -+ echo "invalid arch: $1" -+ exit 1 -+ ;; -+esac; -+ -+filter="$filter,sys-img-$abi-android-24" -+ -+./android-accept-licenses.sh "android - update sdk -a --no-ui --filter $filter" -+ -+echo "no" | android create avd \ -+ --name $1 \ -+ --target android-24 \ -+ --abi $abi -diff --git third_party/rust/libc/ci/android-sysimage.sh third_party/rust/libc/ci/android-sysimage.sh -new file mode 100644 -index 000000000000..9611dfeb0d52 ---- /dev/null -+++ third_party/rust/libc/ci/android-sysimage.sh -@@ -0,0 +1,52 @@ -+# Copyright 2017 The Rust Project Developers. See the COPYRIGHT -+# file at the top-level directory of this distribution and at -+# http://rust-lang.org/COPYRIGHT. -+# -+# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or -+# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license -+# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your -+# option. This file may not be copied, modified, or distributed -+# except according to those terms. -+ -+set -ex -+ -+URL=https://dl.google.com/android/repository/sys-img/android -+ -+main() { -+ local arch=$1 -+ local name=$2 -+ local dest=/system -+ local td=$(mktemp -d) -+ -+ apt-get install --no-install-recommends e2tools -+ -+ pushd $td -+ curl -O $URL/$name -+ unzip -q $name -+ -+ local system=$(find . -name system.img) -+ mkdir -p $dest/{bin,lib,lib64} -+ -+ # Extract android linker and libraries to /system -+ # This allows android executables to be run directly (or with qemu) -+ if [ $arch = "x86_64" -o $arch = "arm64" ]; then -+ e2cp -p $system:/bin/linker64 $dest/bin/ -+ e2cp -p $system:/lib64/libdl.so $dest/lib64/ -+ e2cp -p $system:/lib64/libc.so $dest/lib64/ -+ e2cp -p $system:/lib64/libm.so $dest/lib64/ -+ else -+ e2cp -p $system:/bin/linker $dest/bin/ -+ e2cp -p $system:/lib/libdl.so $dest/lib/ -+ e2cp -p $system:/lib/libc.so $dest/lib/ -+ e2cp -p $system:/lib/libm.so $dest/lib/ -+ fi -+ -+ # clean up -+ apt-get purge --auto-remove -y e2tools -+ -+ popd -+ -+ rm -rf $td -+} -+ -+main "${@}" -diff --git third_party/rust/libc/ci/docker/aarch64-linux-android/Dockerfile third_party/rust/libc/ci/docker/aarch64-linux-android/Dockerfile -new file mode 100644 -index 000000000000..7ad84926bf82 ---- /dev/null -+++ third_party/rust/libc/ci/docker/aarch64-linux-android/Dockerfile -@@ -0,0 +1,32 @@ -+FROM ubuntu:16.04 -+ -+RUN dpkg --add-architecture i386 && \ -+ apt-get update && \ -+ apt-get install -y --no-install-recommends \ -+ file \ -+ curl \ -+ ca-certificates \ -+ python \ -+ unzip \ -+ expect \ -+ openjdk-9-jre \ -+ libstdc++6:i386 \ -+ libpulse0 \ -+ gcc \ -+ libc6-dev -+ -+WORKDIR /android/ -+COPY android* /android/ -+ -+ENV ANDROID_ARCH=aarch64 -+ENV PATH=$PATH:/android/ndk-$ANDROID_ARCH/bin:/android/sdk/tools:/android/sdk/platform-tools -+ -+RUN sh /android/android-install-ndk.sh $ANDROID_ARCH -+RUN sh /android/android-install-sdk.sh $ANDROID_ARCH -+RUN mv /root/.android /tmp -+RUN chmod 777 -R /tmp/.android -+RUN chmod 755 /android/sdk/tools/* /android/sdk/tools/qemu/linux-x86_64/* -+ -+ENV PATH=$PATH:/rust/bin \ -+ CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=aarch64-linux-android-gcc \ -+ HOME=/tmp -diff --git third_party/rust/libc/ci/docker/arm-linux-androideabi/Dockerfile third_party/rust/libc/ci/docker/arm-linux-androideabi/Dockerfile -index 1911fbd87970..054941416dfb 100644 ---- third_party/rust/libc/ci/docker/arm-linux-androideabi/Dockerfile -+++ third_party/rust/libc/ci/docker/arm-linux-androideabi/Dockerfile -@@ -11,24 +11,22 @@ RUN dpkg --add-architecture i386 && \ - expect \ - openjdk-9-jre \ - libstdc++6:i386 \ -+ libpulse0 \ - gcc \ - libc6-dev - - WORKDIR /android/ -+COPY android* /android/ - --COPY install-ndk.sh /android/ --RUN sh /android/install-ndk.sh -+ENV ANDROID_ARCH=arm -+ENV PATH=$PATH:/android/ndk-$ANDROID_ARCH/bin:/android/sdk/tools:/android/sdk/platform-tools - --ENV PATH=$PATH:/android/ndk-arm/bin:/android/sdk/tools:/android/sdk/platform-tools -- --COPY install-sdk.sh accept-licenses.sh /android/ --RUN sh /android/install-sdk.sh -+RUN sh /android/android-install-ndk.sh $ANDROID_ARCH -+RUN sh /android/android-install-sdk.sh $ANDROID_ARCH -+RUN mv /root/.android /tmp -+RUN chmod 777 -R /tmp/.android -+RUN chmod 755 /android/sdk/tools/* /android/sdk/tools/qemu/linux-x86_64/* - - ENV PATH=$PATH:/rust/bin \ - CARGO_TARGET_ARM_LINUX_ANDROIDEABI_LINKER=arm-linux-androideabi-gcc \ -- ANDROID_EMULATOR_FORCE_32BIT=1 \ - HOME=/tmp --RUN chmod 755 /android/sdk/tools/* -- --RUN cp -r /root/.android /tmp --RUN chmod 777 -R /tmp/.android -diff --git third_party/rust/libc/ci/docker/arm-linux-androideabi/accept-licenses.sh third_party/rust/libc/ci/docker/arm-linux-androideabi/accept-licenses.sh -deleted file mode 100755 -index 8d8f60a5ec26..000000000000 ---- third_party/rust/libc/ci/docker/arm-linux-androideabi/accept-licenses.sh -+++ /dev/null -@@ -1,15 +0,0 @@ --#!/usr/bin/expect -f --# ignore-license -- --set timeout 1800 --set cmd [lindex $argv 0] --set licenses [lindex $argv 1] -- --spawn {*}$cmd --expect { -- "Do you accept the license '*'*" { -- exp_send "y\r" -- exp_continue -- } -- eof --} -diff --git third_party/rust/libc/ci/docker/arm-linux-androideabi/install-ndk.sh third_party/rust/libc/ci/docker/arm-linux-androideabi/install-ndk.sh -deleted file mode 100644 -index 566a3191848a..000000000000 ---- third_party/rust/libc/ci/docker/arm-linux-androideabi/install-ndk.sh -+++ /dev/null -@@ -1,21 +0,0 @@ --#!/bin/sh --# Copyright 2016 The Rust Project Developers. See the COPYRIGHT --# file at the top-level directory of this distribution and at --# http://rust-lang.org/COPYRIGHT. --# --# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or --# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license --# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your --# option. This file may not be copied, modified, or distributed --# except according to those terms. -- --set -ex -- --curl -O https://dl.google.com/android/repository/android-ndk-r13b-linux-x86_64.zip --unzip -q android-ndk-r13b-linux-x86_64.zip --android-ndk-r13b/build/tools/make_standalone_toolchain.py \ -- --install-dir /android/ndk-arm \ -- --arch arm \ -- --api 24 -- --rm -rf ./android-ndk-r13b-linux-x86_64.zip ./android-ndk-r13b -diff --git third_party/rust/libc/ci/docker/arm-linux-androideabi/install-sdk.sh third_party/rust/libc/ci/docker/arm-linux-androideabi/install-sdk.sh -deleted file mode 100644 -index 3f20837fe061..000000000000 ---- third_party/rust/libc/ci/docker/arm-linux-androideabi/install-sdk.sh -+++ /dev/null -@@ -1,33 +0,0 @@ --#!/bin/sh --# Copyright 2016 The Rust Project Developers. See the COPYRIGHT --# file at the top-level directory of this distribution and at --# http://rust-lang.org/COPYRIGHT. --# --# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or --# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license --# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your --# option. This file may not be copied, modified, or distributed --# except according to those terms. -- --set -ex -- --# Prep the SDK and emulator --# --# Note that the update process requires that we accept a bunch of licenses, and --# we can't just pipe `yes` into it for some reason, so we take the same strategy --# located in https://github.com/appunite/docker by just wrapping it in a script --# which apparently magically accepts the licenses. -- --mkdir sdk --curl https://dl.google.com/android/android-sdk_r24.4.1-linux.tgz | \ -- tar xzf - -C sdk --strip-components=1 -- --filter="platform-tools,android-21" --filter="$filter,sys-img-armeabi-v7a-android-21" -- --./accept-licenses.sh "android - update sdk -a --no-ui --filter $filter" -- --echo "no" | android create avd \ -- --name arm-21 \ -- --target android-21 \ -- --abi armeabi-v7a -diff --git third_party/rust/libc/ci/docker/i686-linux-android/Dockerfile third_party/rust/libc/ci/docker/i686-linux-android/Dockerfile -new file mode 100644 -index 000000000000..bee904379645 ---- /dev/null -+++ third_party/rust/libc/ci/docker/i686-linux-android/Dockerfile -@@ -0,0 +1,32 @@ -+FROM ubuntu:16.04 -+ -+RUN dpkg --add-architecture i386 && \ -+ apt-get update && \ -+ apt-get install -y --no-install-recommends \ -+ file \ -+ curl \ -+ ca-certificates \ -+ python \ -+ unzip \ -+ expect \ -+ openjdk-9-jre \ -+ libstdc++6:i386 \ -+ libpulse0 \ -+ gcc \ -+ libc6-dev -+ -+WORKDIR /android/ -+COPY android* /android/ -+ -+ENV ANDROID_ARCH=i686 -+ENV PATH=$PATH:/android/ndk-$ANDROID_ARCH/bin:/android/sdk/tools:/android/sdk/platform-tools -+ -+RUN sh /android/android-install-ndk.sh $ANDROID_ARCH -+RUN sh /android/android-install-sdk.sh $ANDROID_ARCH -+RUN mv /root/.android /tmp -+RUN chmod 777 -R /tmp/.android -+RUN chmod 755 /android/sdk/tools/* /android/sdk/tools/qemu/linux-x86_64/* -+ -+ENV PATH=$PATH:/rust/bin \ -+ CARGO_TARGET_I686_LINUX_ANDROID_LINKER=i686-linux-android-gcc \ -+ HOME=/tmp -diff --git third_party/rust/libc/ci/docker/i686-unknown-linux-musl/Dockerfile third_party/rust/libc/ci/docker/i686-unknown-linux-musl/Dockerfile -index 87459a1672bd..bdc2272a35dc 100644 ---- third_party/rust/libc/ci/docker/i686-unknown-linux-musl/Dockerfile -+++ third_party/rust/libc/ci/docker/i686-unknown-linux-musl/Dockerfile -@@ -1,8 +1,9 @@ - FROM ubuntu:16.10 - -+RUN dpkg --add-architecture i386 - RUN apt-get update - RUN apt-get install -y --no-install-recommends \ -- gcc make libc6-dev git curl ca-certificates -+ gcc-multilib make libc6-dev git curl ca-certificates libc6:i386 - # Below we're cross-compiling musl for i686 using the system compiler on an - # x86_64 system. This is an awkward thing to be doing and so we have to jump - # through a couple hoops to get musl to be happy. In particular: -diff --git third_party/rust/libc/ci/docker/x86_64-linux-android/Dockerfile third_party/rust/libc/ci/docker/x86_64-linux-android/Dockerfile -new file mode 100644 -index 000000000000..dfc0c83dae92 ---- /dev/null -+++ third_party/rust/libc/ci/docker/x86_64-linux-android/Dockerfile -@@ -0,0 +1,26 @@ -+FROM ubuntu:16.04 -+ -+RUN apt-get update && \ -+ apt-get install -y --no-install-recommends \ -+ ca-certificates \ -+ curl \ -+ gcc \ -+ libc-dev \ -+ python \ -+ unzip -+ -+WORKDIR /android/ -+ENV ANDROID_ARCH=x86_64 -+COPY android-install-ndk.sh /android/ -+RUN sh /android/android-install-ndk.sh $ANDROID_ARCH -+ -+# We do not run x86_64-linux-android tests on an android emulator. -+# See ci/android-sysimage.sh for informations about how tests are run. -+COPY android-sysimage.sh /android/ -+RUN bash /android/android-sysimage.sh x86_64 x86_64-21_r04.zip -+ -+ENV PATH=$PATH:/rust/bin:/android/ndk-$ANDROID_ARCH/bin \ -+ CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER=x86_64-linux-android-gcc \ -+ CC_x86_64_linux_android=x86_64-linux-android-gcc \ -+ CXX_x86_64_linux_android=x86_64-linux-android-g++ \ -+ HOME=/tmp -diff --git third_party/rust/libc/ci/ios/deploy_and_run_on_ios_simulator.rs third_party/rust/libc/ci/ios/deploy_and_run_on_ios_simulator.rs -new file mode 100644 -index 000000000000..b14615036d02 ---- /dev/null -+++ third_party/rust/libc/ci/ios/deploy_and_run_on_ios_simulator.rs -@@ -0,0 +1,171 @@ -+// Copyright 2017 The Rust Project Developers. See the COPYRIGHT -+// file at the top-level directory of this distribution and at -+// http://rust-lang.org/COPYRIGHT. -+// -+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or -+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license -+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your -+// option. This file may not be copied, modified, or distributed -+// except according to those terms. -+ -+// This is a script to deploy and execute a binary on an iOS simulator. -+// The primary use of this is to be able to run unit tests on the simulator and -+// retrieve the results. -+// -+// To do this through Cargo instead, use Dinghy -+// (https://github.com/snipsco/dinghy): cargo dinghy install, then cargo dinghy -+// test. -+ -+use std::env; -+use std::fs::{self, File}; -+use std::io::Write; -+use std::path::Path; -+use std::process; -+use std::process::Command; -+ -+macro_rules! t { -+ ($e:expr) => (match $e { -+ Ok(e) => e, -+ Err(e) => panic!("{} failed with: {}", stringify!($e), e), -+ }) -+} -+ -+// Step one: Wrap as an app -+fn package_as_simulator_app(crate_name: &str, test_binary_path: &Path) { -+ println!("Packaging simulator app"); -+ drop(fs::remove_dir_all("ios_simulator_app")); -+ t!(fs::create_dir("ios_simulator_app")); -+ t!(fs::copy(test_binary_path, -+ Path::new("ios_simulator_app").join(crate_name))); -+ -+ let mut f = t!(File::create("ios_simulator_app/Info.plist")); -+ t!(f.write_all(format!(r#" -+ <?xml version="1.0" encoding="UTF-8"?> -+ <!DOCTYPE plist PUBLIC -+ "-//Apple//DTD PLIST 1.0//EN" -+ "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -+ <plist version="1.0"> -+ <dict> -+ <key>CFBundleExecutable</key> -+ <string>{}</string> -+ <key>CFBundleIdentifier</key> -+ <string>com.rust.unittests</string> -+ </dict> -+ </plist> -+ "#, crate_name).as_bytes())); -+} -+ -+// Step two: Start the iOS simulator -+fn start_simulator() { -+ println!("Looking for iOS simulator"); -+ let output = t!(Command::new("xcrun").arg("simctl").arg("list").output()); -+ assert!(output.status.success()); -+ let mut simulator_exists = false; -+ let mut simulator_booted = false; -+ let mut found_rust_sim = false; -+ let stdout = t!(String::from_utf8(output.stdout)); -+ for line in stdout.lines() { -+ if line.contains("rust_ios") { -+ if found_rust_sim { -+ panic!("Duplicate rust_ios simulators found. Please \ -+ double-check xcrun simctl list."); -+ } -+ simulator_exists = true; -+ simulator_booted = line.contains("(Booted)"); -+ found_rust_sim = true; -+ } -+ } -+ -+ if simulator_exists == false { -+ println!("Creating iOS simulator"); -+ Command::new("xcrun") -+ .arg("simctl") -+ .arg("create") -+ .arg("rust_ios") -+ .arg("com.apple.CoreSimulator.SimDeviceType.iPhone-SE") -+ .arg("com.apple.CoreSimulator.SimRuntime.iOS-10-2") -+ .check_status(); -+ } else if simulator_booted == true { -+ println!("Shutting down already-booted simulator"); -+ Command::new("xcrun") -+ .arg("simctl") -+ .arg("shutdown") -+ .arg("rust_ios") -+ .check_status(); -+ } -+ -+ println!("Starting iOS simulator"); -+ // We can't uninstall the app (if present) as that will hang if the -+ // simulator isn't completely booted; just erase the simulator instead. -+ Command::new("xcrun").arg("simctl").arg("erase").arg("rust_ios").check_status(); -+ Command::new("xcrun").arg("simctl").arg("boot").arg("rust_ios").check_status(); -+} -+ -+// Step three: Install the app -+fn install_app_to_simulator() { -+ println!("Installing app to simulator"); -+ Command::new("xcrun") -+ .arg("simctl") -+ .arg("install") -+ .arg("booted") -+ .arg("ios_simulator_app/") -+ .check_status(); -+} -+ -+// Step four: Run the app -+fn run_app_on_simulator() { -+ println!("Running app"); -+ let output = t!(Command::new("xcrun") -+ .arg("simctl") -+ .arg("launch") -+ .arg("--console") -+ .arg("booted") -+ .arg("com.rust.unittests") -+ .output()); -+ -+ println!("stdout --\n{}\n", String::from_utf8_lossy(&output.stdout)); -+ println!("stderr --\n{}\n", String::from_utf8_lossy(&output.stderr)); -+ -+ let stdout = String::from_utf8_lossy(&output.stdout); -+ let passed = stdout.lines() -+ .find(|l| l.contains("PASSED")) -+ .map(|l| l.contains("tests")) -+ .unwrap_or(false); -+ -+ println!("Shutting down simulator"); -+ Command::new("xcrun") -+ .arg("simctl") -+ .arg("shutdown") -+ .arg("rust_ios") -+ .check_status(); -+ if !passed { -+ panic!("tests didn't pass"); -+ } -+} -+ -+trait CheckStatus { -+ fn check_status(&mut self); -+} -+ -+impl CheckStatus for Command { -+ fn check_status(&mut self) { -+ println!("\trunning: {:?}", self); -+ assert!(t!(self.status()).success()); -+ } -+} -+ -+fn main() { -+ let args: Vec<String> = env::args().collect(); -+ if args.len() != 2 { -+ println!("Usage: {} <executable>", args[0]); -+ process::exit(-1); -+ } -+ -+ let test_binary_path = Path::new(&args[1]); -+ let crate_name = test_binary_path.file_name().unwrap(); -+ -+ package_as_simulator_app(crate_name.to_str().unwrap(), test_binary_path); -+ start_simulator(); -+ install_app_to_simulator(); -+ run_app_on_simulator(); -+} -diff --git third_party/rust/libc/ci/run-docker.sh third_party/rust/libc/ci/run-docker.sh -index a7702ae1dc51..e963078af8c1 100644 ---- third_party/rust/libc/ci/run-docker.sh -+++ third_party/rust/libc/ci/run-docker.sh -@@ -5,12 +5,17 @@ set -ex - - run() { - echo $1 -- docker build -t libc ci/docker/$1 -+ # use -f so we can use ci/ as build context -+ docker build -t libc -f ci/docker/$1/Dockerfile ci/ - mkdir -p target -+ if [ -w /dev/kvm ]; then -+ kvm="--volume /dev/kvm:/dev/kvm" -+ fi - docker run \ - --user `id -u`:`id -g` \ - --rm \ - --volume $HOME/.cargo:/cargo \ -+ $kvm \ - --env CARGO_HOME=/cargo \ - --volume `rustc --print sysroot`:/rust:ro \ - --volume `pwd`:/checkout:ro \ -@@ -18,8 +23,6 @@ run() { - --env CARGO_TARGET_DIR=/checkout/target \ - --workdir /checkout \ - --privileged \ -- --interactive \ -- --tty \ - libc \ - ci/run.sh $1 - } -diff --git third_party/rust/libc/ci/run.sh third_party/rust/libc/ci/run.sh -index 179fe7a88532..3ddc7b395476 100755 ---- third_party/rust/libc/ci/run.sh -+++ third_party/rust/libc/ci/run.sh -@@ -105,14 +105,36 @@ case "$TARGET" in - esac - - case "$TARGET" in -- arm-linux-androideabi) -- emulator @arm-21 -no-window & -+ # Android emulator for x86_64 does not work on travis (missing hardware -+ # acceleration). Tests are run on case *). See ci/android-sysimage.sh for -+ # informations about how tests are run. -+ arm-linux-androideabi | aarch64-linux-android | i686-linux-android) -+ # set SHELL so android can detect a 64bits system, see -+ # http://stackoverflow.com/a/41789144 -+ # https://issues.jenkins-ci.org/browse/JENKINS-26930?focusedCommentId=230791&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-230791 -+ export SHELL=/bin/dash -+ arch=$(echo $TARGET | cut -d- -f1) -+ accel="-no-accel" -+ if emulator -accel-check; then -+ accel="" -+ fi -+ emulator @$arch -no-window $accel & - adb wait-for-device -- adb push $CARGO_TARGET_DIR/$TARGET/debug/libc-test /data/libc-test -- adb shell /data/libc-test 2>&1 | tee /tmp/out -+ adb push $CARGO_TARGET_DIR/$TARGET/debug/libc-test /data/local/tmp/libc-test -+ adb shell /data/local/tmp/libc-test 2>&1 | tee /tmp/out - grep "^PASSED .* tests" /tmp/out - ;; - -+ i386-apple-ios) -+ rustc -O ./ci/ios/deploy_and_run_on_ios_simulator.rs -+ ./deploy_and_run_on_ios_simulator $CARGO_TARGET_DIR/$TARGET/debug/libc-test -+ ;; -+ -+ x86_64-apple-ios) -+ rustc -O ./ci/ios/deploy_and_run_on_ios_simulator.rs -+ ./deploy_and_run_on_ios_simulator $CARGO_TARGET_DIR/$TARGET/debug/libc-test -+ ;; -+ - arm-unknown-linux-gnueabihf) - qemu-arm -L /usr/arm-linux-gnueabihf $CARGO_TARGET_DIR/$TARGET/debug/libc-test - ;; -diff --git third_party/rust/libc/src/dox.rs third_party/rust/libc/src/dox.rs -index fbec3f2d4e69..41aac385f47b 100644 ---- third_party/rust/libc/src/dox.rs -+++ third_party/rust/libc/src/dox.rs -@@ -26,6 +26,9 @@ mod imp { - #[lang = "copy"] - pub trait Copy {} - -+ #[lang = "freeze"] -+ pub trait Freeze {} -+ - #[lang = "sync"] - pub trait Sync {} - impl<T> Sync for T {} -diff --git third_party/rust/libc/src/lib.rs third_party/rust/libc/src/lib.rs -index 5b80aca66c9d..c17a504787db 100644 ---- third_party/rust/libc/src/lib.rs -+++ third_party/rust/libc/src/lib.rs -@@ -243,6 +243,7 @@ extern { - pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char; - pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t; - pub fn wcslen(buf: *const wchar_t) -> size_t; -+ pub fn wcstombs(dest: *mut c_char, src: *const wchar_t, n: size_t) -> ::size_t; - - pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; - pub fn memcmp(cx: *const c_void, ct: *const c_void, n: size_t) -> c_int; -diff --git third_party/rust/libc/src/unix/bsd/apple/b64.rs third_party/rust/libc/src/unix/bsd/apple/b64.rs -index 327a4b63116b..3f83230805fe 100644 ---- third_party/rust/libc/src/unix/bsd/apple/b64.rs -+++ third_party/rust/libc/src/unix/bsd/apple/b64.rs -@@ -17,3 +17,5 @@ pub const __PTHREAD_RWLOCK_SIZE__: usize = 192; - - pub const TIOCTIMESTAMP: ::c_ulong = 0x40107459; - pub const TIOCDCDTIMESTAMP: ::c_ulong = 0x40107458; -+ -+pub const FIONREAD: ::c_ulong = 0x4004667f; -diff --git third_party/rust/libc/src/unix/bsd/apple/mod.rs third_party/rust/libc/src/unix/bsd/apple/mod.rs -index afd2610e1a0a..148188b10705 100644 ---- third_party/rust/libc/src/unix/bsd/apple/mod.rs -+++ third_party/rust/libc/src/unix/bsd/apple/mod.rs -@@ -665,6 +665,12 @@ pub const F_ALLOCATEALL: ::c_uint = 0x04; - pub const F_PEOFPOSMODE: ::c_int = 3; - pub const F_VOLPOSMODE: ::c_int = 4; - -+pub const AT_FDCWD: ::c_int = -2; -+pub const AT_EACCESS: ::c_int = 0x0010; -+pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x0020; -+pub const AT_SYMLINK_FOLLOW: ::c_int = 0x0040; -+pub const AT_REMOVEDIR: ::c_int = 0x0080; -+ - pub const O_ACCMODE: ::c_int = 3; - - pub const TIOCMODG: ::c_ulong = 0x40047403; -@@ -731,6 +737,32 @@ pub const TIOCPTYGRANT: ::c_uint = 0x20007454; - pub const TIOCPTYGNAME: ::c_uint = 0x40807453; - pub const TIOCPTYUNLK: ::c_uint = 0x20007452; - -+pub const B0: speed_t = 0; -+pub const B50: speed_t = 50; -+pub const B75: speed_t = 75; -+pub const B110: speed_t = 110; -+pub const B134: speed_t = 134; -+pub const B150: speed_t = 150; -+pub const B200: speed_t = 200; -+pub const B300: speed_t = 300; -+pub const B600: speed_t = 600; -+pub const B1200: speed_t = 1200; -+pub const B1800: speed_t = 1800; -+pub const B2400: speed_t = 2400; -+pub const B4800: speed_t = 4800; -+pub const B9600: speed_t = 9600; -+pub const B19200: speed_t = 19200; -+pub const B38400: speed_t = 38400; -+pub const B7200: speed_t = 7200; -+pub const B14400: speed_t = 14400; -+pub const B28800: speed_t = 28800; -+pub const B57600: speed_t = 57600; -+pub const B76800: speed_t = 76800; -+pub const B115200: speed_t = 115200; -+pub const B230400: speed_t = 230400; -+pub const EXTA: speed_t = 19200; -+pub const EXTB: speed_t = 38400; -+ - pub const SIGTRAP: ::c_int = 5; - - pub const GLOB_APPEND : ::c_int = 0x0001; -@@ -819,13 +851,104 @@ pub const MINCORE_MODIFIED: ::c_int = 0x4; - pub const MINCORE_REFERENCED_OTHER: ::c_int = 0x8; - pub const MINCORE_MODIFIED_OTHER: ::c_int = 0x10; - --pub const AF_UNIX: ::c_int = 1; -+pub const AF_UNSPEC: ::c_int = 0; -+pub const AF_LOCAL: ::c_int = 1; -+pub const AF_UNIX: ::c_int = AF_LOCAL; - pub const AF_INET: ::c_int = 2; -+pub const AF_IMPLINK: ::c_int = 3; -+pub const AF_PUP: ::c_int = 4; -+pub const AF_CHAOS: ::c_int = 5; -+pub const AF_NS: ::c_int = 6; -+pub const AF_ISO: ::c_int = 7; -+pub const AF_OSI: ::c_int = AF_ISO; -+pub const AF_ECMA: ::c_int = 8; -+pub const AF_DATAKIT: ::c_int = 9; -+pub const AF_CCITT: ::c_int = 10; -+pub const AF_SNA: ::c_int = 11; -+pub const AF_DECnet: ::c_int = 12; -+pub const AF_DLI: ::c_int = 13; -+pub const AF_LAT: ::c_int = 14; -+pub const AF_HYLINK: ::c_int = 15; -+pub const AF_APPLETALK: ::c_int = 16; -+pub const AF_ROUTE: ::c_int = 17; -+pub const AF_LINK: ::c_int = 18; -+pub const pseudo_AF_XTP: ::c_int = 19; -+pub const AF_COIP: ::c_int = 20; -+pub const AF_CNT: ::c_int = 21; -+pub const pseudo_AF_RTIP: ::c_int = 22; -+pub const AF_IPX: ::c_int = 23; -+pub const AF_SIP: ::c_int = 24; -+pub const pseudo_AF_PIP: ::c_int = 25; -+pub const AF_ISDN: ::c_int = 28; -+pub const AF_E164: ::c_int = AF_ISDN; -+pub const pseudo_AF_KEY: ::c_int = 29; - pub const AF_INET6: ::c_int = 30; -+pub const AF_NATM: ::c_int = 31; -+pub const AF_SYSTEM: ::c_int = 32; -+pub const AF_NETBIOS: ::c_int = 33; -+pub const AF_PPP: ::c_int = 34; -+pub const pseudo_AF_HDRCMPLT: ::c_int = 35; -+#[doc(hidden)] -+pub const AF_MAX: ::c_int = 40; -+ -+pub const PF_UNSPEC: ::c_int = AF_UNSPEC; -+pub const PF_LOCAL: ::c_int = AF_LOCAL; -+pub const PF_UNIX: ::c_int = PF_LOCAL; -+pub const PF_INET: ::c_int = AF_INET; -+pub const PF_IMPLINK: ::c_int = AF_IMPLINK; -+pub const PF_PUP: ::c_int = AF_PUP; -+pub const PF_CHAOS: ::c_int = AF_CHAOS; -+pub const PF_NS: ::c_int = AF_NS; -+pub const PF_ISO: ::c_int = AF_ISO; -+pub const PF_OSI: ::c_int = AF_ISO; -+pub const PF_ECMA: ::c_int = AF_ECMA; -+pub const PF_DATAKIT: ::c_int = AF_DATAKIT; -+pub const PF_CCITT: ::c_int = AF_CCITT; -+pub const PF_SNA: ::c_int = AF_SNA; -+pub const PF_DECnet: ::c_int = AF_DECnet; -+pub const PF_DLI: ::c_int = AF_DLI; -+pub const PF_LAT: ::c_int = AF_LAT; -+pub const PF_HYLINK: ::c_int = AF_HYLINK; -+pub const PF_APPLETALK: ::c_int = AF_APPLETALK; -+pub const PF_ROUTE: ::c_int = AF_ROUTE; -+pub const PF_LINK: ::c_int = AF_LINK; -+pub const PF_XTP: ::c_int = pseudo_AF_XTP; -+pub const PF_COIP: ::c_int = AF_COIP; -+pub const PF_CNT: ::c_int = AF_CNT; -+pub const PF_SIP: ::c_int = AF_SIP; -+pub const PF_IPX: ::c_int = AF_IPX; -+pub const PF_RTIP: ::c_int = pseudo_AF_RTIP; -+pub const PF_PIP: ::c_int = pseudo_AF_PIP; -+pub const PF_ISDN: ::c_int = AF_ISDN; -+pub const PF_KEY: ::c_int = pseudo_AF_KEY; -+pub const PF_INET6: ::c_int = AF_INET6; -+pub const PF_NATM: ::c_int = AF_NATM; -+pub const PF_SYSTEM: ::c_int = AF_SYSTEM; -+pub const PF_NETBIOS: ::c_int = AF_NETBIOS; -+pub const PF_PPP: ::c_int = AF_PPP; -+#[doc(hidden)] -+pub const PF_MAX: ::c_int = AF_MAX; -+ -+#[doc(hidden)] -+pub const NET_MAXID: ::c_int = AF_MAX; -+ -+pub const NET_RT_DUMP: ::c_int = 1; -+pub const NET_RT_FLAGS: ::c_int = 2; -+pub const NET_RT_IFLIST: ::c_int = 3; -+#[doc(hidden)] -+pub const NET_RT_MAXID: ::c_int = 10; -+ -+pub const SOMAXCONN: ::c_int = 128; -+ -+pub const SOCK_MAXADDRLEN: ::c_int = 255; -+ - pub const SOCK_STREAM: ::c_int = 1; - pub const SOCK_DGRAM: ::c_int = 2; - pub const SOCK_RAW: ::c_int = 3; -+pub const SOCK_RDM: ::c_int = 4; - pub const SOCK_SEQPACKET: ::c_int = 5; -+pub const IPPROTO_ICMP: ::c_int = 1; -+pub const IPPROTO_ICMPV6: ::c_int = 58; - pub const IPPROTO_TCP: ::c_int = 6; - pub const IPPROTO_IP: ::c_int = 0; - pub const IPPROTO_IPV6: ::c_int = 41; -@@ -852,6 +975,10 @@ pub const SO_USELOOPBACK: ::c_int = 0x0040; - pub const SO_LINGER: ::c_int = 0x0080; - pub const SO_OOBINLINE: ::c_int = 0x0100; - pub const SO_REUSEPORT: ::c_int = 0x0200; -+pub const SO_TIMESTAMP: ::c_int = 0x0400; -+pub const SO_DONTTRUNC: ::c_int = 0x2000; -+pub const SO_WANTMORE: ::c_int = 0x4000; -+pub const SO_WANTOOBFLAG: ::c_int = 0x8000; - pub const SO_SNDBUF: ::c_int = 0x1001; - pub const SO_RCVBUF: ::c_int = 0x1002; - pub const SO_SNDLOWAT: ::c_int = 0x1003; -@@ -860,8 +987,31 @@ pub const SO_SNDTIMEO: ::c_int = 0x1005; - pub const SO_RCVTIMEO: ::c_int = 0x1006; - pub const SO_ERROR: ::c_int = 0x1007; - pub const SO_TYPE: ::c_int = 0x1008; -+pub const SO_NREAD: ::c_int = 0x1020; -+pub const SO_NKE: ::c_int = 0x1021; -+pub const SO_NOSIGPIPE: ::c_int = 0x1022; -+pub const SO_NOADDRERR: ::c_int = 0x1023; -+pub const SO_NWRITE: ::c_int = 0x1024; - -+pub const MSG_OOB: ::c_int = 0x1; - pub const MSG_PEEK: ::c_int = 0x2; -+pub const MSG_DONTROUTE: ::c_int = 0x4; -+pub const MSG_EOR: ::c_int = 0x8; -+pub const MSG_TRUNC: ::c_int = 0x10; -+pub const MSG_CTRUNC: ::c_int = 0x20; -+pub const MSG_WAITALL: ::c_int = 0x40; -+pub const MSG_DONTWAIT: ::c_int = 0x80; -+pub const MSG_EOF: ::c_int = 0x100; -+pub const MSG_FLUSH: ::c_int = 0x400; -+pub const MSG_HOLD: ::c_int = 0x800; -+pub const MSG_SEND: ::c_int = 0x1000; -+pub const MSG_HAVEMORE: ::c_int = 0x2000; -+pub const MSG_RCVMORE: ::c_int = 0x4000; -+// pub const MSG_COMPAT: ::c_int = 0x8000; -+ -+pub const SCM_RIGHTS: ::c_int = 0x01; -+pub const SCM_TIMESTAMP: ::c_int = 0x02; -+pub const SCM_CREDS: ::c_int = 0x03; - - pub const IFF_LOOPBACK: ::c_int = 0x8; - -@@ -888,15 +1038,6 @@ pub const MAP_JIT: ::c_int = 0x0800; - - pub const IPPROTO_RAW: ::c_int = 255; - --pub const SO_NREAD: ::c_int = 0x1020; --pub const SO_NKE: ::c_int = 0x1021; --pub const SO_NOSIGPIPE: ::c_int = 0x1022; --pub const SO_NOADDRERR: ::c_int = 0x1023; --pub const SO_NWRITE: ::c_int = 0x1024; --pub const SO_DONTTRUNC: ::c_int = 0x2000; --pub const SO_WANTMORE: ::c_int = 0x4000; --pub const SO_WANTOOBFLAG: ::c_int = 0x8000; -- - pub const _SC_ARG_MAX: ::c_int = 1; - pub const _SC_CHILD_MAX: ::c_int = 2; - pub const _SC_CLK_TCK: ::c_int = 3; -@@ -1375,6 +1516,13 @@ pub const P_ALL: idtype_t = 0; - pub const P_PID: idtype_t = 1; - pub const P_PGID: idtype_t = 2; - -+pub const XATTR_NOFOLLOW: ::c_int = 0x0001; -+pub const XATTR_CREATE: ::c_int = 0x0002; -+pub const XATTR_REPLACE: ::c_int = 0x0004; -+pub const XATTR_NOSECURITY: ::c_int = 0x0008; -+pub const XATTR_NODEFAULT: ::c_int = 0x0010; -+pub const XATTR_SHOWCOMPRESSION: ::c_int = 0x0020; -+ - f! { - pub fn WSTOPSIG(status: ::c_int) -> ::c_int { - status >> 8 -@@ -1411,6 +1559,8 @@ extern { - pub fn lio_listio(mode: ::c_int, aiocb_list: *const *mut aiocb, - nitems: ::c_int, sevp: *mut sigevent) -> ::c_int; - -+ pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; -+ - pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; - - pub fn getutxent() -> *mut utmpx; -@@ -1457,6 +1607,14 @@ extern { - pub fn pthread_setname_np(name: *const ::c_char) -> ::c_int; - pub fn pthread_get_stackaddr_np(thread: ::pthread_t) -> *mut ::c_void; - pub fn pthread_get_stacksize_np(thread: ::pthread_t) -> ::size_t; -+ pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, -+ pshared: ::c_int) -> ::c_int; -+ pub fn pthread_condattr_getpshared(attr: *const pthread_condattr_t, -+ pshared: *mut ::c_int) -> ::c_int; -+ pub fn pthread_mutexattr_setpshared(attr: *mut pthread_mutexattr_t, -+ pshared: ::c_int) -> ::c_int; -+ pub fn pthread_mutexattr_getpshared(attr: *const pthread_mutexattr_t, -+ pshared: *mut ::c_int) -> ::c_int; - pub fn __error() -> *mut ::c_int; - pub fn backtrace(buf: *mut *mut ::c_void, - sz: ::c_int) -> ::c_int; -@@ -1516,32 +1674,26 @@ extern { - pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; - -- pub fn openat(dirfd: ::c_int, pathname: *const ::c_char, -- flags: ::c_int, ...) -> ::c_int; -- pub fn faccessat(dirfd: ::c_int, pathname: *const ::c_char, -- mode: ::c_int, flags: ::c_int) -> ::c_int; -- pub fn fchmodat(dirfd: ::c_int, pathname: *const ::c_char, -- mode: ::mode_t, flags: ::c_int) -> ::c_int; -- pub fn fchownat(dirfd: ::c_int, pathname: *const ::c_char, -- owner: ::uid_t, group: ::gid_t, -+ pub fn getxattr(path: *const ::c_char, name: *const ::c_char, -+ value: *mut ::c_void, size: ::size_t, position: u32, -+ flags: ::c_int) -> ::ssize_t; -+ pub fn fgetxattr(filedes: ::c_int, name: *const ::c_char, -+ value: *mut ::c_void, size: ::size_t, position: u32, -+ flags: ::c_int) -> ::ssize_t; -+ pub fn setxattr(path: *const ::c_char, name: *const ::c_char, -+ value: *const ::c_void, size: ::size_t, position: u32, - flags: ::c_int) -> ::c_int; -- #[cfg_attr(target_os = "macos", link_name = "fstatat$INODE64")] -- pub fn fstatat(dirfd: ::c_int, pathname: *const ::c_char, -- buf: *mut stat, flags: ::c_int) -> ::c_int; -- pub fn linkat(olddirfd: ::c_int, oldpath: *const ::c_char, -- newdirfd: ::c_int, newpath: *const ::c_char, -- flags: ::c_int) -> ::c_int; -- pub fn mkdirat(dirfd: ::c_int, pathname: *const ::c_char, -- mode: ::mode_t) -> ::c_int; -- pub fn readlinkat(dirfd: ::c_int, pathname: *const ::c_char, -- buf: *mut ::c_char, bufsiz: ::size_t) -> ::ssize_t; -- pub fn renameat(olddirfd: ::c_int, oldpath: *const ::c_char, -- newdirfd: ::c_int, newpath: *const ::c_char) -- -> ::c_int; -- pub fn symlinkat(target: *const ::c_char, newdirfd: ::c_int, -- linkpath: *const ::c_char) -> ::c_int; -- pub fn unlinkat(dirfd: ::c_int, pathname: *const ::c_char, -- flags: ::c_int) -> ::c_int; -+ pub fn fsetxattr(filedes: ::c_int, name: *const ::c_char, -+ value: *const ::c_void, size: ::size_t, position: u32, -+ flags: ::c_int) -> ::c_int; -+ pub fn listxattr(path: *const ::c_char, list: *mut ::c_char, -+ size: ::size_t, flags: ::c_int) -> ::ssize_t; -+ pub fn flistxattr(filedes: ::c_int, list: *mut ::c_char, -+ size: ::size_t, flags: ::c_int) -> ::ssize_t; -+ pub fn removexattr(path: *const ::c_char, name: *const ::c_char, -+ flags: ::c_int) -> ::c_int; -+ pub fn fremovexattr(filedes: ::c_int, name: *const ::c_char, -+ flags: ::c_int) -> ::c_int; - - pub fn initgroups(user: *const ::c_char, basegroup: ::c_int) -> ::c_int; - -@@ -1549,7 +1701,9 @@ extern { - link_name = "waitid$UNIX2003")] - pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, - options: ::c_int) -> ::c_int; -- -+ pub fn brk(addr: *const ::c_void) -> *mut ::c_void; -+ pub fn sbrk(increment: ::c_int) -> *mut ::c_void; -+ pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; - } - - cfg_if! { -diff --git third_party/rust/libc/src/unix/bsd/freebsdlike/dragonfly/mod.rs third_party/rust/libc/src/unix/bsd/freebsdlike/dragonfly/mod.rs -index 926cd20af831..e60825a5226a 100644 ---- third_party/rust/libc/src/unix/bsd/freebsdlike/dragonfly/mod.rs -+++ third_party/rust/libc/src/unix/bsd/freebsdlike/dragonfly/mod.rs -@@ -344,8 +344,34 @@ pub const NOTE_TRACK: ::uint32_t = 0x00000001; - pub const NOTE_TRACKERR: ::uint32_t = 0x00000002; - pub const NOTE_CHILD: ::uint32_t = 0x00000004; - --pub const MSG_PEEK: ::c_int = 0x2; --pub const MSG_NOSIGNAL: ::c_int = 0x400; -+pub const SO_SNDSPACE: ::c_int = 0x100a; -+pub const SO_CPUHINT: ::c_int = 0x1030; -+ -+pub const AF_BLUETOOTH: ::c_int = 33; -+pub const AF_MPLS: ::c_int = 34; -+pub const AF_IEEE80211: ::c_int = 35; -+pub const AF_MAX: ::c_int = 36; -+ -+pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; -+pub const PF_MAX: ::c_int = AF_MAX; -+ -+pub const NET_RT_DUMP: ::c_int = 1; -+pub const NET_RT_FLAGS: ::c_int = 2; -+pub const NET_RT_IFLIST: ::c_int = 3; -+pub const NET_RT_MAXID: ::c_int = 4; -+ -+pub const SOMAXOPT_SIZE: ::c_int = 65536; -+ -+#[doc(hidden)] -+pub const NET_MAXID: ::c_int = AF_MAX; -+ -+pub const MSG_UNUSED09: ::c_int = 0x00000200; -+pub const MSG_NOSIGNAL: ::c_int = 0x00000400; -+pub const MSG_SYNC: ::c_int = 0x00000800; -+pub const MSG_CMSG_CLOEXEC: ::c_int = 0x00001000; -+pub const MSG_FBLOCKING: ::c_int = 0x00010000; -+pub const MSG_FNONBLOCKING: ::c_int = 0x00020000; -+pub const MSG_FMASK: ::c_int = 0xFFFF0000; - - pub const EMPTY: ::c_short = 0; - pub const RUN_LVL: ::c_short = 1; -diff --git third_party/rust/libc/src/unix/bsd/freebsdlike/freebsd/aarch64.rs third_party/rust/libc/src/unix/bsd/freebsdlike/freebsd/aarch64.rs -new file mode 100644 -index 000000000000..a2da8452c4d3 ---- /dev/null -+++ third_party/rust/libc/src/unix/bsd/freebsdlike/freebsd/aarch64.rs -@@ -0,0 +1,30 @@ -+pub type c_long = i64; -+pub type c_ulong = u64; -+pub type time_t = i64; -+pub type suseconds_t = i64; -+ -+s! { -+ pub struct stat { -+ pub st_dev: ::dev_t, -+ pub st_ino: ::ino_t, -+ pub st_mode: ::mode_t, -+ pub st_nlink: ::nlink_t, -+ pub st_uid: ::uid_t, -+ pub st_gid: ::gid_t, -+ pub st_rdev: ::dev_t, -+ pub st_atime: ::time_t, -+ pub st_atime_nsec: ::c_long, -+ pub st_mtime: ::time_t, -+ pub st_mtime_nsec: ::c_long, -+ pub st_ctime: ::time_t, -+ pub st_ctime_nsec: ::c_long, -+ pub st_size: ::off_t, -+ pub st_blocks: ::blkcnt_t, -+ pub st_blksize: ::blksize_t, -+ pub st_flags: ::fflags_t, -+ pub st_gen: ::uint32_t, -+ pub st_lspare: ::int32_t, -+ pub st_birthtime: ::time_t, -+ pub st_birthtime_nsec: ::c_long, -+ } -+} -diff --git third_party/rust/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs third_party/rust/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs -index 3c454859d6a2..fb113ded33aa 100644 ---- third_party/rust/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs -+++ third_party/rust/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs -@@ -11,6 +11,10 @@ pub type fsblkcnt_t = ::uint64_t; - pub type fsfilcnt_t = ::uint64_t; - pub type idtype_t = ::c_uint; - -+pub type key_t = ::c_long; -+pub type msglen_t = ::c_ulong; -+pub type msgqnum_t = ::c_ulong; -+ - s! { - pub struct utmpx { - pub ut_type: ::c_short, -@@ -47,6 +51,17 @@ s! { - pub d_name: [::c_char; 256], - } - -+ pub struct jail { -+ pub version: u32, -+ pub path: *mut ::c_char, -+ pub hostname: *mut ::c_char, -+ pub jailname: *mut ::c_char, -+ pub ip4s: ::c_uint, -+ pub ip6s: ::c_uint, -+ pub ip4: *mut ::in_addr, -+ pub ip6: *mut ::in6_addr, -+ } -+ - pub struct sigevent { - pub sigev_notify: ::c_int, - pub sigev_signo: ::c_int, -@@ -77,6 +92,41 @@ s! { - pub struct _sem { - data: [u32; 4], - } -+ -+ pub struct ipc_perm { -+ pub cuid: ::uid_t, -+ pub cgid: ::gid_t, -+ pub uid: ::uid_t, -+ pub gid: ::gid_t, -+ pub mode: ::mode_t, -+ pub seq: ::c_ushort, -+ pub key: ::key_t, -+ } -+ -+ pub struct msqid_ds { -+ pub msg_perm: ::ipc_perm, -+ __unused1: *mut ::c_void, -+ __unused2: *mut ::c_void, -+ pub msg_cbytes: ::msglen_t, -+ pub msg_qnum: ::msgqnum_t, -+ pub msg_qbytes: ::msglen_t, -+ pub msg_lspid: ::pid_t, -+ pub msg_lrpid: ::pid_t, -+ pub msg_stime: ::time_t, -+ pub msg_rtime: ::time_t, -+ pub msg_ctime: ::time_t, -+ } -+ -+ pub struct shmid_ds { -+ pub shm_perm: ::ipc_perm, -+ pub shm_segsz: ::size_t, -+ pub shm_lpid: ::pid_t, -+ pub shm_cpid: ::pid_t, -+ pub shm_nattch: ::c_int, -+ pub shm_atime: ::time_t, -+ pub shm_dtime: ::time_t, -+ pub shm_ctime: ::time_t, -+ } - } - - pub const SIGEV_THREAD_ID: ::c_int = 4; -@@ -322,11 +372,88 @@ pub const TIOCSIG: ::c_uint = 0x2004745f; - pub const TIOCM_DCD: ::c_int = 0x40; - pub const H4DISC: ::c_int = 0x7; - -+pub const JAIL_API_VERSION: u32 = 2; -+pub const JAIL_CREATE: ::c_int = 0x01; -+pub const JAIL_UPDATE: ::c_int = 0x02; -+pub const JAIL_ATTACH: ::c_int = 0x04; -+pub const JAIL_DYING: ::c_int = 0x08; -+pub const JAIL_SET_MASK: ::c_int = 0x0f; -+pub const JAIL_GET_MASK: ::c_int = 0x08; -+pub const JAIL_SYS_DISABLE: ::c_int = 0; -+pub const JAIL_SYS_NEW: ::c_int = 1; -+pub const JAIL_SYS_INHERIT: ::c_int = 2; -+ -+pub const SO_BINTIME: ::c_int = 0x2000; -+pub const SO_NO_OFFLOAD: ::c_int = 0x4000; -+pub const SO_NO_DDP: ::c_int = 0x8000; -+pub const SO_LABEL: ::c_int = 0x1009; -+pub const SO_PEERLABEL: ::c_int = 0x1010; -+pub const SO_LISTENQLIMIT: ::c_int = 0x1011; -+pub const SO_LISTENQLEN: ::c_int = 0x1012; -+pub const SO_LISTENINCQLEN: ::c_int = 0x1013; -+pub const SO_SETFIB: ::c_int = 0x1014; -+pub const SO_USER_COOKIE: ::c_int = 0x1015; -+pub const SO_PROTOCOL: ::c_int = 0x1016; -+pub const SO_PROTOTYPE: ::c_int = SO_PROTOCOL; -+pub const SO_VENDOR: ::c_int = 0x80000000; -+ -+pub const AF_SLOW: ::c_int = 33; -+pub const AF_SCLUSTER: ::c_int = 34; -+pub const AF_ARP: ::c_int = 35; -+pub const AF_BLUETOOTH: ::c_int = 36; -+pub const AF_IEEE80211: ::c_int = 37; -+pub const AF_INET_SDP: ::c_int = 40; -+pub const AF_INET6_SDP: ::c_int = 42; -+#[doc(hidden)] -+pub const AF_MAX: ::c_int = 42; -+ -+pub const IPPROTO_DIVERT: ::c_int = 258; -+ -+pub const PF_SLOW: ::c_int = AF_SLOW; -+pub const PF_SCLUSTER: ::c_int = AF_SCLUSTER; -+pub const PF_ARP: ::c_int = AF_ARP; -+pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; -+pub const PF_IEEE80211: ::c_int = AF_IEEE80211; -+pub const PF_INET_SDP: ::c_int = AF_INET_SDP; -+pub const PF_INET6_SDP: ::c_int = AF_INET6_SDP; -+#[doc(hidden)] -+pub const PF_MAX: ::c_int = AF_MAX; -+ -+pub const NET_RT_DUMP: ::c_int = 1; -+pub const NET_RT_FLAGS: ::c_int = 2; -+pub const NET_RT_IFLIST: ::c_int = 3; -+pub const NET_RT_IFMALIST: ::c_int = 4; -+pub const NET_RT_IFLISTL: ::c_int = 5; -+ -+// System V IPC -+pub const IPC_PRIVATE: ::key_t = 0; -+pub const IPC_CREAT: ::c_int = 0o1000; -+pub const IPC_EXCL: ::c_int = 0o2000; -+pub const IPC_NOWAIT: ::c_int = 0o4000; -+pub const IPC_RMID: ::c_int = 0; -+pub const IPC_SET: ::c_int = 1; -+pub const IPC_STAT: ::c_int = 2; -+pub const IPC_INFO: ::c_int = 3; -+pub const IPC_R : ::c_int = 0o400; -+pub const IPC_W : ::c_int = 0o200; -+pub const IPC_M : ::c_int = 0o10000; -+pub const MSG_NOERROR: ::c_int = 0o10000; -+pub const SHM_RDONLY: ::c_int = 0o10000; -+pub const SHM_RND: ::c_int = 0o20000; -+pub const SHM_R: ::c_int = 0o400; -+pub const SHM_W: ::c_int = 0o200; -+pub const SHM_LOCK: ::c_int = 11; -+pub const SHM_UNLOCK: ::c_int = 12; -+pub const SHM_STAT: ::c_int = 13; -+pub const SHM_INFO: ::c_int = 14; -+ - // The *_MAXID constants never should've been used outside of the - // FreeBSD base system. And with the exception of CTL_P1003_1B_MAXID, - // they were all removed in svn r262489. They remain here for backwards - // compatibility only, and are scheduled to be removed in libc 1.0.0. - #[doc(hidden)] -+pub const NET_MAXID: ::c_int = AF_MAX; -+#[doc(hidden)] - pub const CTL_MAXID: ::c_int = 10; - #[doc(hidden)] - pub const KERN_MAXID: ::c_int = 38; -@@ -337,7 +464,10 @@ pub const USER_MAXID: ::c_int = 21; - #[doc(hidden)] - pub const CTL_P1003_1B_MAXID: ::c_int = 26; - --pub const MSG_PEEK: ::c_int = 0x2; -+pub const MSG_NOTIFICATION: ::c_int = 0x00002000; -+pub const MSG_NBIO: ::c_int = 0x00004000; -+pub const MSG_COMPAT: ::c_int = 0x00008000; -+pub const MSG_CMSG_CLOEXEC: ::c_int = 0x00040000; - pub const MSG_NOSIGNAL: ::c_int = 0x20000; - - pub const EMPTY: ::c_short = 0; -@@ -375,6 +505,9 @@ pub const P_PID: idtype_t = 0; - pub const P_PGID: idtype_t = 2; - pub const P_ALL: idtype_t = 7; - -+pub const B460800: ::speed_t = 460800; -+pub const B921600: ::speed_t = 921600; -+ - extern { - pub fn __error() -> *mut ::c_int; - -@@ -385,6 +518,14 @@ extern { - pub fn clock_gettime(clk_id: clockid_t, tp: *mut ::timespec) -> ::c_int; - pub fn clock_settime(clk_id: clockid_t, tp: *const ::timespec) -> ::c_int; - -+ pub fn jail(jail: *mut ::jail) -> ::c_int; -+ pub fn jail_attach(jid: ::c_int) -> ::c_int; -+ pub fn jail_remove(jid: ::c_int) -> ::c_int; -+ pub fn jail_get(iov: *mut ::iovec, niov: ::c_uint, flags: ::c_int) -+ -> ::c_int; -+ pub fn jail_set(iov: *mut ::iovec, niov: ::c_uint, flags: ::c_int) -+ -> ::c_int; -+ - pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, - len: ::off_t) -> ::c_int; - pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, -@@ -403,6 +544,21 @@ extern { - pub fn freelocale(loc: ::locale_t) -> ::c_int; - pub fn waitid(idtype: idtype_t, id: ::id_t, infop: *mut ::siginfo_t, - options: ::c_int) -> ::c_int; -+ -+ pub fn ftok(pathname: *const ::c_char, proj_id: ::c_int) -> ::key_t; -+ pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; -+ pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, -+ shmflg: ::c_int) -> *mut ::c_void; -+ pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; -+ pub fn shmctl(shmid: ::c_int, cmd: ::c_int, -+ buf: *mut ::shmid_ds) -> ::c_int; -+ pub fn msgctl(msqid: ::c_int, cmd: ::c_int, -+ buf: *mut ::msqid_ds) -> ::c_int; -+ pub fn msgget(key: ::key_t, msgflg: ::c_int) -> ::c_int; -+ pub fn msgrcv(msqid: ::c_int, msgp: *mut ::c_void, msgsz: ::size_t, -+ msgtyp: ::c_long, msgflg: ::c_int) -> ::c_int; -+ pub fn msgsnd(msqid: ::c_int, msgp: *const ::c_void, msgsz: ::size_t, -+ msgflg: ::c_int) -> ::c_int; - } - - cfg_if! { -@@ -412,6 +568,9 @@ cfg_if! { - } else if #[cfg(target_arch = "x86_64")] { - mod x86_64; - pub use self::x86_64::*; -+ } else if #[cfg(target_arch = "aarch64")] { -+ mod aarch64; -+ pub use self::aarch64::*; - } else { - // Unknown target_arch - } -diff --git third_party/rust/libc/src/unix/bsd/freebsdlike/mod.rs third_party/rust/libc/src/unix/bsd/freebsdlike/mod.rs -index 875aa8f8ff10..4e635ffbfda0 100644 ---- third_party/rust/libc/src/unix/bsd/freebsdlike/mod.rs -+++ third_party/rust/libc/src/unix/bsd/freebsdlike/mod.rs -@@ -452,6 +452,11 @@ pub const F_SETFD: ::c_int = 2; - pub const F_GETFL: ::c_int = 3; - pub const F_SETFL: ::c_int = 4; - -+pub const AT_EACCESS: ::c_int = 0x100; -+pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x200; -+pub const AT_SYMLINK_FOLLOW: ::c_int = 0x400; -+pub const AT_REMOVEDIR: ::c_int = 0x800; -+ - pub const SIGTRAP: ::c_int = 5; - - pub const GLOB_APPEND : ::c_int = 0x0001; -@@ -540,13 +545,100 @@ pub const MINCORE_REFERENCED_OTHER: ::c_int = 0x8; - pub const MINCORE_MODIFIED_OTHER: ::c_int = 0x10; - pub const MINCORE_SUPER: ::c_int = 0x20; - -+pub const AF_UNSPEC: ::c_int = 0; -+pub const AF_LOCAL: ::c_int = 1; -+pub const AF_UNIX: ::c_int = AF_LOCAL; - pub const AF_INET: ::c_int = 2; -+pub const AF_IMPLINK: ::c_int = 3; -+pub const AF_PUP: ::c_int = 4; -+pub const AF_CHAOS: ::c_int = 5; -+pub const AF_NETBIOS: ::c_int = 6; -+pub const AF_ISO: ::c_int = 7; -+pub const AF_OSI: ::c_int = AF_ISO; -+pub const AF_ECMA: ::c_int = 8; -+pub const AF_DATAKIT: ::c_int = 9; -+pub const AF_CCITT: ::c_int = 10; -+pub const AF_SNA: ::c_int = 11; -+pub const AF_DECnet: ::c_int = 12; -+pub const AF_DLI: ::c_int = 13; -+pub const AF_LAT: ::c_int = 14; -+pub const AF_HYLINK: ::c_int = 15; -+pub const AF_APPLETALK: ::c_int = 16; -+pub const AF_ROUTE: ::c_int = 17; -+pub const AF_LINK: ::c_int = 18; -+pub const pseudo_AF_XTP: ::c_int = 19; -+pub const AF_COIP: ::c_int = 20; -+pub const AF_CNT: ::c_int = 21; -+pub const pseudo_AF_RTIP: ::c_int = 22; -+pub const AF_IPX: ::c_int = 23; -+pub const AF_SIP: ::c_int = 24; -+pub const pseudo_AF_PIP: ::c_int = 25; -+pub const AF_ISDN: ::c_int = 26; -+pub const AF_E164: ::c_int = AF_ISDN; -+pub const pseudo_AF_KEY: ::c_int = 27; - pub const AF_INET6: ::c_int = 28; --pub const AF_UNIX: ::c_int = 1; -+pub const AF_NATM: ::c_int = 29; -+pub const AF_ATM: ::c_int = 30; -+pub const pseudo_AF_HDRCMPLT: ::c_int = 31; -+pub const AF_NETGRAPH: ::c_int = 32; -+ -+pub const PF_UNSPEC: ::c_int = AF_UNSPEC; -+pub const PF_LOCAL: ::c_int = AF_LOCAL; -+pub const PF_UNIX: ::c_int = PF_LOCAL; -+pub const PF_INET: ::c_int = AF_INET; -+pub const PF_IMPLINK: ::c_int = AF_IMPLINK; -+pub const PF_PUP: ::c_int = AF_PUP; -+pub const PF_CHAOS: ::c_int = AF_CHAOS; -+pub const PF_NETBIOS: ::c_int = AF_NETBIOS; -+pub const PF_ISO: ::c_int = AF_ISO; -+pub const PF_OSI: ::c_int = AF_ISO; -+pub const PF_ECMA: ::c_int = AF_ECMA; -+pub const PF_DATAKIT: ::c_int = AF_DATAKIT; -+pub const PF_CCITT: ::c_int = AF_CCITT; -+pub const PF_SNA: ::c_int = AF_SNA; -+pub const PF_DECnet: ::c_int = AF_DECnet; -+pub const PF_DLI: ::c_int = AF_DLI; -+pub const PF_LAT: ::c_int = AF_LAT; -+pub const PF_HYLINK: ::c_int = AF_HYLINK; -+pub const PF_APPLETALK: ::c_int = AF_APPLETALK; -+pub const PF_ROUTE: ::c_int = AF_ROUTE; -+pub const PF_LINK: ::c_int = AF_LINK; -+pub const PF_XTP: ::c_int = pseudo_AF_XTP; -+pub const PF_COIP: ::c_int = AF_COIP; -+pub const PF_CNT: ::c_int = AF_CNT; -+pub const PF_SIP: ::c_int = AF_SIP; -+pub const PF_IPX: ::c_int = AF_IPX; -+pub const PF_RTIP: ::c_int = pseudo_AF_RTIP; -+pub const PF_PIP: ::c_int = pseudo_AF_PIP; -+pub const PF_ISDN: ::c_int = AF_ISDN; -+pub const PF_KEY: ::c_int = pseudo_AF_KEY; -+pub const PF_INET6: ::c_int = AF_INET6; -+pub const PF_NATM: ::c_int = AF_NATM; -+pub const PF_ATM: ::c_int = AF_ATM; -+pub const PF_NETGRAPH: ::c_int = AF_NETGRAPH; -+ -+pub const SOMAXCONN: ::c_int = 128; -+ -+pub const MSG_OOB: ::c_int = 0x00000001; -+pub const MSG_PEEK: ::c_int = 0x00000002; -+pub const MSG_DONTROUTE: ::c_int = 0x00000004; -+pub const MSG_EOR: ::c_int = 0x00000008; -+pub const MSG_TRUNC: ::c_int = 0x00000010; -+pub const MSG_CTRUNC: ::c_int = 0x00000020; -+pub const MSG_WAITALL: ::c_int = 0x00000040; -+pub const MSG_DONTWAIT: ::c_int = 0x00000080; -+pub const MSG_EOF: ::c_int = 0x00000100; -+ - pub const SOCK_STREAM: ::c_int = 1; - pub const SOCK_DGRAM: ::c_int = 2; - pub const SOCK_RAW: ::c_int = 3; -+pub const SOCK_RDM: ::c_int = 4; - pub const SOCK_SEQPACKET: ::c_int = 5; -+pub const SOCK_CLOEXEC: ::c_int = 0x10000000; -+pub const SOCK_NONBLOCK: ::c_int = 0x20000000; -+pub const SOCK_MAXADDRLEN: ::c_int = 255; -+pub const IPPROTO_ICMP: ::c_int = 1; -+pub const IPPROTO_ICMPV6: ::c_int = 58; - pub const IPPROTO_TCP: ::c_int = 6; - pub const IPPROTO_IP: ::c_int = 0; - pub const IPPROTO_IPV6: ::c_int = 41; -@@ -572,6 +664,9 @@ pub const SO_USELOOPBACK: ::c_int = 0x0040; - pub const SO_LINGER: ::c_int = 0x0080; - pub const SO_OOBINLINE: ::c_int = 0x0100; - pub const SO_REUSEPORT: ::c_int = 0x0200; -+pub const SO_TIMESTAMP: ::c_int = 0x0400; -+pub const SO_NOSIGPIPE: ::c_int = 0x0800; -+pub const SO_ACCEPTFILTER: ::c_int = 0x1000; - pub const SO_SNDBUF: ::c_int = 0x1001; - pub const SO_RCVBUF: ::c_int = 0x1002; - pub const SO_SNDLOWAT: ::c_int = 0x1003; -@@ -751,9 +846,43 @@ pub const SLIPDISC: ::c_int = 0x4; - pub const PPPDISC: ::c_int = 0x5; - pub const NETGRAPHDISC: ::c_int = 0x6; - -+pub const B0: speed_t = 0; -+pub const B50: speed_t = 50; -+pub const B75: speed_t = 75; -+pub const B110: speed_t = 110; -+pub const B134: speed_t = 134; -+pub const B150: speed_t = 150; -+pub const B200: speed_t = 200; -+pub const B300: speed_t = 300; -+pub const B600: speed_t = 600; -+pub const B1200: speed_t = 1200; -+pub const B1800: speed_t = 1800; -+pub const B2400: speed_t = 2400; -+pub const B4800: speed_t = 4800; -+pub const B9600: speed_t = 9600; -+pub const B19200: speed_t = 19200; -+pub const B38400: speed_t = 38400; -+pub const B7200: speed_t = 7200; -+pub const B14400: speed_t = 14400; -+pub const B28800: speed_t = 28800; -+pub const B57600: speed_t = 57600; -+pub const B76800: speed_t = 76800; -+pub const B115200: speed_t = 115200; -+pub const B230400: speed_t = 230400; -+pub const EXTA: speed_t = 19200; -+pub const EXTB: speed_t = 38400; -+ - pub const SEM_FAILED: *mut sem_t = 0 as *mut sem_t; - -+pub const CRTSCTS: ::tcflag_t = 0x00030000; -+ -+pub const AT_FDCWD: ::c_int = -100; -+ - f! { -+ pub fn WIFCONTINUED(status: ::c_int) -> bool { -+ status == 0x13 -+ } -+ - pub fn WSTOPSIG(status: ::c_int) -> ::c_int { - status >> 8 - } -@@ -789,6 +918,7 @@ extern { - pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int; - pub fn lio_listio(mode: ::c_int, aiocb_list: *const *mut aiocb, - nitems: ::c_int, sevp: *mut sigevent) -> ::c_int; -+ pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; - pub fn getnameinfo(sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, -@@ -858,6 +988,8 @@ extern { - base: ::locale_t) -> ::locale_t; - pub fn uselocale(loc: ::locale_t) -> ::locale_t; - pub fn querylocale(mask: ::c_int, loc: ::locale_t) -> *const ::c_char; -+ pub fn accept4(s: ::c_int, addr: *mut ::sockaddr, -+ addrlen: *mut ::socklen_t, flags: ::c_int) -> ::c_int; - pub fn pthread_set_name_np(tid: ::pthread_t, name: *const ::c_char); - pub fn pthread_attr_get_np(tid: ::pthread_t, - attr: *mut ::pthread_attr_t) -> ::c_int; -@@ -866,38 +998,23 @@ extern { - pub fn pthread_attr_getstack(attr: *const ::pthread_attr_t, - stackaddr: *mut *mut ::c_void, - stacksize: *mut ::size_t) -> ::c_int; -+ pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, -+ pshared: ::c_int) -> ::c_int; -+ pub fn pthread_condattr_getpshared(attr: *const pthread_condattr_t, -+ pshared: *mut ::c_int) -> ::c_int; -+ pub fn pthread_mutexattr_setpshared(attr: *mut pthread_mutexattr_t, -+ pshared: ::c_int) -> ::c_int; -+ pub fn pthread_mutexattr_getpshared(attr: *const pthread_mutexattr_t, -+ pshared: *mut ::c_int) -> ::c_int; - pub fn getpriority(which: ::c_int, who: ::c_int) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::c_int, prio: ::c_int) -> ::c_int; - -- pub fn openat(dirfd: ::c_int, pathname: *const ::c_char, -- flags: ::c_int, ...) -> ::c_int; -- pub fn faccessat(dirfd: ::c_int, pathname: *const ::c_char, -- mode: ::c_int, flags: ::c_int) -> ::c_int; -- pub fn fchmodat(dirfd: ::c_int, pathname: *const ::c_char, -- mode: ::mode_t, flags: ::c_int) -> ::c_int; -- pub fn fchownat(dirfd: ::c_int, pathname: *const ::c_char, -- owner: ::uid_t, group: ::gid_t, -- flags: ::c_int) -> ::c_int; -- pub fn fstatat(dirfd: ::c_int, pathname: *const ::c_char, -- buf: *mut stat, flags: ::c_int) -> ::c_int; -- pub fn linkat(olddirfd: ::c_int, oldpath: *const ::c_char, -- newdirfd: ::c_int, newpath: *const ::c_char, -- flags: ::c_int) -> ::c_int; -- pub fn mkdirat(dirfd: ::c_int, pathname: *const ::c_char, -- mode: ::mode_t) -> ::c_int; -- pub fn mknodat(dirfd: ::c_int, pathname: *const ::c_char, -- mode: ::mode_t, dev: dev_t) -> ::c_int; -- pub fn readlinkat(dirfd: ::c_int, pathname: *const ::c_char, -- buf: *mut ::c_char, bufsiz: ::size_t) -> ::ssize_t; -- pub fn renameat(olddirfd: ::c_int, oldpath: *const ::c_char, -- newdirfd: ::c_int, newpath: *const ::c_char) -- -> ::c_int; -- pub fn symlinkat(target: *const ::c_char, newdirfd: ::c_int, -- linkpath: *const ::c_char) -> ::c_int; -- pub fn unlinkat(dirfd: ::c_int, pathname: *const ::c_char, -- flags: ::c_int) -> ::c_int; -- pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, -- mode: ::mode_t) -> ::c_int; -+ pub fn fdopendir(fd: ::c_int) -> *mut ::DIR; -+ -+ pub fn mknodat(dirfd: ::c_int, pathname: *const ::c_char, -+ mode: ::mode_t, dev: dev_t) -> ::c_int; -+ pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, -+ mode: ::mode_t) -> ::c_int; - pub fn pthread_condattr_getclock(attr: *const pthread_condattr_t, - clock_id: *mut clockid_t) -> ::c_int; - pub fn pthread_condattr_setclock(attr: *mut pthread_condattr_t, -@@ -907,6 +1024,12 @@ extern { - abstime: *const ::timespec) -> ::c_int; - pub fn pthread_mutex_timedlock(lock: *mut pthread_mutex_t, - abstime: *const ::timespec) -> ::c_int; -+ pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; -+ pub fn ppoll(fds: *mut ::pollfd, -+ nfds: ::nfds_t, -+ timeout: *const ::timespec, -+ sigmask: *const sigset_t) -> ::c_int; -+ pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; - } - - cfg_if! { -diff --git third_party/rust/libc/src/unix/bsd/mod.rs third_party/rust/libc/src/unix/bsd/mod.rs -index 2f7024f8276a..deddca042dc4 100644 ---- third_party/rust/libc/src/unix/bsd/mod.rs -+++ third_party/rust/libc/src/unix/bsd/mod.rs -@@ -1,4 +1,4 @@ --use dox::mem; -+use dox::{mem, Option}; - - pub type c_char = i8; - pub type wchar_t = i32; -@@ -242,6 +242,8 @@ pub const IXANY: ::tcflag_t = 0x00000800; - pub const IMAXBEL: ::tcflag_t = 0x00002000; - pub const OPOST: ::tcflag_t = 0x1; - pub const ONLCR: ::tcflag_t = 0x2; -+pub const OXTABS: ::tcflag_t = 0x4; -+pub const ONOEOT: ::tcflag_t = 0x8; - pub const CSIZE: ::tcflag_t = 0x00000300; - pub const CS5: ::tcflag_t = 0x00000000; - pub const CS6: ::tcflag_t = 0x00000100; -@@ -273,7 +275,9 @@ pub const WNOHANG: ::c_int = 0x00000001; - pub const WUNTRACED: ::c_int = 0x00000002; - - pub const RTLD_NOW: ::c_int = 0x2; -+pub const RTLD_NEXT: *mut ::c_void = -1isize as *mut ::c_void; - pub const RTLD_DEFAULT: *mut ::c_void = -2isize as *mut ::c_void; -+pub const RTLD_SELF: *mut ::c_void = -3isize as *mut ::c_void; - - pub const LOG_CRON: ::c_int = 9 << 3; - pub const LOG_AUTHPRIV: ::c_int = 10 << 3; -@@ -359,6 +363,77 @@ extern { - pub fn getpeereid(socket: ::c_int, - euid: *mut ::uid_t, - egid: *mut ::gid_t) -> ::c_int; -+ -+ #[cfg_attr(target_os = "macos", link_name = "glob$INODE64")] -+ #[cfg_attr(target_os = "netbsd", link_name = "__glob30")] -+ pub fn glob(pattern: *const ::c_char, -+ flags: ::c_int, -+ errfunc: Option<extern fn(epath: *const ::c_char, -+ errno: ::c_int) -> ::c_int>, -+ pglob: *mut ::glob_t) -> ::c_int; -+ #[cfg_attr(target_os = "netbsd", link_name = "__globfree30")] -+ pub fn globfree(pglob: *mut ::glob_t); -+ -+ pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -+ -> ::c_int; -+ -+ pub fn shm_unlink(name: *const ::c_char) -> ::c_int; -+ -+ #[cfg_attr(all(target_os = "macos", target_arch = "x86_64"), -+ link_name = "seekdir$INODE64")] -+ #[cfg_attr(all(target_os = "macos", target_arch = "x86"), -+ link_name = "seekdir$INODE64$UNIX2003")] -+ pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); -+ -+ #[cfg_attr(all(target_os = "macos", target_arch = "x86_64"), -+ link_name = "telldir$INODE64")] -+ #[cfg_attr(all(target_os = "macos", target_arch = "x86"), -+ link_name = "telldir$INODE64$UNIX2003")] -+ pub fn telldir(dirp: *mut ::DIR) -> ::c_long; -+ pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -+ -> ::c_int; -+ -+ #[cfg_attr(all(target_os = "macos", target_arch = "x86"), -+ link_name = "msync$UNIX2003")] -+ #[cfg_attr(target_os = "netbsd", link_name = "__msync13")] -+ pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; -+ -+ #[cfg_attr(all(target_os = "macos", target_arch = "x86"), -+ link_name = "recvfrom$UNIX2003")] -+ pub fn recvfrom(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, -+ flags: ::c_int, addr: *mut ::sockaddr, -+ addrlen: *mut ::socklen_t) -> ::ssize_t; -+ pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; -+ pub fn futimes(fd: ::c_int, times: *const ::timeval) -> ::c_int; -+ pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; -+ -+ #[cfg_attr(all(target_os = "macos", target_arch = "x86"), -+ link_name = "bind$UNIX2003")] -+ pub fn bind(socket: ::c_int, address: *const ::sockaddr, -+ address_len: ::socklen_t) -> ::c_int; -+ -+ #[cfg_attr(all(target_os = "macos", target_arch = "x86"), -+ link_name = "writev$UNIX2003")] -+ pub fn writev(fd: ::c_int, -+ iov: *const ::iovec, -+ iovcnt: ::c_int) -> ::ssize_t; -+ #[cfg_attr(all(target_os = "macos", target_arch = "x86"), -+ link_name = "readv$UNIX2003")] -+ pub fn readv(fd: ::c_int, -+ iov: *const ::iovec, -+ iovcnt: ::c_int) -> ::ssize_t; -+ -+ #[cfg_attr(all(target_os = "macos", target_arch = "x86"), -+ link_name = "sendmsg$UNIX2003")] -+ pub fn sendmsg(fd: ::c_int, -+ msg: *const ::msghdr, -+ flags: ::c_int) -> ::ssize_t; -+ #[cfg_attr(all(target_os = "macos", target_arch = "x86"), -+ link_name = "recvmsg$UNIX2003")] -+ pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -+ -> ::ssize_t; -+ -+ pub fn sync(); - } - - cfg_if! { -diff --git third_party/rust/libc/src/unix/bsd/netbsdlike/mod.rs third_party/rust/libc/src/unix/bsd/netbsdlike/mod.rs -index e8c82883d2bb..1471e6f3841e 100644 ---- third_party/rust/libc/src/unix/bsd/netbsdlike/mod.rs -+++ third_party/rust/libc/src/unix/bsd/netbsdlike/mod.rs -@@ -356,13 +356,71 @@ pub const MADV_WILLNEED : ::c_int = 3; - pub const MADV_DONTNEED : ::c_int = 4; - pub const MADV_FREE : ::c_int = 6; - --pub const AF_UNIX: ::c_int = 1; -+pub const AF_UNSPEC: ::c_int = 0; -+pub const AF_LOCAL: ::c_int = 1; -+pub const AF_UNIX: ::c_int = AF_LOCAL; - pub const AF_INET: ::c_int = 2; -+pub const AF_IMPLINK: ::c_int = 3; -+pub const AF_PUP: ::c_int = 4; -+pub const AF_CHAOS: ::c_int = 5; -+pub const AF_NS: ::c_int = 6; -+pub const AF_ISO: ::c_int = 7; -+pub const AF_OSI: ::c_int = AF_ISO; -+pub const AF_DATAKIT: ::c_int = 9; -+pub const AF_CCITT: ::c_int = 10; -+pub const AF_SNA: ::c_int = 11; -+pub const AF_DECnet: ::c_int = 12; -+pub const AF_DLI: ::c_int = 13; -+pub const AF_LAT: ::c_int = 14; -+pub const AF_HYLINK: ::c_int = 15; -+pub const AF_APPLETALK: ::c_int = 16; -+pub const AF_LINK: ::c_int = 18; -+pub const pseudo_AF_XTP: ::c_int = 19; -+pub const AF_COIP: ::c_int = 20; -+pub const AF_CNT: ::c_int = 21; -+pub const pseudo_AF_RTIP: ::c_int = 22; -+pub const AF_IPX: ::c_int = 23; - pub const AF_INET6: ::c_int = 24; -+pub const pseudo_AF_PIP: ::c_int = 25; -+pub const AF_ISDN: ::c_int = 26; -+pub const AF_E164: ::c_int = AF_ISDN; -+pub const AF_NATM: ::c_int = 27; -+ -+pub const PF_UNSPEC: ::c_int = AF_UNSPEC; -+pub const PF_LOCAL: ::c_int = AF_LOCAL; -+pub const PF_UNIX: ::c_int = PF_LOCAL; -+pub const PF_INET: ::c_int = AF_INET; -+pub const PF_IMPLINK: ::c_int = AF_IMPLINK; -+pub const PF_PUP: ::c_int = AF_PUP; -+pub const PF_CHAOS: ::c_int = AF_CHAOS; -+pub const PF_NS: ::c_int = AF_NS; -+pub const PF_ISO: ::c_int = AF_ISO; -+pub const PF_OSI: ::c_int = AF_ISO; -+pub const PF_DATAKIT: ::c_int = AF_DATAKIT; -+pub const PF_CCITT: ::c_int = AF_CCITT; -+pub const PF_SNA: ::c_int = AF_SNA; -+pub const PF_DECnet: ::c_int = AF_DECnet; -+pub const PF_DLI: ::c_int = AF_DLI; -+pub const PF_LAT: ::c_int = AF_LAT; -+pub const PF_HYLINK: ::c_int = AF_HYLINK; -+pub const PF_APPLETALK: ::c_int = AF_APPLETALK; -+pub const PF_LINK: ::c_int = AF_LINK; -+pub const PF_XTP: ::c_int = pseudo_AF_XTP; -+pub const PF_COIP: ::c_int = AF_COIP; -+pub const PF_CNT: ::c_int = AF_CNT; -+pub const PF_IPX: ::c_int = AF_IPX; -+pub const PF_INET6: ::c_int = AF_INET6; -+pub const PF_RTIP: ::c_int = pseudo_AF_RTIP; -+pub const PF_PIP: ::c_int = pseudo_AF_PIP; -+pub const PF_ISDN: ::c_int = AF_ISDN; -+pub const PF_NATM: ::c_int = AF_NATM; -+ - pub const SOCK_STREAM: ::c_int = 1; - pub const SOCK_DGRAM: ::c_int = 2; - pub const SOCK_RAW: ::c_int = 3; - pub const SOCK_SEQPACKET: ::c_int = 5; -+pub const IPPROTO_ICMP: ::c_int = 1; -+pub const IPPROTO_ICMPV6: ::c_int = 58; - pub const IPPROTO_TCP: ::c_int = 6; - pub const IPPROTO_IP: ::c_int = 0; - pub const IPPROTO_IPV6: ::c_int = 41; -@@ -392,8 +450,22 @@ pub const SO_RCVLOWAT: ::c_int = 0x1004; - pub const SO_ERROR: ::c_int = 0x1007; - pub const SO_TYPE: ::c_int = 0x1008; - -+pub const SOMAXCONN: ::c_int = 128; -+ -+pub const MSG_OOB: ::c_int = 0x1; - pub const MSG_PEEK: ::c_int = 0x2; -+pub const MSG_DONTROUTE: ::c_int = 0x4; -+pub const MSG_EOR: ::c_int = 0x8; -+pub const MSG_TRUNC: ::c_int = 0x10; -+pub const MSG_CTRUNC: ::c_int = 0x20; -+pub const MSG_WAITALL: ::c_int = 0x40; -+pub const MSG_DONTWAIT: ::c_int = 0x80; -+pub const MSG_BCAST: ::c_int = 0x100; -+pub const MSG_MCAST: ::c_int = 0x200; - pub const MSG_NOSIGNAL: ::c_int = 0x400; -+pub const MSG_CMSG_CLOEXEC: ::c_int = 0x800; -+ -+pub const SCM_RIGHTS: ::c_int = 0x01; - - pub const IFF_LOOPBACK: ::c_int = 0x8; - -@@ -449,6 +521,32 @@ pub const LOG_NFACILITIES: ::c_int = 24; - - pub const HW_NCPU: ::c_int = 3; - -+pub const B0: speed_t = 0; -+pub const B50: speed_t = 50; -+pub const B75: speed_t = 75; -+pub const B110: speed_t = 110; -+pub const B134: speed_t = 134; -+pub const B150: speed_t = 150; -+pub const B200: speed_t = 200; -+pub const B300: speed_t = 300; -+pub const B600: speed_t = 600; -+pub const B1200: speed_t = 1200; -+pub const B1800: speed_t = 1800; -+pub const B2400: speed_t = 2400; -+pub const B4800: speed_t = 4800; -+pub const B9600: speed_t = 9600; -+pub const B19200: speed_t = 19200; -+pub const B38400: speed_t = 38400; -+pub const B7200: speed_t = 7200; -+pub const B14400: speed_t = 14400; -+pub const B28800: speed_t = 28800; -+pub const B57600: speed_t = 57600; -+pub const B76800: speed_t = 76800; -+pub const B115200: speed_t = 115200; -+pub const B230400: speed_t = 230400; -+pub const EXTA: speed_t = 19200; -+pub const EXTB: speed_t = 38400; -+ - pub const SEM_FAILED: *mut sem_t = 0 as *mut sem_t; - - f! { -@@ -499,42 +597,20 @@ extern { - pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::id_t, prio: ::c_int) -> ::c_int; - -- pub fn openat(dirfd: ::c_int, pathname: *const ::c_char, -- flags: ::c_int, ...) -> ::c_int; -- pub fn faccessat(dirfd: ::c_int, pathname: *const ::c_char, -- mode: ::c_int, flags: ::c_int) -> ::c_int; -- pub fn fchmodat(dirfd: ::c_int, pathname: *const ::c_char, -- mode: ::mode_t, flags: ::c_int) -> ::c_int; -- pub fn fchownat(dirfd: ::c_int, pathname: *const ::c_char, -- owner: ::uid_t, group: ::gid_t, -- flags: ::c_int) -> ::c_int; -- pub fn fstatat(dirfd: ::c_int, pathname: *const ::c_char, -- buf: *mut stat, flags: ::c_int) -> ::c_int; -- pub fn linkat(olddirfd: ::c_int, oldpath: *const ::c_char, -- newdirfd: ::c_int, newpath: *const ::c_char, -- flags: ::c_int) -> ::c_int; -- pub fn mkdirat(dirfd: ::c_int, pathname: *const ::c_char, -- mode: ::mode_t) -> ::c_int; -- pub fn mknodat(dirfd: ::c_int, pathname: *const ::c_char, -- mode: ::mode_t, dev: dev_t) -> ::c_int; -- pub fn readlinkat(dirfd: ::c_int, pathname: *const ::c_char, -- buf: *mut ::c_char, bufsiz: ::size_t) -> ::ssize_t; -- pub fn renameat(olddirfd: ::c_int, oldpath: *const ::c_char, -- newdirfd: ::c_int, newpath: *const ::c_char) -- -> ::c_int; -- pub fn symlinkat(target: *const ::c_char, newdirfd: ::c_int, -- linkpath: *const ::c_char) -> ::c_int; -- pub fn unlinkat(dirfd: ::c_int, pathname: *const ::c_char, -- flags: ::c_int) -> ::c_int; -- pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, -- mode: ::mode_t) -> ::c_int; -- pub fn sem_timedwait(sem: *mut sem_t, -- abstime: *const ::timespec) -> ::c_int; -- pub fn pthread_condattr_setclock(attr: *mut pthread_condattr_t, -- clock_id: clockid_t) -> ::c_int; -+ pub fn fdopendir(fd: ::c_int) -> *mut ::DIR; -+ -+ pub fn mknodat(dirfd: ::c_int, pathname: *const ::c_char, -+ mode: ::mode_t, dev: dev_t) -> ::c_int; -+ pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, -+ mode: ::mode_t) -> ::c_int; -+ pub fn sem_timedwait(sem: *mut sem_t, -+ abstime: *const ::timespec) -> ::c_int; -+ pub fn pthread_condattr_setclock(attr: *mut pthread_condattr_t, -+ clock_id: clockid_t) -> ::c_int; - pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; - pub fn pthread_mutex_timedlock(lock: *mut pthread_mutex_t, - abstime: *const ::timespec) -> ::c_int; -+ pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; - } - - cfg_if! { -diff --git third_party/rust/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs third_party/rust/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs -index 2f85513408b2..a02616792b07 100644 ---- third_party/rust/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs -+++ third_party/rust/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs -@@ -246,6 +246,12 @@ s! { - } - } - -+pub const AT_FDCWD: ::c_int = -100; -+pub const AT_EACCESS: ::c_int = 0x100; -+pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x200; -+pub const AT_SYMLINK_FOLLOW: ::c_int = 0x400; -+pub const AT_REMOVEDIR: ::c_int = 0x800; -+ - pub const LC_COLLATE_MASK: ::c_int = (1 << ::LC_COLLATE); - pub const LC_CTYPE_MASK: ::c_int = (1 << ::LC_CTYPE); - pub const LC_MONETARY_MASK: ::c_int = (1 << ::LC_MONETARY); -@@ -291,8 +297,50 @@ pub const F_MAXFD: ::c_int = 11; - pub const IPV6_JOIN_GROUP: ::c_int = 12; - pub const IPV6_LEAVE_GROUP: ::c_int = 13; - -+pub const SOCK_CONN_DGRAM: ::c_int = 6; -+pub const SOCK_DCCP: ::c_int = SOCK_CONN_DGRAM; -+pub const SOCK_NOSIGPIPE: ::c_int = 0x40000000; -+pub const SOCK_FLAGS_MASK: ::c_int = 0xf0000000; -+ - pub const SO_SNDTIMEO: ::c_int = 0x100b; - pub const SO_RCVTIMEO: ::c_int = 0x100c; -+pub const SO_ACCEPTFILTER: ::c_int = 0x1000; -+pub const SO_TIMESTAMP: ::c_int = 0x2000; -+pub const SO_OVERFLOWED: ::c_int = 0x1009; -+pub const SO_NOHEADER: ::c_int = 0x100a; -+ -+pub const AF_OROUTE: ::c_int = 17; -+pub const AF_ARP: ::c_int = 28; -+pub const pseudo_AF_KEY: ::c_int = 29; -+pub const pseudo_AF_HDRCMPLT: ::c_int = 30; -+pub const AF_BLUETOOTH: ::c_int = 31; -+pub const AF_IEEE80211: ::c_int = 32; -+pub const AF_MPLS: ::c_int = 33; -+pub const AF_ROUTE: ::c_int = 34; -+pub const AF_MAX: ::c_int = 35; -+ -+pub const NET_MAXID: ::c_int = AF_MAX; -+pub const NET_RT_DUMP: ::c_int = 1; -+pub const NET_RT_FLAGS: ::c_int = 2; -+pub const NET_RT_OOIFLIST: ::c_int = 3; -+pub const NET_RT_OIFLIST: ::c_int = 4; -+pub const NET_RT_IFLIST: ::c_int = 5; -+pub const NET_RT_MAXID: ::c_int = 6; -+ -+pub const PF_OROUTE: ::c_int = AF_OROUTE; -+pub const PF_ARP: ::c_int = AF_ARP; -+pub const PF_KEY: ::c_int = pseudo_AF_KEY; -+pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; -+pub const PF_MPLS: ::c_int = AF_MPLS; -+pub const PF_ROUTE: ::c_int = AF_ROUTE; -+pub const PF_MAX: ::c_int = AF_MAX; -+ -+pub const MSG_NBIO: ::c_int = 0x1000; -+pub const MSG_WAITFORONE: ::c_int = 0x2000; -+pub const MSG_NOTIFICATION: ::c_int = 0x4000; -+ -+pub const SCM_TIMESTAMP: ::c_int = 0x08; -+pub const SCM_CREDS: ::c_int = 0x10; - - pub const O_DSYNC : ::c_int = 0x10000; - -@@ -593,6 +641,18 @@ pub const P_ALL: idtype_t = 0; - pub const P_PID: idtype_t = 1; - pub const P_PGID: idtype_t = 4; - -+pub const B460800: ::speed_t = 460800; -+pub const B921600: ::speed_t = 921600; -+ -+// dirfd() is a macro on netbsd to access -+// the first field of the struct where dirp points to: -+// http://cvsweb.netbsd.org/bsdweb.cgi/src/include/dirent.h?rev=1.36 -+f! { -+ pub fn dirfd(dirp: *mut ::DIR) -> ::c_int { -+ unsafe { *(dirp as *const ::c_int) } -+ } -+} -+ - extern { - pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int; - pub fn aio_write(aiocbp: *mut aiocb) -> ::c_int; -@@ -668,6 +728,8 @@ extern { - pub fn newlocale(mask: ::c_int, - locale: *const ::c_char, - base: ::locale_t) -> ::locale_t; -+ #[link_name = "__settimeofday50"] -+ pub fn settimeofday(tv: *const ::timeval, tz: *const ::c_void) -> ::c_int; - } - - mod other; -diff --git third_party/rust/libc/src/unix/bsd/netbsdlike/openbsdlike/mod.rs third_party/rust/libc/src/unix/bsd/netbsdlike/openbsdlike/mod.rs -index 9d4925083318..76e458c4757e 100644 ---- third_party/rust/libc/src/unix/bsd/netbsdlike/openbsdlike/mod.rs -+++ third_party/rust/libc/src/unix/bsd/netbsdlike/openbsdlike/mod.rs -@@ -157,14 +157,64 @@ pub const ELAST : ::c_int = 91; - - pub const F_DUPFD_CLOEXEC : ::c_int = 10; - -+pub const AT_FDCWD: ::c_int = -100; -+pub const AT_EACCESS: ::c_int = 0x01; -+pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x02; -+pub const AT_SYMLINK_FOLLOW: ::c_int = 0x04; -+pub const AT_REMOVEDIR: ::c_int = 0x08; -+ - pub const RLIM_NLIMITS: ::c_int = 9; - - pub const SO_SNDTIMEO: ::c_int = 0x1005; - pub const SO_RCVTIMEO: ::c_int = 0x1006; -+pub const SO_BINDANY: ::c_int = 0x1000; -+pub const SO_NETPROC: ::c_int = 0x1020; -+pub const SO_RTABLE: ::c_int = 0x1021; -+pub const SO_PEERCRED: ::c_int = 0x1022; -+pub const SO_SPLICE: ::c_int = 0x1023; -+ -+pub const AF_ECMA: ::c_int = 8; -+pub const AF_ROUTE: ::c_int = 17; -+pub const AF_ENCAP: ::c_int = 28; -+pub const AF_SIP: ::c_int = 29; -+pub const AF_KEY: ::c_int = 30; -+pub const pseudo_AF_HDRCMPLT: ::c_int = 31; -+pub const AF_BLUETOOTH: ::c_int = 32; -+pub const AF_MPLS: ::c_int = 33; -+pub const pseudo_AF_PFLOW: ::c_int = 34; -+pub const pseudo_AF_PIPEX: ::c_int = 35; -+#[doc(hidden)] -+pub const AF_MAX: ::c_int = 36; -+ -+#[doc(hidden)] -+pub const NET_MAXID: ::c_int = AF_MAX; -+pub const NET_RT_DUMP: ::c_int = 1; -+pub const NET_RT_FLAGS: ::c_int = 2; -+pub const NET_RT_IFLIST: ::c_int = 3; -+pub const NET_RT_STATS: ::c_int = 4; -+pub const NET_RT_TABLE: ::c_int = 5; -+pub const NET_RT_IFNAMES: ::c_int = 6; -+#[doc(hidden)] -+pub const NET_RT_MAXID: ::c_int = 7; - - pub const IPV6_JOIN_GROUP: ::c_int = 12; - pub const IPV6_LEAVE_GROUP: ::c_int = 13; - -+pub const PF_ROUTE: ::c_int = AF_ROUTE; -+pub const PF_ECMA: ::c_int = AF_ECMA; -+pub const PF_ENCAP: ::c_int = AF_ENCAP; -+pub const PF_SIP: ::c_int = AF_SIP; -+pub const PF_KEY: ::c_int = AF_KEY; -+pub const PF_BPF: ::c_int = pseudo_AF_HDRCMPLT; -+pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; -+pub const PF_MPLS: ::c_int = AF_MPLS; -+pub const PF_PFLOW: ::c_int = pseudo_AF_PFLOW; -+pub const PF_PIPEX: ::c_int = pseudo_AF_PIPEX; -+#[doc(hidden)] -+pub const PF_MAX: ::c_int = AF_MAX; -+ -+pub const SCM_TIMESTAMP: ::c_int = 0x04; -+ - pub const O_DSYNC : ::c_int = 128; - - pub const MAP_RENAME : ::c_int = 0x0000; -@@ -407,6 +457,7 @@ pub const KI_MAXLOGNAME: ::c_int = 32; - pub const KI_EMULNAMELEN: ::c_int = 8; - - extern { -+ pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; - pub fn getnameinfo(sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, -diff --git third_party/rust/libc/src/unix/bsd/netbsdlike/openbsdlike/openbsd.rs third_party/rust/libc/src/unix/bsd/netbsdlike/openbsdlike/openbsd.rs -index b7fed64ede5b..8b36ee5ce6bd 100644 ---- third_party/rust/libc/src/unix/bsd/netbsdlike/openbsdlike/openbsd.rs -+++ third_party/rust/libc/src/unix/bsd/netbsdlike/openbsdlike/openbsd.rs -@@ -26,3 +26,8 @@ s! { - pub int_n_sign_posn: ::c_char, - } - } -+ -+extern { -+ pub fn accept4(s: ::c_int, addr: *mut ::sockaddr, -+ addrlen: *mut ::socklen_t, flags: ::c_int) -> ::c_int; -+} -diff --git third_party/rust/libc/src/unix/haiku/mod.rs third_party/rust/libc/src/unix/haiku/mod.rs -index d62a31ed2d19..e90aa306fddc 100644 ---- third_party/rust/libc/src/unix/haiku/mod.rs -+++ third_party/rust/libc/src/unix/haiku/mod.rs -@@ -1,4 +1,4 @@ --use dox::mem; -+use dox::{mem, Option}; - - pub type rlim_t = ::uintptr_t; - pub type sa_family_t = u8; -@@ -536,6 +536,8 @@ pub const AF_UNIX: ::c_int = 9; - pub const AF_INET: ::c_int = 1; - pub const AF_INET6: ::c_int = 6; - pub const SOCK_RAW: ::c_int = 3; -+pub const IPPROTO_ICMP: ::c_int = 1; -+pub const IPPROTO_ICMPV6: ::c_int = 58; - pub const IPPROTO_TCP: ::c_int = 6; - pub const IPPROTO_IP: ::c_int = 0; - pub const IPPROTO_IPV6: ::c_int = 41; -@@ -747,6 +749,7 @@ extern { - pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; - pub fn mprotect(addr: *const ::c_void, len: ::size_t, prot: ::c_int) - -> ::c_int; -+ pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; - pub fn getnameinfo(sa: *const ::sockaddr, - salen: ::socklen_t, - host: *mut ::c_char, -@@ -758,6 +761,50 @@ extern { - abstime: *const ::timespec) -> ::c_int; - pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, - options: ::c_int) -> ::c_int; -+ -+ pub fn fdopendir(fd: ::c_int) -> *mut ::DIR; -+ pub fn glob(pattern: *const ::c_char, -+ flags: ::c_int, -+ errfunc: Option<extern fn(epath: *const ::c_char, -+ errno: ::c_int) -> ::c_int>, -+ pglob: *mut ::glob_t) -> ::c_int; -+ pub fn globfree(pglob: *mut ::glob_t); -+ -+ pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -+ -> ::c_int; -+ -+ pub fn shm_unlink(name: *const ::c_char) -> ::c_int; -+ -+ pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); -+ -+ pub fn telldir(dirp: *mut ::DIR) -> ::c_long; -+ pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -+ -> ::c_int; -+ -+ pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; -+ -+ pub fn recvfrom(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, -+ flags: ::c_int, addr: *mut ::sockaddr, -+ addrlen: *mut ::socklen_t) -> ::ssize_t; -+ pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; -+ pub fn futimes(fd: ::c_int, times: *const ::timeval) -> ::c_int; -+ pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; -+ -+ pub fn bind(socket: ::c_int, address: *const ::sockaddr, -+ address_len: ::socklen_t) -> ::c_int; -+ -+ pub fn writev(fd: ::c_int, -+ iov: *const ::iovec, -+ iovcnt: ::c_int) -> ::ssize_t; -+ pub fn readv(fd: ::c_int, -+ iov: *const ::iovec, -+ iovcnt: ::c_int) -> ::ssize_t; -+ -+ pub fn sendmsg(fd: ::c_int, -+ msg: *const ::msghdr, -+ flags: ::c_int) -> ::ssize_t; -+ pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -+ -> ::ssize_t; - } - - cfg_if! { -diff --git third_party/rust/libc/src/unix/mod.rs third_party/rust/libc/src/unix/mod.rs -index 427553d13ebf..14bf9c5393e2 100644 ---- third_party/rust/libc/src/unix/mod.rs -+++ third_party/rust/libc/src/unix/mod.rs -@@ -124,6 +124,20 @@ s! { - // Actually a union of an int and a void* - pub sival_ptr: *mut ::c_void - } -+ -+ // <sys/time.h> -+ pub struct itimerval { -+ pub it_interval: ::timeval, -+ pub it_value: ::timeval, -+ } -+ -+ // <sys/times.h> -+ pub struct tms { -+ pub tms_utime: ::clock_t, -+ pub tms_stime: ::clock_t, -+ pub tms_cutime: ::clock_t, -+ pub tms_cstime: ::clock_t, -+ } - } - - pub const SIG_DFL: sighandler_t = 0 as sighandler_t; -@@ -242,6 +256,7 @@ cfg_if! { - #[link(name = "c")] - #[link(name = "m")] - #[link(name = "rt")] -+ #[link(name = "pthread")] - extern {} - } - } -@@ -275,10 +290,6 @@ extern { - pub fn connect(socket: ::c_int, address: *const sockaddr, - len: socklen_t) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), -- link_name = "bind$UNIX2003")] -- pub fn bind(socket: ::c_int, address: *const sockaddr, -- address_len: socklen_t) -> ::c_int; -- #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "listen$UNIX2003")] - pub fn listen(socket: ::c_int, backlog: ::c_int) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), -@@ -350,8 +361,12 @@ extern { - link_name = "opendir$INODE64$UNIX2003")] - #[cfg_attr(target_os = "netbsd", link_name = "__opendir30")] - pub fn opendir(dirname: *const c_char) -> *mut ::DIR; -+ #[cfg_attr(target_os = "macos", link_name = "readdir$INODE64")] -+ #[cfg_attr(target_os = "netbsd", link_name = "__readdir30")] -+ pub fn readdir(dirp: *mut ::DIR) -> *mut ::dirent; - #[cfg_attr(target_os = "macos", link_name = "readdir_r$INODE64")] - #[cfg_attr(target_os = "netbsd", link_name = "__readdir_r30")] -+ #[cfg_attr(target_os = "solaris", link_name = "__posix_readdir_r")] - pub fn readdir_r(dirp: *mut ::DIR, entry: *mut ::dirent, - result: *mut *mut ::dirent) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), -@@ -363,6 +378,36 @@ extern { - link_name = "rewinddir$INODE64$UNIX2003")] - pub fn rewinddir(dirp: *mut ::DIR); - -+ pub fn openat(dirfd: ::c_int, pathname: *const ::c_char, -+ flags: ::c_int, ...) -> ::c_int; -+ pub fn faccessat(dirfd: ::c_int, pathname: *const ::c_char, -+ mode: ::c_int, flags: ::c_int) -> ::c_int; -+ pub fn fchmodat(dirfd: ::c_int, pathname: *const ::c_char, -+ mode: ::mode_t, flags: ::c_int) -> ::c_int; -+ pub fn fchown(fd: ::c_int, -+ owner: ::uid_t, -+ group: ::gid_t) -> ::c_int; -+ pub fn fchownat(dirfd: ::c_int, pathname: *const ::c_char, -+ owner: ::uid_t, group: ::gid_t, -+ flags: ::c_int) -> ::c_int; -+ #[cfg_attr(target_os = "macos", link_name = "fstatat$INODE64")] -+ pub fn fstatat(dirfd: ::c_int, pathname: *const ::c_char, -+ buf: *mut stat, flags: ::c_int) -> ::c_int; -+ pub fn linkat(olddirfd: ::c_int, oldpath: *const ::c_char, -+ newdirfd: ::c_int, newpath: *const ::c_char, -+ flags: ::c_int) -> ::c_int; -+ pub fn mkdirat(dirfd: ::c_int, pathname: *const ::c_char, -+ mode: ::mode_t) -> ::c_int; -+ pub fn readlinkat(dirfd: ::c_int, pathname: *const ::c_char, -+ buf: *mut ::c_char, bufsiz: ::size_t) -> ::ssize_t; -+ pub fn renameat(olddirfd: ::c_int, oldpath: *const ::c_char, -+ newdirfd: ::c_int, newpath: *const ::c_char) -+ -> ::c_int; -+ pub fn symlinkat(target: *const ::c_char, newdirfd: ::c_int, -+ linkpath: *const ::c_char) -> ::c_int; -+ pub fn unlinkat(dirfd: ::c_int, pathname: *const ::c_char, -+ flags: ::c_int) -> ::c_int; -+ - pub fn access(path: *const c_char, amode: ::c_int) -> ::c_int; - pub fn alarm(seconds: ::c_uint) -> ::c_uint; - pub fn chdir(dir: *const c_char) -> ::c_int; -@@ -374,7 +419,9 @@ extern { - pub fn lchown(path: *const c_char, uid: uid_t, - gid: gid_t) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), -- link_name = "close$UNIX2003")] -+ link_name = "close$NOCANCEL$UNIX2003")] -+ #[cfg_attr(all(target_os = "macos", target_arch = "x86_64"), -+ link_name = "close$NOCANCEL")] - pub fn close(fd: ::c_int) -> ::c_int; - pub fn dup(fd: ::c_int) -> ::c_int; - pub fn dup2(src: ::c_int, dst: ::c_int) -> ::c_int; -@@ -425,6 +472,7 @@ extern { - pub fn read(fd: ::c_int, buf: *mut ::c_void, count: ::size_t) - -> ::ssize_t; - pub fn rmdir(path: *const c_char) -> ::c_int; -+ pub fn seteuid(uid: uid_t) -> ::c_int; - pub fn setgid(gid: gid_t) -> ::c_int; - pub fn setpgid(pid: pid_t, pgid: pid_t) -> ::c_int; - pub fn setsid() -> pid_t; -@@ -535,6 +583,8 @@ extern { - #[cfg_attr(target_os = "netbsd", link_name = "__gettimeofday50")] - pub fn gettimeofday(tp: *mut ::timeval, - tz: *mut ::c_void) -> ::c_int; -+ #[cfg_attr(target_os = "netbsd", link_name = "__times13")] -+ pub fn times(buf: *mut ::tms) -> ::clock_t; - - pub fn pthread_self() -> ::pthread_t; - pub fn pthread_create(native: *mut ::pthread_t, -@@ -545,6 +595,10 @@ extern { - link_name = "pthread_join$UNIX2003")] - pub fn pthread_join(native: ::pthread_t, - value: *mut *mut ::c_void) -> ::c_int; -+ pub fn pthread_atfork(prepare: Option<unsafe extern fn()>, -+ parent: Option<unsafe extern fn()>, -+ child: Option<unsafe extern fn()>) -> ::c_int; -+ pub fn pthread_exit(value: *mut ::c_void); - pub fn pthread_attr_init(attr: *mut ::pthread_attr_t) -> ::c_int; - pub fn pthread_attr_destroy(attr: *mut ::pthread_attr_t) -> ::c_int; - pub fn pthread_attr_setstacksize(attr: *mut ::pthread_attr_t, -@@ -638,6 +692,7 @@ extern { - oss: *mut stack_t) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch ="x86"), - link_name = "sigwait$UNIX2003")] -+ #[cfg_attr(target_os = "solaris", link_name = "__posix_sigwait")] - pub fn sigwait(set: *const sigset_t, - sig: *mut ::c_int) -> ::c_int; - -@@ -658,6 +713,14 @@ extern { - res: *mut *mut addrinfo) -> ::c_int; - pub fn freeaddrinfo(res: *mut addrinfo); - pub fn gai_strerror(errcode: ::c_int) -> *const ::c_char; -+ #[cfg_attr(any( -+ all(target_os = "linux", not(target_env = "musl")), -+ target_os = "freebsd", -+ target_os = "dragonfly"), -+ link_name = "__res_init")] -+ #[cfg_attr(any(target_os = "macos", target_os = "ios"), -+ link_name = "res_9_init")] -+ pub fn res_init() -> ::c_int; - - #[cfg_attr(target_os = "netbsd", link_name = "__gmtime_r50")] - pub fn gmtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; -@@ -669,22 +732,14 @@ extern { - pub fn mktime(tm: *mut tm) -> time_t; - #[cfg_attr(target_os = "netbsd", link_name = "__time50")] - pub fn time(time: *mut time_t) -> time_t; -+ #[cfg_attr(target_os = "netbsd", link_name = "__gmtime50")] -+ pub fn gmtime(time_p: *const time_t) -> *mut tm; - #[cfg_attr(target_os = "netbsd", link_name = "__locatime50")] -- pub fn localtime(time: *const time_t) -> *mut tm; -+ pub fn localtime(time_p: *const time_t) -> *mut tm; - - #[cfg_attr(target_os = "netbsd", link_name = "__mknod50")] - pub fn mknod(pathname: *const ::c_char, mode: ::mode_t, - dev: ::dev_t) -> ::c_int; -- #[cfg_attr(all(target_os = "macos", target_arch = "x86"), -- link_name = "writev$UNIX2003")] -- pub fn writev(fd: ::c_int, -- iov: *const ::iovec, -- iovcnt: ::c_int) -> ::ssize_t; -- #[cfg_attr(all(target_os = "macos", target_arch = "x86"), -- link_name = "readv$UNIX2003")] -- pub fn readv(fd: ::c_int, -- iov: *const ::iovec, -- iovcnt: ::c_int) -> ::ssize_t; - pub fn uname(buf: *mut ::utsname) -> ::c_int; - pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int; - pub fn gethostname(name: *mut ::c_char, len: ::size_t) -> ::c_int; -@@ -705,14 +760,6 @@ extern { - #[cfg_attr(target_os = "netbsd", link_name = "__putenv50")] - pub fn putenv(string: *mut c_char) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), -- link_name = "sendmsg$UNIX2003")] -- pub fn sendmsg(fd: ::c_int, -- msg: *const msghdr, -- flags: ::c_int) -> ::ssize_t; -- #[cfg_attr(all(target_os = "macos", target_arch = "x86"), -- link_name = "recvmsg$UNIX2003")] -- pub fn recvmsg(fd: ::c_int, msg: *mut msghdr, flags: ::c_int) -> ::ssize_t; -- #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "poll$UNIX2003")] - pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: ::c_int) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86_64"), -@@ -743,58 +790,14 @@ extern { - pshared: ::c_int, - value: ::c_uint) - -> ::c_int; --} -- --// TODO: get rid of this cfg(not(...)) --#[cfg(not(target_os = "android"))] // " if " -- appease style checker --extern { -- #[cfg_attr(target_os = "macos", link_name = "glob$INODE64")] -- #[cfg_attr(target_os = "netbsd", link_name = "__glob30")] -- pub fn glob(pattern: *const c_char, -- flags: ::c_int, -- errfunc: Option<extern fn(epath: *const c_char, -- errno: ::c_int) -> ::c_int>, -- pglob: *mut glob_t) -> ::c_int; -- #[cfg_attr(target_os = "netbsd", link_name = "__globfree30")] -- pub fn globfree(pglob: *mut glob_t); -- -- pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -- -> ::c_int; -- -- pub fn shm_unlink(name: *const c_char) -> ::c_int; -- -- #[cfg_attr(all(target_os = "macos", target_arch = "x86_64"), -- link_name = "seekdir$INODE64")] -- #[cfg_attr(all(target_os = "macos", target_arch = "x86"), -- link_name = "seekdir$INODE64$UNIX2003")] -- pub fn seekdir(dirp: *mut ::DIR, loc: c_long); -- -- #[cfg_attr(all(target_os = "macos", target_arch = "x86_64"), -- link_name = "telldir$INODE64")] -- #[cfg_attr(all(target_os = "macos", target_arch = "x86"), -- link_name = "telldir$INODE64$UNIX2003")] -- pub fn telldir(dirp: *mut ::DIR) -> c_long; -+ pub fn statvfs(path: *const c_char, buf: *mut statvfs) -> ::c_int; -+ pub fn fstatvfs(fd: ::c_int, buf: *mut statvfs) -> ::c_int; - -- pub fn getsid(pid: pid_t) -> pid_t; -- pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -- -> ::c_int; - pub fn readlink(path: *const c_char, - buf: *mut c_char, - bufsz: ::size_t) - -> ::ssize_t; - -- #[cfg_attr(all(target_os = "macos", target_arch = "x86"), -- link_name = "msync$UNIX2003")] -- #[cfg_attr(target_os = "netbsd", link_name = "__msync13")] -- pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; -- pub fn sysconf(name: ::c_int) -> c_long; -- #[cfg_attr(all(target_os = "macos", target_arch = "x86"), -- link_name = "recvfrom$UNIX2003")] -- pub fn recvfrom(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, -- flags: ::c_int, addr: *mut sockaddr, -- addrlen: *mut socklen_t) -> ::ssize_t; -- pub fn mkfifo(path: *const c_char, mode: mode_t) -> ::c_int; -- - #[cfg_attr(target_os = "netbsd", link_name = "__sigemptyset14")] - pub fn sigemptyset(set: *mut sigset_t) -> ::c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__sigaddset14")] -@@ -805,6 +808,24 @@ extern { - pub fn sigdelset(set: *mut sigset_t, signum: ::c_int) -> ::c_int; - #[cfg_attr(target_os = "netbsd", link_name = "__sigismember14")] - pub fn sigismember(set: *const sigset_t, signum: ::c_int) -> ::c_int; -+ -+ #[cfg_attr(target_os = "netbsd", link_name = "__sigprocmask14")] -+ pub fn sigprocmask(how: ::c_int, -+ set: *const sigset_t, -+ oldset: *mut sigset_t) -+ -> ::c_int; -+ #[cfg_attr(target_os = "netbsd", link_name = "__sigpending14")] -+ pub fn sigpending(set: *mut sigset_t) -> ::c_int; -+ -+ #[cfg_attr(target_os = "netbsd", link_name = "__timegm50")] -+ pub fn timegm(tm: *mut ::tm) -> time_t; -+ -+ pub fn getsid(pid: pid_t) -> pid_t; -+ -+ pub fn sysconf(name: ::c_int) -> ::c_long; -+ -+ pub fn mkfifo(path: *const c_char, mode: mode_t) -> ::c_int; -+ - #[cfg_attr(all(target_os = "macos", target_arch = "x86_64"), - link_name = "pselect$1050")] - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), -@@ -820,17 +841,15 @@ extern { - offset: ::off_t, - whence: ::c_int) -> ::c_int; - pub fn ftello(stream: *mut ::FILE) -> ::off_t; -- #[cfg_attr(target_os = "netbsd", link_name = "__timegm50")] -- pub fn timegm(tm: *mut ::tm) -> time_t; -- pub fn statvfs(path: *const c_char, buf: *mut statvfs) -> ::c_int; -- pub fn fstatvfs(fd: ::c_int, buf: *mut statvfs) -> ::c_int; - #[cfg_attr(all(target_os = "macos", target_arch = "x86"), - link_name = "tcdrain$UNIX2003")] - pub fn tcdrain(fd: ::c_int) -> ::c_int; - pub fn cfgetispeed(termios: *const ::termios) -> ::speed_t; - pub fn cfgetospeed(termios: *const ::termios) -> ::speed_t; -+ pub fn cfmakeraw(termios: *mut ::termios); - pub fn cfsetispeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; - pub fn cfsetospeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; -+ pub fn cfsetspeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; - pub fn tcgetattr(fd: ::c_int, termios: *mut ::termios) -> ::c_int; - pub fn tcsetattr(fd: ::c_int, - optional_actions: ::c_int, -@@ -839,10 +858,9 @@ extern { - pub fn tcflush(fd: ::c_int, action: ::c_int) -> ::c_int; - pub fn tcsendbreak(fd: ::c_int, duration: ::c_int) -> ::c_int; - pub fn mkstemp(template: *mut ::c_char) -> ::c_int; -- pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; - pub fn mkdtemp(template: *mut ::c_char) -> *mut ::c_char; -- pub fn futimes(fd: ::c_int, times: *const ::timeval) -> ::c_int; -- pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; -+ -+ pub fn tmpnam(ptr: *mut ::c_char) -> *mut ::c_char; - - pub fn openlog(ident: *const ::c_char, logopt: ::c_int, facility: ::c_int); - pub fn closelog(); -@@ -859,10 +877,13 @@ extern { - } - - cfg_if! { -- if #[cfg(any(target_os = "linux", -- target_os = "android", -- target_os = "emscripten", -- target_os = "fuchsia"))] { -+ if #[cfg(target_env = "uclibc")] { -+ mod uclibc; -+ pub use self::uclibc::*; -+ } else if #[cfg(any(target_os = "linux", -+ target_os = "android", -+ target_os = "emscripten", -+ target_os = "fuchsia"))] { - mod notbsd; - pub use self::notbsd::*; - } else if #[cfg(any(target_os = "macos", -diff --git third_party/rust/libc/src/unix/notbsd/android/b32.rs third_party/rust/libc/src/unix/notbsd/android/b32.rs -deleted file mode 100644 -index bd69ccf37d57..000000000000 ---- third_party/rust/libc/src/unix/notbsd/android/b32.rs -+++ /dev/null -@@ -1,151 +0,0 @@ --pub type c_long = i32; --pub type c_ulong = u32; --pub type mode_t = u16; --pub type off64_t = ::c_longlong; -- --s! { -- pub struct sigaction { -- pub sa_sigaction: ::sighandler_t, -- pub sa_mask: ::sigset_t, -- pub sa_flags: ::c_ulong, -- pub sa_restorer: ::dox::Option<extern fn()>, -- } -- -- pub struct stat { -- pub st_dev: ::c_ulonglong, -- __pad0: [::c_uchar; 4], -- __st_ino: ::ino_t, -- pub st_mode: ::c_uint, -- pub st_nlink: ::c_uint, -- pub st_uid: ::uid_t, -- pub st_gid: ::gid_t, -- pub st_rdev: ::c_ulonglong, -- __pad3: [::c_uchar; 4], -- pub st_size: ::c_longlong, -- pub st_blksize: ::blksize_t, -- pub st_blocks: ::c_ulonglong, -- pub st_atime: ::c_ulong, -- pub st_atime_nsec: ::c_ulong, -- pub st_mtime: ::c_ulong, -- pub st_mtime_nsec: ::c_ulong, -- pub st_ctime: ::c_ulong, -- pub st_ctime_nsec: ::c_ulong, -- pub st_ino: ::c_ulonglong, -- } -- -- pub struct stat64 { -- pub st_dev: ::c_ulonglong, -- __pad0: [::c_uchar; 4], -- __st_ino: ::ino_t, -- pub st_mode: ::c_uint, -- pub st_nlink: ::c_uint, -- pub st_uid: ::uid_t, -- pub st_gid: ::gid_t, -- pub st_rdev: ::c_ulonglong, -- __pad3: [::c_uchar; 4], -- pub st_size: ::c_longlong, -- pub st_blksize: ::blksize_t, -- pub st_blocks: ::c_ulonglong, -- pub st_atime: ::c_ulong, -- pub st_atime_nsec: ::c_ulong, -- pub st_mtime: ::c_ulong, -- pub st_mtime_nsec: ::c_ulong, -- pub st_ctime: ::c_ulong, -- pub st_ctime_nsec: ::c_ulong, -- pub st_ino: ::c_ulonglong, -- } -- -- pub struct pthread_attr_t { -- pub flags: ::uint32_t, -- pub stack_base: *mut ::c_void, -- pub stack_size: ::size_t, -- pub guard_size: ::size_t, -- pub sched_policy: ::int32_t, -- pub sched_priority: ::int32_t, -- } -- -- pub struct pthread_mutex_t { value: ::c_int } -- -- pub struct pthread_cond_t { value: ::c_int } -- -- pub struct pthread_rwlock_t { -- lock: pthread_mutex_t, -- cond: pthread_cond_t, -- numLocks: ::c_int, -- writerThreadId: ::c_int, -- pendingReaders: ::c_int, -- pendingWriters: ::c_int, -- attr: i32, -- __reserved: [::c_char; 12], -- } -- -- pub struct passwd { -- pub pw_name: *mut ::c_char, -- pub pw_passwd: *mut ::c_char, -- pub pw_uid: ::uid_t, -- pub pw_gid: ::gid_t, -- pub pw_dir: *mut ::c_char, -- pub pw_shell: *mut ::c_char, -- } -- -- pub struct statfs { -- pub f_type: ::uint32_t, -- pub f_bsize: ::uint32_t, -- pub f_blocks: ::uint64_t, -- pub f_bfree: ::uint64_t, -- pub f_bavail: ::uint64_t, -- pub f_files: ::uint64_t, -- pub f_ffree: ::uint64_t, -- pub f_fsid: ::__fsid_t, -- pub f_namelen: ::uint32_t, -- pub f_frsize: ::uint32_t, -- pub f_flags: ::uint32_t, -- pub f_spare: [::uint32_t; 4], -- } -- -- pub struct sysinfo { -- pub uptime: ::c_long, -- pub loads: [::c_ulong; 3], -- pub totalram: ::c_ulong, -- pub freeram: ::c_ulong, -- pub sharedram: ::c_ulong, -- pub bufferram: ::c_ulong, -- pub totalswap: ::c_ulong, -- pub freeswap: ::c_ulong, -- pub procs: ::c_ushort, -- pub pad: ::c_ushort, -- pub totalhigh: ::c_ulong, -- pub freehigh: ::c_ulong, -- pub mem_unit: ::c_uint, -- pub _f: [::c_char; 8], -- } --} -- --pub const SYS_gettid: ::c_long = 224; --pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { -- value: 0, --}; --pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { -- value: 0, --}; --pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { -- lock: PTHREAD_MUTEX_INITIALIZER, -- cond: PTHREAD_COND_INITIALIZER, -- numLocks: 0, -- writerThreadId: 0, -- pendingReaders: 0, -- pendingWriters: 0, -- attr: 0, -- __reserved: [0; 12], --}; --pub const PTHREAD_STACK_MIN: ::size_t = 4096 * 2; --pub const CPU_SETSIZE: ::size_t = 32; --pub const __CPU_BITS: ::size_t = 32; -- --pub const UT_LINESIZE: usize = 8; --pub const UT_NAMESIZE: usize = 8; --pub const UT_HOSTSIZE: usize = 16; -- --extern { -- pub fn timegm64(tm: *const ::tm) -> ::time64_t; --} -diff --git third_party/rust/libc/src/unix/notbsd/android/b32/arm.rs third_party/rust/libc/src/unix/notbsd/android/b32/arm.rs -new file mode 100644 -index 000000000000..1c9d033d17db ---- /dev/null -+++ third_party/rust/libc/src/unix/notbsd/android/b32/arm.rs -@@ -0,0 +1,6 @@ -+pub type c_char = u8; -+pub type wchar_t = u32; -+ -+pub const O_DIRECT: ::c_int = 0x10000; -+pub const O_DIRECTORY: ::c_int = 0x4000; -+pub const O_NOFOLLOW: ::c_int = 0x8000; -diff --git third_party/rust/libc/src/unix/notbsd/android/b32/mod.rs third_party/rust/libc/src/unix/notbsd/android/b32/mod.rs -new file mode 100644 -index 000000000000..32f88e4987ba ---- /dev/null -+++ third_party/rust/libc/src/unix/notbsd/android/b32/mod.rs -@@ -0,0 +1,199 @@ -+// The following definitions are correct for arm and i686, -+// but may be wrong for mips -+ -+pub type c_long = i32; -+pub type c_ulong = u32; -+pub type mode_t = u16; -+pub type off64_t = ::c_longlong; -+pub type sigset_t = ::c_ulong; -+pub type socklen_t = i32; -+pub type time64_t = i64; -+ -+s! { -+ pub struct sigaction { -+ pub sa_sigaction: ::sighandler_t, -+ pub sa_mask: ::sigset_t, -+ pub sa_flags: ::c_ulong, -+ pub sa_restorer: ::dox::Option<extern fn()>, -+ } -+ -+ pub struct rlimit64 { -+ pub rlim_cur: u64, -+ pub rlim_max: u64, -+ } -+ -+ pub struct stat { -+ pub st_dev: ::c_ulonglong, -+ __pad0: [::c_uchar; 4], -+ __st_ino: ::ino_t, -+ pub st_mode: ::c_uint, -+ pub st_nlink: ::c_uint, -+ pub st_uid: ::uid_t, -+ pub st_gid: ::gid_t, -+ pub st_rdev: ::c_ulonglong, -+ __pad3: [::c_uchar; 4], -+ pub st_size: ::c_longlong, -+ pub st_blksize: ::blksize_t, -+ pub st_blocks: ::c_ulonglong, -+ pub st_atime: ::c_ulong, -+ pub st_atime_nsec: ::c_ulong, -+ pub st_mtime: ::c_ulong, -+ pub st_mtime_nsec: ::c_ulong, -+ pub st_ctime: ::c_ulong, -+ pub st_ctime_nsec: ::c_ulong, -+ pub st_ino: ::c_ulonglong, -+ } -+ -+ pub struct stat64 { -+ pub st_dev: ::c_ulonglong, -+ __pad0: [::c_uchar; 4], -+ __st_ino: ::ino_t, -+ pub st_mode: ::c_uint, -+ pub st_nlink: ::c_uint, -+ pub st_uid: ::uid_t, -+ pub st_gid: ::gid_t, -+ pub st_rdev: ::c_ulonglong, -+ __pad3: [::c_uchar; 4], -+ pub st_size: ::c_longlong, -+ pub st_blksize: ::blksize_t, -+ pub st_blocks: ::c_ulonglong, -+ pub st_atime: ::c_ulong, -+ pub st_atime_nsec: ::c_ulong, -+ pub st_mtime: ::c_ulong, -+ pub st_mtime_nsec: ::c_ulong, -+ pub st_ctime: ::c_ulong, -+ pub st_ctime_nsec: ::c_ulong, -+ pub st_ino: ::c_ulonglong, -+ } -+ -+ pub struct pthread_attr_t { -+ pub flags: ::uint32_t, -+ pub stack_base: *mut ::c_void, -+ pub stack_size: ::size_t, -+ pub guard_size: ::size_t, -+ pub sched_policy: ::int32_t, -+ pub sched_priority: ::int32_t, -+ } -+ -+ pub struct pthread_mutex_t { value: ::c_int } -+ -+ pub struct pthread_cond_t { value: ::c_int } -+ -+ pub struct pthread_rwlock_t { -+ lock: pthread_mutex_t, -+ cond: pthread_cond_t, -+ numLocks: ::c_int, -+ writerThreadId: ::c_int, -+ pendingReaders: ::c_int, -+ pendingWriters: ::c_int, -+ attr: i32, -+ __reserved: [::c_char; 12], -+ } -+ -+ pub struct passwd { -+ pub pw_name: *mut ::c_char, -+ pub pw_passwd: *mut ::c_char, -+ pub pw_uid: ::uid_t, -+ pub pw_gid: ::gid_t, -+ pub pw_dir: *mut ::c_char, -+ pub pw_shell: *mut ::c_char, -+ } -+ -+ pub struct statfs { -+ pub f_type: ::uint32_t, -+ pub f_bsize: ::uint32_t, -+ pub f_blocks: ::uint64_t, -+ pub f_bfree: ::uint64_t, -+ pub f_bavail: ::uint64_t, -+ pub f_files: ::uint64_t, -+ pub f_ffree: ::uint64_t, -+ pub f_fsid: ::__fsid_t, -+ pub f_namelen: ::uint32_t, -+ pub f_frsize: ::uint32_t, -+ pub f_flags: ::uint32_t, -+ pub f_spare: [::uint32_t; 4], -+ } -+ -+ pub struct sysinfo { -+ pub uptime: ::c_long, -+ pub loads: [::c_ulong; 3], -+ pub totalram: ::c_ulong, -+ pub freeram: ::c_ulong, -+ pub sharedram: ::c_ulong, -+ pub bufferram: ::c_ulong, -+ pub totalswap: ::c_ulong, -+ pub freeswap: ::c_ulong, -+ pub procs: ::c_ushort, -+ pub pad: ::c_ushort, -+ pub totalhigh: ::c_ulong, -+ pub freehigh: ::c_ulong, -+ pub mem_unit: ::c_uint, -+ pub _f: [::c_char; 8], -+ } -+} -+ -+pub const RTLD_GLOBAL: ::c_int = 2; -+pub const RTLD_NOW: ::c_int = 0; -+pub const RTLD_DEFAULT: *mut ::c_void = -1isize as *mut ::c_void; -+ -+pub const PTRACE_GETFPREGS: ::c_int = 14; -+pub const PTRACE_SETFPREGS: ::c_int = 15; -+pub const PTRACE_GETREGS: ::c_int = 12; -+pub const PTRACE_SETREGS: ::c_int = 13; -+ -+pub const SYS_gettid: ::c_long = 224; -+pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { -+ value: 0, -+}; -+pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { -+ value: 0, -+}; -+pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { -+ lock: PTHREAD_MUTEX_INITIALIZER, -+ cond: PTHREAD_COND_INITIALIZER, -+ numLocks: 0, -+ writerThreadId: 0, -+ pendingReaders: 0, -+ pendingWriters: 0, -+ attr: 0, -+ __reserved: [0; 12], -+}; -+pub const PTHREAD_STACK_MIN: ::size_t = 4096 * 2; -+pub const CPU_SETSIZE: ::size_t = 32; -+pub const __CPU_BITS: ::size_t = 32; -+ -+pub const UT_LINESIZE: usize = 8; -+pub const UT_NAMESIZE: usize = 8; -+pub const UT_HOSTSIZE: usize = 16; -+ -+extern { -+ pub fn bind(socket: ::c_int, address: *const ::sockaddr, -+ address_len: socklen_t) -> ::c_int; -+ -+ pub fn writev(fd: ::c_int, -+ iov: *const ::iovec, -+ iovcnt: ::c_int) -> ::ssize_t; -+ pub fn readv(fd: ::c_int, -+ iov: *const ::iovec, -+ iovcnt: ::c_int) -> ::ssize_t; -+ -+ pub fn sendmsg(fd: ::c_int, -+ msg: *const ::msghdr, -+ flags: ::c_int) -> ::ssize_t; -+ pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -+ -> ::ssize_t; -+ -+ pub fn timegm64(tm: *const ::tm) -> ::time64_t; -+} -+ -+cfg_if! { -+ if #[cfg(target_arch = "x86")] { -+ mod x86; -+ pub use self::x86::*; -+ } else if #[cfg(target_arch = "arm")] { -+ mod arm; -+ pub use self::arm::*; -+ } else { -+ // Unknown target_arch -+ } -+} -diff --git third_party/rust/libc/src/unix/notbsd/android/b32/x86.rs third_party/rust/libc/src/unix/notbsd/android/b32/x86.rs -new file mode 100644 -index 000000000000..c4b8197de55b ---- /dev/null -+++ third_party/rust/libc/src/unix/notbsd/android/b32/x86.rs -@@ -0,0 +1,6 @@ -+pub type c_char = i8; -+pub type wchar_t = i32; -+ -+pub const O_DIRECT: ::c_int = 0x4000; -+pub const O_DIRECTORY: ::c_int = 0x10000; -+pub const O_NOFOLLOW: ::c_int = 0x20000; -diff --git third_party/rust/libc/src/unix/notbsd/android/b64.rs third_party/rust/libc/src/unix/notbsd/android/b64.rs -deleted file mode 100644 -index b35dde421605..000000000000 ---- third_party/rust/libc/src/unix/notbsd/android/b64.rs -+++ /dev/null -@@ -1,161 +0,0 @@ --// The following definitions are correct for aarch64 and may be wrong for x86_64 -- --pub type c_long = i64; --pub type c_ulong = u64; --pub type mode_t = u32; --pub type off64_t = i64; -- --s! { -- pub struct sigaction { -- pub sa_flags: ::c_uint, -- pub sa_sigaction: ::sighandler_t, -- pub sa_mask: ::sigset_t, -- _restorer: *mut ::c_void, -- } -- -- pub struct stat { -- pub st_dev: ::dev_t, -- pub st_ino: ::ino_t, -- pub st_mode: ::c_uint, -- pub st_nlink: ::c_uint, -- pub st_uid: ::uid_t, -- pub st_gid: ::gid_t, -- pub st_rdev: ::dev_t, -- __pad1: ::c_ulong, -- pub st_size: ::off64_t, -- pub st_blksize: ::c_int, -- __pad2: ::c_int, -- pub st_blocks: ::c_long, -- pub st_atime: ::time_t, -- pub st_atime_nsec: ::c_ulong, -- pub st_mtime: ::time_t, -- pub st_mtime_nsec: ::c_ulong, -- pub st_ctime: ::time_t, -- pub st_ctime_nsec: ::c_ulong, -- __unused4: ::c_uint, -- __unused5: ::c_uint, -- } -- -- pub struct stat64 { -- pub st_dev: ::dev_t, -- pub st_ino: ::ino_t, -- pub st_mode: ::c_uint, -- pub st_nlink: ::c_uint, -- pub st_uid: ::uid_t, -- pub st_gid: ::gid_t, -- pub st_rdev: ::dev_t, -- __pad1: ::c_ulong, -- pub st_size: ::off64_t, -- pub st_blksize: ::c_int, -- __pad2: ::c_int, -- pub st_blocks: ::c_long, -- pub st_atime: ::time_t, -- pub st_atime_nsec: ::c_ulong, -- pub st_mtime: ::time_t, -- pub st_mtime_nsec: ::c_ulong, -- pub st_ctime: ::time_t, -- pub st_ctime_nsec: ::c_ulong, -- __unused4: ::c_uint, -- __unused5: ::c_uint, -- } -- -- pub struct pthread_attr_t { -- pub flags: ::uint32_t, -- pub stack_base: *mut ::c_void, -- pub stack_size: ::size_t, -- pub guard_size: ::size_t, -- pub sched_policy: ::int32_t, -- pub sched_priority: ::int32_t, -- __reserved: [::c_char; 16], -- } -- -- pub struct pthread_mutex_t { -- value: ::c_int, -- __reserved: [::c_char; 36], -- } -- -- pub struct pthread_cond_t { -- value: ::c_int, -- __reserved: [::c_char; 44], -- } -- -- pub struct pthread_rwlock_t { -- numLocks: ::c_int, -- writerThreadId: ::c_int, -- pendingReaders: ::c_int, -- pendingWriters: ::c_int, -- attr: i32, -- __reserved: [::c_char; 36], -- } -- -- pub struct passwd { -- pub pw_name: *mut ::c_char, -- pub pw_passwd: *mut ::c_char, -- pub pw_uid: ::uid_t, -- pub pw_gid: ::gid_t, -- pub pw_gecos: *mut ::c_char, -- pub pw_dir: *mut ::c_char, -- pub pw_shell: *mut ::c_char, -- } -- -- pub struct statfs { -- pub f_type: ::uint64_t, -- pub f_bsize: ::uint64_t, -- pub f_blocks: ::uint64_t, -- pub f_bfree: ::uint64_t, -- pub f_bavail: ::uint64_t, -- pub f_files: ::uint64_t, -- pub f_ffree: ::uint64_t, -- pub f_fsid: ::__fsid_t, -- pub f_namelen: ::uint64_t, -- pub f_frsize: ::uint64_t, -- pub f_flags: ::uint64_t, -- pub f_spare: [::uint64_t; 4], -- } -- -- pub struct sysinfo { -- pub uptime: ::c_long, -- pub loads: [::c_ulong; 3], -- pub totalram: ::c_ulong, -- pub freeram: ::c_ulong, -- pub sharedram: ::c_ulong, -- pub bufferram: ::c_ulong, -- pub totalswap: ::c_ulong, -- pub freeswap: ::c_ulong, -- pub procs: ::c_ushort, -- pub pad: ::c_ushort, -- pub totalhigh: ::c_ulong, -- pub freehigh: ::c_ulong, -- pub mem_unit: ::c_uint, -- pub _f: [::c_char; 0], -- } --} -- --pub const SYS_gettid: ::c_long = 178; --pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { -- value: 0, -- __reserved: [0; 36], --}; --pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { -- value: 0, -- __reserved: [0; 44], --}; --pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { -- numLocks: 0, -- writerThreadId: 0, -- pendingReaders: 0, -- pendingWriters: 0, -- attr: 0, -- __reserved: [0; 36], --}; --pub const PTHREAD_STACK_MIN: ::size_t = 4096 * 4; --pub const CPU_SETSIZE: ::size_t = 1024; --pub const __CPU_BITS: ::size_t = 64; -- --pub const UT_LINESIZE: usize = 32; --pub const UT_NAMESIZE: usize = 32; --pub const UT_HOSTSIZE: usize = 256; -- --extern { -- pub fn timegm(tm: *const ::tm) -> ::time64_t; --} -diff --git third_party/rust/libc/src/unix/notbsd/android/b64/aarch64.rs third_party/rust/libc/src/unix/notbsd/android/b64/aarch64.rs -new file mode 100644 -index 000000000000..89c505d06f2e ---- /dev/null -+++ third_party/rust/libc/src/unix/notbsd/android/b64/aarch64.rs -@@ -0,0 +1,56 @@ -+pub type c_char = u8; -+pub type wchar_t = u32; -+ -+s! { -+ pub struct stat { -+ pub st_dev: ::dev_t, -+ pub st_ino: ::ino_t, -+ pub st_mode: ::c_uint, -+ pub st_nlink: ::c_uint, -+ pub st_uid: ::uid_t, -+ pub st_gid: ::gid_t, -+ pub st_rdev: ::dev_t, -+ __pad1: ::c_ulong, -+ pub st_size: ::off64_t, -+ pub st_blksize: ::c_int, -+ __pad2: ::c_int, -+ pub st_blocks: ::c_long, -+ pub st_atime: ::time_t, -+ pub st_atime_nsec: ::c_ulong, -+ pub st_mtime: ::time_t, -+ pub st_mtime_nsec: ::c_ulong, -+ pub st_ctime: ::time_t, -+ pub st_ctime_nsec: ::c_ulong, -+ __unused4: ::c_uint, -+ __unused5: ::c_uint, -+ } -+ -+ pub struct stat64 { -+ pub st_dev: ::dev_t, -+ pub st_ino: ::ino_t, -+ pub st_mode: ::c_uint, -+ pub st_nlink: ::c_uint, -+ pub st_uid: ::uid_t, -+ pub st_gid: ::gid_t, -+ pub st_rdev: ::dev_t, -+ __pad1: ::c_ulong, -+ pub st_size: ::off64_t, -+ pub st_blksize: ::c_int, -+ __pad2: ::c_int, -+ pub st_blocks: ::c_long, -+ pub st_atime: ::time_t, -+ pub st_atime_nsec: ::c_ulong, -+ pub st_mtime: ::time_t, -+ pub st_mtime_nsec: ::c_ulong, -+ pub st_ctime: ::time_t, -+ pub st_ctime_nsec: ::c_ulong, -+ __unused4: ::c_uint, -+ __unused5: ::c_uint, -+ } -+} -+ -+pub const O_DIRECT: ::c_int = 0x10000; -+pub const O_DIRECTORY: ::c_int = 0x4000; -+pub const O_NOFOLLOW: ::c_int = 0x8000; -+ -+pub const SYS_gettid: ::c_long = 178; -diff --git third_party/rust/libc/src/unix/notbsd/android/b64/mod.rs third_party/rust/libc/src/unix/notbsd/android/b64/mod.rs -new file mode 100644 -index 000000000000..98a2f39fbd20 ---- /dev/null -+++ third_party/rust/libc/src/unix/notbsd/android/b64/mod.rs -@@ -0,0 +1,162 @@ -+// The following definitions are correct for aarch64 and x86_64, -+// but may be wrong for mips64 -+ -+pub type c_long = i64; -+pub type c_ulong = u64; -+pub type mode_t = u32; -+pub type off64_t = i64; -+pub type socklen_t = u32; -+ -+s! { -+ pub struct sigset_t { -+ __val: [::c_ulong; 1], -+ } -+ -+ pub struct sigaction { -+ pub sa_flags: ::c_uint, -+ pub sa_sigaction: ::sighandler_t, -+ pub sa_mask: ::sigset_t, -+ pub sa_restorer: ::dox::Option<extern fn()>, -+ } -+ -+ pub struct rlimit64 { -+ pub rlim_cur: ::c_ulonglong, -+ pub rlim_max: ::c_ulonglong, -+ } -+ -+ pub struct pthread_attr_t { -+ pub flags: ::uint32_t, -+ pub stack_base: *mut ::c_void, -+ pub stack_size: ::size_t, -+ pub guard_size: ::size_t, -+ pub sched_policy: ::int32_t, -+ pub sched_priority: ::int32_t, -+ __reserved: [::c_char; 16], -+ } -+ -+ pub struct pthread_mutex_t { -+ value: ::c_int, -+ __reserved: [::c_char; 36], -+ } -+ -+ pub struct pthread_cond_t { -+ value: ::c_int, -+ __reserved: [::c_char; 44], -+ } -+ -+ pub struct pthread_rwlock_t { -+ numLocks: ::c_int, -+ writerThreadId: ::c_int, -+ pendingReaders: ::c_int, -+ pendingWriters: ::c_int, -+ attr: i32, -+ __reserved: [::c_char; 36], -+ } -+ -+ pub struct passwd { -+ pub pw_name: *mut ::c_char, -+ pub pw_passwd: *mut ::c_char, -+ pub pw_uid: ::uid_t, -+ pub pw_gid: ::gid_t, -+ pub pw_gecos: *mut ::c_char, -+ pub pw_dir: *mut ::c_char, -+ pub pw_shell: *mut ::c_char, -+ } -+ -+ pub struct statfs { -+ pub f_type: ::uint64_t, -+ pub f_bsize: ::uint64_t, -+ pub f_blocks: ::uint64_t, -+ pub f_bfree: ::uint64_t, -+ pub f_bavail: ::uint64_t, -+ pub f_files: ::uint64_t, -+ pub f_ffree: ::uint64_t, -+ pub f_fsid: ::__fsid_t, -+ pub f_namelen: ::uint64_t, -+ pub f_frsize: ::uint64_t, -+ pub f_flags: ::uint64_t, -+ pub f_spare: [::uint64_t; 4], -+ } -+ -+ pub struct sysinfo { -+ pub uptime: ::c_long, -+ pub loads: [::c_ulong; 3], -+ pub totalram: ::c_ulong, -+ pub freeram: ::c_ulong, -+ pub sharedram: ::c_ulong, -+ pub bufferram: ::c_ulong, -+ pub totalswap: ::c_ulong, -+ pub freeswap: ::c_ulong, -+ pub procs: ::c_ushort, -+ pub pad: ::c_ushort, -+ pub totalhigh: ::c_ulong, -+ pub freehigh: ::c_ulong, -+ pub mem_unit: ::c_uint, -+ pub _f: [::c_char; 0], -+ } -+} -+ -+pub const RTLD_GLOBAL: ::c_int = 0x00100; -+pub const RTLD_NOW: ::c_int = 2; -+pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; -+ -+pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { -+ value: 0, -+ __reserved: [0; 36], -+}; -+pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { -+ value: 0, -+ __reserved: [0; 44], -+}; -+pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { -+ numLocks: 0, -+ writerThreadId: 0, -+ pendingReaders: 0, -+ pendingWriters: 0, -+ attr: 0, -+ __reserved: [0; 36], -+}; -+pub const PTHREAD_STACK_MIN: ::size_t = 4096 * 4; -+pub const CPU_SETSIZE: ::size_t = 1024; -+pub const __CPU_BITS: ::size_t = 64; -+ -+pub const UT_LINESIZE: usize = 32; -+pub const UT_NAMESIZE: usize = 32; -+pub const UT_HOSTSIZE: usize = 256; -+ -+// Some weirdness in Android -+extern { -+ // address_len should be socklen_t, but it is c_int! -+ pub fn bind(socket: ::c_int, address: *const ::sockaddr, -+ address_len: ::c_int) -> ::c_int; -+ -+ // the return type should be ::ssize_t, but it is c_int! -+ pub fn writev(fd: ::c_int, -+ iov: *const ::iovec, -+ iovcnt: ::c_int) -> ::c_int; -+ -+ // the return type should be ::ssize_t, but it is c_int! -+ pub fn readv(fd: ::c_int, -+ iov: *const ::iovec, -+ iovcnt: ::c_int) -> ::c_int; -+ -+ // the return type should be ::ssize_t, but it is c_int! -+ pub fn sendmsg(fd: ::c_int, -+ msg: *const ::msghdr, -+ flags: ::c_int) -> ::c_int; -+ -+ // the return type should be ::ssize_t, but it is c_int! -+ pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::c_int; -+} -+ -+cfg_if! { -+ if #[cfg(target_arch = "x86_64")] { -+ mod x86_64; -+ pub use self::x86_64::*; -+ } else if #[cfg(target_arch = "aarch64")] { -+ mod aarch64; -+ pub use self::aarch64::*; -+ } else { -+ // Unknown target_arch -+ } -+} -diff --git third_party/rust/libc/src/unix/notbsd/android/b64/x86_64.rs third_party/rust/libc/src/unix/notbsd/android/b64/x86_64.rs -new file mode 100644 -index 000000000000..58d07e104dba ---- /dev/null -+++ third_party/rust/libc/src/unix/notbsd/android/b64/x86_64.rs -@@ -0,0 +1,50 @@ -+pub type c_char = i8; -+pub type wchar_t = i32; -+ -+s! { -+ pub struct stat { -+ pub st_dev: ::dev_t, -+ pub st_ino: ::ino_t, -+ pub st_nlink: ::c_ulong, -+ pub st_mode: ::c_uint, -+ pub st_uid: ::uid_t, -+ pub st_gid: ::gid_t, -+ pub st_rdev: ::dev_t, -+ pub st_size: ::off64_t, -+ pub st_blksize: ::c_long, -+ pub st_blocks: ::c_long, -+ pub st_atime: ::c_ulong, -+ pub st_atime_nsec: ::c_ulong, -+ pub st_mtime: ::c_ulong, -+ pub st_mtime_nsec: ::c_ulong, -+ pub st_ctime: ::c_ulong, -+ pub st_ctime_nsec: ::c_ulong, -+ __unused: [::c_long; 3], -+ } -+ -+ pub struct stat64 { -+ pub st_dev: ::dev_t, -+ pub st_ino: ::ino_t, -+ pub st_nlink: ::c_ulong, -+ pub st_mode: ::c_uint, -+ pub st_uid: ::uid_t, -+ pub st_gid: ::gid_t, -+ pub st_rdev: ::dev_t, -+ pub st_size: ::off64_t, -+ pub st_blksize: ::c_long, -+ pub st_blocks: ::c_long, -+ pub st_atime: ::c_ulong, -+ pub st_atime_nsec: ::c_ulong, -+ pub st_mtime: ::c_ulong, -+ pub st_mtime_nsec: ::c_ulong, -+ pub st_ctime: ::c_ulong, -+ pub st_ctime_nsec: ::c_ulong, -+ __unused: [::c_long; 3], -+ } -+} -+ -+pub const O_DIRECT: ::c_int = 0x4000; -+pub const O_DIRECTORY: ::c_int = 0x10000; -+pub const O_NOFOLLOW: ::c_int = 0x20000; -+ -+pub const SYS_gettid: ::c_long = 186; -diff --git third_party/rust/libc/src/unix/notbsd/android/mod.rs third_party/rust/libc/src/unix/notbsd/android/mod.rs -index 4b4e26222ad6..2a7d572dc5cc 100644 ---- third_party/rust/libc/src/unix/notbsd/android/mod.rs -+++ third_party/rust/libc/src/unix/notbsd/android/mod.rs -@@ -2,22 +2,17 @@ - - use dox::mem; - --pub type c_char = u8; - pub type clock_t = ::c_long; - pub type time_t = ::c_long; - pub type suseconds_t = ::c_long; --pub type wchar_t = u32; - pub type off_t = ::c_long; - pub type blkcnt_t = ::c_ulong; - pub type blksize_t = ::c_ulong; - pub type nlink_t = u32; - pub type useconds_t = u32; --pub type socklen_t = i32; - pub type pthread_t = ::c_long; - pub type pthread_mutexattr_t = ::c_long; - pub type pthread_condattr_t = ::c_long; --pub type sigset_t = ::c_ulong; --pub type time64_t = i64; // N/A on android - pub type fsfilcnt_t = ::c_ulong; - pub type fsblkcnt_t = ::c_ulong; - pub type nfds_t = ::c_uint; -@@ -44,11 +39,6 @@ s! { - pub d_name: [::c_char; 256], - } - -- pub struct rlimit64 { -- pub rlim_cur: u64, -- pub rlim_max: u64, -- } -- - pub struct stack_t { - pub ss_sp: *mut ::c_void, - pub ss_flags: ::c_int, -@@ -60,6 +50,7 @@ s! { - pub si_errno: ::c_int, - pub si_code: ::c_int, - pub _pad: [::c_int; 29], -+ _align: [usize; 0], - } - - pub struct __fsid_t { -@@ -68,7 +59,7 @@ s! { - - pub struct msghdr { - pub msg_name: *mut ::c_void, -- pub msg_namelen: ::c_int, -+ pub msg_namelen: ::socklen_t, - pub msg_iov: *mut ::iovec, - pub msg_iovlen: ::size_t, - pub msg_control: *mut ::c_void, -@@ -108,6 +99,8 @@ s! { - - pub struct sem_t { - count: ::c_uint, -+ #[cfg(target_pointer_width = "64")] -+ __reserved: [::c_int; 3], - } - - pub struct lastlog { -@@ -136,6 +129,22 @@ s! { - pub ut_addr_v6: [::int32_t; 4], - unused: [::c_char; 20], - } -+ -+ pub struct statvfs { -+ pub f_bsize: ::c_ulong, -+ pub f_frsize: ::c_ulong, -+ pub f_blocks: ::fsblkcnt_t, -+ pub f_bfree: ::fsblkcnt_t, -+ pub f_bavail: ::fsblkcnt_t, -+ pub f_files: ::fsfilcnt_t, -+ pub f_ffree: ::fsfilcnt_t, -+ pub f_favail: ::fsfilcnt_t, -+ pub f_fsid: ::c_ulong, -+ pub f_flag: ::c_ulong, -+ pub f_namemax: ::c_ulong, -+ #[cfg(target_pointer_width = "64")] -+ __f_reserved: [u32; 6], -+ } - } - - pub const O_TRUNC: ::c_int = 512; -@@ -163,6 +172,7 @@ pub const SA_RESTART: ::c_int = 0x10000000; - pub const SA_NOCLDSTOP: ::c_int = 0x00000001; - - pub const EPOLL_CLOEXEC: ::c_int = 0x80000; -+pub const EPOLLONESHOT: ::c_int = 0x40000000; - - pub const EFD_CLOEXEC: ::c_int = 0x80000; - -@@ -408,6 +418,18 @@ pub const SOCK_DGRAM: ::c_int = 2; - pub const SOCK_SEQPACKET: ::c_int = 5; - - pub const SOL_SOCKET: ::c_int = 1; -+pub const SOL_UDP: ::c_int = 17; -+pub const SOL_SCTP: ::c_int = 132; -+pub const SOL_IPX: ::c_int = 256; -+pub const SOL_AX25: ::c_int = 257; -+pub const SOL_ATALK: ::c_int = 258; -+pub const SOL_NETROM: ::c_int = 259; -+pub const SOL_ROSE: ::c_int = 260; -+ -+#[doc(hidden)] -+pub const AF_MAX: ::c_int = 39; -+#[doc(hidden)] -+pub const PF_MAX: ::c_int = AF_MAX; - - pub const SO_REUSEADDR: ::c_int = 2; - pub const SO_TYPE: ::c_int = 3; -@@ -433,9 +455,6 @@ pub const O_EXCL: ::c_int = 128; - pub const O_NOCTTY: ::c_int = 256; - pub const O_NONBLOCK: ::c_int = 2048; - pub const O_SYNC: ::c_int = 0x101000; --pub const O_DIRECT: ::c_int = 0x10000; --pub const O_DIRECTORY: ::c_int = 0x4000; --pub const O_NOFOLLOW: ::c_int = 0x8000; - pub const O_ASYNC: ::c_int = 0x2000; - pub const O_NDELAY: ::c_int = 0x800; - -@@ -446,7 +465,6 @@ pub const TCSBRKP: ::c_int = 0x5425; - pub const TCSANOW: ::c_int = 0; - pub const TCSADRAIN: ::c_int = 0x1; - pub const TCSAFLUSH: ::c_int = 0x2; --pub const IUTF8: ::tcflag_t = 0x00004000; - pub const VEOF: usize = 4; - pub const VEOL: usize = 11; - pub const VEOL2: usize = 16; -@@ -503,10 +521,6 @@ pub const PTRACE_SETOPTIONS: ::c_int = 0x4200; - pub const PTRACE_GETEVENTMSG: ::c_int = 0x4201; - pub const PTRACE_GETSIGINFO: ::c_int = 0x4202; - pub const PTRACE_SETSIGINFO: ::c_int = 0x4203; --pub const PTRACE_GETFPREGS: ::c_int = 14; --pub const PTRACE_SETFPREGS: ::c_int = 15; --pub const PTRACE_GETREGS: ::c_int = 12; --pub const PTRACE_SETREGS: ::c_int = 13; - - pub const EFD_NONBLOCK: ::c_int = 0x800; - -@@ -548,10 +562,7 @@ pub const TIOCMSET: ::c_int = 0x5418; - pub const FIONREAD: ::c_int = 0x541B; - pub const TIOCCONS: ::c_int = 0x541D; - --pub const RTLD_GLOBAL: ::c_int = 0x2; - pub const RTLD_NOLOAD: ::c_int = 0x4; --pub const RTLD_NOW: ::c_int = 0; --pub const RTLD_DEFAULT: *mut ::c_void = -1isize as *mut ::c_void; - - pub const SEM_FAILED: *mut sem_t = 0 as *mut sem_t; - -@@ -574,6 +585,7 @@ pub const MCL_CURRENT: ::c_int = 0x0001; - pub const MCL_FUTURE: ::c_int = 0x0002; - - pub const SIGSTKSZ: ::size_t = 8192; -+pub const MINSIGSTKSZ: ::size_t = 2048; - pub const CBAUD: ::tcflag_t = 0o0010017; - pub const TAB1: ::c_int = 0x00000800; - pub const TAB2: ::c_int = 0x00001000; -@@ -615,6 +627,40 @@ pub const ICANON: ::tcflag_t = 0x00000002; - pub const PENDIN: ::tcflag_t = 0x00004000; - pub const NOFLSH: ::tcflag_t = 0x00000080; - -+pub const B0: ::speed_t = 0o000000; -+pub const B50: ::speed_t = 0o000001; -+pub const B75: ::speed_t = 0o000002; -+pub const B110: ::speed_t = 0o000003; -+pub const B134: ::speed_t = 0o000004; -+pub const B150: ::speed_t = 0o000005; -+pub const B200: ::speed_t = 0o000006; -+pub const B300: ::speed_t = 0o000007; -+pub const B600: ::speed_t = 0o000010; -+pub const B1200: ::speed_t = 0o000011; -+pub const B1800: ::speed_t = 0o000012; -+pub const B2400: ::speed_t = 0o000013; -+pub const B4800: ::speed_t = 0o000014; -+pub const B9600: ::speed_t = 0o000015; -+pub const B19200: ::speed_t = 0o000016; -+pub const B38400: ::speed_t = 0o000017; -+pub const EXTA: ::speed_t = B19200; -+pub const EXTB: ::speed_t = B38400; -+pub const B57600: ::speed_t = 0o010001; -+pub const B115200: ::speed_t = 0o010002; -+pub const B230400: ::speed_t = 0o010003; -+pub const B460800: ::speed_t = 0o010004; -+pub const B500000: ::speed_t = 0o010005; -+pub const B576000: ::speed_t = 0o010006; -+pub const B921600: ::speed_t = 0o010007; -+pub const B1000000: ::speed_t = 0o010010; -+pub const B1152000: ::speed_t = 0o010011; -+pub const B1500000: ::speed_t = 0o010012; -+pub const B2000000: ::speed_t = 0o010013; -+pub const B2500000: ::speed_t = 0o010014; -+pub const B3000000: ::speed_t = 0o010015; -+pub const B3500000: ::speed_t = 0o010016; -+pub const B4000000: ::speed_t = 0o010017; -+ - pub const EAI_SYSTEM: ::c_int = 11; - - pub const NETLINK_ROUTE: ::c_int = 0; -@@ -679,59 +725,6 @@ pub const NLA_TYPE_MASK: ::c_int = !(NLA_F_NESTED | NLA_F_NET_BYTEORDER); - pub const SIGEV_THREAD_ID: ::c_int = 4; - - f! { -- pub fn sigemptyset(set: *mut sigset_t) -> ::c_int { -- *set = 0; -- return 0 -- } -- pub fn sigaddset(set: *mut sigset_t, signum: ::c_int) -> ::c_int { -- *set |= signum as sigset_t; -- return 0 -- } -- pub fn sigfillset(set: *mut sigset_t) -> ::c_int { -- *set = !0; -- return 0 -- } -- pub fn sigdelset(set: *mut sigset_t, signum: ::c_int) -> ::c_int { -- *set &= !(signum as sigset_t); -- return 0 -- } -- pub fn sigismember(set: *const sigset_t, signum: ::c_int) -> ::c_int { -- (*set & (signum as sigset_t)) as ::c_int -- } -- pub fn cfgetispeed(termios: *const ::termios) -> ::speed_t { -- (*termios).c_cflag & ::CBAUD -- } -- pub fn cfgetospeed(termios: *const ::termios) -> ::speed_t { -- (*termios).c_cflag & ::CBAUD -- } -- pub fn cfsetispeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int { -- let cbaud = ::CBAUD; -- (*termios).c_cflag = ((*termios).c_cflag & !cbaud) | (speed & cbaud); -- return 0 -- } -- pub fn cfsetospeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int { -- let cbaud = ::CBAUD; -- (*termios).c_cflag = ((*termios).c_cflag & !cbaud) | (speed & cbaud); -- return 0 -- } -- pub fn tcgetattr(fd: ::c_int, termios: *mut ::termios) -> ::c_int { -- ioctl(fd, ::TCGETS, termios) -- } -- pub fn tcsetattr(fd: ::c_int, -- optional_actions: ::c_int, -- termios: *const ::termios) -> ::c_int { -- ioctl(fd, optional_actions, termios) -- } -- pub fn tcflow(fd: ::c_int, action: ::c_int) -> ::c_int { -- ioctl(fd, ::TCXONC, action as *mut ::c_void) -- } -- pub fn tcflush(fd: ::c_int, action: ::c_int) -> ::c_int { -- ioctl(fd, ::TCFLSH, action as *mut ::c_void) -- } -- pub fn tcsendbreak(fd: ::c_int, duration: ::c_int) -> ::c_int { -- ioctl(fd, TCSBRKP, duration as *mut ::c_void) -- } -- - pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () { - for slot in cpuset.__bits.iter_mut() { - *slot = 0; -@@ -761,6 +754,17 @@ f! { - pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool { - set1.__bits == set2.__bits - } -+ pub fn major(dev: ::dev_t) -> ::c_int { -+ ((dev >> 8) & 0xfff) as ::c_int -+ } -+ pub fn minor(dev: ::dev_t) -> ::c_int { -+ ((dev & 0xff) | ((dev >> 12) & 0xfff00)) as ::c_int -+ } -+ pub fn makedev(ma: ::c_int, mi: ::c_int) -> ::dev_t { -+ let ma = ma as ::dev_t; -+ let mi = mi as ::dev_t; -+ ((ma & 0xfff) << 8) | (mi & 0xff) | ((mi & 0xfff00) << 12) -+ } - } - - extern { -@@ -771,15 +775,10 @@ extern { - pub fn madvise(addr: *const ::c_void, len: ::size_t, advice: ::c_int) - -> ::c_int; - pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; -- pub fn readlink(path: *const ::c_char, -- buf: *mut ::c_char, -- bufsz: ::size_t) -- -> ::c_int; - pub fn msync(addr: *const ::c_void, len: ::size_t, - flags: ::c_int) -> ::c_int; - pub fn mprotect(addr: *const ::c_void, len: ::size_t, prot: ::c_int) - -> ::c_int; -- pub fn sysconf(name: ::c_int) -> ::c_long; - pub fn recvfrom(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, - flags: ::c_int, addr: *const ::sockaddr, - addrlen: *mut ::socklen_t) -> ::ssize_t; -@@ -801,6 +800,9 @@ extern { - pub fn utmpname(name: *const ::c_char) -> ::c_int; - pub fn setutent(); - pub fn getutent() -> *mut utmp; -+ -+ pub fn posix_fallocate(fd: ::c_int, offset: ::off_t, -+ len: ::off_t) -> ::c_int; - } - - cfg_if! { -diff --git third_party/rust/libc/src/unix/notbsd/linux/mips/mips32.rs third_party/rust/libc/src/unix/notbsd/linux/mips/mips32.rs -index 22bb33b7231f..59c2486efefe 100644 ---- third_party/rust/libc/src/unix/notbsd/linux/mips/mips32.rs -+++ third_party/rust/libc/src/unix/notbsd/linux/mips/mips32.rs -@@ -10,9 +10,6 @@ pub type ino_t = u32; - pub type blkcnt_t = i32; - pub type blksize_t = i32; - pub type nlink_t = u32; --pub type fsblkcnt_t = ::c_ulong; --pub type fsfilcnt_t = ::c_ulong; --pub type rlim_t = c_ulong; - - s! { - pub struct aiocb { -@@ -86,7 +83,7 @@ s! { - pub sa_flags: ::c_int, - pub sa_sigaction: ::sighandler_t, - pub sa_mask: sigset_t, -- _restorer: *mut ::c_void, -+ pub sa_restorer: ::dox::Option<extern fn()>, - _resv: [::c_int; 1], - } - -@@ -107,19 +104,6 @@ s! { - pub _pad: [::c_int; 29], - } - -- pub struct glob64_t { -- pub gl_pathc: ::size_t, -- pub gl_pathv: *mut *mut ::c_char, -- pub gl_offs: ::size_t, -- pub gl_flags: ::c_int, -- -- __unused1: *mut ::c_void, -- __unused2: *mut ::c_void, -- __unused3: *mut ::c_void, -- __unused4: *mut ::c_void, -- __unused5: *mut ::c_void, -- } -- - pub struct ipc_perm { - pub __key: ::key_t, - pub uid: ::uid_t, -@@ -238,15 +222,6 @@ s! { - pub mem_unit: ::c_uint, - pub _f: [::c_char; 8], - } -- -- // FIXME this is actually a union -- pub struct sem_t { -- #[cfg(target_pointer_width = "32")] -- __size: [::c_char; 16], -- #[cfg(target_pointer_width = "64")] -- __size: [::c_char; 32], -- __align: [::c_long; 0], -- } - } - - pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; -@@ -257,31 +232,3 @@ pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; - pub const RLIM_INFINITY: ::rlim_t = 0x7fffffff; - - pub const SYS_gettid: ::c_long = 4222; // Valid for O32 -- --#[link(name = "util")] --extern { -- pub fn sysctl(name: *mut ::c_int, -- namelen: ::c_int, -- oldp: *mut ::c_void, -- oldlenp: *mut ::size_t, -- newp: *mut ::c_void, -- newlen: ::size_t) -- -> ::c_int; -- pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; -- pub fn backtrace(buf: *mut *mut ::c_void, -- sz: ::c_int) -> ::c_int; -- pub fn glob64(pattern: *const ::c_char, -- flags: ::c_int, -- errfunc: ::dox::Option<extern fn(epath: *const ::c_char, -- errno: ::c_int) -- -> ::c_int>, -- pglob: *mut glob64_t) -> ::c_int; -- pub fn globfree64(pglob: *mut glob64_t); -- pub fn ptrace(request: ::c_uint, ...) -> ::c_long; -- pub fn pthread_attr_getaffinity_np(attr: *const ::pthread_attr_t, -- cpusetsize: ::size_t, -- cpuset: *mut ::cpu_set_t) -> ::c_int; -- pub fn pthread_attr_setaffinity_np(attr: *mut ::pthread_attr_t, -- cpusetsize: ::size_t, -- cpuset: *const ::cpu_set_t) -> ::c_int; --} -diff --git third_party/rust/libc/src/unix/notbsd/linux/mips/mips64.rs third_party/rust/libc/src/unix/notbsd/linux/mips/mips64.rs -index 947859998d33..1f28ea81f003 100644 ---- third_party/rust/libc/src/unix/notbsd/linux/mips/mips64.rs -+++ third_party/rust/libc/src/unix/notbsd/linux/mips/mips64.rs -@@ -3,15 +3,13 @@ pub type blksize_t = i64; - pub type c_char = i8; - pub type c_long = i64; - pub type c_ulong = u64; --pub type fsblkcnt_t = ::c_ulong; --pub type fsfilcnt_t = ::c_ulong; - pub type ino_t = u64; - pub type nlink_t = u64; - pub type off_t = i64; --pub type rlim_t = ::c_ulong; - pub type suseconds_t = i64; - pub type time_t = i64; - pub type wchar_t = i32; -+pub type clock_t = i64; - - s! { - pub struct aiocb { -@@ -85,7 +83,7 @@ s! { - pub sa_flags: ::c_int, - pub sa_sigaction: ::sighandler_t, - pub sa_mask: sigset_t, -- _restorer: *mut ::c_void, -+ pub sa_restorer: ::dox::Option<extern fn()>, - } - - pub struct stack_t { -@@ -186,6 +184,14 @@ s! { - pub c_cc: [::cc_t; ::NCCS], - } - -+ pub struct flock { -+ pub l_type: ::c_short, -+ pub l_whence: ::c_short, -+ pub l_start: ::off_t, -+ pub l_len: ::off_t, -+ pub l_pid: ::pid_t, -+ } -+ - pub struct sysinfo { - pub uptime: ::c_long, - pub loads: [::c_ulong; 3], -@@ -202,12 +208,6 @@ s! { - pub mem_unit: ::c_uint, - pub _f: [::c_char; 0], - } -- -- // FIXME this is actually a union -- pub struct sem_t { -- __size: [::c_char; 32], -- __align: [::c_long; 0], -- } - } - - pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; -@@ -218,8 +218,3 @@ pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; - pub const RLIM_INFINITY: ::rlim_t = 0xffff_ffff_ffff_ffff; - - pub const SYS_gettid: ::c_long = 5178; // Valid for n64 -- --#[link(name = "util")] --extern { -- pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; --} -diff --git third_party/rust/libc/src/unix/notbsd/linux/mips/mod.rs third_party/rust/libc/src/unix/notbsd/linux/mips/mod.rs -index 48e773088e79..b2ad107caedf 100644 ---- third_party/rust/libc/src/unix/notbsd/linux/mips/mod.rs -+++ third_party/rust/libc/src/unix/notbsd/linux/mips/mod.rs -@@ -1,3 +1,32 @@ -+pub type fsblkcnt_t = ::c_ulong; -+pub type fsfilcnt_t = ::c_ulong; -+pub type rlim_t = c_ulong; -+pub type __priority_which_t = ::c_uint; -+ -+s! { -+ pub struct glob64_t { -+ pub gl_pathc: ::size_t, -+ pub gl_pathv: *mut *mut ::c_char, -+ pub gl_offs: ::size_t, -+ pub gl_flags: ::c_int, -+ -+ __unused1: *mut ::c_void, -+ __unused2: *mut ::c_void, -+ __unused3: *mut ::c_void, -+ __unused4: *mut ::c_void, -+ __unused5: *mut ::c_void, -+ } -+ -+ // FIXME this is actually a union -+ pub struct sem_t { -+ #[cfg(target_pointer_width = "32")] -+ __size: [::c_char; 16], -+ #[cfg(target_pointer_width = "64")] -+ __size: [::c_char; 32], -+ __align: [::c_long; 0], -+ } -+} -+ - pub const CLONE_NEWCGROUP: ::c_int = 0x02000000; - - pub const SFD_CLOEXEC: ::c_int = 0x080000; -@@ -194,22 +223,62 @@ pub const SOCK_SEQPACKET: ::c_int = 5; - - pub const SOL_SOCKET: ::c_int = 0xffff; - --pub const SO_REUSEADDR: ::c_int = 4; --pub const SO_REUSEPORT: ::c_int = 0x200; --pub const SO_TYPE: ::c_int = 4104; --pub const SO_ERROR: ::c_int = 4103; --pub const SO_DONTROUTE: ::c_int = 16; --pub const SO_BROADCAST: ::c_int = 32; --pub const SO_SNDBUF: ::c_int = 4097; --pub const SO_RCVBUF: ::c_int = 4098; --pub const SO_KEEPALIVE: ::c_int = 8; --pub const SO_OOBINLINE: ::c_int = 256; --pub const SO_LINGER: ::c_int = 128; --pub const SO_RCVLOWAT: ::c_int = 4100; --pub const SO_SNDLOWAT: ::c_int = 4099; --pub const SO_RCVTIMEO: ::c_int = 4102; --pub const SO_SNDTIMEO: ::c_int = 4101; --pub const SO_ACCEPTCONN: ::c_int = 4105; -+pub const SO_REUSEADDR: ::c_int = 0x0004; -+pub const SO_KEEPALIVE: ::c_int = 0x0008; -+pub const SO_DONTROUTE: ::c_int = 0x0010; -+pub const SO_BROADCAST: ::c_int = 0x0020; -+pub const SO_LINGER: ::c_int = 0x0080; -+pub const SO_OOBINLINE: ::c_int = 0x0100; -+pub const SO_REUSEPORT: ::c_int = 0x0200; -+pub const SO_TYPE: ::c_int = 0x1008; -+pub const SO_STYLE: ::c_int = SO_TYPE; -+pub const SO_ERROR: ::c_int = 0x1007; -+pub const SO_SNDBUF: ::c_int = 0x1001; -+pub const SO_RCVBUF: ::c_int = 0x1002; -+pub const SO_SNDLOWAT: ::c_int = 0x1003; -+pub const SO_RCVLOWAT: ::c_int = 0x1004; -+pub const SO_SNDTIMEO: ::c_int = 0x1005; -+pub const SO_RCVTIMEO: ::c_int = 0x1006; -+pub const SO_ACCEPTCONN: ::c_int = 0x1009; -+pub const SO_PROTOCOL: ::c_int = 0x1028; -+pub const SO_DOMAIN: ::c_int = 0x1029; -+pub const SO_NO_CHECK: ::c_int = 11; -+pub const SO_PRIORITY: ::c_int = 12; -+pub const SO_BSDCOMPAT: ::c_int = 14; -+pub const SO_PASSCRED: ::c_int = 17; -+pub const SO_PEERCRED: ::c_int = 18; -+pub const SO_SECURITY_AUTHENTICATION: ::c_int = 22; -+pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 23; -+pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 24; -+pub const SO_BINDTODEVICE: ::c_int = 25; -+pub const SO_ATTACH_FILTER: ::c_int = 26; -+pub const SO_DETACH_FILTER: ::c_int = 27; -+pub const SO_GET_FILTER: ::c_int = SO_ATTACH_FILTER; -+pub const SO_PEERNAME: ::c_int = 28; -+pub const SO_TIMESTAMP: ::c_int = 29; -+pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; -+pub const SO_PEERSEC: ::c_int = 30; -+pub const SO_SNDBUFFORCE: ::c_int = 31; -+pub const SO_RCVBUFFORCE: ::c_int = 33; -+pub const SO_PASSSEC: ::c_int = 34; -+pub const SO_TIMESTAMPNS: ::c_int = 35; -+pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS; -+pub const SO_MARK: ::c_int = 36; -+pub const SO_TIMESTAMPING: ::c_int = 37; -+pub const SCM_TIMESTAMPING: ::c_int = SO_TIMESTAMPING; -+pub const SO_RXQ_OVFL: ::c_int = 40; -+pub const SO_WIFI_STATUS: ::c_int = 41; -+pub const SCM_WIFI_STATUS: ::c_int = SO_WIFI_STATUS; -+pub const SO_PEEK_OFF: ::c_int = 42; -+pub const SO_NOFCS: ::c_int = 43; -+pub const SO_LOCK_FILTER: ::c_int = 44; -+pub const SO_SELECT_ERR_QUEUE: ::c_int = 45; -+pub const SO_BUSY_POLL: ::c_int = 46; -+pub const SO_MAX_PACING_RATE: ::c_int = 47; -+pub const SO_BPF_EXTENSIONS: ::c_int = 48; -+pub const SO_INCOMING_CPU: ::c_int = 49; -+pub const SO_ATTACH_BPF: ::c_int = 50; -+pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER; - - pub const FIOCLEX: ::c_ulong = 0x6601; - pub const FIONBIO: ::c_ulong = 0x667e; -@@ -282,7 +351,7 @@ pub const VMIN: usize = 4; - pub const IEXTEN: ::tcflag_t = 0x00000100; - pub const TOSTOP: ::tcflag_t = 0x00008000; - pub const FLUSHO: ::tcflag_t = 0x00002000; --pub const IUTF8: ::tcflag_t = 0x00004000; -+pub const EXTPROC: ::tcflag_t = 0o200000; - pub const TCSANOW: ::c_int = 0x540e; - pub const TCSADRAIN: ::c_int = 0x540f; - pub const TCSAFLUSH: ::c_int = 0x5410; -@@ -380,6 +449,7 @@ pub const MCL_CURRENT: ::c_int = 0x0001; - pub const MCL_FUTURE: ::c_int = 0x0002; - - pub const SIGSTKSZ: ::size_t = 8192; -+pub const MINSIGSTKSZ: ::size_t = 2048; - pub const CBAUD: ::tcflag_t = 0o0010017; - pub const TAB1: ::c_int = 0x00000800; - pub const TAB2: ::c_int = 0x00001000; -@@ -421,6 +491,78 @@ pub const ICANON: ::tcflag_t = 0x00000002; - pub const PENDIN: ::tcflag_t = 0x00004000; - pub const NOFLSH: ::tcflag_t = 0x00000080; - -+pub const B0: ::speed_t = 0o000000; -+pub const B50: ::speed_t = 0o000001; -+pub const B75: ::speed_t = 0o000002; -+pub const B110: ::speed_t = 0o000003; -+pub const B134: ::speed_t = 0o000004; -+pub const B150: ::speed_t = 0o000005; -+pub const B200: ::speed_t = 0o000006; -+pub const B300: ::speed_t = 0o000007; -+pub const B600: ::speed_t = 0o000010; -+pub const B1200: ::speed_t = 0o000011; -+pub const B1800: ::speed_t = 0o000012; -+pub const B2400: ::speed_t = 0o000013; -+pub const B4800: ::speed_t = 0o000014; -+pub const B9600: ::speed_t = 0o000015; -+pub const B19200: ::speed_t = 0o000016; -+pub const B38400: ::speed_t = 0o000017; -+pub const EXTA: ::speed_t = B19200; -+pub const EXTB: ::speed_t = B38400; -+pub const B57600: ::speed_t = 0o010001; -+pub const B115200: ::speed_t = 0o010002; -+pub const B230400: ::speed_t = 0o010003; -+pub const B460800: ::speed_t = 0o010004; -+pub const B500000: ::speed_t = 0o010005; -+pub const B576000: ::speed_t = 0o010006; -+pub const B921600: ::speed_t = 0o010007; -+pub const B1000000: ::speed_t = 0o010010; -+pub const B1152000: ::speed_t = 0o010011; -+pub const B1500000: ::speed_t = 0o010012; -+pub const B2000000: ::speed_t = 0o010013; -+pub const B2500000: ::speed_t = 0o010014; -+pub const B3000000: ::speed_t = 0o010015; -+pub const B3500000: ::speed_t = 0o010016; -+pub const B4000000: ::speed_t = 0o010017; -+ -+#[link(name = "util")] -+extern { -+ pub fn sysctl(name: *mut ::c_int, -+ namelen: ::c_int, -+ oldp: *mut ::c_void, -+ oldlenp: *mut ::size_t, -+ newp: *mut ::c_void, -+ newlen: ::size_t) -+ -> ::c_int; -+ pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; -+ pub fn backtrace(buf: *mut *mut ::c_void, -+ sz: ::c_int) -> ::c_int; -+ pub fn glob64(pattern: *const ::c_char, -+ flags: ::c_int, -+ errfunc: ::dox::Option<extern fn(epath: *const ::c_char, -+ errno: ::c_int) -+ -> ::c_int>, -+ pglob: *mut glob64_t) -> ::c_int; -+ pub fn globfree64(pglob: *mut glob64_t); -+ pub fn ptrace(request: ::c_uint, ...) -> ::c_long; -+ pub fn pthread_attr_getaffinity_np(attr: *const ::pthread_attr_t, -+ cpusetsize: ::size_t, -+ cpuset: *mut ::cpu_set_t) -> ::c_int; -+ pub fn pthread_attr_setaffinity_np(attr: *mut ::pthread_attr_t, -+ cpusetsize: ::size_t, -+ cpuset: *const ::cpu_set_t) -> ::c_int; -+ pub fn getpriority(which: ::__priority_which_t, who: ::id_t) -> ::c_int; -+ pub fn setpriority(which: ::__priority_which_t, who: ::id_t, -+ prio: ::c_int) -> ::c_int; -+ pub fn pthread_getaffinity_np(thread: ::pthread_t, -+ cpusetsize: ::size_t, -+ cpuset: *mut ::cpu_set_t) -> ::c_int; -+ pub fn pthread_setaffinity_np(thread: ::pthread_t, -+ cpusetsize: ::size_t, -+ cpuset: *const ::cpu_set_t) -> ::c_int; -+ pub fn sched_getcpu() -> ::c_int; -+} -+ - cfg_if! { - if #[cfg(target_arch = "mips")] { - mod mips32; -diff --git third_party/rust/libc/src/unix/notbsd/linux/mod.rs third_party/rust/libc/src/unix/notbsd/linux/mod.rs -index 13b61df2cde0..7404f2ce43af 100644 ---- third_party/rust/libc/src/unix/notbsd/linux/mod.rs -+++ third_party/rust/libc/src/unix/notbsd/linux/mod.rs -@@ -1,6 +1,6 @@ - //! Linux-specific definitions for linux-like values - --use dox::mem; -+use dox::{mem, Option}; - - pub type useconds_t = u32; - pub type dev_t = u64; -@@ -220,6 +220,17 @@ s! { - pub msgtql: ::c_int, - pub msgseg: ::c_ushort, - } -+ -+ pub struct mmsghdr { -+ pub msg_hdr: ::msghdr, -+ pub msg_len: ::c_uint, -+ } -+ -+ pub struct sembuf { -+ pub sem_num: ::c_ushort, -+ pub sem_op: ::c_short, -+ pub sem_flg: ::c_short, -+ } - } - - pub const ABDAY_1: ::nl_item = 0x20000; -@@ -373,6 +384,7 @@ pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 78; - pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 79; - pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 80; - pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 81; -+pub const _SC_NPROCESSORS_CONF: ::c_int = 83; - pub const _SC_NPROCESSORS_ONLN: ::c_int = 84; - pub const _SC_ATEXIT_MAX: ::c_int = 87; - pub const _SC_XOPEN_VERSION: ::c_int = 89; -@@ -463,6 +475,19 @@ pub const SCHED_RR: ::c_int = 2; - pub const SCHED_BATCH: ::c_int = 3; - pub const SCHED_IDLE: ::c_int = 5; - -+pub const AF_IB: ::c_int = 27; -+pub const AF_MPLS: ::c_int = 28; -+pub const AF_NFC: ::c_int = 39; -+pub const AF_VSOCK: ::c_int = 40; -+#[doc(hidden)] -+pub const AF_MAX: ::c_int = 42; -+pub const PF_IB: ::c_int = AF_IB; -+pub const PF_MPLS: ::c_int = AF_MPLS; -+pub const PF_NFC: ::c_int = AF_NFC; -+pub const PF_VSOCK: ::c_int = AF_VSOCK; -+#[doc(hidden)] -+pub const PF_MAX: ::c_int = AF_MAX; -+ - // System V IPC - pub const IPC_PRIVATE: ::key_t = 0; - -@@ -496,6 +521,7 @@ pub const SHM_HUGETLB: ::c_int = 0o4000; - pub const SHM_NORESERVE: ::c_int = 0o10000; - - pub const EPOLLRDHUP: ::c_int = 0x2000; -+pub const EPOLLEXCLUSIVE: ::c_int = 0x10000000; - pub const EPOLLONESHOT: ::c_int = 0x40000000; - - pub const QFMT_VFS_OLD: ::c_int = 1; -@@ -678,6 +704,18 @@ pub const PR_CAP_AMBIENT_RAISE: ::c_int = 2; - pub const PR_CAP_AMBIENT_LOWER: ::c_int = 3; - pub const PR_CAP_AMBIENT_CLEAR_ALL: ::c_int = 4; - -+pub const ITIMER_REAL: ::c_int = 0; -+pub const ITIMER_VIRTUAL: ::c_int = 1; -+pub const ITIMER_PROF: ::c_int = 2; -+ -+pub const XATTR_CREATE: ::c_int = 0x1; -+pub const XATTR_REPLACE: ::c_int = 0x2; -+ -+// On Linux, libc doesn't define this constant, libattr does instead. -+// We still define it for Linux as it's defined by libc on other platforms, -+// and it's mentioned in the man pages for getxattr and setxattr. -+pub const ENOATTR: ::c_int = ::ENODATA; -+ - f! { - pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () { - for slot in cpuset.bits.iter_mut() { -@@ -708,6 +746,31 @@ f! { - pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool { - set1.bits == set2.bits - } -+ -+ pub fn major(dev: ::dev_t) -> ::c_uint { -+ let mut major = 0; -+ major |= (dev & 0x00000000000fff00) >> 8; -+ major |= (dev & 0xfffff00000000000) >> 32; -+ major as ::c_uint -+ } -+ -+ pub fn minor(dev: ::dev_t) -> ::c_uint { -+ let mut minor = 0; -+ minor |= (dev & 0xfffff00000000000) >> 0; -+ minor |= (dev & 0x00000ffffff00000) >> 12; -+ minor as ::c_uint -+ } -+ -+ pub fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t { -+ let major = major as ::dev_t; -+ let minor = minor as ::dev_t; -+ let mut dev = 0; -+ dev |= (major & 0x00000fff) << 8; -+ dev |= (major & 0xfffff000) << 32; -+ dev |= (minor & 0x000000ff) << 0; -+ dev |= (minor & 0xffffff00) << 12; -+ dev -+ } - } - - extern { -@@ -744,6 +807,11 @@ extern { - cmd: ::c_int, - buf: *mut ::shmid_ds) -> ::c_int; - pub fn ftok(pathname: *const ::c_char, proj_id: ::c_int) -> ::key_t; -+ pub fn semget(key: ::key_t, nsems: ::c_int, semflag: ::c_int) -> ::c_int; -+ pub fn semop(semid: ::c_int, -+ sops: *mut ::sembuf, nsops: ::size_t) -> ::c_int; -+ pub fn semctl(semid: ::c_int, -+ semnum: ::c_int, cmd: ::c_int, ...) -> ::c_int; - pub fn msgctl(msqid: ::c_int, cmd: ::c_int, buf: *mut msqid_ds) -> ::c_int; - pub fn msgget(key: ::key_t, msgflg: ::c_int) -> ::c_int; - pub fn msgrcv(msqid: ::c_int, msgp: *mut ::c_void, msgsz: ::size_t, -@@ -859,6 +927,8 @@ extern { - serv: *mut ::c_char, - sevlen: ::socklen_t, - flags: ::c_int) -> ::c_int; -+ pub fn pthread_setschedprio(native: ::pthread_t, -+ priority: ::c_int) -> ::c_int; - pub fn prlimit(pid: ::pid_t, resource: ::c_int, new_limit: *const ::rlimit, - old_limit: *mut ::rlimit) -> ::c_int; - pub fn prlimit64(pid: ::pid_t, -@@ -899,6 +969,60 @@ extern { - new_len: ::size_t, - flags: ::c_int, - ...) -> *mut ::c_void; -+ -+ pub fn glob(pattern: *const c_char, -+ flags: ::c_int, -+ errfunc: Option<extern fn(epath: *const c_char, -+ errno: ::c_int) -> ::c_int>, -+ pglob: *mut ::glob_t) -> ::c_int; -+ pub fn globfree(pglob: *mut ::glob_t); -+ -+ pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -+ -> ::c_int; -+ -+ pub fn shm_unlink(name: *const ::c_char) -> ::c_int; -+ -+ pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); -+ -+ pub fn telldir(dirp: *mut ::DIR) -> ::c_long; -+ pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -+ -> ::c_int; -+ -+ pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; -+ -+ pub fn recvfrom(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, -+ flags: ::c_int, addr: *mut ::sockaddr, -+ addrlen: *mut ::socklen_t) -> ::ssize_t; -+ pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; -+ pub fn futimes(fd: ::c_int, times: *const ::timeval) -> ::c_int; -+ pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; -+ -+ pub fn bind(socket: ::c_int, address: *const ::sockaddr, -+ address_len: ::socklen_t) -> ::c_int; -+ -+ pub fn writev(fd: ::c_int, -+ iov: *const ::iovec, -+ iovcnt: ::c_int) -> ::ssize_t; -+ pub fn readv(fd: ::c_int, -+ iov: *const ::iovec, -+ iovcnt: ::c_int) -> ::ssize_t; -+ -+ pub fn sendmsg(fd: ::c_int, -+ msg: *const ::msghdr, -+ flags: ::c_int) -> ::ssize_t; -+ pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -+ -> ::ssize_t; -+ pub fn getdomainname(name: *mut ::c_char, len: ::size_t) -> ::c_int; -+ pub fn setdomainname(name: *const ::c_char, len: ::size_t) -> ::c_int; -+ pub fn vhangup() -> ::c_int; -+} -+ -+extern { -+ pub fn sendmmsg(sockfd: ::c_int, msgvec: *mut mmsghdr, vlen: ::c_uint, -+ flags: ::c_int) -> ::c_int; -+ pub fn recvmmsg(sockfd: ::c_int, msgvec: *mut mmsghdr, vlen: ::c_uint, -+ flags: ::c_int, timeout: *mut ::timespec) -> ::c_int; -+ pub fn sync(); - } - - cfg_if! { -diff --git third_party/rust/libc/src/unix/notbsd/linux/musl/b32/arm.rs third_party/rust/libc/src/unix/notbsd/linux/musl/b32/arm.rs -index 540c1abb5f69..ce198aca9285 100644 ---- third_party/rust/libc/src/unix/notbsd/linux/musl/b32/arm.rs -+++ third_party/rust/libc/src/unix/notbsd/linux/musl/b32/arm.rs -@@ -245,13 +245,22 @@ pub const SO_SNDBUF: ::c_int = 7; - pub const SO_RCVBUF: ::c_int = 8; - pub const SO_KEEPALIVE: ::c_int = 9; - pub const SO_OOBINLINE: ::c_int = 10; -+pub const SO_NO_CHECK: ::c_int = 11; -+pub const SO_PRIORITY: ::c_int = 12; - pub const SO_LINGER: ::c_int = 13; -+pub const SO_BSDCOMPAT: ::c_int = 14; - pub const SO_REUSEPORT: ::c_int = 15; -+pub const SO_PASSCRED: ::c_int = 16; -+pub const SO_PEERCRED: ::c_int = 17; - pub const SO_RCVLOWAT: ::c_int = 18; - pub const SO_SNDLOWAT: ::c_int = 19; - pub const SO_RCVTIMEO: ::c_int = 20; - pub const SO_SNDTIMEO: ::c_int = 21; - pub const SO_ACCEPTCONN: ::c_int = 30; -+pub const SO_SNDBUFFORCE: ::c_int = 32; -+pub const SO_RCVBUFFORCE: ::c_int = 33; -+pub const SO_PROTOCOL: ::c_int = 38; -+pub const SO_DOMAIN: ::c_int = 39; - - pub const SA_ONSTACK: ::c_int = 0x08000000; - pub const SA_SIGINFO: ::c_int = 0x00000004; -diff --git third_party/rust/libc/src/unix/notbsd/linux/musl/b32/mips.rs third_party/rust/libc/src/unix/notbsd/linux/musl/b32/mips.rs -index 363d7c5d66f4..23c1a267e664 100644 ---- third_party/rust/libc/src/unix/notbsd/linux/musl/b32/mips.rs -+++ third_party/rust/libc/src/unix/notbsd/linux/musl/b32/mips.rs -@@ -245,21 +245,30 @@ pub const SOCK_SEQPACKET: ::c_int = 5; - pub const SOL_SOCKET: ::c_int = 65535; - - pub const SO_REUSEADDR: ::c_int = 0x0004; --pub const SO_TYPE: ::c_int = 0x1008; --pub const SO_ERROR: ::c_int = 0x1007; -+pub const SO_KEEPALIVE: ::c_int = 0x0008; - pub const SO_DONTROUTE: ::c_int = 0x0010; - pub const SO_BROADCAST: ::c_int = 0x0020; -+pub const SO_LINGER: ::c_int = 0x0080; -+pub const SO_OOBINLINE: ::c_int = 0x0100; -+pub const SO_REUSEPORT: ::c_int = 0x0200; - pub const SO_SNDBUF: ::c_int = 0x1001; - pub const SO_RCVBUF: ::c_int = 0x1002; --pub const SO_KEEPALIVE: ::c_int = 0x0008; --pub const SO_OOBINLINE: ::c_int = 0x0100; --pub const SO_LINGER: ::c_int = 0x0080; --pub const SO_REUSEPORT: ::c_int = 0x200; --pub const SO_RCVLOWAT: ::c_int = 0x1004; - pub const SO_SNDLOWAT: ::c_int = 0x1003; -+pub const SO_RCVLOWAT: ::c_int = 0x1004; - pub const SO_RCVTIMEO: ::c_int = 0x1006; - pub const SO_SNDTIMEO: ::c_int = 0x1005; -+pub const SO_ERROR: ::c_int = 0x1007; -+pub const SO_TYPE: ::c_int = 0x1008; - pub const SO_ACCEPTCONN: ::c_int = 0x1009; -+pub const SO_PROTOCOL: ::c_int = 0x1028; -+pub const SO_DOMAIN: ::c_int = 0x1029; -+pub const SO_NO_CHECK: ::c_int = 11; -+pub const SO_PRIORITY: ::c_int = 12; -+pub const SO_BSDCOMPAT: ::c_int = 14; -+pub const SO_PASSCRED: ::c_int = 17; -+pub const SO_PEERCRED: ::c_int = 18; -+pub const SO_SNDBUFFORCE: ::c_int = 31; -+pub const SO_RCVBUFFORCE: ::c_int = 33; - - pub const SA_ONSTACK: ::c_int = 0x08000000; - pub const SA_SIGINFO: ::c_int = 8; -diff --git third_party/rust/libc/src/unix/notbsd/linux/musl/b32/x86.rs third_party/rust/libc/src/unix/notbsd/linux/musl/b32/x86.rs -index dede8ffc5f9f..9daeb58b9986 100644 ---- third_party/rust/libc/src/unix/notbsd/linux/musl/b32/x86.rs -+++ third_party/rust/libc/src/unix/notbsd/linux/musl/b32/x86.rs -@@ -258,13 +258,22 @@ pub const SO_SNDBUF: ::c_int = 7; - pub const SO_RCVBUF: ::c_int = 8; - pub const SO_KEEPALIVE: ::c_int = 9; - pub const SO_OOBINLINE: ::c_int = 10; -+pub const SO_NO_CHECK: ::c_int = 11; -+pub const SO_PRIORITY: ::c_int = 12; - pub const SO_LINGER: ::c_int = 13; -+pub const SO_BSDCOMPAT: ::c_int = 14; - pub const SO_REUSEPORT: ::c_int = 15; -+pub const SO_PASSCRED: ::c_int = 16; -+pub const SO_PEERCRED: ::c_int = 17; - pub const SO_RCVLOWAT: ::c_int = 18; - pub const SO_SNDLOWAT: ::c_int = 19; - pub const SO_RCVTIMEO: ::c_int = 20; - pub const SO_SNDTIMEO: ::c_int = 21; - pub const SO_ACCEPTCONN: ::c_int = 30; -+pub const SO_SNDBUFFORCE: ::c_int = 32; -+pub const SO_RCVBUFFORCE: ::c_int = 33; -+pub const SO_PROTOCOL: ::c_int = 38; -+pub const SO_DOMAIN: ::c_int = 39; - - pub const SA_ONSTACK: ::c_int = 0x08000000; - pub const SA_SIGINFO: ::c_int = 0x00000004; -diff --git third_party/rust/libc/src/unix/notbsd/linux/musl/b64/mod.rs third_party/rust/libc/src/unix/notbsd/linux/musl/b64/mod.rs -index 2de34133fc3b..fab0b58fed9b 100644 ---- third_party/rust/libc/src/unix/notbsd/linux/musl/b64/mod.rs -+++ third_party/rust/libc/src/unix/notbsd/linux/musl/b64/mod.rs -@@ -274,13 +274,22 @@ pub const SO_SNDBUF: ::c_int = 7; - pub const SO_RCVBUF: ::c_int = 8; - pub const SO_KEEPALIVE: ::c_int = 9; - pub const SO_OOBINLINE: ::c_int = 10; -+pub const SO_NO_CHECK: ::c_int = 11; -+pub const SO_PRIORITY: ::c_int = 12; - pub const SO_LINGER: ::c_int = 13; -+pub const SO_BSDCOMPAT: ::c_int = 14; - pub const SO_REUSEPORT: ::c_int = 15; -+pub const SO_PASSCRED: ::c_int = 16; -+pub const SO_PEERCRED: ::c_int = 17; - pub const SO_RCVLOWAT: ::c_int = 18; - pub const SO_SNDLOWAT: ::c_int = 19; - pub const SO_RCVTIMEO: ::c_int = 20; - pub const SO_SNDTIMEO: ::c_int = 21; - pub const SO_ACCEPTCONN: ::c_int = 30; -+pub const SO_SNDBUFFORCE: ::c_int = 32; -+pub const SO_RCVBUFFORCE: ::c_int = 33; -+pub const SO_PROTOCOL: ::c_int = 38; -+pub const SO_DOMAIN: ::c_int = 39; - - pub const SA_ONSTACK: ::c_int = 0x08000000; - pub const SA_SIGINFO: ::c_int = 0x00000004; -diff --git third_party/rust/libc/src/unix/notbsd/linux/musl/mod.rs third_party/rust/libc/src/unix/notbsd/linux/musl/mod.rs -index ff8e59b08aeb..b365028b76ac 100644 ---- third_party/rust/libc/src/unix/notbsd/linux/musl/mod.rs -+++ third_party/rust/libc/src/unix/notbsd/linux/musl/mod.rs -@@ -35,7 +35,7 @@ s! { - pub sa_sigaction: ::sighandler_t, - pub sa_mask: ::sigset_t, - pub sa_flags: ::c_int, -- _restorer: *mut ::c_void, -+ pub sa_restorer: ::dox::Option<extern fn()>, - } - - pub struct ipc_perm { -@@ -124,6 +124,9 @@ pub const EFD_CLOEXEC: ::c_int = 0x80000; - pub const BUFSIZ: ::c_uint = 1024; - pub const TMP_MAX: ::c_uint = 10000; - pub const FOPEN_MAX: ::c_uint = 1000; -+pub const O_PATH: ::c_int = 0o10000000; -+pub const O_EXEC: ::c_int = 0o10000000; -+pub const O_SEARCH: ::c_int = 0o10000000; - pub const O_ACCMODE: ::c_int = 0o10000003; - pub const O_NDELAY: ::c_int = O_NONBLOCK; - pub const NI_MAXHOST: ::socklen_t = 255; -@@ -236,6 +239,7 @@ pub const MCL_CURRENT: ::c_int = 0x0001; - pub const MCL_FUTURE: ::c_int = 0x0002; - - pub const SIGSTKSZ: ::size_t = 8192; -+pub const MINSIGSTKSZ: ::size_t = 2048; - pub const CBAUD: ::tcflag_t = 0o0010017; - pub const TAB1: ::c_int = 0x00000800; - pub const TAB2: ::c_int = 0x00001000; -@@ -277,6 +281,40 @@ pub const ICANON: ::tcflag_t = 0x00000002; - pub const PENDIN: ::tcflag_t = 0x00004000; - pub const NOFLSH: ::tcflag_t = 0x00000080; - -+pub const B0: ::speed_t = 0o000000; -+pub const B50: ::speed_t = 0o000001; -+pub const B75: ::speed_t = 0o000002; -+pub const B110: ::speed_t = 0o000003; -+pub const B134: ::speed_t = 0o000004; -+pub const B150: ::speed_t = 0o000005; -+pub const B200: ::speed_t = 0o000006; -+pub const B300: ::speed_t = 0o000007; -+pub const B600: ::speed_t = 0o000010; -+pub const B1200: ::speed_t = 0o000011; -+pub const B1800: ::speed_t = 0o000012; -+pub const B2400: ::speed_t = 0o000013; -+pub const B4800: ::speed_t = 0o000014; -+pub const B9600: ::speed_t = 0o000015; -+pub const B19200: ::speed_t = 0o000016; -+pub const B38400: ::speed_t = 0o000017; -+pub const EXTA: ::speed_t = B19200; -+pub const EXTB: ::speed_t = B38400; -+pub const B57600: ::speed_t = 0o010001; -+pub const B115200: ::speed_t = 0o010002; -+pub const B230400: ::speed_t = 0o010003; -+pub const B460800: ::speed_t = 0o010004; -+pub const B500000: ::speed_t = 0o010005; -+pub const B576000: ::speed_t = 0o010006; -+pub const B921600: ::speed_t = 0o010007; -+pub const B1000000: ::speed_t = 0o010010; -+pub const B1152000: ::speed_t = 0o010011; -+pub const B1500000: ::speed_t = 0o010012; -+pub const B2000000: ::speed_t = 0o010013; -+pub const B2500000: ::speed_t = 0o010014; -+pub const B3000000: ::speed_t = 0o010015; -+pub const B3500000: ::speed_t = 0o010016; -+pub const B4000000: ::speed_t = 0o010017; -+ - extern { - pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; - pub fn ptrace(request: ::c_int, ...) -> ::c_long; -diff --git third_party/rust/libc/src/unix/notbsd/linux/other/b32/arm.rs third_party/rust/libc/src/unix/notbsd/linux/other/b32/arm.rs -index 2c6fbcd6e3f2..ee6d67403a1b 100644 ---- third_party/rust/libc/src/unix/notbsd/linux/other/b32/arm.rs -+++ third_party/rust/libc/src/unix/notbsd/linux/other/b32/arm.rs -@@ -100,6 +100,7 @@ pub const MCL_CURRENT: ::c_int = 0x0001; - pub const MCL_FUTURE: ::c_int = 0x0002; - - pub const SIGSTKSZ: ::size_t = 8192; -+pub const MINSIGSTKSZ: ::size_t = 2048; - pub const CBAUD: ::tcflag_t = 0o0010017; - pub const TAB1: ::c_int = 0x00000800; - pub const TAB2: ::c_int = 0x00001000; -@@ -141,6 +142,40 @@ pub const ICANON: ::tcflag_t = 0x00000002; - pub const PENDIN: ::tcflag_t = 0x00004000; - pub const NOFLSH: ::tcflag_t = 0x00000080; - -+pub const B0: ::speed_t = 0o000000; -+pub const B50: ::speed_t = 0o000001; -+pub const B75: ::speed_t = 0o000002; -+pub const B110: ::speed_t = 0o000003; -+pub const B134: ::speed_t = 0o000004; -+pub const B150: ::speed_t = 0o000005; -+pub const B200: ::speed_t = 0o000006; -+pub const B300: ::speed_t = 0o000007; -+pub const B600: ::speed_t = 0o000010; -+pub const B1200: ::speed_t = 0o000011; -+pub const B1800: ::speed_t = 0o000012; -+pub const B2400: ::speed_t = 0o000013; -+pub const B4800: ::speed_t = 0o000014; -+pub const B9600: ::speed_t = 0o000015; -+pub const B19200: ::speed_t = 0o000016; -+pub const B38400: ::speed_t = 0o000017; -+pub const EXTA: ::speed_t = B19200; -+pub const EXTB: ::speed_t = B38400; -+pub const B57600: ::speed_t = 0o010001; -+pub const B115200: ::speed_t = 0o010002; -+pub const B230400: ::speed_t = 0o010003; -+pub const B460800: ::speed_t = 0o010004; -+pub const B500000: ::speed_t = 0o010005; -+pub const B576000: ::speed_t = 0o010006; -+pub const B921600: ::speed_t = 0o010007; -+pub const B1000000: ::speed_t = 0o010010; -+pub const B1152000: ::speed_t = 0o010011; -+pub const B1500000: ::speed_t = 0o010012; -+pub const B2000000: ::speed_t = 0o010013; -+pub const B2500000: ::speed_t = 0o010014; -+pub const B3000000: ::speed_t = 0o010015; -+pub const B3500000: ::speed_t = 0o010016; -+pub const B4000000: ::speed_t = 0o010017; -+ - pub const VEOL: usize = 11; - pub const VEOL2: usize = 16; - pub const VMIN: usize = 6; -diff --git third_party/rust/libc/src/unix/notbsd/linux/other/b32/powerpc.rs third_party/rust/libc/src/unix/notbsd/linux/other/b32/powerpc.rs -index 3125e9f337dd..035bfe19cdc0 100644 ---- third_party/rust/libc/src/unix/notbsd/linux/other/b32/powerpc.rs -+++ third_party/rust/libc/src/unix/notbsd/linux/other/b32/powerpc.rs -@@ -81,11 +81,17 @@ pub const MAP_NORESERVE: ::c_int = 0x00040; - - pub const EDEADLOCK: ::c_int = 58; - --pub const SO_PEERCRED: ::c_int = 21; -+pub const SO_SNDBUFFORCE: ::c_int = 32; -+pub const SO_RCVBUFFORCE: ::c_int = 33; -+pub const SO_NO_CHECK: ::c_int = 11; -+pub const SO_PRIORITY: ::c_int = 12; -+pub const SO_BSDCOMPAT: ::c_int = 14; - pub const SO_RCVLOWAT: ::c_int = 16; - pub const SO_SNDLOWAT: ::c_int = 17; - pub const SO_RCVTIMEO: ::c_int = 18; - pub const SO_SNDTIMEO: ::c_int = 19; -+pub const SO_PASSCRED: ::c_int = 20; -+pub const SO_PEERCRED: ::c_int = 21; - - pub const FIOCLEX: ::c_ulong = 0x20006601; - pub const FIONBIO: ::c_ulong = 0x8004667e; -@@ -97,6 +103,7 @@ pub const MCL_CURRENT: ::c_int = 0x2000; - pub const MCL_FUTURE: ::c_int = 0x4000; - - pub const SIGSTKSZ: ::size_t = 0x4000; -+pub const MINSIGSTKSZ: ::size_t = 4096; - pub const CBAUD: ::tcflag_t = 0xff; - pub const TAB1: ::c_int = 0x400; - pub const TAB2: ::c_int = 0x800; -@@ -138,6 +145,41 @@ pub const ICANON: ::tcflag_t = 0x100; - pub const PENDIN: ::tcflag_t = 0x20000000; - pub const NOFLSH: ::tcflag_t = 0x80000000; - -+pub const B0: ::speed_t = 0o000000; -+pub const B50: ::speed_t = 0o000001; -+pub const B75: ::speed_t = 0o000002; -+pub const B110: ::speed_t = 0o000003; -+pub const B134: ::speed_t = 0o000004; -+pub const B150: ::speed_t = 0o000005; -+pub const B200: ::speed_t = 0o000006; -+pub const B300: ::speed_t = 0o000007; -+pub const B600: ::speed_t = 0o000010; -+pub const B1200: ::speed_t = 0o000011; -+pub const B1800: ::speed_t = 0o000012; -+pub const B2400: ::speed_t = 0o000013; -+pub const B4800: ::speed_t = 0o000014; -+pub const B9600: ::speed_t = 0o000015; -+pub const B19200: ::speed_t = 0o000016; -+pub const B38400: ::speed_t = 0o000017; -+pub const EXTA: ::speed_t = B19200; -+pub const EXTB: ::speed_t = B38400; -+pub const CBAUDEX: ::speed_t = 0o000020; -+pub const B57600: ::speed_t = 0o0020; -+pub const B115200: ::speed_t = 0o0021; -+pub const B230400: ::speed_t = 0o0022; -+pub const B460800: ::speed_t = 0o0023; -+pub const B500000: ::speed_t = 0o0024; -+pub const B576000: ::speed_t = 0o0025; -+pub const B921600: ::speed_t = 0o0026; -+pub const B1000000: ::speed_t = 0o0027; -+pub const B1152000: ::speed_t = 0o0030; -+pub const B1500000: ::speed_t = 0o0031; -+pub const B2000000: ::speed_t = 0o0032; -+pub const B2500000: ::speed_t = 0o0033; -+pub const B3000000: ::speed_t = 0o0034; -+pub const B3500000: ::speed_t = 0o0035; -+pub const B4000000: ::speed_t = 0o0036; -+ - pub const VEOL: usize = 6; - pub const VEOL2: usize = 8; - pub const VMIN: usize = 5; -diff --git third_party/rust/libc/src/unix/notbsd/linux/other/b32/x86.rs third_party/rust/libc/src/unix/notbsd/linux/other/b32/x86.rs -index 86abd1eb1035..04a3caad12ac 100644 ---- third_party/rust/libc/src/unix/notbsd/linux/other/b32/x86.rs -+++ third_party/rust/libc/src/unix/notbsd/linux/other/b32/x86.rs -@@ -20,6 +20,71 @@ s! { - pub status: ::c_ulong, - } - -+ pub struct user_fpregs_struct { -+ pub cwd: ::c_long, -+ pub swd: ::c_long, -+ pub twd: ::c_long, -+ pub fip: ::c_long, -+ pub fcs: ::c_long, -+ pub foo: ::c_long, -+ pub fos: ::c_long, -+ pub st_space: [::c_long; 20], -+ } -+ -+ pub struct user_fpxregs_struct { -+ pub cwd: ::c_ushort, -+ pub swd: ::c_ushort, -+ pub twd: ::c_ushort, -+ pub fop: ::c_ushort, -+ pub fip: ::c_long, -+ pub fcs: ::c_long, -+ pub foo: ::c_long, -+ pub fos: ::c_long, -+ pub mxcsr: ::c_long, -+ __reserved: ::c_long, -+ pub st_space: [::c_long; 32], -+ pub xmm_space: [::c_long; 32], -+ padding: [::c_long; 56], -+ } -+ -+ pub struct user_regs_struct { -+ pub ebx: ::c_long, -+ pub ecx: ::c_long, -+ pub edx: ::c_long, -+ pub esi: ::c_long, -+ pub edi: ::c_long, -+ pub ebp: ::c_long, -+ pub eax: ::c_long, -+ pub xds: ::c_long, -+ pub xes: ::c_long, -+ pub xfs: ::c_long, -+ pub xgs: ::c_long, -+ pub orig_eax: ::c_long, -+ pub eip: ::c_long, -+ pub xcs: ::c_long, -+ pub eflags: ::c_long, -+ pub esp: ::c_long, -+ pub xss: ::c_long, -+ } -+ -+ pub struct user { -+ pub regs: user_regs_struct, -+ pub u_fpvalid: ::c_int, -+ pub i387: user_fpregs_struct, -+ pub u_tsize: ::c_ulong, -+ pub u_dsize: ::c_ulong, -+ pub u_ssize: ::c_ulong, -+ pub start_code: ::c_ulong, -+ pub start_stack: ::c_ulong, -+ pub signal: ::c_long, -+ __reserved: ::c_int, -+ pub u_ar0: *mut user_regs_struct, -+ pub u_fpstate: *mut user_fpregs_struct, -+ pub magic: ::c_ulong, -+ pub u_comm: [c_char; 32], -+ pub u_debugreg: [::c_int; 8], -+ } -+ - pub struct mcontext_t { - pub gregs: [greg_t; 19], - pub fpregs: *mut _libc_fpstate, -@@ -116,6 +181,12 @@ pub const MAP_32BIT: ::c_int = 0x0040; - - pub const EDEADLOCK: ::c_int = 35; - -+pub const SO_SNDBUFFORCE: ::c_int = 32; -+pub const SO_RCVBUFFORCE: ::c_int = 33; -+pub const SO_NO_CHECK: ::c_int = 11; -+pub const SO_PRIORITY: ::c_int = 12; -+pub const SO_BSDCOMPAT: ::c_int = 14; -+pub const SO_PASSCRED: ::c_int = 16; - pub const SO_PEERCRED: ::c_int = 17; - pub const SO_RCVLOWAT: ::c_int = 18; - pub const SO_SNDLOWAT: ::c_int = 19; -@@ -135,6 +206,7 @@ pub const MCL_CURRENT: ::c_int = 0x0001; - pub const MCL_FUTURE: ::c_int = 0x0002; - - pub const SIGSTKSZ: ::size_t = 8192; -+pub const MINSIGSTKSZ: ::size_t = 2048; - pub const CBAUD: ::tcflag_t = 0o0010017; - pub const TAB1: ::c_int = 0x00000800; - pub const TAB2: ::c_int = 0x00001000; -@@ -176,6 +248,40 @@ pub const ICANON: ::tcflag_t = 0x00000002; - pub const PENDIN: ::tcflag_t = 0x00004000; - pub const NOFLSH: ::tcflag_t = 0x00000080; - -+pub const B0: ::speed_t = 0o000000; -+pub const B50: ::speed_t = 0o000001; -+pub const B75: ::speed_t = 0o000002; -+pub const B110: ::speed_t = 0o000003; -+pub const B134: ::speed_t = 0o000004; -+pub const B150: ::speed_t = 0o000005; -+pub const B200: ::speed_t = 0o000006; -+pub const B300: ::speed_t = 0o000007; -+pub const B600: ::speed_t = 0o000010; -+pub const B1200: ::speed_t = 0o000011; -+pub const B1800: ::speed_t = 0o000012; -+pub const B2400: ::speed_t = 0o000013; -+pub const B4800: ::speed_t = 0o000014; -+pub const B9600: ::speed_t = 0o000015; -+pub const B19200: ::speed_t = 0o000016; -+pub const B38400: ::speed_t = 0o000017; -+pub const EXTA: ::speed_t = B19200; -+pub const EXTB: ::speed_t = B38400; -+pub const B57600: ::speed_t = 0o010001; -+pub const B115200: ::speed_t = 0o010002; -+pub const B230400: ::speed_t = 0o010003; -+pub const B460800: ::speed_t = 0o010004; -+pub const B500000: ::speed_t = 0o010005; -+pub const B576000: ::speed_t = 0o010006; -+pub const B921600: ::speed_t = 0o010007; -+pub const B1000000: ::speed_t = 0o010010; -+pub const B1152000: ::speed_t = 0o010011; -+pub const B1500000: ::speed_t = 0o010012; -+pub const B2000000: ::speed_t = 0o010013; -+pub const B2500000: ::speed_t = 0o010014; -+pub const B3000000: ::speed_t = 0o010015; -+pub const B3500000: ::speed_t = 0o010016; -+pub const B4000000: ::speed_t = 0o010017; -+ - pub const VEOL: usize = 11; - pub const VEOL2: usize = 16; - pub const VMIN: usize = 6; -diff --git third_party/rust/libc/src/unix/notbsd/linux/other/b64/aarch64.rs third_party/rust/libc/src/unix/notbsd/linux/other/b64/aarch64.rs -index cb0e1a6979e0..77cee3d21751 100644 ---- third_party/rust/libc/src/unix/notbsd/linux/other/b64/aarch64.rs -+++ third_party/rust/libc/src/unix/notbsd/linux/other/b64/aarch64.rs -@@ -188,11 +188,54 @@ pub const SO_DONTROUTE: ::c_int = 5; - pub const SO_BROADCAST: ::c_int = 6; - pub const SO_SNDBUF: ::c_int = 7; - pub const SO_RCVBUF: ::c_int = 8; -+pub const SO_SNDBUFFORCE: ::c_int = 32; -+pub const SO_RCVBUFFORCE: ::c_int = 33; - pub const SO_KEEPALIVE: ::c_int = 9; - pub const SO_OOBINLINE: ::c_int = 10; -+pub const SO_NO_CHECK: ::c_int = 11; -+pub const SO_PRIORITY: ::c_int = 12; - pub const SO_LINGER: ::c_int = 13; -+pub const SO_BSDCOMPAT: ::c_int = 14; - pub const SO_REUSEPORT: ::c_int = 15; -+pub const SO_PASSCRED: ::c_int = 16; -+pub const SO_PEERCRED: ::c_int = 17; -+pub const SO_RCVLOWAT: ::c_int = 18; -+pub const SO_SNDLOWAT: ::c_int = 19; -+pub const SO_RCVTIMEO: ::c_int = 20; -+pub const SO_SNDTIMEO: ::c_int = 21; -+pub const SO_SECURITY_AUTHENTICATION: ::c_int = 22; -+pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 23; -+pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 24; -+pub const SO_BINDTODEVICE: ::c_int = 25; -+pub const SO_ATTACH_FILTER: ::c_int = 26; -+pub const SO_DETACH_FILTER: ::c_int = 27; -+pub const SO_GET_FILTER: ::c_int = SO_ATTACH_FILTER; -+pub const SO_PEERNAME: ::c_int = 28; -+pub const SO_TIMESTAMP: ::c_int = 29; -+pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; - pub const SO_ACCEPTCONN: ::c_int = 30; -+pub const SO_PEERSEC: ::c_int = 31; -+pub const SO_PASSSEC: ::c_int = 34; -+pub const SO_TIMESTAMPNS: ::c_int = 35; -+pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS; -+pub const SO_MARK: ::c_int = 36; -+pub const SO_TIMESTAMPING: ::c_int = 37; -+pub const SCM_TIMESTAMPING: ::c_int = SO_TIMESTAMPING; -+pub const SO_PROTOCOL: ::c_int = 38; -+pub const SO_DOMAIN: ::c_int = 39; -+pub const SO_RXQ_OVFL: ::c_int = 40; -+pub const SO_WIFI_STATUS: ::c_int = 41; -+pub const SCM_WIFI_STATUS: ::c_int = SO_WIFI_STATUS; -+pub const SO_PEEK_OFF: ::c_int = 42; -+pub const SO_NOFCS: ::c_int = 43; -+pub const SO_LOCK_FILTER: ::c_int = 44; -+pub const SO_SELECT_ERR_QUEUE: ::c_int = 45; -+pub const SO_BUSY_POLL: ::c_int = 46; -+pub const SO_MAX_PACING_RATE: ::c_int = 47; -+pub const SO_BPF_EXTENSIONS: ::c_int = 48; -+pub const SO_INCOMING_CPU: ::c_int = 49; -+pub const SO_ATTACH_BPF: ::c_int = 50; -+pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER; - - pub const SA_ONSTACK: ::c_int = 0x08000000; - pub const SA_SIGINFO: ::c_int = 0x00000004; -@@ -291,12 +334,6 @@ pub const MAP_NORESERVE: ::c_int = 0x04000; - - pub const EDEADLOCK: ::c_int = 35; - --pub const SO_PEERCRED: ::c_int = 17; --pub const SO_RCVLOWAT: ::c_int = 18; --pub const SO_SNDLOWAT: ::c_int = 19; --pub const SO_RCVTIMEO: ::c_int = 20; --pub const SO_SNDTIMEO: ::c_int = 21; -- - pub const FIOCLEX: ::c_ulong = 0x5451; - pub const FIONBIO: ::c_ulong = 0x5421; - -@@ -307,6 +344,7 @@ pub const MCL_CURRENT: ::c_int = 0x0001; - pub const MCL_FUTURE: ::c_int = 0x0002; - - pub const SIGSTKSZ: ::size_t = 16384; -+pub const MINSIGSTKSZ: ::size_t = 5120; - pub const CBAUD: ::tcflag_t = 0o0010017; - pub const TAB1: ::c_int = 0x00000800; - pub const TAB2: ::c_int = 0x00001000; -@@ -348,6 +386,40 @@ pub const ICANON: ::tcflag_t = 0x00000002; - pub const PENDIN: ::tcflag_t = 0x00004000; - pub const NOFLSH: ::tcflag_t = 0x00000080; - -+pub const B0: ::speed_t = 0o000000; -+pub const B50: ::speed_t = 0o000001; -+pub const B75: ::speed_t = 0o000002; -+pub const B110: ::speed_t = 0o000003; -+pub const B134: ::speed_t = 0o000004; -+pub const B150: ::speed_t = 0o000005; -+pub const B200: ::speed_t = 0o000006; -+pub const B300: ::speed_t = 0o000007; -+pub const B600: ::speed_t = 0o000010; -+pub const B1200: ::speed_t = 0o000011; -+pub const B1800: ::speed_t = 0o000012; -+pub const B2400: ::speed_t = 0o000013; -+pub const B4800: ::speed_t = 0o000014; -+pub const B9600: ::speed_t = 0o000015; -+pub const B19200: ::speed_t = 0o000016; -+pub const B38400: ::speed_t = 0o000017; -+pub const EXTA: ::speed_t = B19200; -+pub const EXTB: ::speed_t = B38400; -+pub const B57600: ::speed_t = 0o010001; -+pub const B115200: ::speed_t = 0o010002; -+pub const B230400: ::speed_t = 0o010003; -+pub const B460800: ::speed_t = 0o010004; -+pub const B500000: ::speed_t = 0o010005; -+pub const B576000: ::speed_t = 0o010006; -+pub const B921600: ::speed_t = 0o010007; -+pub const B1000000: ::speed_t = 0o010010; -+pub const B1152000: ::speed_t = 0o010011; -+pub const B1500000: ::speed_t = 0o010012; -+pub const B2000000: ::speed_t = 0o010013; -+pub const B2500000: ::speed_t = 0o010014; -+pub const B3000000: ::speed_t = 0o010015; -+pub const B3500000: ::speed_t = 0o010016; -+pub const B4000000: ::speed_t = 0o010017; -+ - pub const VEOL: usize = 11; - pub const VEOL2: usize = 16; - pub const VMIN: usize = 6; -diff --git third_party/rust/libc/src/unix/notbsd/linux/other/b64/powerpc64.rs third_party/rust/libc/src/unix/notbsd/linux/other/b64/powerpc64.rs -index a5fad66dd1ea..8c19b0713dc5 100644 ---- third_party/rust/libc/src/unix/notbsd/linux/other/b64/powerpc64.rs -+++ third_party/rust/libc/src/unix/notbsd/linux/other/b64/powerpc64.rs -@@ -186,11 +186,54 @@ pub const SO_DONTROUTE: ::c_int = 5; - pub const SO_BROADCAST: ::c_int = 6; - pub const SO_SNDBUF: ::c_int = 7; - pub const SO_RCVBUF: ::c_int = 8; -+pub const SO_SNDBUFFORCE: ::c_int = 32; -+pub const SO_RCVBUFFORCE: ::c_int = 33; - pub const SO_KEEPALIVE: ::c_int = 9; - pub const SO_OOBINLINE: ::c_int = 10; -+pub const SO_NO_CHECK: ::c_int = 11; -+pub const SO_PRIORITY: ::c_int = 12; - pub const SO_LINGER: ::c_int = 13; -+pub const SO_BSDCOMPAT: ::c_int = 14; - pub const SO_REUSEPORT: ::c_int = 15; -+pub const SO_PASSCRED: ::c_int = 20; -+pub const SO_PEERCRED: ::c_int = 21; -+pub const SO_RCVLOWAT: ::c_int = 16; -+pub const SO_SNDLOWAT: ::c_int = 17; -+pub const SO_RCVTIMEO: ::c_int = 18; -+pub const SO_SNDTIMEO: ::c_int = 19; -+pub const SO_SECURITY_AUTHENTICATION: ::c_int = 22; -+pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 23; -+pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 24; -+pub const SO_BINDTODEVICE: ::c_int = 25; -+pub const SO_ATTACH_FILTER: ::c_int = 26; -+pub const SO_DETACH_FILTER: ::c_int = 27; -+pub const SO_GET_FILTER: ::c_int = SO_ATTACH_FILTER; -+pub const SO_PEERNAME: ::c_int = 28; -+pub const SO_TIMESTAMP: ::c_int = 29; -+pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; - pub const SO_ACCEPTCONN: ::c_int = 30; -+pub const SO_PEERSEC: ::c_int = 31; -+pub const SO_PASSSEC: ::c_int = 34; -+pub const SO_TIMESTAMPNS: ::c_int = 35; -+pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS; -+pub const SO_MARK: ::c_int = 36; -+pub const SO_TIMESTAMPING: ::c_int = 37; -+pub const SCM_TIMESTAMPING: ::c_int = SO_TIMESTAMPING; -+pub const SO_PROTOCOL: ::c_int = 38; -+pub const SO_DOMAIN: ::c_int = 39; -+pub const SO_RXQ_OVFL: ::c_int = 40; -+pub const SO_WIFI_STATUS: ::c_int = 41; -+pub const SCM_WIFI_STATUS: ::c_int = SO_WIFI_STATUS; -+pub const SO_PEEK_OFF: ::c_int = 42; -+pub const SO_NOFCS: ::c_int = 43; -+pub const SO_LOCK_FILTER: ::c_int = 44; -+pub const SO_SELECT_ERR_QUEUE: ::c_int = 45; -+pub const SO_BUSY_POLL: ::c_int = 46; -+pub const SO_MAX_PACING_RATE: ::c_int = 47; -+pub const SO_BPF_EXTENSIONS: ::c_int = 48; -+pub const SO_INCOMING_CPU: ::c_int = 49; -+pub const SO_ATTACH_BPF: ::c_int = 50; -+pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER; - - pub const SA_ONSTACK: ::c_int = 0x08000000; - pub const SA_SIGINFO: ::c_int = 0x00000004; -@@ -289,12 +332,6 @@ pub const MAP_NORESERVE: ::c_int = 0x00040; - - pub const EDEADLOCK: ::c_int = 58; - --pub const SO_PEERCRED: ::c_int = 21; --pub const SO_RCVLOWAT: ::c_int = 16; --pub const SO_SNDLOWAT: ::c_int = 17; --pub const SO_RCVTIMEO: ::c_int = 18; --pub const SO_SNDTIMEO: ::c_int = 19; -- - pub const FIOCLEX: ::c_ulong = 0x20006601; - pub const FIONBIO: ::c_ulong = 0x8004667e; - -@@ -305,6 +342,7 @@ pub const MCL_CURRENT: ::c_int = 0x2000; - pub const MCL_FUTURE: ::c_int = 0x4000; - - pub const SIGSTKSZ: ::size_t = 0x4000; -+pub const MINSIGSTKSZ: ::size_t = 4096; - pub const CBAUD: ::tcflag_t = 0xff; - pub const TAB1: ::c_int = 0x400; - pub const TAB2: ::c_int = 0x800; -@@ -346,6 +384,41 @@ pub const ICANON: ::tcflag_t = 0x100; - pub const PENDIN: ::tcflag_t = 0x20000000; - pub const NOFLSH: ::tcflag_t = 0x80000000; - -+pub const B0: ::speed_t = 0o000000; -+pub const B50: ::speed_t = 0o000001; -+pub const B75: ::speed_t = 0o000002; -+pub const B110: ::speed_t = 0o000003; -+pub const B134: ::speed_t = 0o000004; -+pub const B150: ::speed_t = 0o000005; -+pub const B200: ::speed_t = 0o000006; -+pub const B300: ::speed_t = 0o000007; -+pub const B600: ::speed_t = 0o000010; -+pub const B1200: ::speed_t = 0o000011; -+pub const B1800: ::speed_t = 0o000012; -+pub const B2400: ::speed_t = 0o000013; -+pub const B4800: ::speed_t = 0o000014; -+pub const B9600: ::speed_t = 0o000015; -+pub const B19200: ::speed_t = 0o000016; -+pub const B38400: ::speed_t = 0o000017; -+pub const EXTA: ::speed_t = B19200; -+pub const EXTB: ::speed_t = B38400; -+pub const CBAUDEX: ::speed_t = 0o000020; -+pub const B57600: ::speed_t = 0o0020; -+pub const B115200: ::speed_t = 0o0021; -+pub const B230400: ::speed_t = 0o0022; -+pub const B460800: ::speed_t = 0o0023; -+pub const B500000: ::speed_t = 0o0024; -+pub const B576000: ::speed_t = 0o0025; -+pub const B921600: ::speed_t = 0o0026; -+pub const B1000000: ::speed_t = 0o0027; -+pub const B1152000: ::speed_t = 0o0030; -+pub const B1500000: ::speed_t = 0o0031; -+pub const B2000000: ::speed_t = 0o0032; -+pub const B2500000: ::speed_t = 0o0033; -+pub const B3000000: ::speed_t = 0o0034; -+pub const B3500000: ::speed_t = 0o0035; -+pub const B4000000: ::speed_t = 0o0036; -+ - pub const VEOL: usize = 6; - pub const VEOL2: usize = 8; - pub const VMIN: usize = 5; -diff --git third_party/rust/libc/src/unix/notbsd/linux/other/b64/sparc64.rs third_party/rust/libc/src/unix/notbsd/linux/other/b64/sparc64.rs -index a1ac4f5389de..12598e052294 100644 ---- third_party/rust/libc/src/unix/notbsd/linux/other/b64/sparc64.rs -+++ third_party/rust/libc/src/unix/notbsd/linux/other/b64/sparc64.rs -@@ -301,6 +301,7 @@ pub const MCL_CURRENT: ::c_int = 0x2000; - pub const MCL_FUTURE: ::c_int = 0x4000; - - pub const SIGSTKSZ: ::size_t = 16384; -+pub const MINSIGSTKSZ: ::size_t = 4096; - pub const CBAUD: ::tcflag_t = 0x0000100f; - pub const TAB1: ::c_int = 0x800; - pub const TAB2: ::c_int = 0x1000; -diff --git third_party/rust/libc/src/unix/notbsd/linux/other/b64/x86_64.rs third_party/rust/libc/src/unix/notbsd/linux/other/b64/x86_64.rs -index d7bf149caa7e..e1b65e8e71be 100644 ---- third_party/rust/libc/src/unix/notbsd/linux/other/b64/x86_64.rs -+++ third_party/rust/libc/src/unix/notbsd/linux/other/b64/x86_64.rs -@@ -78,6 +78,68 @@ s! { - __private: [u64; 12], - } - -+ pub struct user_fpregs_struct { -+ pub cwd: ::c_ushort, -+ pub swd: ::c_ushort, -+ pub ftw: ::c_ushort, -+ pub fop: ::c_ushort, -+ pub rip: ::c_ulonglong, -+ pub rdp: ::c_ulonglong, -+ pub mxcsr: ::c_uint, -+ pub mxcr_mask: ::c_uint, -+ pub st_space: [::c_uint; 32], -+ pub xmm_space: [::c_uint; 64], -+ padding: [::c_uint; 24], -+ } -+ -+ pub struct user_regs_struct { -+ pub r15: ::c_ulonglong, -+ pub r14: ::c_ulonglong, -+ pub r13: ::c_ulonglong, -+ pub r12: ::c_ulonglong, -+ pub rbp: ::c_ulonglong, -+ pub rbx: ::c_ulonglong, -+ pub r11: ::c_ulonglong, -+ pub r10: ::c_ulonglong, -+ pub r9: ::c_ulonglong, -+ pub r8: ::c_ulonglong, -+ pub rax: ::c_ulonglong, -+ pub rcx: ::c_ulonglong, -+ pub rdx: ::c_ulonglong, -+ pub rsi: ::c_ulonglong, -+ pub rdi: ::c_ulonglong, -+ pub orig_rax: ::c_ulonglong, -+ pub rip: ::c_ulonglong, -+ pub cs: ::c_ulonglong, -+ pub eflags: ::c_ulonglong, -+ pub rsp: ::c_ulonglong, -+ pub ss: ::c_ulonglong, -+ pub fs_base: ::c_ulonglong, -+ pub gs_base: ::c_ulonglong, -+ pub ds: ::c_ulonglong, -+ pub es: ::c_ulonglong, -+ pub fs: ::c_ulonglong, -+ pub gs: ::c_ulonglong, -+ } -+ -+ pub struct user { -+ pub regs: user_regs_struct, -+ pub u_fpvalid: ::c_int, -+ pub i387: user_fpregs_struct, -+ pub u_tsize: ::c_ulonglong, -+ pub u_dsize: ::c_ulonglong, -+ pub u_ssize: ::c_ulonglong, -+ pub start_code: ::c_ulonglong, -+ pub start_stack: ::c_ulonglong, -+ pub signal: ::c_longlong, -+ __reserved: ::c_int, -+ pub u_ar0: *mut user_regs_struct, -+ pub u_fpstate: *mut user_fpregs_struct, -+ pub magic: ::c_ulonglong, -+ pub u_comm: [::c_char; 32], -+ pub u_debugreg: [::c_ulonglong; 8], -+ } -+ - pub struct mcontext_t { - pub gregs: [greg_t; 23], - pub fpregs: *mut _libc_fpstate, -@@ -227,11 +289,54 @@ pub const SO_DONTROUTE: ::c_int = 5; - pub const SO_BROADCAST: ::c_int = 6; - pub const SO_SNDBUF: ::c_int = 7; - pub const SO_RCVBUF: ::c_int = 8; -+pub const SO_SNDBUFFORCE: ::c_int = 32; -+pub const SO_RCVBUFFORCE: ::c_int = 33; - pub const SO_KEEPALIVE: ::c_int = 9; - pub const SO_OOBINLINE: ::c_int = 10; -+pub const SO_NO_CHECK: ::c_int = 11; -+pub const SO_PRIORITY: ::c_int = 12; - pub const SO_LINGER: ::c_int = 13; -+pub const SO_BSDCOMPAT: ::c_int = 14; - pub const SO_REUSEPORT: ::c_int = 15; -+pub const SO_PASSCRED: ::c_int = 16; -+pub const SO_PEERCRED: ::c_int = 17; -+pub const SO_RCVLOWAT: ::c_int = 18; -+pub const SO_SNDLOWAT: ::c_int = 19; -+pub const SO_RCVTIMEO: ::c_int = 20; -+pub const SO_SNDTIMEO: ::c_int = 21; -+pub const SO_SECURITY_AUTHENTICATION: ::c_int = 22; -+pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 23; -+pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 24; -+pub const SO_BINDTODEVICE: ::c_int = 25; -+pub const SO_ATTACH_FILTER: ::c_int = 26; -+pub const SO_DETACH_FILTER: ::c_int = 27; -+pub const SO_GET_FILTER: ::c_int = SO_ATTACH_FILTER; -+pub const SO_PEERNAME: ::c_int = 28; -+pub const SO_TIMESTAMP: ::c_int = 29; -+pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; - pub const SO_ACCEPTCONN: ::c_int = 30; -+pub const SO_PEERSEC: ::c_int = 31; -+pub const SO_PASSSEC: ::c_int = 34; -+pub const SO_TIMESTAMPNS: ::c_int = 35; -+pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS; -+pub const SO_MARK: ::c_int = 36; -+pub const SO_TIMESTAMPING: ::c_int = 37; -+pub const SCM_TIMESTAMPING: ::c_int = SO_TIMESTAMPING; -+pub const SO_PROTOCOL: ::c_int = 38; -+pub const SO_DOMAIN: ::c_int = 39; -+pub const SO_RXQ_OVFL: ::c_int = 40; -+pub const SO_WIFI_STATUS: ::c_int = 41; -+pub const SCM_WIFI_STATUS: ::c_int = SO_WIFI_STATUS; -+pub const SO_PEEK_OFF: ::c_int = 42; -+pub const SO_NOFCS: ::c_int = 43; -+pub const SO_LOCK_FILTER: ::c_int = 44; -+pub const SO_SELECT_ERR_QUEUE: ::c_int = 45; -+pub const SO_BUSY_POLL: ::c_int = 46; -+pub const SO_MAX_PACING_RATE: ::c_int = 47; -+pub const SO_BPF_EXTENSIONS: ::c_int = 48; -+pub const SO_INCOMING_CPU: ::c_int = 49; -+pub const SO_ATTACH_BPF: ::c_int = 50; -+pub const SO_DETACH_BPF: ::c_int = SO_DETACH_FILTER; - - pub const SA_ONSTACK: ::c_int = 0x08000000; - pub const SA_SIGINFO: ::c_int = 0x00000004; -@@ -331,12 +436,6 @@ pub const MAP_32BIT: ::c_int = 0x0040; - - pub const EDEADLOCK: ::c_int = 35; - --pub const SO_PEERCRED: ::c_int = 17; --pub const SO_RCVLOWAT: ::c_int = 18; --pub const SO_SNDLOWAT: ::c_int = 19; --pub const SO_RCVTIMEO: ::c_int = 20; --pub const SO_SNDTIMEO: ::c_int = 21; -- - pub const FIOCLEX: ::c_ulong = 0x5451; - pub const FIONBIO: ::c_ulong = 0x5421; - -@@ -365,6 +464,7 @@ pub const MCL_CURRENT: ::c_int = 0x0001; - pub const MCL_FUTURE: ::c_int = 0x0002; - - pub const SIGSTKSZ: ::size_t = 8192; -+pub const MINSIGSTKSZ: ::size_t = 2048; - pub const CBAUD: ::tcflag_t = 0o0010017; - pub const TAB1: ::c_int = 0x00000800; - pub const TAB2: ::c_int = 0x00001000; -@@ -406,6 +506,40 @@ pub const ICANON: ::tcflag_t = 0x00000002; - pub const PENDIN: ::tcflag_t = 0x00004000; - pub const NOFLSH: ::tcflag_t = 0x00000080; - -+pub const B0: ::speed_t = 0o000000; -+pub const B50: ::speed_t = 0o000001; -+pub const B75: ::speed_t = 0o000002; -+pub const B110: ::speed_t = 0o000003; -+pub const B134: ::speed_t = 0o000004; -+pub const B150: ::speed_t = 0o000005; -+pub const B200: ::speed_t = 0o000006; -+pub const B300: ::speed_t = 0o000007; -+pub const B600: ::speed_t = 0o000010; -+pub const B1200: ::speed_t = 0o000011; -+pub const B1800: ::speed_t = 0o000012; -+pub const B2400: ::speed_t = 0o000013; -+pub const B4800: ::speed_t = 0o000014; -+pub const B9600: ::speed_t = 0o000015; -+pub const B19200: ::speed_t = 0o000016; -+pub const B38400: ::speed_t = 0o000017; -+pub const EXTA: ::speed_t = B19200; -+pub const EXTB: ::speed_t = B38400; -+pub const B57600: ::speed_t = 0o010001; -+pub const B115200: ::speed_t = 0o010002; -+pub const B230400: ::speed_t = 0o010003; -+pub const B460800: ::speed_t = 0o010004; -+pub const B500000: ::speed_t = 0o010005; -+pub const B576000: ::speed_t = 0o010006; -+pub const B921600: ::speed_t = 0o010007; -+pub const B1000000: ::speed_t = 0o010010; -+pub const B1152000: ::speed_t = 0o010011; -+pub const B1500000: ::speed_t = 0o010012; -+pub const B2000000: ::speed_t = 0o010013; -+pub const B2500000: ::speed_t = 0o010014; -+pub const B3000000: ::speed_t = 0o010015; -+pub const B3500000: ::speed_t = 0o010016; -+pub const B4000000: ::speed_t = 0o010017; -+ - pub const VEOL: usize = 11; - pub const VEOL2: usize = 16; - pub const VMIN: usize = 6; -@@ -440,4 +574,7 @@ extern { - argc: ::c_int, ...); - pub fn swapcontext(uocp: *mut ucontext_t, - ucp: *const ucontext_t) -> ::c_int; -+ pub fn iopl(level: ::c_int) -> ::c_int; -+ pub fn ioperm(from: ::c_ulong, num: ::c_ulong, -+ turn_on: ::c_int) -> ::c_int; - } -diff --git third_party/rust/libc/src/unix/notbsd/linux/other/mod.rs third_party/rust/libc/src/unix/notbsd/linux/other/mod.rs -index 3beb7886f347..b7a11a85e962 100644 ---- third_party/rust/libc/src/unix/notbsd/linux/other/mod.rs -+++ third_party/rust/libc/src/unix/notbsd/linux/other/mod.rs -@@ -70,7 +70,7 @@ s! { - #[cfg(target_arch = "sparc64")] - __reserved0: ::c_int, - pub sa_flags: ::c_int, -- _restorer: *mut ::c_void, -+ pub sa_restorer: ::dox::Option<extern fn()>, - } - - pub struct stack_t { -@@ -192,6 +192,18 @@ pub const RLIMIT_NLIMITS: ::c_int = 16; - - pub const SOCK_NONBLOCK: ::c_int = O_NONBLOCK; - -+pub const SOL_RXRPC: ::c_int = 272; -+pub const SOL_PPPOL2TP: ::c_int = 273; -+pub const SOL_BLUETOOTH: ::c_int = 274; -+pub const SOL_PNPIPE: ::c_int = 275; -+pub const SOL_RDS: ::c_int = 276; -+pub const SOL_IUCV: ::c_int = 277; -+pub const SOL_CAIF: ::c_int = 278; -+pub const SOL_ALG: ::c_int = 279; -+pub const SOL_NFC: ::c_int = 280; -+ -+pub const MSG_TRYHARD: ::c_int = 4; -+ - pub const LC_PAPER: ::c_int = 7; - pub const LC_NAME: ::c_int = 8; - pub const LC_ADDRESS: ::c_int = 9; -@@ -302,7 +314,6 @@ pub const TMPFS_MAGIC: ::c_long = 0x01021994; - pub const USBDEVICE_SUPER_MAGIC: ::c_long = 0x00009fa2; - - pub const VEOF: usize = 4; --pub const IUTF8: ::tcflag_t = 0x00004000; - - pub const CPU_SETSIZE: ::c_int = 0x400; - -diff --git third_party/rust/libc/src/unix/notbsd/linux/s390x.rs third_party/rust/libc/src/unix/notbsd/linux/s390x.rs -index b646647b255d..1c0cd56d6f14 100644 ---- third_party/rust/libc/src/unix/notbsd/linux/s390x.rs -+++ third_party/rust/libc/src/unix/notbsd/linux/s390x.rs -@@ -86,7 +86,7 @@ s! { - pub sa_sigaction: ::sighandler_t, - __glibc_reserved0: ::c_int, - pub sa_flags: ::c_int, -- _restorer: *mut ::c_void, -+ pub sa_restorer: ::dox::Option<extern fn()>, - pub sa_mask: sigset_t, - } - -@@ -339,6 +339,7 @@ pub const SA_ONSTACK: ::c_int = 0x08000000; - pub const SA_SIGINFO: ::c_int = 4; - pub const SIGBUS: ::c_int = 7; - pub const SIGSTKSZ: ::size_t = 0x2000; -+pub const MINSIGSTKSZ: ::size_t = 2048; - pub const SIG_SETMASK: ::c_int = 2; - pub const SOCK_DGRAM: ::c_int = 2; - pub const SOCK_STREAM: ::c_int = 1; -@@ -576,7 +577,6 @@ pub const VMIN: usize = 6; - pub const IEXTEN: ::tcflag_t = 0x00008000; - pub const TOSTOP: ::tcflag_t = 0x00000100; - pub const FLUSHO: ::tcflag_t = 0x00001000; --pub const IUTF8: ::tcflag_t = 0x00004000; - - pub const CPU_SETSIZE: ::c_int = 0x400; - -diff --git third_party/rust/libc/src/unix/notbsd/mod.rs third_party/rust/libc/src/unix/notbsd/mod.rs -index 9e0916a09eca..e10d28b304d7 100644 ---- third_party/rust/libc/src/unix/notbsd/mod.rs -+++ third_party/rust/libc/src/unix/notbsd/mod.rs -@@ -120,7 +120,9 @@ s! { - pub dli_saddr: *mut ::c_void, - } - -- #[cfg_attr(any(all(target_arch = "x86", not(target_env = "musl")), -+ #[cfg_attr(any(all(target_arch = "x86", -+ not(target_env = "musl"), -+ not(target_os = "android")), - target_arch = "x86_64"), - repr(packed))] - pub struct epoll_event { -@@ -253,6 +255,7 @@ pub const RUSAGE_SELF: ::c_int = 0; - pub const O_RDONLY: ::c_int = 0; - pub const O_WRONLY: ::c_int = 1; - pub const O_RDWR: ::c_int = 2; -+pub const O_TMPFILE: ::c_int = 0o20000000 | O_DIRECTORY; - - pub const SOCK_CLOEXEC: ::c_int = O_CLOEXEC; - -@@ -393,7 +396,9 @@ pub const EDOM: ::c_int = 33; - pub const ERANGE: ::c_int = 34; - pub const EWOULDBLOCK: ::c_int = EAGAIN; - --pub const AF_PACKET: ::c_int = 17; -+pub const SCM_RIGHTS: ::c_int = 0x01; -+pub const SCM_CREDENTIALS: ::c_int = 0x02; -+ - pub const IPPROTO_RAW: ::c_int = 255; - - pub const PROT_GROWSDOWN: ::c_int = 0x1000000; -@@ -430,12 +435,127 @@ pub const IFF_PORTSEL: ::c_int = 0x2000; - pub const IFF_AUTOMEDIA: ::c_int = 0x4000; - pub const IFF_DYNAMIC: ::c_int = 0x8000; - -+pub const SOL_IP: ::c_int = 0; -+pub const SOL_TCP: ::c_int = 6; -+pub const SOL_IPV6: ::c_int = 41; -+pub const SOL_ICMPV6: ::c_int = 58; -+pub const SOL_RAW: ::c_int = 255; -+pub const SOL_DECNET: ::c_int = 261; -+pub const SOL_X25: ::c_int = 262; -+pub const SOL_PACKET: ::c_int = 263; -+pub const SOL_ATM: ::c_int = 264; -+pub const SOL_AAL: ::c_int = 265; -+pub const SOL_IRDA: ::c_int = 266; -+pub const SOL_NETBEUI: ::c_int = 267; -+pub const SOL_LLC: ::c_int = 268; -+pub const SOL_DCCP: ::c_int = 269; -+pub const SOL_NETLINK: ::c_int = 270; -+pub const SOL_TIPC: ::c_int = 271; -+ -+pub const AF_UNSPEC: ::c_int = 0; - pub const AF_UNIX: ::c_int = 1; -+pub const AF_LOCAL: ::c_int = 1; - pub const AF_INET: ::c_int = 2; -+pub const AF_AX25: ::c_int = 3; -+pub const AF_IPX: ::c_int = 4; -+pub const AF_APPLETALK: ::c_int = 5; -+pub const AF_NETROM: ::c_int = 6; -+pub const AF_BRIDGE: ::c_int = 7; -+pub const AF_ATMPVC: ::c_int = 8; -+pub const AF_X25: ::c_int = 9; - pub const AF_INET6: ::c_int = 10; --pub const AF_UNSPEC: ::c_int = 0; -+pub const AF_ROSE: ::c_int = 11; -+pub const AF_DECnet: ::c_int = 12; -+pub const AF_NETBEUI: ::c_int = 13; -+pub const AF_SECURITY: ::c_int = 14; -+pub const AF_KEY: ::c_int = 15; - pub const AF_NETLINK: ::c_int = 16; -+pub const AF_ROUTE: ::c_int = AF_NETLINK; -+pub const AF_PACKET: ::c_int = 17; -+pub const AF_ASH: ::c_int = 18; -+pub const AF_ECONET: ::c_int = 19; -+pub const AF_ATMSVC: ::c_int = 20; -+pub const AF_RDS: ::c_int = 21; -+pub const AF_SNA: ::c_int = 22; -+pub const AF_IRDA: ::c_int = 23; -+pub const AF_PPPOX: ::c_int = 24; -+pub const AF_WANPIPE: ::c_int = 25; -+pub const AF_LLC: ::c_int = 26; -+pub const AF_CAN: ::c_int = 29; -+pub const AF_TIPC: ::c_int = 30; -+pub const AF_BLUETOOTH: ::c_int = 31; -+pub const AF_IUCV: ::c_int = 32; -+pub const AF_RXRPC: ::c_int = 33; -+pub const AF_ISDN: ::c_int = 34; -+pub const AF_PHONET: ::c_int = 35; -+pub const AF_IEEE802154: ::c_int = 36; -+pub const AF_CAIF: ::c_int = 37; -+pub const AF_ALG: ::c_int = 38; -+ -+pub const PF_UNSPEC: ::c_int = AF_UNSPEC; -+pub const PF_UNIX: ::c_int = AF_UNIX; -+pub const PF_LOCAL: ::c_int = AF_LOCAL; -+pub const PF_INET: ::c_int = AF_INET; -+pub const PF_AX25: ::c_int = AF_AX25; -+pub const PF_IPX: ::c_int = AF_IPX; -+pub const PF_APPLETALK: ::c_int = AF_APPLETALK; -+pub const PF_NETROM: ::c_int = AF_NETROM; -+pub const PF_BRIDGE: ::c_int = AF_BRIDGE; -+pub const PF_ATMPVC: ::c_int = AF_ATMPVC; -+pub const PF_X25: ::c_int = AF_X25; -+pub const PF_INET6: ::c_int = AF_INET6; -+pub const PF_ROSE: ::c_int = AF_ROSE; -+pub const PF_DECnet: ::c_int = AF_DECnet; -+pub const PF_NETBEUI: ::c_int = AF_NETBEUI; -+pub const PF_SECURITY: ::c_int = AF_SECURITY; -+pub const PF_KEY: ::c_int = AF_KEY; -+pub const PF_NETLINK: ::c_int = AF_NETLINK; -+pub const PF_ROUTE: ::c_int = AF_ROUTE; -+pub const PF_PACKET: ::c_int = AF_PACKET; -+pub const PF_ASH: ::c_int = AF_ASH; -+pub const PF_ECONET: ::c_int = AF_ECONET; -+pub const PF_ATMSVC: ::c_int = AF_ATMSVC; -+pub const PF_RDS: ::c_int = AF_RDS; -+pub const PF_SNA: ::c_int = AF_SNA; -+pub const PF_IRDA: ::c_int = AF_IRDA; -+pub const PF_PPPOX: ::c_int = AF_PPPOX; -+pub const PF_WANPIPE: ::c_int = AF_WANPIPE; -+pub const PF_LLC: ::c_int = AF_LLC; -+pub const PF_CAN: ::c_int = AF_CAN; -+pub const PF_TIPC: ::c_int = AF_TIPC; -+pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; -+pub const PF_IUCV: ::c_int = AF_IUCV; -+pub const PF_RXRPC: ::c_int = AF_RXRPC; -+pub const PF_ISDN: ::c_int = AF_ISDN; -+pub const PF_PHONET: ::c_int = AF_PHONET; -+pub const PF_IEEE802154: ::c_int = AF_IEEE802154; -+pub const PF_CAIF: ::c_int = AF_CAIF; -+pub const PF_ALG: ::c_int = AF_ALG; -+ -+pub const SOMAXCONN: ::c_int = 128; -+ -+pub const MSG_OOB: ::c_int = 1; -+pub const MSG_PEEK: ::c_int = 2; -+pub const MSG_DONTROUTE: ::c_int = 4; -+pub const MSG_CTRUNC: ::c_int = 8; -+pub const MSG_TRUNC: ::c_int = 0x20; -+pub const MSG_DONTWAIT: ::c_int = 0x40; -+pub const MSG_EOR: ::c_int = 0x80; -+pub const MSG_WAITALL: ::c_int = 0x100; -+pub const MSG_FIN: ::c_int = 0x200; -+pub const MSG_SYN: ::c_int = 0x400; -+pub const MSG_CONFIRM: ::c_int = 0x800; -+pub const MSG_RST: ::c_int = 0x1000; -+pub const MSG_ERRQUEUE: ::c_int = 0x2000; -+pub const MSG_NOSIGNAL: ::c_int = 0x4000; -+pub const MSG_MORE: ::c_int = 0x8000; -+pub const MSG_WAITFORONE: ::c_int = 0x10000; -+pub const MSG_FASTOPEN: ::c_int = 0x20000000; -+pub const MSG_CMSG_CLOEXEC: ::c_int = 0x40000000; -+ - pub const SOCK_RAW: ::c_int = 3; -+pub const IPPROTO_ICMP: ::c_int = 1; -+pub const IPPROTO_ICMPV6: ::c_int = 58; - pub const IPPROTO_TCP: ::c_int = 6; - pub const IPPROTO_IP: ::c_int = 0; - pub const IPPROTO_IPV6: ::c_int = 41; -@@ -468,9 +588,6 @@ pub const IPV6_V6ONLY: ::c_int = 26; - - pub const SO_DEBUG: ::c_int = 1; - --pub const MSG_PEEK: ::c_int = 0x2; --pub const MSG_NOSIGNAL: ::c_int = 0x4000; -- - pub const SHUT_RD: ::c_int = 0; - pub const SHUT_WR: ::c_int = 1; - pub const SHUT_RDWR: ::c_int = 2; -@@ -558,6 +675,7 @@ pub const IGNCR: ::tcflag_t = 0x00000080; - pub const ICRNL: ::tcflag_t = 0x00000100; - pub const IXANY: ::tcflag_t = 0x00000800; - pub const IMAXBEL: ::tcflag_t = 0x00002000; -+pub const IUTF8: ::tcflag_t = 0x00004000; - pub const OPOST: ::tcflag_t = 0x1; - pub const CS5: ::tcflag_t = 0x00000000; - pub const CRTSCTS: ::tcflag_t = 0x80000000; -@@ -611,6 +729,10 @@ pub const POSIX_FADV_WILLNEED: ::c_int = 3; - - pub const AT_FDCWD: ::c_int = -100; - pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x100; -+pub const AT_REMOVEDIR: ::c_int = 0x200; -+pub const AT_SYMLINK_FOLLOW: ::c_int = 0x400; -+pub const AT_NO_AUTOMOUNT: ::c_int = 0x800; -+pub const AT_EMPTY_PATH: ::c_int = 0x1000; - - pub const LOG_CRON: ::c_int = 9 << 3; - pub const LOG_AUTHPRIV: ::c_int = 10 << 3; -@@ -629,6 +751,9 @@ pub const P_ALL: idtype_t = 0; - pub const P_PID: idtype_t = 1; - pub const P_PGID: idtype_t = 2; - -+pub const UTIME_OMIT: c_long = 1073741822; -+pub const UTIME_NOW: c_long = 1073741823; -+ - f! { - pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { - let fd = fd as usize; -@@ -664,6 +789,10 @@ f! { - (status >> 8) & 0xff - } - -+ pub fn WIFCONTINUED(status: ::c_int) -> bool { -+ status == 0xffff -+ } -+ - pub fn WIFSIGNALED(status: ::c_int) -> bool { - ((status & 0x7f) + 1) as i8 >= 2 - } -@@ -706,6 +835,9 @@ extern { - rqtp: *const ::timespec, - rmtp: *mut ::timespec) -> ::c_int; - pub fn clock_settime(clk_id: clockid_t, tp: *const ::timespec) -> ::c_int; -+ pub fn dirfd(dirp: *mut ::DIR) -> ::c_int; -+ pub fn settimeofday(tv: *const ::timeval, tz: *const ::timezone) -> ::c_int; -+ - pub fn prctl(option: ::c_int, ...) -> ::c_int; - pub fn pthread_getattr_np(native: ::pthread_t, - attr: *mut ::pthread_attr_t) -> ::c_int; -@@ -724,6 +856,9 @@ extern { - pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; - pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; - pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; -+ pub fn sched_setparam(pid: ::pid_t, param: *const sched_param) -> ::c_int; -+ pub fn sched_getparam(pid: ::pid_t, param: *mut sched_param) -> ::c_int; -+ pub fn sched_rr_get_interval(pid: ::pid_t, tp: *mut ::timespec) -> ::c_int; - pub fn epoll_create(size: ::c_int) -> ::c_int; - pub fn epoll_create1(flags: ::c_int) -> ::c_int; - pub fn epoll_ctl(epfd: ::c_int, -@@ -796,48 +931,44 @@ extern { - offset: off64_t) - -> *mut ::c_void; - pub fn open64(path: *const c_char, oflag: ::c_int, ...) -> ::c_int; -+ pub fn openat64(fd: ::c_int, -+ path: *const c_char, -+ oflag: ::c_int, ...) -> ::c_int; - pub fn pread64(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, - offset: off64_t) -> ::ssize_t; - pub fn pwrite64(fd: ::c_int, buf: *const ::c_void, count: ::size_t, - offset: off64_t) -> ::ssize_t; -+ pub fn readdir64(dirp: *mut ::DIR) -> *mut ::dirent64; - pub fn readdir64_r(dirp: *mut ::DIR, entry: *mut ::dirent64, - result: *mut *mut ::dirent64) -> ::c_int; - pub fn setrlimit64(resource: ::c_int, rlim: *const rlimit64) -> ::c_int; - pub fn stat64(path: *const c_char, buf: *mut stat64) -> ::c_int; -+ pub fn truncate64(path: *const c_char, length: off64_t) -> ::c_int; - pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int; - pub fn sysinfo (info: *mut ::sysinfo) -> ::c_int; - -- pub fn openat(dirfd: ::c_int, pathname: *const ::c_char, -- flags: ::c_int, ...) -> ::c_int; -- pub fn faccessat(dirfd: ::c_int, pathname: *const ::c_char, -- mode: ::c_int, flags: ::c_int) -> ::c_int; -- pub fn fchmodat(dirfd: ::c_int, pathname: *const ::c_char, -- mode: ::mode_t, flags: ::c_int) -> ::c_int; -- pub fn fchownat(dirfd: ::c_int, pathname: *const ::c_char, -- owner: ::uid_t, group: ::gid_t, -- flags: ::c_int) -> ::c_int; -- pub fn fstatat(dirfd: ::c_int, pathname: *const ::c_char, -- buf: *mut stat, flags: ::c_int) -> ::c_int; -- pub fn linkat(olddirfd: ::c_int, oldpath: *const ::c_char, -- newdirfd: ::c_int, newpath: *const ::c_char, -- flags: ::c_int) -> ::c_int; -- pub fn mkdirat(dirfd: ::c_int, pathname: *const ::c_char, -- mode: ::mode_t) -> ::c_int; -+ pub fn fdopendir(fd: ::c_int) -> *mut ::DIR; -+ - pub fn mknodat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::mode_t, dev: dev_t) -> ::c_int; -- pub fn readlinkat(dirfd: ::c_int, pathname: *const ::c_char, -- buf: *mut ::c_char, bufsiz: ::size_t) -> ::ssize_t; -- pub fn renameat(olddirfd: ::c_int, oldpath: *const ::c_char, -- newdirfd: ::c_int, newpath: *const ::c_char) -- -> ::c_int; -- pub fn symlinkat(target: *const ::c_char, newdirfd: ::c_int, -- linkpath: *const ::c_char) -> ::c_int; -- pub fn unlinkat(dirfd: ::c_int, pathname: *const ::c_char, -- flags: ::c_int) -> ::c_int; -+ pub fn ppoll(fds: *mut ::pollfd, -+ nfds: nfds_t, -+ timeout: *const ::timespec, -+ sigmask: *const sigset_t) -> ::c_int; - pub fn pthread_condattr_getclock(attr: *const pthread_condattr_t, - clock_id: *mut clockid_t) -> ::c_int; - pub fn pthread_condattr_setclock(attr: *mut pthread_condattr_t, - clock_id: clockid_t) -> ::c_int; -+ pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, -+ pshared: ::c_int) -> ::c_int; -+ pub fn pthread_condattr_getpshared(attr: *const pthread_condattr_t, -+ pshared: *mut ::c_int) -> ::c_int; -+ pub fn pthread_getschedparam(native: ::pthread_t, -+ policy: *mut ::c_int, -+ param: *mut ::sched_param) -> ::c_int; -+ pub fn pthread_setschedparam(native: ::pthread_t, -+ policy: ::c_int, -+ param: *const ::sched_param) -> ::c_int; - pub fn sched_getaffinity(pid: ::pid_t, - cpusetsize: ::size_t, - cpuset: *mut cpu_set_t) -> ::c_int; -@@ -852,12 +983,32 @@ extern { - flg: ::c_int) -> ::c_int; - pub fn pthread_mutex_timedlock(lock: *mut pthread_mutex_t, - abstime: *const ::timespec) -> ::c_int; -+ pub fn pthread_mutexattr_setpshared(attr: *mut pthread_mutexattr_t, -+ pshared: ::c_int) -> ::c_int; -+ pub fn pthread_mutexattr_getpshared(attr: *const pthread_mutexattr_t, -+ pshared: *mut ::c_int) -> ::c_int; - pub fn ptsname_r(fd: ::c_int, - buf: *mut ::c_char, - buflen: ::size_t) -> ::c_int; - pub fn clearenv() -> ::c_int; - pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, - options: ::c_int) -> ::c_int; -+ pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int; -+ pub fn setreuid(ruid: ::uid_t, euid: ::uid_t) -> ::c_int; -+ pub fn setregid(rgid: ::gid_t, egid: ::gid_t) -> ::c_int; -+ pub fn getresuid(ruid: *mut ::uid_t, euid: *mut ::uid_t, -+ suid: *mut ::uid_t) -> ::c_int; -+ pub fn getresgid(rgid: *mut ::gid_t, egid: *mut ::gid_t, -+ sgid: *mut ::gid_t) -> ::c_int; -+ pub fn personality(persona: ::c_ulong) -> ::c_int; -+ pub fn swapon(path: *const ::c_char, swapflags: ::c_int) -> ::c_int; -+ pub fn swapoff(puath: *const ::c_char) -> ::c_int; -+ pub fn acct(filename: *const ::c_char) -> ::c_int; -+ pub fn brk(addr: *mut ::c_void) -> ::c_int; -+ pub fn sbrk(increment: ::intptr_t) -> *mut ::c_void; -+ pub fn vfork() -> ::pid_t; -+ pub fn wait4(pid: ::pid_t, status: *mut ::c_int, options: ::c_int, -+ rusage: *mut ::rusage) -> ::pid_t; - } - - cfg_if! { -diff --git third_party/rust/libc/src/unix/solaris/mod.rs third_party/rust/libc/src/unix/solaris/mod.rs -index b604208583a4..757d5817ed36 100644 ---- third_party/rust/libc/src/unix/solaris/mod.rs -+++ third_party/rust/libc/src/unix/solaris/mod.rs -@@ -1,36 +1,38 @@ -+use dox::{mem, Option}; -+ - pub type c_char = i8; - pub type c_long = i64; - pub type c_ulong = u64; --pub type clockid_t = ::c_int; - --pub type blkcnt_t = i64; --pub type clock_t = i64; --pub type daddr_t = i64; --pub type dev_t = u64; --pub type fsblkcnt_t = u64; --pub type fsfilcnt_t = u64; --pub type ino_t = i64; --pub type key_t = i32; --pub type major_t = u32; --pub type minor_t = u32; --pub type mode_t = u32; --pub type nlink_t = u32; --pub type rlim_t = u64; --pub type speed_t = u32; --pub type tcflag_t = u32; --pub type time_t = i64; --pub type wchar_t = i32; -+pub type clockid_t = ::c_int; -+pub type blkcnt_t = ::c_long; -+pub type clock_t = ::c_long; -+pub type daddr_t = ::c_long; -+pub type dev_t = ::c_ulong; -+pub type fsblkcnt_t = ::c_ulong; -+pub type fsfilcnt_t = ::c_ulong; -+pub type ino_t = ::c_ulong; -+pub type key_t = ::c_int; -+pub type major_t = ::c_uint; -+pub type minor_t = ::c_uint; -+pub type mode_t = ::c_uint; -+pub type nlink_t = ::c_uint; -+pub type rlim_t = ::c_ulong; -+pub type speed_t = ::c_uint; -+pub type tcflag_t = ::c_uint; -+pub type time_t = ::c_long; -+pub type wchar_t = ::c_int; - pub type nfds_t = ::c_ulong; - - pub type suseconds_t = ::c_long; --pub type off_t = i64; -+pub type off_t = ::c_long; - pub type useconds_t = ::c_uint; --pub type socklen_t = u32; --pub type sa_family_t = u8; --pub type pthread_t = ::uintptr_t; -+pub type socklen_t = ::c_uint; -+pub type sa_family_t = u16; -+pub type pthread_t = ::c_uint; - pub type pthread_key_t = ::c_uint; --pub type blksize_t = u32; --pub type fflags_t = u32; -+pub type blksize_t = ::c_int; -+pub type fflags_t = ::c_int; - pub type nl_item = ::c_int; - pub type id_t = ::c_int; - pub type idtype_t = ::c_uint; -@@ -123,6 +125,9 @@ s! { - } - - pub struct fd_set { -+ #[cfg(target_pointer_width = "64")] -+ fds_bits: [i64; FD_SETSIZE / 64], -+ #[cfg(target_pointer_width = "32")] - fds_bits: [i32; FD_SETSIZE / 32], - } - -@@ -335,6 +340,14 @@ s! { - pub if_index: ::c_uint, - pub if_name: *mut ::c_char, - } -+ -+ pub struct port_event { -+ pub portev_events: ::c_int, -+ pub portev_source: ::c_ushort, -+ pub portev_pad: ::c_ushort, -+ pub portev_object: ::uintptr_t, -+ pub portev_user: ::uintptr_t, -+ } - } - - pub const LC_CTYPE: ::c_int = 0; -@@ -436,7 +449,13 @@ pub const SA_NOCLDSTOP: ::c_int = 0x00020000; - pub const SS_ONSTACK: ::c_int = 1; - pub const SS_DISABLE: ::c_int = 2; - -+pub const FIOCLEX: ::c_int = 0x20006601; -+pub const FIONCLEX: ::c_int = 0x20006602; -+pub const FIONREAD: ::c_int = 0x4004667f; - pub const FIONBIO: ::c_int = 0x8004667e; -+pub const FIOASYNC: ::c_int = 0x8004667d; -+pub const FIOSETOWN: ::c_int = 0x8004667c; -+pub const FIOGETOWN: ::c_int = 0x4004667b; - - pub const SIGCHLD: ::c_int = 18; - pub const SIGBUS: ::c_int = 10; -@@ -448,7 +467,13 @@ pub const SIG_SETMASK: ::c_int = 3; - pub const IPV6_MULTICAST_LOOP: ::c_int = 0x8; - pub const IPV6_V6ONLY: ::c_int = 0x27; - --pub const FD_SETSIZE: usize = 1024; -+cfg_if! { -+ if #[cfg(target_pointer_width = "64")] { -+ pub const FD_SETSIZE: usize = 65536; -+ } else { -+ pub const FD_SETSIZE: usize = 1024; -+ } -+} - - pub const ST_RDONLY: ::c_ulong = 1; - pub const ST_NOSUID: ::c_ulong = 2; -@@ -474,6 +499,8 @@ pub const TMP_MAX: ::c_uint = 17576; - pub const O_RDONLY: ::c_int = 0; - pub const O_WRONLY: ::c_int = 1; - pub const O_RDWR: ::c_int = 2; -+pub const O_SEARCH: ::c_int = 0x200000; -+pub const O_EXEC: ::c_int = 0x400000; - pub const O_APPEND: ::c_int = 8; - pub const O_CREAT: ::c_int = 256; - pub const O_EXCL: ::c_int = 1024; -@@ -598,7 +625,7 @@ pub const E2BIG: ::c_int = 7; - pub const ENOEXEC: ::c_int = 8; - pub const EBADF: ::c_int = 9; - pub const ECHILD: ::c_int = 10; --pub const EDEADLK: ::c_int = 45; -+pub const EAGAIN: ::c_int = 11; - pub const ENOMEM: ::c_int = 12; - pub const EACCES: ::c_int = 13; - pub const EFAULT: ::c_int = 14; -@@ -622,11 +649,65 @@ pub const EMLINK: ::c_int = 31; - pub const EPIPE: ::c_int = 32; - pub const EDOM: ::c_int = 33; - pub const ERANGE: ::c_int = 34; -+pub const ENOMSG: ::c_int = 35; -+pub const EIDRM: ::c_int = 36; -+pub const ECHRNG: ::c_int = 37; -+pub const EL2NSYNC: ::c_int = 38; -+pub const EL3HLT: ::c_int = 39; -+pub const EL3RST: ::c_int = 40; -+pub const ELNRNG: ::c_int = 41; -+pub const EUNATCH: ::c_int = 42; -+pub const ENOCSI: ::c_int = 43; -+pub const EL2HLT: ::c_int = 44; -+pub const EDEADLK: ::c_int = 45; -+pub const ENOLCK: ::c_int = 46; -+pub const ECANCELED: ::c_int = 47; - pub const ENOTSUP: ::c_int = 48; --pub const EAGAIN: ::c_int = 11; --pub const EWOULDBLOCK: ::c_int = 11; --pub const EINPROGRESS: ::c_int = 150; --pub const EALREADY: ::c_int = 149; -+pub const EDQUOT: ::c_int = 49; -+pub const EBADE: ::c_int = 50; -+pub const EBADR: ::c_int = 51; -+pub const EXFULL: ::c_int = 52; -+pub const ENOANO: ::c_int = 53; -+pub const EBADRQC: ::c_int = 54; -+pub const EBADSLT: ::c_int = 55; -+pub const EDEADLOCK: ::c_int = 56; -+pub const EBFONT: ::c_int = 57; -+pub const EOWNERDEAD: ::c_int = 58; -+pub const ENOTRECOVERABLE: ::c_int = 59; -+pub const ENOSTR: ::c_int = 60; -+pub const ENODATA: ::c_int = 61; -+pub const ETIME: ::c_int = 62; -+pub const ENOSR: ::c_int = 63; -+pub const ENONET: ::c_int = 64; -+pub const ENOPKG: ::c_int = 65; -+pub const EREMOTE: ::c_int = 66; -+pub const ENOLINK: ::c_int = 67; -+pub const EADV: ::c_int = 68; -+pub const ESRMNT: ::c_int = 69; -+pub const ECOMM: ::c_int = 70; -+pub const EPROTO: ::c_int = 71; -+pub const ELOCKUNMAPPED: ::c_int = 72; -+pub const ENOTACTIVE: ::c_int = 73; -+pub const EMULTIHOP: ::c_int = 74; -+pub const EADI: ::c_int = 75; -+pub const EBADMSG: ::c_int = 77; -+pub const ENAMETOOLONG: ::c_int = 78; -+pub const EOVERFLOW: ::c_int = 79; -+pub const ENOTUNIQ: ::c_int = 80; -+pub const EBADFD: ::c_int = 81; -+pub const EREMCHG: ::c_int = 82; -+pub const ELIBACC: ::c_int = 83; -+pub const ELIBBAD: ::c_int = 84; -+pub const ELIBSCN: ::c_int = 85; -+pub const ELIBMAX: ::c_int = 86; -+pub const ELIBEXEC: ::c_int = 87; -+pub const EILSEQ: ::c_int = 88; -+pub const ENOSYS: ::c_int = 89; -+pub const ELOOP: ::c_int = 90; -+pub const ERESTART: ::c_int = 91; -+pub const ESTRPIPE: ::c_int = 92; -+pub const ENOTEMPTY: ::c_int = 93; -+pub const EUSERS: ::c_int = 94; - pub const ENOTSOCK: ::c_int = 95; - pub const EDESTADDRREQ: ::c_int = 96; - pub const EMSGSIZE: ::c_int = 97; -@@ -651,26 +732,11 @@ pub const ESHUTDOWN: ::c_int = 143; - pub const ETOOMANYREFS: ::c_int = 144; - pub const ETIMEDOUT: ::c_int = 145; - pub const ECONNREFUSED: ::c_int = 146; --pub const ELOOP: ::c_int = 90; --pub const ENAMETOOLONG: ::c_int = 78; - pub const EHOSTDOWN: ::c_int = 147; - pub const EHOSTUNREACH: ::c_int = 148; --pub const ENOTEMPTY: ::c_int = 93; --pub const EUSERS: ::c_int = 94; --pub const EDQUOT: ::c_int = 49; --pub const ESTALE: ::c_int = 151; --pub const EREMOTE: ::c_int = 66; --pub const ENOLCK: ::c_int = 46; --pub const ENOSYS: ::c_int = 89; --pub const EIDRM: ::c_int = 36; --pub const ENOMSG: ::c_int = 35; --pub const EOVERFLOW: ::c_int = 79; --pub const ECANCELED: ::c_int = 47; --pub const EILSEQ: ::c_int = 88; --pub const EBADMSG: ::c_int = 77; --pub const EMULTIHOP: ::c_int = 74; --pub const ENOLINK: ::c_int = 67; --pub const EPROTO: ::c_int = 71; -+pub const EWOULDBLOCK: ::c_int = EAGAIN; -+pub const EALREADY: ::c_int = 149; -+pub const EINPROGRESS: ::c_int = 150; - - pub const EAI_SYSTEM: ::c_int = 11; - -@@ -782,6 +848,8 @@ pub const SOCK_STREAM: ::c_int = 2; - pub const SOCK_RAW: ::c_int = 4; - pub const SOCK_RDM: ::c_int = 5; - pub const SOCK_SEQPACKET: ::c_int = 6; -+pub const IPPROTO_ICMP: ::c_int = 1; -+pub const IPPROTO_ICMPV6: ::c_int = 58; - pub const IPPROTO_TCP: ::c_int = 6; - pub const IPPROTO_IP: ::c_int = 0; - pub const IPPROTO_IPV6: ::c_int = 41; -@@ -815,6 +883,8 @@ pub const SO_RCVTIMEO: ::c_int = 0x1006; - pub const SO_ERROR: ::c_int = 0x1007; - pub const SO_TYPE: ::c_int = 0x1008; - -+pub const MSG_PEEK: ::c_int = 0x2; -+ - pub const IFF_LOOPBACK: ::c_int = 0x8; - - pub const SHUT_RD: ::c_int = 0; -@@ -942,21 +1012,34 @@ pub const RTLD_NODELETE: ::c_int = 0x1000; - pub const RTLD_FIRST: ::c_int = 0x2000; - pub const RTLD_CONFGEN: ::c_int = 0x10000; - -+pub const PORT_SOURCE_AIO: ::c_int = 1; -+pub const PORT_SOURCE_TIMER: ::c_int = 2; -+pub const PORT_SOURCE_USER: ::c_int = 3; -+pub const PORT_SOURCE_FD: ::c_int = 4; -+pub const PORT_SOURCE_ALERT: ::c_int = 5; -+pub const PORT_SOURCE_MQ: ::c_int = 6; -+pub const PORT_SOURCE_FILE: ::c_int = 7; -+pub const PORT_SOURCE_POSTWAIT: ::c_int = 8; -+pub const PORT_SOURCE_SIGNAL: ::c_int = 9; -+ - f! { - pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { -+ let bits = mem::size_of_val(&(*set).fds_bits[0]) * 8; - let fd = fd as usize; -- (*set).fds_bits[fd / 32] &= !(1 << (fd % 32)); -+ (*set).fds_bits[fd / bits] &= !(1 << (fd % bits)); - return - } - - pub fn FD_ISSET(fd: ::c_int, set: *mut fd_set) -> bool { -+ let bits = mem::size_of_val(&(*set).fds_bits[0]) * 8; - let fd = fd as usize; -- return ((*set).fds_bits[fd / 32] & (1 << (fd % 32))) != 0 -+ return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0 - } - - pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { -+ let bits = mem::size_of_val(&(*set).fds_bits[0]) * 8; - let fd = fd as usize; -- (*set).fds_bits[fd / 32] |= 1 << (fd % 32); -+ (*set).fds_bits[fd / bits] |= 1 << (fd % bits); - return - } - -@@ -1005,17 +1088,21 @@ extern { - serv: *mut ::c_char, - sevlen: ::socklen_t, - flags: ::c_int) -> ::c_int; -+ #[link_name = "__posix_getpwnam_r"] - pub fn getpwnam_r(name: *const ::c_char, - pwd: *mut passwd, - buf: *mut ::c_char, -- buflen: ::c_int) -> *const passwd; -+ buflen: ::size_t, -+ result: *mut *mut passwd) -> ::c_int; -+ -+ #[link_name = "__posix_getpwuid_r"] - pub fn getpwuid_r(uid: ::uid_t, - pwd: *mut passwd, - buf: *mut ::c_char, -- buflen: ::c_int) -> *const passwd; -+ buflen: ::size_t, -+ result: *mut *mut passwd) -> ::c_int; - pub fn setpwent(); - pub fn getpwent() -> *mut passwd; -- pub fn readdir(dirp: *mut ::DIR) -> *const ::dirent; - pub fn fdatasync(fd: ::c_int) -> ::c_int; - pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; - pub fn duplocale(base: ::locale_t) -> ::locale_t; -@@ -1030,33 +1117,10 @@ extern { - pub fn getpriority(which: ::c_int, who: ::c_int) -> ::c_int; - pub fn setpriority(which: ::c_int, who: ::c_int, prio: ::c_int) -> ::c_int; - -- pub fn openat(dirfd: ::c_int, pathname: *const ::c_char, -- flags: ::c_int, ...) -> ::c_int; -- pub fn faccessat(dirfd: ::c_int, pathname: *const ::c_char, -- mode: ::c_int, flags: ::c_int) -> ::c_int; -- pub fn fchmodat(dirfd: ::c_int, pathname: *const ::c_char, -- mode: ::mode_t, flags: ::c_int) -> ::c_int; -- pub fn fchownat(dirfd: ::c_int, pathname: *const ::c_char, -- owner: ::uid_t, group: ::gid_t, -- flags: ::c_int) -> ::c_int; -- pub fn fstatat(dirfd: ::c_int, pathname: *const ::c_char, -- buf: *mut stat, flags: ::c_int) -> ::c_int; -- pub fn linkat(olddirfd: ::c_int, oldpath: *const ::c_char, -- newdirfd: ::c_int, newpath: *const ::c_char, -- flags: ::c_int) -> ::c_int; -- pub fn mkdirat(dirfd: ::c_int, pathname: *const ::c_char, -- mode: ::mode_t) -> ::c_int; -+ pub fn fdopendir(fd: ::c_int) -> *mut ::DIR; -+ - pub fn mknodat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::mode_t, dev: dev_t) -> ::c_int; -- pub fn readlinkat(dirfd: ::c_int, pathname: *const ::c_char, -- buf: *mut ::c_char, bufsiz: ::size_t) -> ::ssize_t; -- pub fn renameat(olddirfd: ::c_int, oldpath: *const ::c_char, -- newdirfd: ::c_int, newpath: *const ::c_char) -- -> ::c_int; -- pub fn symlinkat(target: *const ::c_char, newdirfd: ::c_int, -- linkpath: *const ::c_char) -> ::c_int; -- pub fn unlinkat(dirfd: ::c_int, pathname: *const ::c_char, -- flags: ::c_int) -> ::c_int; - pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, - mode: ::mode_t) -> ::c_int; - pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; -@@ -1072,4 +1136,59 @@ extern { - abstime: *const ::timespec) -> ::c_int; - pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, - options: ::c_int) -> ::c_int; -+ -+ pub fn glob(pattern: *const ::c_char, -+ flags: ::c_int, -+ errfunc: Option<extern fn(epath: *const ::c_char, -+ errno: ::c_int) -> ::c_int>, -+ pglob: *mut ::glob_t) -> ::c_int; -+ -+ pub fn globfree(pglob: *mut ::glob_t); -+ -+ pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -+ -> ::c_int; -+ -+ pub fn shm_unlink(name: *const ::c_char) -> ::c_int; -+ -+ pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); -+ -+ pub fn telldir(dirp: *mut ::DIR) -> ::c_long; -+ pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -+ -> ::c_int; -+ -+ pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; -+ -+ pub fn recvfrom(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, -+ flags: ::c_int, addr: *mut ::sockaddr, -+ addrlen: *mut ::socklen_t) -> ::ssize_t; -+ pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int; -+ pub fn futimes(fd: ::c_int, times: *const ::timeval) -> ::c_int; -+ pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; -+ -+ pub fn bind(socket: ::c_int, address: *const ::sockaddr, -+ address_len: ::socklen_t) -> ::c_int; -+ -+ pub fn writev(fd: ::c_int, -+ iov: *const ::iovec, -+ iovcnt: ::c_int) -> ::ssize_t; -+ pub fn readv(fd: ::c_int, -+ iov: *const ::iovec, -+ iovcnt: ::c_int) -> ::ssize_t; -+ -+ pub fn sendmsg(fd: ::c_int, -+ msg: *const ::msghdr, -+ flags: ::c_int) -> ::ssize_t; -+ pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -+ -> ::ssize_t; -+ -+ pub fn port_create() -> ::c_int; -+ pub fn port_associate(port: ::c_int, source: ::c_int, object: ::uintptr_t, -+ events: ::c_int, user: ::uintptr_t) -> ::c_int; -+ pub fn port_dissociate(port: ::c_int, source: ::c_int, object: ::uintptr_t) -+ -> ::c_int; -+ pub fn port_get(port: ::c_int, pe: *mut port_event, -+ timeout: *const ::timespec) -> ::c_int; -+ pub fn port_getn(port: ::c_int, pe_list: *mut port_event, max: ::c_uint, -+ nget: *mut ::c_uint, timeout: *const ::timespec) -+ -> ::c_int; - } -diff --git third_party/rust/libc/src/unix/uclibc/mips/mips32.rs third_party/rust/libc/src/unix/uclibc/mips/mips32.rs -new file mode 100644 -index 000000000000..a81e884e0bc6 ---- /dev/null -+++ third_party/rust/libc/src/unix/uclibc/mips/mips32.rs -@@ -0,0 +1,269 @@ -+pub type c_char = i8; -+pub type c_long = i32; -+pub type c_ulong = u32; -+pub type clock_t = i32; -+pub type time_t = i32; -+pub type suseconds_t = i32; -+pub type wchar_t = i32; -+pub type off_t = i32; -+pub type ino_t = u32; -+pub type blkcnt_t = i32; -+pub type blksize_t = i32; -+pub type nlink_t = u32; -+pub type fsblkcnt_t = ::c_ulong; -+pub type fsfilcnt_t = ::c_ulong; -+pub type rlim_t = c_ulong; -+ -+s! { -+ pub struct stat { -+ pub st_dev: ::dev_t, -+ st_pad1: [::c_long; 2], -+ pub st_ino: ::ino_t, -+ pub st_mode: ::mode_t, -+ pub st_nlink: ::nlink_t, -+ pub st_uid: ::uid_t, -+ pub st_gid: ::gid_t, -+ pub st_rdev: ::dev_t, -+ pub st_pad2: [::c_long; 1], -+ pub st_size: ::off_t, -+ st_pad3: ::c_long, -+ pub st_atime: ::time_t, -+ pub st_atime_nsec: ::c_long, -+ pub st_mtime: ::time_t, -+ pub st_mtime_nsec: ::c_long, -+ pub st_ctime: ::time_t, -+ pub st_ctime_nsec: ::c_long, -+ pub st_blksize: ::blksize_t, -+ pub st_blocks: ::blkcnt_t, -+ st_pad5: [::c_long; 14], -+ } -+ -+ pub struct stat64 { -+ pub st_dev: ::dev_t, -+ st_pad1: [::c_long; 2], -+ pub st_ino: ::ino64_t, -+ pub st_mode: ::mode_t, -+ pub st_nlink: ::nlink_t, -+ pub st_uid: ::uid_t, -+ pub st_gid: ::gid_t, -+ pub st_rdev: ::dev_t, -+ st_pad2: [::c_long; 2], -+ pub st_size: ::off64_t, -+ pub st_atime: ::time_t, -+ pub st_atime_nsec: ::c_long, -+ pub st_mtime: ::time_t, -+ pub st_mtime_nsec: ::c_long, -+ pub st_ctime: ::time_t, -+ pub st_ctime_nsec: ::c_long, -+ pub st_blksize: ::blksize_t, -+ st_pad3: ::c_long, -+ pub st_blocks: ::blkcnt64_t, -+ st_pad5: [::c_long; 14], -+ } -+ -+ pub struct pthread_attr_t { -+ __size: [u32; 9] -+ } -+ -+ pub struct sigaction { -+ pub sa_flags: ::c_uint, -+ pub sa_sigaction: ::sighandler_t, -+ pub sa_mask: sigset_t, -+ _restorer: *mut ::c_void, -+ } -+ -+ pub struct stack_t { -+ pub ss_sp: *mut ::c_void, -+ pub ss_size: ::size_t, -+ pub ss_flags: ::c_int, -+ } -+ -+ pub struct sigset_t { -+ __val: [::c_ulong; 4], -+ } -+ -+ pub struct siginfo_t { -+ pub si_signo: ::c_int, -+ pub si_code: ::c_int, -+ pub si_errno: ::c_int, -+ pub _pad: [::c_int; 29], -+ } -+ -+ pub struct glob64_t { -+ pub gl_pathc: ::size_t, -+ pub gl_pathv: *mut *mut ::c_char, -+ pub gl_offs: ::size_t, -+ pub gl_flags: ::c_int, -+ -+ __unused1: *mut ::c_void, -+ __unused2: *mut ::c_void, -+ __unused3: *mut ::c_void, -+ __unused4: *mut ::c_void, -+ __unused5: *mut ::c_void, -+ } -+ -+ pub struct ipc_perm { -+ pub __key: ::key_t, -+ pub uid: ::uid_t, -+ pub gid: ::gid_t, -+ pub cuid: ::uid_t, -+ pub cgid: ::gid_t, -+ pub mode: ::c_uint, -+ pub __seq: ::c_ushort, -+ __pad1: ::c_ushort, -+ __unused1: ::c_ulong, -+ __unused2: ::c_ulong -+ } -+ -+ pub struct shmid_ds { -+ pub shm_perm: ::ipc_perm, -+ pub shm_segsz: ::size_t, -+ pub shm_atime: ::time_t, -+ pub shm_dtime: ::time_t, -+ pub shm_ctime: ::time_t, -+ pub shm_cpid: ::pid_t, -+ pub shm_lpid: ::pid_t, -+ pub shm_nattch: ::shmatt_t, -+ __unused4: ::c_ulong, -+ __unused5: ::c_ulong -+ } -+ -+ pub struct msqid_ds { -+ pub msg_perm: ::ipc_perm, -+ #[cfg(target_endian = "big")] -+ __glibc_reserved1: ::c_ulong, -+ pub msg_stime: ::time_t, -+ #[cfg(target_endian = "little")] -+ __glibc_reserved1: ::c_ulong, -+ #[cfg(target_endian = "big")] -+ __glibc_reserved2: ::c_ulong, -+ pub msg_rtime: ::time_t, -+ #[cfg(target_endian = "little")] -+ __glibc_reserved2: ::c_ulong, -+ #[cfg(target_endian = "big")] -+ __glibc_reserved3: ::c_ulong, -+ pub msg_ctime: ::time_t, -+ #[cfg(target_endian = "little")] -+ __glibc_reserved3: ::c_ulong, -+ __msg_cbytes: ::c_ulong, -+ pub msg_qnum: ::msgqnum_t, -+ pub msg_qbytes: ::msglen_t, -+ pub msg_lspid: ::pid_t, -+ pub msg_lrpid: ::pid_t, -+ __glibc_reserved4: ::c_ulong, -+ __glibc_reserved5: ::c_ulong, -+ } -+ -+ pub struct statfs { -+ pub f_type: ::c_long, -+ pub f_bsize: ::c_long, -+ pub f_frsize: ::c_long, -+ pub f_blocks: ::fsblkcnt_t, -+ pub f_bfree: ::fsblkcnt_t, -+ pub f_files: ::fsblkcnt_t, -+ pub f_ffree: ::fsblkcnt_t, -+ pub f_bavail: ::fsblkcnt_t, -+ pub f_fsid: ::fsid_t, -+ -+ pub f_namelen: ::c_long, -+ f_spare: [::c_long; 6], -+ } -+ -+ pub struct msghdr { -+ pub msg_name: *mut ::c_void, -+ pub msg_namelen: ::socklen_t, -+ pub msg_iov: *mut ::iovec, -+ pub msg_iovlen: ::c_int, -+ pub msg_control: *mut ::c_void, -+ pub msg_controllen: ::size_t, -+ pub msg_flags: ::c_int, -+ } -+ -+ pub struct cmsghdr { -+ pub cmsg_len: ::size_t, -+ pub cmsg_level: ::c_int, -+ pub cmsg_type: ::c_int, -+ } -+ -+ pub struct termios { -+ pub c_iflag: ::tcflag_t, -+ pub c_oflag: ::tcflag_t, -+ pub c_cflag: ::tcflag_t, -+ pub c_lflag: ::tcflag_t, -+ pub c_line: ::cc_t, -+ pub c_cc: [::cc_t; ::NCCS], -+ } -+ -+ pub struct flock { -+ pub l_type: ::c_short, -+ pub l_whence: ::c_short, -+ pub l_start: ::off_t, -+ pub l_len: ::off_t, -+ pub l_sysid: ::c_long, -+ pub l_pid: ::pid_t, -+ pad: [::c_long; 4], -+ } -+ -+ pub struct sysinfo { -+ pub uptime: ::c_long, -+ pub loads: [::c_ulong; 3], -+ pub totalram: ::c_ulong, -+ pub freeram: ::c_ulong, -+ pub sharedram: ::c_ulong, -+ pub bufferram: ::c_ulong, -+ pub totalswap: ::c_ulong, -+ pub freeswap: ::c_ulong, -+ pub procs: ::c_ushort, -+ pub pad: ::c_ushort, -+ pub totalhigh: ::c_ulong, -+ pub freehigh: ::c_ulong, -+ pub mem_unit: ::c_uint, -+ pub _f: [::c_char; 8], -+ } -+ -+ // FIXME this is actually a union -+ pub struct sem_t { -+ #[cfg(target_pointer_width = "32")] -+ __size: [::c_char; 16], -+ #[cfg(target_pointer_width = "64")] -+ __size: [::c_char; 32], -+ __align: [::c_long; 0], -+ } -+} -+ -+pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; -+pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 24; -+pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32; -+pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; -+ -+pub const RLIM_INFINITY: ::rlim_t = 0x7fffffff; -+ -+pub const SYS_gettid: ::c_long = 4222; // Valid for O32 -+ -+#[link(name = "util")] -+extern { -+ pub fn sysctl(name: *mut ::c_int, -+ namelen: ::c_int, -+ oldp: *mut ::c_void, -+ oldlenp: *mut ::size_t, -+ newp: *mut ::c_void, -+ newlen: ::size_t) -+ -> ::c_int; -+ pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; -+ pub fn backtrace(buf: *mut *mut ::c_void, -+ sz: ::c_int) -> ::c_int; -+ pub fn glob64(pattern: *const ::c_char, -+ flags: ::c_int, -+ errfunc: ::dox::Option<extern fn(epath: *const ::c_char, -+ errno: ::c_int) -+ -> ::c_int>, -+ pglob: *mut glob64_t) -> ::c_int; -+ pub fn globfree64(pglob: *mut glob64_t); -+ pub fn ptrace(request: ::c_uint, ...) -> ::c_long; -+ pub fn pthread_attr_getaffinity_np(attr: *const ::pthread_attr_t, -+ cpusetsize: ::size_t, -+ cpuset: *mut ::cpu_set_t) -> ::c_int; -+ pub fn pthread_attr_setaffinity_np(attr: *mut ::pthread_attr_t, -+ cpusetsize: ::size_t, -+ cpuset: *const ::cpu_set_t) -> ::c_int; -+} -diff --git third_party/rust/libc/src/unix/uclibc/mips/mips64.rs third_party/rust/libc/src/unix/uclibc/mips/mips64.rs -new file mode 100644 -index 000000000000..79bac1fa8a47 ---- /dev/null -+++ third_party/rust/libc/src/unix/uclibc/mips/mips64.rs -@@ -0,0 +1,209 @@ -+pub type blkcnt_t = i64; -+pub type blksize_t = i64; -+pub type c_char = i8; -+pub type c_long = i64; -+pub type c_ulong = u64; -+pub type fsblkcnt_t = ::c_ulong; -+pub type fsfilcnt_t = ::c_ulong; -+pub type ino_t = u64; -+pub type nlink_t = u64; -+pub type off_t = i64; -+pub type rlim_t = ::c_ulong; -+pub type suseconds_t = i64; -+pub type time_t = i64; -+pub type wchar_t = i32; -+ -+s! { -+ pub struct stat { -+ pub st_dev: ::c_ulong, -+ st_pad1: [::c_long; 2], -+ pub st_ino: ::ino_t, -+ pub st_mode: ::mode_t, -+ pub st_nlink: ::nlink_t, -+ pub st_uid: ::uid_t, -+ pub st_gid: ::gid_t, -+ pub st_rdev: ::c_ulong, -+ st_pad2: [::c_ulong; 1], -+ pub st_size: ::off_t, -+ st_pad3: ::c_long, -+ pub st_atime: ::time_t, -+ pub st_atime_nsec: ::c_long, -+ pub st_mtime: ::time_t, -+ pub st_mtime_nsec: ::c_long, -+ pub st_ctime: ::time_t, -+ pub st_ctime_nsec: ::c_long, -+ pub st_blksize: ::blksize_t, -+ st_pad4: ::c_long, -+ pub st_blocks: ::blkcnt_t, -+ st_pad5: [::c_long; 7], -+ } -+ -+ pub struct stat64 { -+ pub st_dev: ::c_ulong, -+ st_pad1: [::c_long; 2], -+ pub st_ino: ::ino64_t, -+ pub st_mode: ::mode_t, -+ pub st_nlink: ::nlink_t, -+ pub st_uid: ::uid_t, -+ pub st_gid: ::gid_t, -+ pub st_rdev: ::c_ulong, -+ st_pad2: [::c_long; 2], -+ pub st_size: ::off64_t, -+ pub st_atime: ::time_t, -+ pub st_atime_nsec: ::c_long, -+ pub st_mtime: ::time_t, -+ pub st_mtime_nsec: ::c_long, -+ pub st_ctime: ::time_t, -+ pub st_ctime_nsec: ::c_long, -+ pub st_blksize: ::blksize_t, -+ st_pad3: ::c_long, -+ pub st_blocks: ::blkcnt64_t, -+ st_pad5: [::c_long; 7], -+ } -+ -+ pub struct pthread_attr_t { -+ __size: [::c_ulong; 7] -+ } -+ -+ pub struct sigaction { -+ pub sa_flags: ::c_int, -+ pub sa_sigaction: ::sighandler_t, -+ pub sa_mask: sigset_t, -+ _restorer: *mut ::c_void, -+ } -+ -+ pub struct stack_t { -+ pub ss_sp: *mut ::c_void, -+ pub ss_size: ::size_t, -+ pub ss_flags: ::c_int, -+ } -+ -+ pub struct sigset_t { -+ __size: [::c_ulong; 16], -+ } -+ -+ pub struct siginfo_t { -+ pub si_signo: ::c_int, -+ pub si_code: ::c_int, -+ pub si_errno: ::c_int, -+ _pad: ::c_int, -+ _pad2: [::c_long; 14], -+ } -+ -+ pub struct ipc_perm { -+ pub __key: ::key_t, -+ pub uid: ::uid_t, -+ pub gid: ::gid_t, -+ pub cuid: ::uid_t, -+ pub cgid: ::gid_t, -+ pub mode: ::c_uint, -+ pub __seq: ::c_ushort, -+ __pad1: ::c_ushort, -+ __unused1: ::c_ulong, -+ __unused2: ::c_ulong -+ } -+ -+ pub struct shmid_ds { -+ pub shm_perm: ::ipc_perm, -+ pub shm_segsz: ::size_t, -+ pub shm_atime: ::time_t, -+ pub shm_dtime: ::time_t, -+ pub shm_ctime: ::time_t, -+ pub shm_cpid: ::pid_t, -+ pub shm_lpid: ::pid_t, -+ pub shm_nattch: ::shmatt_t, -+ __unused4: ::c_ulong, -+ __unused5: ::c_ulong -+ } -+ -+ pub struct msqid_ds { -+ pub msg_perm: ::ipc_perm, -+ pub msg_stime: ::time_t, -+ pub msg_rtime: ::time_t, -+ pub msg_ctime: ::time_t, -+ __msg_cbytes: ::c_ulong, -+ pub msg_qnum: ::msgqnum_t, -+ pub msg_qbytes: ::msglen_t, -+ pub msg_lspid: ::pid_t, -+ pub msg_lrpid: ::pid_t, -+ __glibc_reserved4: ::c_ulong, -+ __glibc_reserved5: ::c_ulong, -+ } -+ -+ pub struct statfs { -+ pub f_type: ::c_long, -+ pub f_bsize: ::c_long, -+ pub f_frsize: ::c_long, -+ pub f_blocks: ::fsblkcnt_t, -+ pub f_bfree: ::fsblkcnt_t, -+ pub f_files: ::fsblkcnt_t, -+ pub f_ffree: ::fsblkcnt_t, -+ pub f_bavail: ::fsblkcnt_t, -+ pub f_fsid: ::fsid_t, -+ -+ pub f_namelen: ::c_long, -+ f_spare: [::c_long; 6], -+ } -+ -+ pub struct msghdr { -+ pub msg_name: *mut ::c_void, -+ pub msg_namelen: ::socklen_t, -+ pub msg_iov: *mut ::iovec, -+ pub msg_iovlen: ::size_t, -+ pub msg_control: *mut ::c_void, -+ pub msg_controllen: ::size_t, -+ pub msg_flags: ::c_int, -+ } -+ -+ pub struct cmsghdr { -+ pub cmsg_len: ::size_t, -+ pub cmsg_level: ::c_int, -+ pub cmsg_type: ::c_int, -+ } -+ -+ pub struct termios { -+ pub c_iflag: ::tcflag_t, -+ pub c_oflag: ::tcflag_t, -+ pub c_cflag: ::tcflag_t, -+ pub c_lflag: ::tcflag_t, -+ pub c_line: ::cc_t, -+ pub c_cc: [::cc_t; ::NCCS], -+ } -+ -+ pub struct sysinfo { -+ pub uptime: ::c_long, -+ pub loads: [::c_ulong; 3], -+ pub totalram: ::c_ulong, -+ pub freeram: ::c_ulong, -+ pub sharedram: ::c_ulong, -+ pub bufferram: ::c_ulong, -+ pub totalswap: ::c_ulong, -+ pub freeswap: ::c_ulong, -+ pub procs: ::c_ushort, -+ pub pad: ::c_ushort, -+ pub totalhigh: ::c_ulong, -+ pub freehigh: ::c_ulong, -+ pub mem_unit: ::c_uint, -+ pub _f: [::c_char; 0], -+ } -+ -+ // FIXME this is actually a union -+ pub struct sem_t { -+ __size: [::c_char; 32], -+ __align: [::c_long; 0], -+ } -+} -+ -+pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; -+pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; -+pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; -+pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; -+ -+pub const RLIM_INFINITY: ::rlim_t = 0xffff_ffff_ffff_ffff; -+ -+pub const SYS_gettid: ::c_long = 5178; // Valid for n64 -+ -+#[link(name = "util")] -+extern { -+ pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int; -+} -diff --git third_party/rust/libc/src/unix/uclibc/mips/mod.rs third_party/rust/libc/src/unix/uclibc/mips/mod.rs -new file mode 100644 -index 000000000000..cc3ddf254d73 ---- /dev/null -+++ third_party/rust/libc/src/unix/uclibc/mips/mod.rs -@@ -0,0 +1,476 @@ -+pub const SFD_CLOEXEC: ::c_int = 0x080000; -+ -+pub const NCCS: usize = 32; -+ -+pub const O_TRUNC: ::c_int = 512; -+ -+pub const O_CLOEXEC: ::c_int = 0x80000; -+ -+pub const EBFONT: ::c_int = 59; -+pub const ENOSTR: ::c_int = 60; -+pub const ENODATA: ::c_int = 61; -+pub const ETIME: ::c_int = 62; -+pub const ENOSR: ::c_int = 63; -+pub const ENONET: ::c_int = 64; -+pub const ENOPKG: ::c_int = 65; -+pub const EREMOTE: ::c_int = 66; -+pub const ENOLINK: ::c_int = 67; -+pub const EADV: ::c_int = 68; -+pub const ESRMNT: ::c_int = 69; -+pub const ECOMM: ::c_int = 70; -+pub const EPROTO: ::c_int = 71; -+pub const EDOTDOT: ::c_int = 73; -+ -+pub const SA_NODEFER: ::c_int = 0x40000000; -+pub const SA_RESETHAND: ::c_int = 0x80000000; -+pub const SA_RESTART: ::c_int = 0x10000000; -+pub const SA_NOCLDSTOP: ::c_int = 0x00000001; -+ -+pub const EPOLL_CLOEXEC: ::c_int = 0x80000; -+ -+pub const EFD_CLOEXEC: ::c_int = 0x80000; -+ -+pub const BUFSIZ: ::c_uint = 4096; -+pub const TMP_MAX: ::c_uint = 238328; -+pub const FOPEN_MAX: ::c_uint = 16; -+pub const POSIX_FADV_DONTNEED: ::c_int = 4; -+pub const POSIX_FADV_NOREUSE: ::c_int = 5; -+pub const POSIX_MADV_DONTNEED: ::c_int = 4; -+pub const _SC_2_C_VERSION: ::c_int = 96; -+pub const O_ACCMODE: ::c_int = 3; -+pub const O_DIRECT: ::c_int = 0x8000; -+pub const O_DIRECTORY: ::c_int = 0x10000; -+pub const O_NOFOLLOW: ::c_int = 0x20000; -+pub const ST_RELATIME: ::c_ulong = 4096; -+pub const NI_MAXHOST: ::socklen_t = 1025; -+ -+pub const RLIMIT_NOFILE: ::c_int = 5; -+pub const RLIMIT_AS: ::c_int = 6; -+pub const RLIMIT_RSS: ::c_int = 7; -+pub const RLIMIT_NPROC: ::c_int = 8; -+pub const RLIMIT_MEMLOCK: ::c_int = 9; -+pub const RLIMIT_NLIMITS: ::c_int = 15; -+ -+pub const O_APPEND: ::c_int = 8; -+pub const O_CREAT: ::c_int = 256; -+pub const O_EXCL: ::c_int = 1024; -+pub const O_NOCTTY: ::c_int = 2048; -+pub const O_NONBLOCK: ::c_int = 128; -+pub const O_SYNC: ::c_int = 0x10; -+pub const O_RSYNC: ::c_int = 0x10; -+pub const O_DSYNC: ::c_int = 0x10; -+pub const O_FSYNC: ::c_int = 0x10; -+pub const O_ASYNC: ::c_int = 0x1000; -+pub const O_NDELAY: ::c_int = 0x80; -+ -+pub const SOCK_NONBLOCK: ::c_int = 128; -+ -+pub const EDEADLK: ::c_int = 45; -+pub const ENAMETOOLONG: ::c_int = 78; -+pub const ENOLCK: ::c_int = 46; -+pub const ENOSYS: ::c_int = 89; -+pub const ENOTEMPTY: ::c_int = 93; -+pub const ELOOP: ::c_int = 90; -+pub const ENOMSG: ::c_int = 35; -+pub const EIDRM: ::c_int = 36; -+pub const ECHRNG: ::c_int = 37; -+pub const EL2NSYNC: ::c_int = 38; -+pub const EL3HLT: ::c_int = 39; -+pub const EL3RST: ::c_int = 40; -+pub const ELNRNG: ::c_int = 41; -+pub const EUNATCH: ::c_int = 42; -+pub const ENOCSI: ::c_int = 43; -+pub const EL2HLT: ::c_int = 44; -+pub const EBADE: ::c_int = 50; -+pub const EBADR: ::c_int = 51; -+pub const EXFULL: ::c_int = 52; -+pub const ENOANO: ::c_int = 53; -+pub const EBADRQC: ::c_int = 54; -+pub const EBADSLT: ::c_int = 55; -+pub const EDEADLOCK: ::c_int = 56; -+pub const EMULTIHOP: ::c_int = 74; -+pub const EOVERFLOW: ::c_int = 79; -+pub const ENOTUNIQ: ::c_int = 80; -+pub const EBADFD: ::c_int = 81; -+pub const EBADMSG: ::c_int = 77; -+pub const EREMCHG: ::c_int = 82; -+pub const ELIBACC: ::c_int = 83; -+pub const ELIBBAD: ::c_int = 84; -+pub const ELIBSCN: ::c_int = 85; -+pub const ELIBMAX: ::c_int = 86; -+pub const ELIBEXEC: ::c_int = 87; -+pub const EILSEQ: ::c_int = 88; -+pub const ERESTART: ::c_int = 91; -+pub const ESTRPIPE: ::c_int = 92; -+pub const EUSERS: ::c_int = 94; -+pub const ENOTSOCK: ::c_int = 95; -+pub const EDESTADDRREQ: ::c_int = 96; -+pub const EMSGSIZE: ::c_int = 97; -+pub const EPROTOTYPE: ::c_int = 98; -+pub const ENOPROTOOPT: ::c_int = 99; -+pub const EPROTONOSUPPORT: ::c_int = 120; -+pub const ESOCKTNOSUPPORT: ::c_int = 121; -+pub const EOPNOTSUPP: ::c_int = 122; -+pub const ENOTSUP: ::c_int = EOPNOTSUPP; -+pub const EPFNOSUPPORT: ::c_int = 123; -+pub const EAFNOSUPPORT: ::c_int = 124; -+pub const EADDRINUSE: ::c_int = 125; -+pub const EADDRNOTAVAIL: ::c_int = 126; -+pub const ENETDOWN: ::c_int = 127; -+pub const ENETUNREACH: ::c_int = 128; -+pub const ENETRESET: ::c_int = 129; -+pub const ECONNABORTED: ::c_int = 130; -+pub const ECONNRESET: ::c_int = 131; -+pub const ENOBUFS: ::c_int = 132; -+pub const EISCONN: ::c_int = 133; -+pub const ENOTCONN: ::c_int = 134; -+pub const ESHUTDOWN: ::c_int = 143; -+pub const ETOOMANYREFS: ::c_int = 144; -+pub const ETIMEDOUT: ::c_int = 145; -+pub const ECONNREFUSED: ::c_int = 146; -+pub const EHOSTDOWN: ::c_int = 147; -+pub const EHOSTUNREACH: ::c_int = 148; -+pub const EALREADY: ::c_int = 149; -+pub const EINPROGRESS: ::c_int = 150; -+pub const ESTALE: ::c_int = 151; -+pub const EUCLEAN: ::c_int = 135; -+pub const ENOTNAM: ::c_int = 137; -+pub const ENAVAIL: ::c_int = 138; -+pub const EISNAM: ::c_int = 139; -+pub const EREMOTEIO: ::c_int = 140; -+pub const EDQUOT: ::c_int = 1133; -+pub const ENOMEDIUM: ::c_int = 159; -+pub const EMEDIUMTYPE: ::c_int = 160; -+pub const ECANCELED: ::c_int = 158; -+pub const ENOKEY: ::c_int = 161; -+pub const EKEYEXPIRED: ::c_int = 162; -+pub const EKEYREVOKED: ::c_int = 163; -+pub const EKEYREJECTED: ::c_int = 164; -+pub const EOWNERDEAD: ::c_int = 165; -+pub const ENOTRECOVERABLE: ::c_int = 166; -+pub const ERFKILL: ::c_int = 167; -+ -+pub const MAP_NORESERVE: ::c_int = 0x400; -+pub const MAP_ANON: ::c_int = 0x800; -+pub const MAP_ANONYMOUS: ::c_int = 0x800; -+pub const MAP_GROWSDOWN: ::c_int = 0x1000; -+pub const MAP_DENYWRITE: ::c_int = 0x2000; -+pub const MAP_EXECUTABLE: ::c_int = 0x4000; -+pub const MAP_LOCKED: ::c_int = 0x8000; -+pub const MAP_POPULATE: ::c_int = 0x10000; -+pub const MAP_NONBLOCK: ::c_int = 0x20000; -+pub const MAP_STACK: ::c_int = 0x40000; -+ -+pub const SOCK_STREAM: ::c_int = 2; -+pub const SOCK_DGRAM: ::c_int = 1; -+pub const SOCK_SEQPACKET: ::c_int = 5; -+ -+pub const SOL_SOCKET: ::c_int = 0xffff; -+ -+pub const SO_REUSEADDR: ::c_int = 0x0004; -+pub const SO_KEEPALIVE: ::c_int = 0x0008; -+pub const SO_DONTROUTE: ::c_int = 0x0010; -+pub const SO_BROADCAST: ::c_int = 0x0020; -+pub const SO_LINGER: ::c_int = 0x0080; -+pub const SO_OOBINLINE: ::c_int = 0x0100; -+pub const SO_REUSEPORT: ::c_int = 0x0200; -+pub const SO_TYPE: ::c_int = 0x1008; -+pub const SO_STYLE: ::c_int = SO_TYPE; -+pub const SO_ERROR: ::c_int = 0x1007; -+pub const SO_SNDBUF: ::c_int = 0x1001; -+pub const SO_RCVBUF: ::c_int = 0x1002; -+pub const SO_SNDLOWAT: ::c_int = 0x1003; -+pub const SO_RCVLOWAT: ::c_int = 0x1004; -+pub const SO_SNDTIMEO: ::c_int = 0x1005; -+pub const SO_RCVTIMEO: ::c_int = 0x1006; -+pub const SO_ACCEPTCONN: ::c_int = 0x1009; -+pub const SO_PROTOCOL: ::c_int = 0x1028; -+pub const SO_DOMAIN: ::c_int = 0x1029; -+pub const SO_NO_CHECK: ::c_int = 11; -+pub const SO_PRIORITY: ::c_int = 12; -+pub const SO_BSDCOMPAT: ::c_int = 14; -+pub const SO_PASSCRED: ::c_int = 17; -+pub const SO_PEERCRED: ::c_int = 18; -+pub const SO_SECURITY_AUTHENTICATION: ::c_int = 22; -+pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 23; -+pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 24; -+pub const SO_BINDTODEVICE: ::c_int = 25; -+pub const SO_ATTACH_FILTER: ::c_int = 26; -+pub const SO_DETACH_FILTER: ::c_int = 27; -+pub const SO_GET_FILTER: ::c_int = SO_ATTACH_FILTER; -+pub const SO_PEERNAME: ::c_int = 28; -+pub const SO_TIMESTAMP: ::c_int = 29; -+pub const SCM_TIMESTAMP: ::c_int = SO_TIMESTAMP; -+pub const SO_PEERSEC: ::c_int = 30; -+pub const SO_SNDBUFFORCE: ::c_int = 31; -+pub const SO_RCVBUFFORCE: ::c_int = 33; -+pub const SO_PASSSEC: ::c_int = 34; -+pub const SO_TIMESTAMPNS: ::c_int = 35; -+pub const SCM_TIMESTAMPNS: ::c_int = SO_TIMESTAMPNS; -+pub const SO_MARK: ::c_int = 36; -+pub const SO_TIMESTAMPING: ::c_int = 37; -+pub const SCM_TIMESTAMPING: ::c_int = SO_TIMESTAMPING; -+pub const SO_RXQ_OVFL: ::c_int = 40; -+pub const SO_WIFI_STATUS: ::c_int = 41; -+pub const SCM_WIFI_STATUS: ::c_int = SO_WIFI_STATUS; -+pub const SO_PEEK_OFF: ::c_int = 42; -+pub const SO_NOFCS: ::c_int = 43; -+pub const SO_LOCK_FILTER: ::c_int = 44; -+pub const SO_SELECT_ERR_QUEUE: ::c_int = 45; -+pub const SO_BUSY_POLL: ::c_int = 46; -+pub const SO_MAX_PACING_RATE: ::c_int = 47; -+pub const SO_BPF_EXTENSIONS: ::c_int = 48; -+ -+pub const FIOCLEX: ::c_ulong = 0x6601; -+pub const FIONBIO: ::c_ulong = 0x667e; -+ -+pub const SA_ONSTACK: ::c_int = 0x08000000; -+pub const SA_SIGINFO: ::c_int = 0x00000008; -+pub const SA_NOCLDWAIT: ::c_int = 0x00010000; -+ -+pub const SIGCHLD: ::c_int = 18; -+pub const SIGBUS: ::c_int = 10; -+pub const SIGTTIN: ::c_int = 26; -+pub const SIGTTOU: ::c_int = 27; -+pub const SIGXCPU: ::c_int = 30; -+pub const SIGXFSZ: ::c_int = 31; -+pub const SIGVTALRM: ::c_int = 28; -+pub const SIGPROF: ::c_int = 29; -+pub const SIGWINCH: ::c_int = 20; -+pub const SIGUSR1: ::c_int = 16; -+pub const SIGUSR2: ::c_int = 17; -+pub const SIGCONT: ::c_int = 25; -+pub const SIGSTOP: ::c_int = 23; -+pub const SIGTSTP: ::c_int = 24; -+pub const SIGURG: ::c_int = 21; -+pub const SIGIO: ::c_int = 22; -+pub const SIGSYS: ::c_int = 12; -+pub const SIGPOLL: ::c_int = 22; -+pub const SIGPWR: ::c_int = 19; -+pub const SIG_SETMASK: ::c_int = 3; -+pub const SIG_BLOCK: ::c_int = 0x1; -+pub const SIG_UNBLOCK: ::c_int = 0x2; -+ -+pub const POLLRDNORM: ::c_short = 0x040; -+pub const POLLWRNORM: ::c_short = 0x004; -+pub const POLLRDBAND: ::c_short = 0x080; -+pub const POLLWRBAND: ::c_short = 0x100; -+ -+pub const PTHREAD_STACK_MIN: ::size_t = 16384; -+ -+pub const ADFS_SUPER_MAGIC: ::c_long = 0x0000adf5; -+pub const AFFS_SUPER_MAGIC: ::c_long = 0x0000adff; -+pub const CODA_SUPER_MAGIC: ::c_long = 0x73757245; -+pub const CRAMFS_MAGIC: ::c_long = 0x28cd3d45; -+pub const EFS_SUPER_MAGIC: ::c_long = 0x00414a53; -+pub const EXT2_SUPER_MAGIC: ::c_long = 0x0000ef53; -+pub const EXT3_SUPER_MAGIC: ::c_long = 0x0000ef53; -+pub const EXT4_SUPER_MAGIC: ::c_long = 0x0000ef53; -+pub const HPFS_SUPER_MAGIC: ::c_long = 0xf995e849; -+pub const HUGETLBFS_MAGIC: ::c_long = 0x958458f6; -+pub const ISOFS_SUPER_MAGIC: ::c_long = 0x00009660; -+pub const JFFS2_SUPER_MAGIC: ::c_long = 0x000072b6; -+pub const MINIX_SUPER_MAGIC: ::c_long = 0x0000137f; -+pub const MINIX_SUPER_MAGIC2: ::c_long = 0x0000138f; -+pub const MINIX2_SUPER_MAGIC: ::c_long = 0x00002468; -+pub const MINIX2_SUPER_MAGIC2: ::c_long = 0x00002478; -+pub const MSDOS_SUPER_MAGIC: ::c_long = 0x00004d44; -+pub const NCP_SUPER_MAGIC: ::c_long = 0x0000564c; -+pub const NFS_SUPER_MAGIC: ::c_long = 0x00006969; -+pub const OPENPROM_SUPER_MAGIC: ::c_long = 0x00009fa1; -+pub const PROC_SUPER_MAGIC: ::c_long = 0x00009fa0; -+pub const QNX4_SUPER_MAGIC: ::c_long = 0x0000002f; -+pub const REISERFS_SUPER_MAGIC: ::c_long = 0x52654973; -+pub const SMB_SUPER_MAGIC: ::c_long = 0x0000517b; -+pub const TMPFS_MAGIC: ::c_long = 0x01021994; -+pub const USBDEVICE_SUPER_MAGIC: ::c_long = 0x00009fa2; -+ -+pub const VEOF: usize = 16; -+pub const VEOL: usize = 17; -+pub const VEOL2: usize = 6; -+pub const VMIN: usize = 4; -+pub const IEXTEN: ::tcflag_t = 0x00000100; -+pub const TOSTOP: ::tcflag_t = 0x00008000; -+pub const FLUSHO: ::tcflag_t = 0x00002000; -+pub const IUTF8: ::tcflag_t = 0x00004000; -+pub const TCSANOW: ::c_int = 0x540e; -+pub const TCSADRAIN: ::c_int = 0x540f; -+pub const TCSAFLUSH: ::c_int = 0x5410; -+ -+pub const CPU_SETSIZE: ::c_int = 0x400; -+ -+pub const PTRACE_TRACEME: ::c_uint = 0; -+pub const PTRACE_PEEKTEXT: ::c_uint = 1; -+pub const PTRACE_PEEKDATA: ::c_uint = 2; -+pub const PTRACE_PEEKUSER: ::c_uint = 3; -+pub const PTRACE_POKETEXT: ::c_uint = 4; -+pub const PTRACE_POKEDATA: ::c_uint = 5; -+pub const PTRACE_POKEUSER: ::c_uint = 6; -+pub const PTRACE_CONT: ::c_uint = 7; -+pub const PTRACE_KILL: ::c_uint = 8; -+pub const PTRACE_SINGLESTEP: ::c_uint = 9; -+pub const PTRACE_ATTACH: ::c_uint = 16; -+pub const PTRACE_DETACH: ::c_uint = 17; -+pub const PTRACE_SYSCALL: ::c_uint = 24; -+pub const PTRACE_SETOPTIONS: ::c_uint = 0x4200; -+pub const PTRACE_GETEVENTMSG: ::c_uint = 0x4201; -+pub const PTRACE_GETSIGINFO: ::c_uint = 0x4202; -+pub const PTRACE_SETSIGINFO: ::c_uint = 0x4203; -+pub const PTRACE_GETFPREGS: ::c_uint = 14; -+pub const PTRACE_SETFPREGS: ::c_uint = 15; -+pub const PTRACE_GETFPXREGS: ::c_uint = 18; -+pub const PTRACE_SETFPXREGS: ::c_uint = 19; -+pub const PTRACE_GETREGS: ::c_uint = 12; -+pub const PTRACE_SETREGS: ::c_uint = 13; -+ -+pub const EFD_NONBLOCK: ::c_int = 0x80; -+ -+pub const F_GETLK: ::c_int = 14; -+pub const F_GETOWN: ::c_int = 23; -+pub const F_SETOWN: ::c_int = 24; -+pub const F_SETLK: ::c_int = 6; -+pub const F_SETLKW: ::c_int = 7; -+ -+pub const SFD_NONBLOCK: ::c_int = 0x80; -+ -+pub const TCGETS: ::c_ulong = 0x540d; -+pub const TCSETS: ::c_ulong = 0x540e; -+pub const TCSETSW: ::c_ulong = 0x540f; -+pub const TCSETSF: ::c_ulong = 0x5410; -+pub const TCGETA: ::c_ulong = 0x5401; -+pub const TCSETA: ::c_ulong = 0x5402; -+pub const TCSETAW: ::c_ulong = 0x5403; -+pub const TCSETAF: ::c_ulong = 0x5404; -+pub const TCSBRK: ::c_ulong = 0x5405; -+pub const TCXONC: ::c_ulong = 0x5406; -+pub const TCFLSH: ::c_ulong = 0x5407; -+pub const TIOCGSOFTCAR: ::c_ulong = 0x5481; -+pub const TIOCSSOFTCAR: ::c_ulong = 0x5482; -+pub const TIOCINQ: ::c_ulong = 0x467f; -+pub const TIOCLINUX: ::c_ulong = 0x5483; -+pub const TIOCGSERIAL: ::c_ulong = 0x5484; -+pub const TIOCEXCL: ::c_ulong = 0x740d; -+pub const TIOCNXCL: ::c_ulong = 0x740e; -+pub const TIOCSCTTY: ::c_ulong = 0x5480; -+pub const TIOCGPGRP: ::c_ulong = 0x40047477; -+pub const TIOCSPGRP: ::c_ulong = 0x80047476; -+pub const TIOCOUTQ: ::c_ulong = 0x7472; -+pub const TIOCSTI: ::c_ulong = 0x5472; -+pub const TIOCGWINSZ: ::c_ulong = 0x40087468; -+pub const TIOCSWINSZ: ::c_ulong = 0x80087467; -+pub const TIOCMGET: ::c_ulong = 0x741d; -+pub const TIOCMBIS: ::c_ulong = 0x741b; -+pub const TIOCMBIC: ::c_ulong = 0x741c; -+pub const TIOCMSET: ::c_ulong = 0x741a; -+pub const FIONREAD: ::c_ulong = 0x467f; -+pub const TIOCCONS: ::c_ulong = 0x80047478; -+ -+pub const RTLD_DEEPBIND: ::c_int = 0x10; -+pub const RTLD_GLOBAL: ::c_int = 0x4; -+pub const RTLD_NOLOAD: ::c_int = 0x8; -+ -+pub const LINUX_REBOOT_MAGIC1: ::c_int = 0xfee1dead; -+pub const LINUX_REBOOT_MAGIC2: ::c_int = 672274793; -+pub const LINUX_REBOOT_MAGIC2A: ::c_int = 85072278; -+pub const LINUX_REBOOT_MAGIC2B: ::c_int = 369367448; -+pub const LINUX_REBOOT_MAGIC2C: ::c_int = 537993216; -+ -+pub const LINUX_REBOOT_CMD_RESTART: ::c_int = 0x01234567; -+pub const LINUX_REBOOT_CMD_HALT: ::c_int = 0xCDEF0123; -+pub const LINUX_REBOOT_CMD_CAD_ON: ::c_int = 0x89ABCDEF; -+pub const LINUX_REBOOT_CMD_CAD_OFF: ::c_int = 0x00000000; -+pub const LINUX_REBOOT_CMD_POWER_OFF: ::c_int = 0x4321FEDC; -+pub const LINUX_REBOOT_CMD_RESTART2: ::c_int = 0xA1B2C3D4; -+pub const LINUX_REBOOT_CMD_SW_SUSPEND: ::c_int = 0xD000FCE2; -+pub const LINUX_REBOOT_CMD_KEXEC: ::c_int = 0x45584543; -+ -+pub const MCL_CURRENT: ::c_int = 0x0001; -+pub const MCL_FUTURE: ::c_int = 0x0002; -+ -+pub const SIGSTKSZ: ::size_t = 8192; -+pub const CBAUD: ::tcflag_t = 0o0010017; -+pub const TAB1: ::c_int = 0x00000800; -+pub const TAB2: ::c_int = 0x00001000; -+pub const TAB3: ::c_int = 0x00001800; -+pub const CR1: ::c_int = 0x00000200; -+pub const CR2: ::c_int = 0x00000400; -+pub const CR3: ::c_int = 0x00000600; -+pub const FF1: ::c_int = 0x00008000; -+pub const BS1: ::c_int = 0x00002000; -+pub const VT1: ::c_int = 0x00004000; -+pub const VWERASE: usize = 14; -+pub const VREPRINT: usize = 12; -+pub const VSUSP: usize = 10; -+pub const VSTART: usize = 8; -+pub const VSTOP: usize = 9; -+pub const VDISCARD: usize = 13; -+pub const VTIME: usize = 5; -+pub const IXON: ::tcflag_t = 0x00000400; -+pub const IXOFF: ::tcflag_t = 0x00001000; -+pub const ONLCR: ::tcflag_t = 0x4; -+pub const CSIZE: ::tcflag_t = 0x00000030; -+pub const CS6: ::tcflag_t = 0x00000010; -+pub const CS7: ::tcflag_t = 0x00000020; -+pub const CS8: ::tcflag_t = 0x00000030; -+pub const CSTOPB: ::tcflag_t = 0x00000040; -+pub const CREAD: ::tcflag_t = 0x00000080; -+pub const PARENB: ::tcflag_t = 0x00000100; -+pub const PARODD: ::tcflag_t = 0x00000200; -+pub const HUPCL: ::tcflag_t = 0x00000400; -+pub const CLOCAL: ::tcflag_t = 0x00000800; -+pub const ECHOKE: ::tcflag_t = 0x00000800; -+pub const ECHOE: ::tcflag_t = 0x00000010; -+pub const ECHOK: ::tcflag_t = 0x00000020; -+pub const ECHONL: ::tcflag_t = 0x00000040; -+pub const ECHOPRT: ::tcflag_t = 0x00000400; -+pub const ECHOCTL: ::tcflag_t = 0x00000200; -+pub const ISIG: ::tcflag_t = 0x00000001; -+pub const ICANON: ::tcflag_t = 0x00000002; -+pub const PENDIN: ::tcflag_t = 0x00004000; -+pub const NOFLSH: ::tcflag_t = 0x00000080; -+ -+pub const B0: ::speed_t = 0o000000; -+pub const B50: ::speed_t = 0o000001; -+pub const B75: ::speed_t = 0o000002; -+pub const B110: ::speed_t = 0o000003; -+pub const B134: ::speed_t = 0o000004; -+pub const B150: ::speed_t = 0o000005; -+pub const B200: ::speed_t = 0o000006; -+pub const B300: ::speed_t = 0o000007; -+pub const B600: ::speed_t = 0o000010; -+pub const B1200: ::speed_t = 0o000011; -+pub const B1800: ::speed_t = 0o000012; -+pub const B2400: ::speed_t = 0o000013; -+pub const B4800: ::speed_t = 0o000014; -+pub const B9600: ::speed_t = 0o000015; -+pub const B19200: ::speed_t = 0o000016; -+pub const B38400: ::speed_t = 0o000017; -+pub const EXTA: ::speed_t = B19200; -+pub const EXTB: ::speed_t = B38400; -+pub const B57600: ::speed_t = 0o010001; -+pub const B115200: ::speed_t = 0o010002; -+pub const B230400: ::speed_t = 0o010003; -+pub const B460800: ::speed_t = 0o010004; -+pub const B500000: ::speed_t = 0o010005; -+pub const B576000: ::speed_t = 0o010006; -+pub const B921600: ::speed_t = 0o010007; -+pub const B1000000: ::speed_t = 0o010010; -+pub const B1152000: ::speed_t = 0o010011; -+pub const B1500000: ::speed_t = 0o010012; -+pub const B2000000: ::speed_t = 0o010013; -+pub const B2500000: ::speed_t = 0o010014; -+pub const B3000000: ::speed_t = 0o010015; -+pub const B3500000: ::speed_t = 0o010016; -+pub const B4000000: ::speed_t = 0o010017; -+ -+cfg_if! { -+ if #[cfg(target_arch = "mips")] { -+ mod mips32; -+ pub use self::mips32::*; -+ } else if #[cfg(target_arch = "mips64")] { -+ mod mips64; -+ pub use self::mips64::*; -+ } else { -+ // Unknown target_arch -+ } -+} -diff --git third_party/rust/libc/src/unix/uclibc/mod.rs third_party/rust/libc/src/unix/uclibc/mod.rs -new file mode 100644 -index 000000000000..09f7d055f3d0 ---- /dev/null -+++ third_party/rust/libc/src/unix/uclibc/mod.rs -@@ -0,0 +1,1769 @@ -+use dox::{mem, Option}; -+ -+pub type sa_family_t = u16; -+pub type pthread_key_t = ::c_uint; -+pub type speed_t = ::c_uint; -+pub type tcflag_t = ::c_uint; -+pub type loff_t = ::c_longlong; -+pub type clockid_t = ::c_int; -+pub type key_t = ::c_int; -+pub type id_t = ::c_uint; -+pub type useconds_t = u32; -+pub type dev_t = u64; -+pub type socklen_t = u32; -+pub type pthread_t = ::c_ulong; -+pub type mode_t = u32; -+pub type ino64_t = u64; -+pub type off64_t = i64; -+pub type blkcnt64_t = i64; -+pub type rlim64_t = u64; -+pub type shmatt_t = ::c_ulong; -+pub type mqd_t = ::c_int; -+pub type msgqnum_t = ::c_ulong; -+pub type msglen_t = ::c_ulong; -+pub type nfds_t = ::c_ulong; -+pub type nl_item = ::c_int; -+pub type idtype_t = ::c_uint; -+ -+pub enum fpos64_t {} // TODO: fill this out with a struct -+ -+pub enum timezone {} -+ -+s! { -+ pub struct sockaddr { -+ pub sa_family: sa_family_t, -+ pub sa_data: [::c_char; 14], -+ } -+ -+ pub struct sockaddr_in { -+ pub sin_family: sa_family_t, -+ pub sin_port: ::in_port_t, -+ pub sin_addr: ::in_addr, -+ pub sin_zero: [u8; 8], -+ } -+ -+ pub struct sockaddr_in6 { -+ pub sin6_family: sa_family_t, -+ pub sin6_port: ::in_port_t, -+ pub sin6_flowinfo: u32, -+ pub sin6_addr: ::in6_addr, -+ pub sin6_scope_id: u32, -+ } -+ -+ pub struct sockaddr_un { -+ pub sun_family: sa_family_t, -+ pub sun_path: [::c_char; 108] -+ } -+ -+ pub struct sockaddr_storage { -+ pub ss_family: sa_family_t, -+ __ss_align: ::size_t, -+ #[cfg(target_pointer_width = "32")] -+ __ss_pad2: [u8; 128 - 2 * 4], -+ #[cfg(target_pointer_width = "64")] -+ __ss_pad2: [u8; 128 - 2 * 8], -+ } -+ -+ pub struct addrinfo { -+ pub ai_flags: ::c_int, -+ pub ai_family: ::c_int, -+ pub ai_socktype: ::c_int, -+ pub ai_protocol: ::c_int, -+ pub ai_addrlen: socklen_t, -+ -+ pub ai_addr: *mut ::sockaddr, -+ -+ pub ai_canonname: *mut c_char, -+ -+ pub ai_next: *mut addrinfo, -+ } -+ -+ pub struct sockaddr_nl { -+ pub nl_family: ::sa_family_t, -+ nl_pad: ::c_ushort, -+ pub nl_pid: u32, -+ pub nl_groups: u32 -+ } -+ -+ pub struct sockaddr_ll { -+ pub sll_family: ::c_ushort, -+ pub sll_protocol: ::c_ushort, -+ pub sll_ifindex: ::c_int, -+ pub sll_hatype: ::c_ushort, -+ pub sll_pkttype: ::c_uchar, -+ pub sll_halen: ::c_uchar, -+ pub sll_addr: [::c_uchar; 8] -+ } -+ -+ pub struct fd_set { -+ fds_bits: [::c_ulong; FD_SETSIZE / ULONG_SIZE], -+ } -+ -+ pub struct tm { -+ pub tm_sec: ::c_int, -+ pub tm_min: ::c_int, -+ pub tm_hour: ::c_int, -+ pub tm_mday: ::c_int, -+ pub tm_mon: ::c_int, -+ pub tm_year: ::c_int, -+ pub tm_wday: ::c_int, -+ pub tm_yday: ::c_int, -+ pub tm_isdst: ::c_int, -+ pub tm_gmtoff: ::c_long, -+ pub tm_zone: *const ::c_char, -+ } -+ -+ pub struct sched_param { -+ pub sched_priority: ::c_int, -+ } -+ -+ pub struct Dl_info { -+ pub dli_fname: *const ::c_char, -+ pub dli_fbase: *mut ::c_void, -+ pub dli_sname: *const ::c_char, -+ pub dli_saddr: *mut ::c_void, -+ } -+ -+ #[cfg_attr(any(all(target_arch = "x86", -+ target_arch = "x86_64")), -+ repr(packed))] -+ pub struct epoll_event { -+ pub events: ::uint32_t, -+ pub u64: ::uint64_t, -+ } -+ -+ pub struct utsname { -+ pub sysname: [::c_char; 65], -+ pub nodename: [::c_char; 65], -+ pub release: [::c_char; 65], -+ pub version: [::c_char; 65], -+ pub machine: [::c_char; 65], -+ pub domainname: [::c_char; 65] -+ } -+ -+ pub struct lconv { -+ pub decimal_point: *mut ::c_char, -+ pub thousands_sep: *mut ::c_char, -+ pub grouping: *mut ::c_char, -+ pub int_curr_symbol: *mut ::c_char, -+ pub currency_symbol: *mut ::c_char, -+ pub mon_decimal_point: *mut ::c_char, -+ pub mon_thousands_sep: *mut ::c_char, -+ pub mon_grouping: *mut ::c_char, -+ pub positive_sign: *mut ::c_char, -+ pub negative_sign: *mut ::c_char, -+ pub int_frac_digits: ::c_char, -+ pub frac_digits: ::c_char, -+ pub p_cs_precedes: ::c_char, -+ pub p_sep_by_space: ::c_char, -+ pub n_cs_precedes: ::c_char, -+ pub n_sep_by_space: ::c_char, -+ pub p_sign_posn: ::c_char, -+ pub n_sign_posn: ::c_char, -+ pub int_p_cs_precedes: ::c_char, -+ pub int_p_sep_by_space: ::c_char, -+ pub int_n_cs_precedes: ::c_char, -+ pub int_n_sep_by_space: ::c_char, -+ pub int_p_sign_posn: ::c_char, -+ pub int_n_sign_posn: ::c_char, -+ } -+ -+ pub struct sigevent { -+ pub sigev_value: ::sigval, -+ pub sigev_signo: ::c_int, -+ pub sigev_notify: ::c_int, -+ // Actually a union. We only expose sigev_notify_thread_id because it's -+ // the most useful member -+ pub sigev_notify_thread_id: ::c_int, -+ #[cfg(target_pointer_width = "64")] -+ __unused1: [::c_int; 11], -+ #[cfg(target_pointer_width = "32")] -+ __unused1: [::c_int; 12] -+ } -+ -+ pub struct dirent { -+ pub d_ino: ::ino_t, -+ pub d_off: ::off_t, -+ pub d_reclen: ::c_ushort, -+ pub d_type: ::c_uchar, -+ pub d_name: [::c_char; 256], -+ } -+ -+ pub struct dirent64 { -+ pub d_ino: ::ino64_t, -+ pub d_off: ::off64_t, -+ pub d_reclen: ::c_ushort, -+ pub d_type: ::c_uchar, -+ pub d_name: [::c_char; 256], -+ } -+ -+ pub struct rlimit64 { -+ pub rlim_cur: rlim64_t, -+ pub rlim_max: rlim64_t, -+ } -+ -+ pub struct glob_t { -+ pub gl_pathc: ::size_t, -+ pub gl_pathv: *mut *mut c_char, -+ pub gl_offs: ::size_t, -+ pub gl_flags: ::c_int, -+ -+ __unused1: *mut ::c_void, -+ __unused2: *mut ::c_void, -+ __unused3: *mut ::c_void, -+ __unused4: *mut ::c_void, -+ __unused5: *mut ::c_void, -+ } -+ -+ pub struct ifaddrs { -+ pub ifa_next: *mut ifaddrs, -+ pub ifa_name: *mut c_char, -+ pub ifa_flags: ::c_uint, -+ pub ifa_addr: *mut ::sockaddr, -+ pub ifa_netmask: *mut ::sockaddr, -+ pub ifa_ifu: *mut ::sockaddr, // FIXME This should be a union -+ pub ifa_data: *mut ::c_void -+ } -+ -+ pub struct pthread_mutex_t { -+ #[cfg(any(target_arch = "mips", target_arch = "arm", -+ target_arch = "powerpc"))] -+ __align: [::c_long; 0], -+ #[cfg(not(any(target_arch = "mips", target_arch = "arm", -+ target_arch = "powerpc")))] -+ __align: [::c_longlong; 0], -+ size: [u8; __SIZEOF_PTHREAD_MUTEX_T], -+ } -+ -+ pub struct pthread_rwlock_t { -+ #[cfg(any(target_arch = "mips", target_arch = "arm", -+ target_arch = "powerpc"))] -+ __align: [::c_long; 0], -+ #[cfg(not(any(target_arch = "mips", target_arch = "arm", -+ target_arch = "powerpc")))] -+ __align: [::c_longlong; 0], -+ size: [u8; __SIZEOF_PTHREAD_RWLOCK_T], -+ } -+ -+ pub struct pthread_mutexattr_t { -+ #[cfg(any(target_arch = "x86_64", target_arch = "powerpc64", -+ target_arch = "mips64", target_arch = "s390x", -+ target_arch = "sparc64"))] -+ __align: [::c_int; 0], -+ #[cfg(not(any(target_arch = "x86_64", target_arch = "powerpc64", -+ target_arch = "mips64", target_arch = "s390x", -+ target_arch = "sparc64")))] -+ __align: [::c_long; 0], -+ size: [u8; __SIZEOF_PTHREAD_MUTEXATTR_T], -+ } -+ -+ pub struct pthread_cond_t { -+ __align: [::c_longlong; 0], -+ size: [u8; __SIZEOF_PTHREAD_COND_T], -+ } -+ -+ pub struct pthread_condattr_t { -+ __align: [::c_int; 0], -+ size: [u8; __SIZEOF_PTHREAD_CONDATTR_T], -+ } -+ -+ pub struct passwd { -+ pub pw_name: *mut ::c_char, -+ pub pw_passwd: *mut ::c_char, -+ pub pw_uid: ::uid_t, -+ pub pw_gid: ::gid_t, -+ pub pw_gecos: *mut ::c_char, -+ pub pw_dir: *mut ::c_char, -+ pub pw_shell: *mut ::c_char, -+ } -+ -+ pub struct spwd { -+ pub sp_namp: *mut ::c_char, -+ pub sp_pwdp: *mut ::c_char, -+ pub sp_lstchg: ::c_long, -+ pub sp_min: ::c_long, -+ pub sp_max: ::c_long, -+ pub sp_warn: ::c_long, -+ pub sp_inact: ::c_long, -+ pub sp_expire: ::c_long, -+ pub sp_flag: ::c_ulong, -+ } -+ -+ pub struct statvfs { -+ pub f_bsize: ::c_ulong, -+ pub f_frsize: ::c_ulong, -+ pub f_blocks: ::fsblkcnt_t, -+ pub f_bfree: ::fsblkcnt_t, -+ pub f_bavail: ::fsblkcnt_t, -+ pub f_files: ::fsfilcnt_t, -+ pub f_ffree: ::fsfilcnt_t, -+ pub f_favail: ::fsfilcnt_t, -+ #[cfg(target_endian = "little")] -+ pub f_fsid: ::c_ulong, -+ #[cfg(target_pointer_width = "32")] -+ __f_unused: ::c_int, -+ #[cfg(target_endian = "big")] -+ pub f_fsid: ::c_ulong, -+ pub f_flag: ::c_ulong, -+ pub f_namemax: ::c_ulong, -+ __f_spare: [::c_int; 6], -+ } -+ -+ pub struct dqblk { -+ pub dqb_bhardlimit: ::uint32_t, -+ pub dqb_bsoftlimit: ::uint32_t, -+ pub dqb_curblocks: ::uint32_t, -+ pub dqb_ihardlimit: ::uint32_t, -+ pub dqb_isoftlimit: ::uint32_t, -+ pub dqb_curinodes: ::uint32_t, -+ pub dqb_btime: ::time_t, -+ pub dqb_itime: ::time_t, -+ } -+ -+ pub struct signalfd_siginfo { -+ pub ssi_signo: ::uint32_t, -+ pub ssi_errno: ::int32_t, -+ pub ssi_code: ::int32_t, -+ pub ssi_pid: ::uint32_t, -+ pub ssi_uid: ::uint32_t, -+ pub ssi_fd: ::int32_t, -+ pub ssi_tid: ::uint32_t, -+ pub ssi_band: ::uint32_t, -+ pub ssi_overrun: ::uint32_t, -+ pub ssi_trapno: ::uint32_t, -+ pub ssi_status: ::int32_t, -+ pub ssi_int: ::int32_t, -+ pub ssi_ptr: ::uint64_t, -+ pub ssi_utime: ::uint64_t, -+ pub ssi_stime: ::uint64_t, -+ pub ssi_addr: ::uint64_t, -+ _pad: [::uint8_t; 48], -+ } -+ -+ pub struct fsid_t { -+ __val: [::c_int; 2], -+ } -+ -+ pub struct mq_attr { -+ pub mq_flags: ::c_long, -+ pub mq_maxmsg: ::c_long, -+ pub mq_msgsize: ::c_long, -+ pub mq_curmsgs: ::c_long, -+ pad: [::c_long; 4] -+ } -+ -+ pub struct cpu_set_t { -+ #[cfg(target_pointer_width = "32")] -+ bits: [u32; 32], -+ #[cfg(target_pointer_width = "64")] -+ bits: [u64; 16], -+ } -+ -+ pub struct if_nameindex { -+ pub if_index: ::c_uint, -+ pub if_name: *mut ::c_char, -+ } -+ -+ // System V IPC -+ pub struct msginfo { -+ pub msgpool: ::c_int, -+ pub msgmap: ::c_int, -+ pub msgmax: ::c_int, -+ pub msgmnb: ::c_int, -+ pub msgmni: ::c_int, -+ pub msgssz: ::c_int, -+ pub msgtql: ::c_int, -+ pub msgseg: ::c_ushort, -+ } -+} -+ -+// intentionally not public, only used for fd_set -+cfg_if! { -+ if #[cfg(target_pointer_width = "32")] { -+ const ULONG_SIZE: usize = 32; -+ } else if #[cfg(target_pointer_width = "64")] { -+ const ULONG_SIZE: usize = 64; -+ } else { -+ // Unknown target_pointer_width -+ } -+} -+ -+pub const EXIT_FAILURE: ::c_int = 1; -+pub const EXIT_SUCCESS: ::c_int = 0; -+pub const RAND_MAX: ::c_int = 2147483647; -+pub const EOF: ::c_int = -1; -+pub const SEEK_SET: ::c_int = 0; -+pub const SEEK_CUR: ::c_int = 1; -+pub const SEEK_END: ::c_int = 2; -+pub const _IOFBF: ::c_int = 0; -+pub const _IONBF: ::c_int = 2; -+pub const _IOLBF: ::c_int = 1; -+ -+pub const F_DUPFD: ::c_int = 0; -+pub const F_GETFD: ::c_int = 1; -+pub const F_SETFD: ::c_int = 2; -+pub const F_GETFL: ::c_int = 3; -+pub const F_SETFL: ::c_int = 4; -+ -+// Linux-specific fcntls -+pub const F_SETLEASE: ::c_int = 1024; -+pub const F_GETLEASE: ::c_int = 1025; -+pub const F_NOTIFY: ::c_int = 1026; -+pub const F_DUPFD_CLOEXEC: ::c_int = 1030; -+ -+// TODO(#235): Include file sealing fcntls once we have a way to verify them. -+ -+pub const SIGTRAP: ::c_int = 5; -+ -+pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0; -+pub const PTHREAD_CREATE_DETACHED: ::c_int = 1; -+ -+pub const CLOCK_REALTIME: clockid_t = 0; -+pub const CLOCK_MONOTONIC: clockid_t = 1; -+pub const CLOCK_PROCESS_CPUTIME_ID: clockid_t = 2; -+pub const CLOCK_THREAD_CPUTIME_ID: clockid_t = 3; -+// TODO(#247) Someday our Travis shall have glibc 2.21 (released in Sep -+// 2014.) See also musl/mod.rs -+// pub const CLOCK_SGI_CYCLE: clockid_t = 10; -+// pub const CLOCK_TAI: clockid_t = 11; -+pub const TIMER_ABSTIME: ::c_int = 1; -+ -+pub const RLIMIT_CPU: ::c_int = 0; -+pub const RLIMIT_FSIZE: ::c_int = 1; -+pub const RLIMIT_DATA: ::c_int = 2; -+pub const RLIMIT_STACK: ::c_int = 3; -+pub const RLIMIT_CORE: ::c_int = 4; -+pub const RLIMIT_LOCKS: ::c_int = 10; -+pub const RLIMIT_SIGPENDING: ::c_int = 11; -+pub const RLIMIT_MSGQUEUE: ::c_int = 12; -+pub const RLIMIT_NICE: ::c_int = 13; -+pub const RLIMIT_RTPRIO: ::c_int = 14; -+ -+pub const RUSAGE_SELF: ::c_int = 0; -+ -+pub const O_RDONLY: ::c_int = 0; -+pub const O_WRONLY: ::c_int = 1; -+pub const O_RDWR: ::c_int = 2; -+ -+pub const SOCK_CLOEXEC: ::c_int = O_CLOEXEC; -+ -+pub const S_IFIFO: ::mode_t = 4096; -+pub const S_IFCHR: ::mode_t = 8192; -+pub const S_IFBLK: ::mode_t = 24576; -+pub const S_IFDIR: ::mode_t = 16384; -+pub const S_IFREG: ::mode_t = 32768; -+pub const S_IFLNK: ::mode_t = 40960; -+pub const S_IFSOCK: ::mode_t = 49152; -+pub const S_IFMT: ::mode_t = 61440; -+pub const S_IRWXU: ::mode_t = 448; -+pub const S_IXUSR: ::mode_t = 64; -+pub const S_IWUSR: ::mode_t = 128; -+pub const S_IRUSR: ::mode_t = 256; -+pub const S_IRWXG: ::mode_t = 56; -+pub const S_IXGRP: ::mode_t = 8; -+pub const S_IWGRP: ::mode_t = 16; -+pub const S_IRGRP: ::mode_t = 32; -+pub const S_IRWXO: ::mode_t = 7; -+pub const S_IXOTH: ::mode_t = 1; -+pub const S_IWOTH: ::mode_t = 2; -+pub const S_IROTH: ::mode_t = 4; -+pub const F_OK: ::c_int = 0; -+pub const R_OK: ::c_int = 4; -+pub const W_OK: ::c_int = 2; -+pub const X_OK: ::c_int = 1; -+pub const STDIN_FILENO: ::c_int = 0; -+pub const STDOUT_FILENO: ::c_int = 1; -+pub const STDERR_FILENO: ::c_int = 2; -+pub const SIGHUP: ::c_int = 1; -+pub const SIGINT: ::c_int = 2; -+pub const SIGQUIT: ::c_int = 3; -+pub const SIGILL: ::c_int = 4; -+pub const SIGABRT: ::c_int = 6; -+pub const SIGFPE: ::c_int = 8; -+pub const SIGKILL: ::c_int = 9; -+pub const SIGSEGV: ::c_int = 11; -+pub const SIGPIPE: ::c_int = 13; -+pub const SIGALRM: ::c_int = 14; -+pub const SIGTERM: ::c_int = 15; -+ -+pub const PROT_NONE: ::c_int = 0; -+pub const PROT_READ: ::c_int = 1; -+pub const PROT_WRITE: ::c_int = 2; -+pub const PROT_EXEC: ::c_int = 4; -+ -+pub const LC_CTYPE: ::c_int = 0; -+pub const LC_NUMERIC: ::c_int = 1; -+pub const LC_MONETARY: ::c_int = 2; -+pub const LC_TIME: ::c_int = 3; -+pub const LC_COLLATE: ::c_int = 4; -+pub const LC_MESSAGES: ::c_int = 5; -+pub const LC_ALL: ::c_int = 6; -+pub const LC_CTYPE_MASK: ::c_int = (1 << LC_CTYPE); -+pub const LC_NUMERIC_MASK: ::c_int = (1 << LC_NUMERIC); -+pub const LC_TIME_MASK: ::c_int = (1 << LC_TIME); -+pub const LC_COLLATE_MASK: ::c_int = (1 << LC_COLLATE); -+pub const LC_MONETARY_MASK: ::c_int = (1 << LC_MONETARY); -+pub const LC_MESSAGES_MASK: ::c_int = (1 << LC_MESSAGES); -+// LC_ALL_MASK defined per platform -+ -+pub const MAP_FILE: ::c_int = 0x0000; -+pub const MAP_SHARED: ::c_int = 0x0001; -+pub const MAP_PRIVATE: ::c_int = 0x0002; -+pub const MAP_FIXED: ::c_int = 0x0010; -+ -+pub const MAP_FAILED: *mut ::c_void = !0 as *mut ::c_void; -+ -+// MS_ flags for msync(2) -+pub const MS_ASYNC: ::c_int = 0x0001; -+pub const MS_INVALIDATE: ::c_int = 0x0002; -+pub const MS_SYNC: ::c_int = 0x0004; -+ -+// MS_ flags for mount(2) -+pub const MS_RDONLY: ::c_ulong = 0x01; -+pub const MS_NOSUID: ::c_ulong = 0x02; -+pub const MS_NODEV: ::c_ulong = 0x04; -+pub const MS_NOEXEC: ::c_ulong = 0x08; -+pub const MS_SYNCHRONOUS: ::c_ulong = 0x10; -+pub const MS_REMOUNT: ::c_ulong = 0x20; -+pub const MS_MANDLOCK: ::c_ulong = 0x40; -+pub const MS_NOATIME: ::c_ulong = 0x0400; -+pub const MS_NODIRATIME: ::c_ulong = 0x0800; -+pub const MS_BIND: ::c_ulong = 0x1000; -+pub const MS_NOUSER: ::c_ulong = 0x80000000; -+pub const MS_MGC_VAL: ::c_ulong = 0xc0ed0000; -+pub const MS_MGC_MSK: ::c_ulong = 0xffff0000; -+pub const MS_RMT_MASK: ::c_ulong = 0x800051; -+ -+pub const EPERM: ::c_int = 1; -+pub const ENOENT: ::c_int = 2; -+pub const ESRCH: ::c_int = 3; -+pub const EINTR: ::c_int = 4; -+pub const EIO: ::c_int = 5; -+pub const ENXIO: ::c_int = 6; -+pub const E2BIG: ::c_int = 7; -+pub const ENOEXEC: ::c_int = 8; -+pub const EBADF: ::c_int = 9; -+pub const ECHILD: ::c_int = 10; -+pub const EAGAIN: ::c_int = 11; -+pub const ENOMEM: ::c_int = 12; -+pub const EACCES: ::c_int = 13; -+pub const EFAULT: ::c_int = 14; -+pub const ENOTBLK: ::c_int = 15; -+pub const EBUSY: ::c_int = 16; -+pub const EEXIST: ::c_int = 17; -+pub const EXDEV: ::c_int = 18; -+pub const ENODEV: ::c_int = 19; -+pub const ENOTDIR: ::c_int = 20; -+pub const EISDIR: ::c_int = 21; -+pub const EINVAL: ::c_int = 22; -+pub const ENFILE: ::c_int = 23; -+pub const EMFILE: ::c_int = 24; -+pub const ENOTTY: ::c_int = 25; -+pub const ETXTBSY: ::c_int = 26; -+pub const EFBIG: ::c_int = 27; -+pub const ENOSPC: ::c_int = 28; -+pub const ESPIPE: ::c_int = 29; -+pub const EROFS: ::c_int = 30; -+pub const EMLINK: ::c_int = 31; -+pub const EPIPE: ::c_int = 32; -+pub const EDOM: ::c_int = 33; -+pub const ERANGE: ::c_int = 34; -+pub const EWOULDBLOCK: ::c_int = EAGAIN; -+ -+pub const SCM_RIGHTS: ::c_int = 0x01; -+pub const SCM_CREDENTIALS: ::c_int = 0x02; -+ -+pub const IPPROTO_RAW: ::c_int = 255; -+ -+pub const PROT_GROWSDOWN: ::c_int = 0x1000000; -+pub const PROT_GROWSUP: ::c_int = 0x2000000; -+ -+pub const MAP_TYPE: ::c_int = 0x000f; -+ -+pub const MADV_NORMAL: ::c_int = 0; -+pub const MADV_RANDOM: ::c_int = 1; -+pub const MADV_SEQUENTIAL: ::c_int = 2; -+pub const MADV_WILLNEED: ::c_int = 3; -+pub const MADV_DONTNEED: ::c_int = 4; -+pub const MADV_REMOVE: ::c_int = 9; -+pub const MADV_DONTFORK: ::c_int = 10; -+pub const MADV_DOFORK: ::c_int = 11; -+pub const MADV_MERGEABLE: ::c_int = 12; -+pub const MADV_UNMERGEABLE: ::c_int = 13; -+pub const MADV_HWPOISON: ::c_int = 100; -+ -+pub const IFF_UP: ::c_int = 0x1; -+pub const IFF_BROADCAST: ::c_int = 0x2; -+pub const IFF_DEBUG: ::c_int = 0x4; -+pub const IFF_LOOPBACK: ::c_int = 0x8; -+pub const IFF_POINTOPOINT: ::c_int = 0x10; -+pub const IFF_NOTRAILERS: ::c_int = 0x20; -+pub const IFF_RUNNING: ::c_int = 0x40; -+pub const IFF_NOARP: ::c_int = 0x80; -+pub const IFF_PROMISC: ::c_int = 0x100; -+pub const IFF_ALLMULTI: ::c_int = 0x200; -+pub const IFF_MASTER: ::c_int = 0x400; -+pub const IFF_SLAVE: ::c_int = 0x800; -+pub const IFF_MULTICAST: ::c_int = 0x1000; -+pub const IFF_PORTSEL: ::c_int = 0x2000; -+pub const IFF_AUTOMEDIA: ::c_int = 0x4000; -+pub const IFF_DYNAMIC: ::c_int = 0x8000; -+ -+pub const SOL_IP: ::c_int = 0; -+pub const SOL_TCP: ::c_int = 6; -+pub const SOL_IPV6: ::c_int = 41; -+pub const SOL_ICMPV6: ::c_int = 58; -+pub const SOL_RAW: ::c_int = 255; -+pub const SOL_DECNET: ::c_int = 261; -+pub const SOL_X25: ::c_int = 262; -+pub const SOL_PACKET: ::c_int = 263; -+pub const SOL_ATM: ::c_int = 264; -+pub const SOL_AAL: ::c_int = 265; -+pub const SOL_IRDA: ::c_int = 266; -+ -+pub const AF_UNSPEC: ::c_int = 0; -+pub const AF_UNIX: ::c_int = 1; -+pub const AF_LOCAL: ::c_int = 1; -+pub const AF_INET: ::c_int = 2; -+pub const AF_AX25: ::c_int = 3; -+pub const AF_IPX: ::c_int = 4; -+pub const AF_APPLETALK: ::c_int = 5; -+pub const AF_NETROM: ::c_int = 6; -+pub const AF_BRIDGE: ::c_int = 7; -+pub const AF_ATMPVC: ::c_int = 8; -+pub const AF_X25: ::c_int = 9; -+pub const AF_INET6: ::c_int = 10; -+pub const AF_ROSE: ::c_int = 11; -+pub const AF_DECnet: ::c_int = 12; -+pub const AF_NETBEUI: ::c_int = 13; -+pub const AF_SECURITY: ::c_int = 14; -+pub const AF_KEY: ::c_int = 15; -+pub const AF_NETLINK: ::c_int = 16; -+pub const AF_ROUTE: ::c_int = AF_NETLINK; -+pub const AF_PACKET: ::c_int = 17; -+pub const AF_ASH: ::c_int = 18; -+pub const AF_ECONET: ::c_int = 19; -+pub const AF_ATMSVC: ::c_int = 20; -+pub const AF_SNA: ::c_int = 22; -+pub const AF_IRDA: ::c_int = 23; -+pub const AF_PPPOX: ::c_int = 24; -+pub const AF_WANPIPE: ::c_int = 25; -+pub const AF_LLC: ::c_int = 26; -+pub const AF_CAN: ::c_int = 29; -+pub const AF_TIPC: ::c_int = 30; -+pub const AF_BLUETOOTH: ::c_int = 31; -+pub const AF_IUCV: ::c_int = 32; -+pub const AF_RXRPC: ::c_int = 33; -+pub const AF_ISDN: ::c_int = 34; -+pub const AF_PHONET: ::c_int = 35; -+pub const AF_IEEE802154: ::c_int = 36; -+pub const AF_CAIF: ::c_int = 37; -+pub const AF_ALG: ::c_int = 38; -+ -+pub const PF_UNSPEC: ::c_int = AF_UNSPEC; -+pub const PF_UNIX: ::c_int = AF_UNIX; -+pub const PF_LOCAL: ::c_int = AF_LOCAL; -+pub const PF_INET: ::c_int = AF_INET; -+pub const PF_AX25: ::c_int = AF_AX25; -+pub const PF_IPX: ::c_int = AF_IPX; -+pub const PF_APPLETALK: ::c_int = AF_APPLETALK; -+pub const PF_NETROM: ::c_int = AF_NETROM; -+pub const PF_BRIDGE: ::c_int = AF_BRIDGE; -+pub const PF_ATMPVC: ::c_int = AF_ATMPVC; -+pub const PF_X25: ::c_int = AF_X25; -+pub const PF_INET6: ::c_int = AF_INET6; -+pub const PF_ROSE: ::c_int = AF_ROSE; -+pub const PF_DECnet: ::c_int = AF_DECnet; -+pub const PF_NETBEUI: ::c_int = AF_NETBEUI; -+pub const PF_SECURITY: ::c_int = AF_SECURITY; -+pub const PF_KEY: ::c_int = AF_KEY; -+pub const PF_NETLINK: ::c_int = AF_NETLINK; -+pub const PF_ROUTE: ::c_int = AF_ROUTE; -+pub const PF_PACKET: ::c_int = AF_PACKET; -+pub const PF_ASH: ::c_int = AF_ASH; -+pub const PF_ECONET: ::c_int = AF_ECONET; -+pub const PF_ATMSVC: ::c_int = AF_ATMSVC; -+pub const PF_SNA: ::c_int = AF_SNA; -+pub const PF_IRDA: ::c_int = AF_IRDA; -+pub const PF_PPPOX: ::c_int = AF_PPPOX; -+pub const PF_WANPIPE: ::c_int = AF_WANPIPE; -+pub const PF_LLC: ::c_int = AF_LLC; -+pub const PF_CAN: ::c_int = AF_CAN; -+pub const PF_TIPC: ::c_int = AF_TIPC; -+pub const PF_BLUETOOTH: ::c_int = AF_BLUETOOTH; -+pub const PF_IUCV: ::c_int = AF_IUCV; -+pub const PF_RXRPC: ::c_int = AF_RXRPC; -+pub const PF_ISDN: ::c_int = AF_ISDN; -+pub const PF_PHONET: ::c_int = AF_PHONET; -+pub const PF_IEEE802154: ::c_int = AF_IEEE802154; -+pub const PF_CAIF: ::c_int = AF_CAIF; -+pub const PF_ALG: ::c_int = AF_ALG; -+ -+pub const SOMAXCONN: ::c_int = 128; -+ -+pub const MSG_OOB: ::c_int = 1; -+pub const MSG_PEEK: ::c_int = 2; -+pub const MSG_DONTROUTE: ::c_int = 4; -+pub const MSG_CTRUNC: ::c_int = 8; -+pub const MSG_TRUNC: ::c_int = 0x20; -+pub const MSG_DONTWAIT: ::c_int = 0x40; -+pub const MSG_EOR: ::c_int = 0x80; -+pub const MSG_WAITALL: ::c_int = 0x100; -+pub const MSG_FIN: ::c_int = 0x200; -+pub const MSG_SYN: ::c_int = 0x400; -+pub const MSG_CONFIRM: ::c_int = 0x800; -+pub const MSG_RST: ::c_int = 0x1000; -+pub const MSG_ERRQUEUE: ::c_int = 0x2000; -+pub const MSG_NOSIGNAL: ::c_int = 0x4000; -+pub const MSG_MORE: ::c_int = 0x8000; -+pub const MSG_WAITFORONE: ::c_int = 0x10000; -+pub const MSG_CMSG_CLOEXEC: ::c_int = 0x40000000; -+ -+pub const SOCK_RAW: ::c_int = 3; -+pub const IPPROTO_ICMP: ::c_int = 1; -+pub const IPPROTO_ICMPV6: ::c_int = 58; -+pub const IPPROTO_TCP: ::c_int = 6; -+pub const IPPROTO_IP: ::c_int = 0; -+pub const IPPROTO_IPV6: ::c_int = 41; -+pub const IP_MULTICAST_TTL: ::c_int = 33; -+pub const IP_MULTICAST_LOOP: ::c_int = 34; -+pub const IP_TTL: ::c_int = 2; -+pub const IP_HDRINCL: ::c_int = 3; -+pub const IP_ADD_MEMBERSHIP: ::c_int = 35; -+pub const IP_DROP_MEMBERSHIP: ::c_int = 36; -+ -+pub const TCP_NODELAY: ::c_int = 1; -+pub const TCP_MAXSEG: ::c_int = 2; -+pub const TCP_CORK: ::c_int = 3; -+pub const TCP_KEEPIDLE: ::c_int = 4; -+pub const TCP_KEEPINTVL: ::c_int = 5; -+pub const TCP_KEEPCNT: ::c_int = 6; -+pub const TCP_SYNCNT: ::c_int = 7; -+pub const TCP_LINGER2: ::c_int = 8; -+pub const TCP_DEFER_ACCEPT: ::c_int = 9; -+pub const TCP_WINDOW_CLAMP: ::c_int = 10; -+pub const TCP_INFO: ::c_int = 11; -+pub const TCP_QUICKACK: ::c_int = 12; -+pub const TCP_CONGESTION: ::c_int = 13; -+ -+pub const IPV6_MULTICAST_LOOP: ::c_int = 19; -+pub const IPV6_V6ONLY: ::c_int = 26; -+ -+pub const SO_DEBUG: ::c_int = 1; -+ -+pub const SHUT_RD: ::c_int = 0; -+pub const SHUT_WR: ::c_int = 1; -+pub const SHUT_RDWR: ::c_int = 2; -+ -+pub const LOCK_SH: ::c_int = 1; -+pub const LOCK_EX: ::c_int = 2; -+pub const LOCK_NB: ::c_int = 4; -+pub const LOCK_UN: ::c_int = 8; -+ -+pub const SS_ONSTACK: ::c_int = 1; -+pub const SS_DISABLE: ::c_int = 2; -+ -+pub const PATH_MAX: ::c_int = 4096; -+ -+pub const FD_SETSIZE: usize = 1024; -+ -+pub const EPOLLIN: ::c_int = 0x1; -+pub const EPOLLPRI: ::c_int = 0x2; -+pub const EPOLLOUT: ::c_int = 0x4; -+pub const EPOLLRDNORM: ::c_int = 0x40; -+pub const EPOLLRDBAND: ::c_int = 0x80; -+pub const EPOLLWRNORM: ::c_int = 0x100; -+pub const EPOLLWRBAND: ::c_int = 0x200; -+pub const EPOLLMSG: ::c_int = 0x400; -+pub const EPOLLERR: ::c_int = 0x8; -+pub const EPOLLHUP: ::c_int = 0x10; -+pub const EPOLLET: ::c_int = 0x80000000; -+ -+pub const EPOLL_CTL_ADD: ::c_int = 1; -+pub const EPOLL_CTL_MOD: ::c_int = 3; -+pub const EPOLL_CTL_DEL: ::c_int = 2; -+ -+pub const MNT_DETACH: ::c_int = 0x2; -+pub const MNT_EXPIRE: ::c_int = 0x4; -+ -+pub const MNT_FORCE: ::c_int = 0x1; -+ -+pub const Q_SYNC: ::c_int = 0x600; -+pub const Q_QUOTAON: ::c_int = 0x100; -+pub const Q_QUOTAOFF: ::c_int = 0x200; -+pub const Q_GETQUOTA: ::c_int = 0x300; -+pub const Q_SETQUOTA: ::c_int = 0x400; -+ -+pub const TCIOFF: ::c_int = 2; -+pub const TCION: ::c_int = 3; -+pub const TCOOFF: ::c_int = 0; -+pub const TCOON: ::c_int = 1; -+pub const TCIFLUSH: ::c_int = 0; -+pub const TCOFLUSH: ::c_int = 1; -+pub const TCIOFLUSH: ::c_int = 2; -+pub const NL0: ::c_int = 0x00000000; -+pub const NL1: ::c_int = 0x00000100; -+pub const TAB0: ::c_int = 0x00000000; -+pub const CR0: ::c_int = 0x00000000; -+pub const FF0: ::c_int = 0x00000000; -+pub const BS0: ::c_int = 0x00000000; -+pub const VT0: ::c_int = 0x00000000; -+pub const VERASE: usize = 2; -+pub const VKILL: usize = 3; -+pub const VINTR: usize = 0; -+pub const VQUIT: usize = 1; -+pub const VLNEXT: usize = 15; -+pub const IGNBRK: ::tcflag_t = 0x00000001; -+pub const BRKINT: ::tcflag_t = 0x00000002; -+pub const IGNPAR: ::tcflag_t = 0x00000004; -+pub const PARMRK: ::tcflag_t = 0x00000008; -+pub const INPCK: ::tcflag_t = 0x00000010; -+pub const ISTRIP: ::tcflag_t = 0x00000020; -+pub const INLCR: ::tcflag_t = 0x00000040; -+pub const IGNCR: ::tcflag_t = 0x00000080; -+pub const ICRNL: ::tcflag_t = 0x00000100; -+pub const IXANY: ::tcflag_t = 0x00000800; -+pub const IMAXBEL: ::tcflag_t = 0x00002000; -+pub const OPOST: ::tcflag_t = 0x1; -+pub const CS5: ::tcflag_t = 0x00000000; -+pub const CRTSCTS: ::tcflag_t = 0x80000000; -+pub const ECHO: ::tcflag_t = 0x00000008; -+ -+pub const CLONE_VM: ::c_int = 0x100; -+pub const CLONE_FS: ::c_int = 0x200; -+pub const CLONE_FILES: ::c_int = 0x400; -+pub const CLONE_SIGHAND: ::c_int = 0x800; -+pub const CLONE_PTRACE: ::c_int = 0x2000; -+pub const CLONE_VFORK: ::c_int = 0x4000; -+pub const CLONE_PARENT: ::c_int = 0x8000; -+pub const CLONE_THREAD: ::c_int = 0x10000; -+pub const CLONE_NEWNS: ::c_int = 0x20000; -+pub const CLONE_SYSVSEM: ::c_int = 0x40000; -+pub const CLONE_SETTLS: ::c_int = 0x80000; -+pub const CLONE_PARENT_SETTID: ::c_int = 0x100000; -+pub const CLONE_CHILD_CLEARTID: ::c_int = 0x200000; -+pub const CLONE_DETACHED: ::c_int = 0x400000; -+pub const CLONE_UNTRACED: ::c_int = 0x800000; -+pub const CLONE_CHILD_SETTID: ::c_int = 0x01000000; -+pub const CLONE_NEWUTS: ::c_int = 0x04000000; -+pub const CLONE_NEWIPC: ::c_int = 0x08000000; -+pub const CLONE_NEWUSER: ::c_int = 0x10000000; -+pub const CLONE_NEWPID: ::c_int = 0x20000000; -+pub const CLONE_NEWNET: ::c_int = 0x40000000; -+pub const CLONE_IO: ::c_int = 0x80000000; -+ -+pub const WNOHANG: ::c_int = 0x00000001; -+pub const WUNTRACED: ::c_int = 0x00000002; -+pub const WSTOPPED: ::c_int = WUNTRACED; -+pub const WEXITED: ::c_int = 0x00000004; -+pub const WCONTINUED: ::c_int = 0x00000008; -+pub const WNOWAIT: ::c_int = 0x01000000; -+ -+pub const __WNOTHREAD: ::c_int = 0x20000000; -+pub const __WALL: ::c_int = 0x40000000; -+pub const __WCLONE: ::c_int = 0x80000000; -+ -+pub const SPLICE_F_MOVE: ::c_uint = 0x01; -+pub const SPLICE_F_NONBLOCK: ::c_uint = 0x02; -+pub const SPLICE_F_MORE: ::c_uint = 0x04; -+pub const SPLICE_F_GIFT: ::c_uint = 0x08; -+ -+pub const RTLD_LOCAL: ::c_int = 0; -+ -+pub const POSIX_FADV_NORMAL: ::c_int = 0; -+pub const POSIX_FADV_RANDOM: ::c_int = 1; -+pub const POSIX_FADV_SEQUENTIAL: ::c_int = 2; -+pub const POSIX_FADV_WILLNEED: ::c_int = 3; -+ -+pub const AT_FDCWD: ::c_int = -100; -+pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x100; -+pub const AT_REMOVEDIR: ::c_int = 0x200; -+pub const AT_SYMLINK_FOLLOW: ::c_int = 0x400; -+ -+pub const LOG_CRON: ::c_int = 9 << 3; -+pub const LOG_AUTHPRIV: ::c_int = 10 << 3; -+pub const LOG_FTP: ::c_int = 11 << 3; -+pub const LOG_PERROR: ::c_int = 0x20; -+ -+pub const PIPE_BUF: usize = 4096; -+ -+pub const SI_LOAD_SHIFT: ::c_uint = 16; -+ -+pub const SIGEV_SIGNAL: ::c_int = 0; -+pub const SIGEV_NONE: ::c_int = 1; -+pub const SIGEV_THREAD: ::c_int = 2; -+ -+pub const P_ALL: idtype_t = 0; -+pub const P_PID: idtype_t = 1; -+pub const P_PGID: idtype_t = 2; -+ -+pub const UTIME_OMIT: c_long = 1073741822; -+pub const UTIME_NOW: c_long = 1073741823; -+ -+pub const L_tmpnam: ::c_uint = 20; -+pub const _PC_LINK_MAX: ::c_int = 0; -+pub const _PC_MAX_CANON: ::c_int = 1; -+pub const _PC_MAX_INPUT: ::c_int = 2; -+pub const _PC_NAME_MAX: ::c_int = 3; -+pub const _PC_PATH_MAX: ::c_int = 4; -+pub const _PC_PIPE_BUF: ::c_int = 5; -+pub const _PC_CHOWN_RESTRICTED: ::c_int = 6; -+pub const _PC_NO_TRUNC: ::c_int = 7; -+pub const _PC_VDISABLE: ::c_int = 8; -+ -+pub const _SC_ARG_MAX: ::c_int = 0; -+pub const _SC_CHILD_MAX: ::c_int = 1; -+pub const _SC_CLK_TCK: ::c_int = 2; -+pub const _SC_NGROUPS_MAX: ::c_int = 3; -+pub const _SC_OPEN_MAX: ::c_int = 4; -+pub const _SC_STREAM_MAX: ::c_int = 5; -+pub const _SC_TZNAME_MAX: ::c_int = 6; -+pub const _SC_JOB_CONTROL: ::c_int = 7; -+pub const _SC_SAVED_IDS: ::c_int = 8; -+pub const _SC_REALTIME_SIGNALS: ::c_int = 9; -+pub const _SC_PRIORITY_SCHEDULING: ::c_int = 10; -+pub const _SC_TIMERS: ::c_int = 11; -+pub const _SC_ASYNCHRONOUS_IO: ::c_int = 12; -+pub const _SC_PRIORITIZED_IO: ::c_int = 13; -+pub const _SC_SYNCHRONIZED_IO: ::c_int = 14; -+pub const _SC_FSYNC: ::c_int = 15; -+pub const _SC_MAPPED_FILES: ::c_int = 16; -+pub const _SC_MEMLOCK: ::c_int = 17; -+pub const _SC_MEMLOCK_RANGE: ::c_int = 18; -+pub const _SC_MEMORY_PROTECTION: ::c_int = 19; -+pub const _SC_MESSAGE_PASSING: ::c_int = 20; -+pub const _SC_SEMAPHORES: ::c_int = 21; -+pub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 22; -+pub const _SC_AIO_LISTIO_MAX: ::c_int = 23; -+pub const _SC_AIO_MAX: ::c_int = 24; -+pub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 25; -+pub const _SC_DELAYTIMER_MAX: ::c_int = 26; -+pub const _SC_MQ_OPEN_MAX: ::c_int = 27; -+pub const _SC_MQ_PRIO_MAX: ::c_int = 28; -+pub const _SC_VERSION: ::c_int = 29; -+pub const _SC_PAGESIZE: ::c_int = 30; -+pub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; -+pub const _SC_RTSIG_MAX: ::c_int = 31; -+pub const _SC_SEM_NSEMS_MAX: ::c_int = 32; -+pub const _SC_SEM_VALUE_MAX: ::c_int = 33; -+pub const _SC_SIGQUEUE_MAX: ::c_int = 34; -+pub const _SC_TIMER_MAX: ::c_int = 35; -+pub const _SC_BC_BASE_MAX: ::c_int = 36; -+pub const _SC_BC_DIM_MAX: ::c_int = 37; -+pub const _SC_BC_SCALE_MAX: ::c_int = 38; -+pub const _SC_BC_STRING_MAX: ::c_int = 39; -+pub const _SC_COLL_WEIGHTS_MAX: ::c_int = 40; -+pub const _SC_EXPR_NEST_MAX: ::c_int = 42; -+pub const _SC_LINE_MAX: ::c_int = 43; -+pub const _SC_RE_DUP_MAX: ::c_int = 44; -+pub const _SC_2_VERSION: ::c_int = 46; -+pub const _SC_2_C_BIND: ::c_int = 47; -+pub const _SC_2_C_DEV: ::c_int = 48; -+pub const _SC_2_FORT_DEV: ::c_int = 49; -+pub const _SC_2_FORT_RUN: ::c_int = 50; -+pub const _SC_2_SW_DEV: ::c_int = 51; -+pub const _SC_2_LOCALEDEF: ::c_int = 52; -+pub const _SC_IOV_MAX: ::c_int = 60; -+pub const _SC_THREADS: ::c_int = 67; -+pub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 68; -+pub const _SC_GETGR_R_SIZE_MAX: ::c_int = 69; -+pub const _SC_GETPW_R_SIZE_MAX: ::c_int = 70; -+pub const _SC_LOGIN_NAME_MAX: ::c_int = 71; -+pub const _SC_TTY_NAME_MAX: ::c_int = 72; -+pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 73; -+pub const _SC_THREAD_KEYS_MAX: ::c_int = 74; -+pub const _SC_THREAD_STACK_MIN: ::c_int = 75; -+pub const _SC_THREAD_THREADS_MAX: ::c_int = 76; -+pub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 77; -+pub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 78; -+pub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 79; -+pub const _SC_THREAD_PRIO_INHERIT: ::c_int = 80; -+pub const _SC_THREAD_PRIO_PROTECT: ::c_int = 81; -+pub const _SC_NPROCESSORS_ONLN: ::c_int = 84; -+pub const _SC_ATEXIT_MAX: ::c_int = 87; -+pub const _SC_XOPEN_VERSION: ::c_int = 89; -+pub const _SC_XOPEN_XCU_VERSION: ::c_int = 90; -+pub const _SC_XOPEN_UNIX: ::c_int = 91; -+pub const _SC_XOPEN_CRYPT: ::c_int = 92; -+pub const _SC_XOPEN_ENH_I18N: ::c_int = 93; -+pub const _SC_XOPEN_SHM: ::c_int = 94; -+pub const _SC_2_CHAR_TERM: ::c_int = 95; -+pub const _SC_2_UPE: ::c_int = 97; -+pub const _SC_XBS5_ILP32_OFF32: ::c_int = 125; -+pub const _SC_XBS5_ILP32_OFFBIG: ::c_int = 126; -+pub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = 128; -+pub const _SC_XOPEN_LEGACY: ::c_int = 129; -+pub const _SC_XOPEN_REALTIME: ::c_int = 130; -+pub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 131; -+pub const _SC_HOST_NAME_MAX: ::c_int = 180; -+ -+pub const RLIM_SAVED_MAX: ::rlim_t = RLIM_INFINITY; -+pub const RLIM_SAVED_CUR: ::rlim_t = RLIM_INFINITY; -+ -+pub const GLOB_ERR: ::c_int = 1 << 0; -+pub const GLOB_MARK: ::c_int = 1 << 1; -+pub const GLOB_NOSORT: ::c_int = 1 << 2; -+pub const GLOB_DOOFFS: ::c_int = 1 << 3; -+pub const GLOB_NOCHECK: ::c_int = 1 << 4; -+pub const GLOB_APPEND: ::c_int = 1 << 5; -+pub const GLOB_NOESCAPE: ::c_int = 1 << 6; -+ -+pub const GLOB_NOSPACE: ::c_int = 1; -+pub const GLOB_ABORTED: ::c_int = 2; -+pub const GLOB_NOMATCH: ::c_int = 3; -+ -+pub const POSIX_MADV_NORMAL: ::c_int = 0; -+pub const POSIX_MADV_RANDOM: ::c_int = 1; -+pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2; -+pub const POSIX_MADV_WILLNEED: ::c_int = 3; -+ -+pub const S_IEXEC: mode_t = 64; -+pub const S_IWRITE: mode_t = 128; -+pub const S_IREAD: mode_t = 256; -+ -+pub const F_LOCK: ::c_int = 1; -+pub const F_TEST: ::c_int = 3; -+pub const F_TLOCK: ::c_int = 2; -+pub const F_ULOCK: ::c_int = 0; -+ -+pub const ST_RDONLY: ::c_ulong = 1; -+pub const ST_NOSUID: ::c_ulong = 2; -+pub const ST_NODEV: ::c_ulong = 4; -+pub const ST_NOEXEC: ::c_ulong = 8; -+pub const ST_SYNCHRONOUS: ::c_ulong = 16; -+pub const ST_MANDLOCK: ::c_ulong = 64; -+pub const ST_WRITE: ::c_ulong = 128; -+pub const ST_APPEND: ::c_ulong = 256; -+pub const ST_IMMUTABLE: ::c_ulong = 512; -+pub const ST_NOATIME: ::c_ulong = 1024; -+pub const ST_NODIRATIME: ::c_ulong = 2048; -+ -+pub const RTLD_NEXT: *mut ::c_void = -1i64 as *mut ::c_void; -+pub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; -+pub const RTLD_NODELETE: ::c_int = 0x1000; -+pub const RTLD_NOW: ::c_int = 0x2; -+ -+pub const TCP_MD5SIG: ::c_int = 14; -+ -+pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { -+ __align: [], -+ size: [0; __SIZEOF_PTHREAD_MUTEX_T], -+}; -+pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { -+ __align: [], -+ size: [0; __SIZEOF_PTHREAD_COND_T], -+}; -+pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { -+ __align: [], -+ size: [0; __SIZEOF_PTHREAD_RWLOCK_T], -+}; -+pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; -+pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; -+pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; -+pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; -+pub const __SIZEOF_PTHREAD_COND_T: usize = 48; -+ -+pub const SCHED_OTHER: ::c_int = 0; -+pub const SCHED_FIFO: ::c_int = 1; -+pub const SCHED_RR: ::c_int = 2; -+pub const SCHED_BATCH: ::c_int = 3; -+pub const SCHED_IDLE: ::c_int = 5; -+ -+// System V IPC -+pub const IPC_PRIVATE: ::key_t = 0; -+ -+pub const IPC_CREAT: ::c_int = 0o1000; -+pub const IPC_EXCL: ::c_int = 0o2000; -+pub const IPC_NOWAIT: ::c_int = 0o4000; -+ -+pub const IPC_RMID: ::c_int = 0; -+pub const IPC_SET: ::c_int = 1; -+pub const IPC_STAT: ::c_int = 2; -+pub const IPC_INFO: ::c_int = 3; -+pub const MSG_STAT: ::c_int = 11; -+pub const MSG_INFO: ::c_int = 12; -+ -+pub const MSG_NOERROR: ::c_int = 0o10000; -+pub const MSG_EXCEPT: ::c_int = 0o20000; -+ -+pub const SHM_R: ::c_int = 0o400; -+pub const SHM_W: ::c_int = 0o200; -+ -+pub const SHM_RDONLY: ::c_int = 0o10000; -+pub const SHM_RND: ::c_int = 0o20000; -+pub const SHM_REMAP: ::c_int = 0o40000; -+ -+pub const SHM_LOCK: ::c_int = 11; -+pub const SHM_UNLOCK: ::c_int = 12; -+ -+pub const SHM_HUGETLB: ::c_int = 0o4000; -+pub const SHM_NORESERVE: ::c_int = 0o10000; -+ -+pub const EPOLLRDHUP: ::c_int = 0x2000; -+pub const EPOLLONESHOT: ::c_int = 0x40000000; -+ -+pub const QFMT_VFS_OLD: ::c_int = 1; -+pub const QFMT_VFS_V0: ::c_int = 2; -+ -+pub const EFD_SEMAPHORE: ::c_int = 0x1; -+ -+pub const LOG_NFACILITIES: ::c_int = 24; -+ -+pub const SEM_FAILED: *mut ::sem_t = 0 as *mut sem_t; -+ -+pub const RB_AUTOBOOT: ::c_int = 0x01234567u32 as i32; -+pub const RB_HALT_SYSTEM: ::c_int = 0xcdef0123u32 as i32; -+pub const RB_ENABLE_CAD: ::c_int = 0x89abcdefu32 as i32; -+pub const RB_DISABLE_CAD: ::c_int = 0x00000000u32 as i32; -+pub const RB_POWER_OFF: ::c_int = 0x4321fedcu32 as i32; -+ -+pub const AI_PASSIVE: ::c_int = 0x0001; -+pub const AI_CANONNAME: ::c_int = 0x0002; -+pub const AI_NUMERICHOST: ::c_int = 0x0004; -+pub const AI_V4MAPPED: ::c_int = 0x0008; -+pub const AI_ALL: ::c_int = 0x0010; -+pub const AI_ADDRCONFIG: ::c_int = 0x0020; -+ -+pub const AI_NUMERICSERV: ::c_int = 0x0400; -+ -+pub const EAI_BADFLAGS: ::c_int = -1; -+pub const EAI_NONAME: ::c_int = -2; -+pub const EAI_AGAIN: ::c_int = -3; -+pub const EAI_FAIL: ::c_int = -4; -+pub const EAI_FAMILY: ::c_int = -6; -+pub const EAI_SOCKTYPE: ::c_int = -7; -+pub const EAI_SERVICE: ::c_int = -8; -+pub const EAI_MEMORY: ::c_int = -10; -+pub const EAI_OVERFLOW: ::c_int = -12; -+ -+pub const NI_NUMERICHOST: ::c_int = 1; -+pub const NI_NUMERICSERV: ::c_int = 2; -+pub const NI_NOFQDN: ::c_int = 4; -+pub const NI_NAMEREQD: ::c_int = 8; -+pub const NI_DGRAM: ::c_int = 16; -+ -+pub const SYNC_FILE_RANGE_WAIT_BEFORE: ::c_uint = 1; -+pub const SYNC_FILE_RANGE_WRITE: ::c_uint = 2; -+pub const SYNC_FILE_RANGE_WAIT_AFTER: ::c_uint = 4; -+ -+pub const EAI_SYSTEM: ::c_int = -11; -+ -+pub const MREMAP_MAYMOVE: ::c_int = 1; -+pub const MREMAP_FIXED: ::c_int = 2; -+ -+pub const PR_SET_PDEATHSIG: ::c_int = 1; -+pub const PR_GET_PDEATHSIG: ::c_int = 2; -+ -+pub const PR_GET_DUMPABLE: ::c_int = 3; -+pub const PR_SET_DUMPABLE: ::c_int = 4; -+ -+pub const PR_GET_UNALIGN: ::c_int = 5; -+pub const PR_SET_UNALIGN: ::c_int = 6; -+pub const PR_UNALIGN_NOPRINT: ::c_int = 1; -+pub const PR_UNALIGN_SIGBUS: ::c_int = 2; -+ -+pub const PR_GET_KEEPCAPS: ::c_int = 7; -+pub const PR_SET_KEEPCAPS: ::c_int = 8; -+ -+pub const PR_GET_FPEMU: ::c_int = 9; -+pub const PR_SET_FPEMU: ::c_int = 10; -+pub const PR_FPEMU_NOPRINT: ::c_int = 1; -+pub const PR_FPEMU_SIGFPE: ::c_int = 2; -+ -+pub const PR_GET_FPEXC: ::c_int = 11; -+pub const PR_SET_FPEXC: ::c_int = 12; -+pub const PR_FP_EXC_SW_ENABLE: ::c_int = 0x80; -+pub const PR_FP_EXC_DIV: ::c_int = 0x010000; -+pub const PR_FP_EXC_OVF: ::c_int = 0x020000; -+pub const PR_FP_EXC_UND: ::c_int = 0x040000; -+pub const PR_FP_EXC_RES: ::c_int = 0x080000; -+pub const PR_FP_EXC_INV: ::c_int = 0x100000; -+pub const PR_FP_EXC_DISABLED: ::c_int = 0; -+pub const PR_FP_EXC_NONRECOV: ::c_int = 1; -+pub const PR_FP_EXC_ASYNC: ::c_int = 2; -+pub const PR_FP_EXC_PRECISE: ::c_int = 3; -+ -+pub const PR_GET_TIMING: ::c_int = 13; -+pub const PR_SET_TIMING: ::c_int = 14; -+pub const PR_TIMING_STATISTICAL: ::c_int = 0; -+pub const PR_TIMING_TIMESTAMP: ::c_int = 1; -+ -+pub const PR_SET_NAME: ::c_int = 15; -+pub const PR_GET_NAME: ::c_int = 16; -+ -+pub const PR_GET_ENDIAN: ::c_int = 19; -+pub const PR_SET_ENDIAN: ::c_int = 20; -+pub const PR_ENDIAN_BIG: ::c_int = 0; -+pub const PR_ENDIAN_LITTLE: ::c_int = 1; -+pub const PR_ENDIAN_PPC_LITTLE: ::c_int = 2; -+ -+pub const PR_GET_SECCOMP: ::c_int = 21; -+pub const PR_SET_SECCOMP: ::c_int = 22; -+ -+pub const PR_CAPBSET_READ: ::c_int = 23; -+pub const PR_CAPBSET_DROP: ::c_int = 24; -+ -+pub const PR_GET_TSC: ::c_int = 25; -+pub const PR_SET_TSC: ::c_int = 26; -+pub const PR_TSC_ENABLE: ::c_int = 1; -+pub const PR_TSC_SIGSEGV: ::c_int = 2; -+ -+pub const PR_GET_SECUREBITS: ::c_int = 27; -+pub const PR_SET_SECUREBITS: ::c_int = 28; -+ -+pub const PR_SET_TIMERSLACK: ::c_int = 29; -+pub const PR_GET_TIMERSLACK: ::c_int = 30; -+ -+pub const PR_TASK_PERF_EVENTS_DISABLE: ::c_int = 31; -+pub const PR_TASK_PERF_EVENTS_ENABLE: ::c_int = 32; -+ -+pub const PR_MCE_KILL: ::c_int = 33; -+pub const PR_MCE_KILL_CLEAR: ::c_int = 0; -+pub const PR_MCE_KILL_SET: ::c_int = 1; -+ -+pub const PR_MCE_KILL_LATE: ::c_int = 0; -+pub const PR_MCE_KILL_EARLY: ::c_int = 1; -+pub const PR_MCE_KILL_DEFAULT: ::c_int = 2; -+ -+pub const PR_MCE_KILL_GET: ::c_int = 34; -+ -+pub const PR_SET_MM: ::c_int = 35; -+pub const PR_SET_MM_START_CODE: ::c_int = 1; -+pub const PR_SET_MM_END_CODE: ::c_int = 2; -+pub const PR_SET_MM_START_DATA: ::c_int = 3; -+pub const PR_SET_MM_END_DATA: ::c_int = 4; -+pub const PR_SET_MM_START_STACK: ::c_int = 5; -+pub const PR_SET_MM_START_BRK: ::c_int = 6; -+pub const PR_SET_MM_BRK: ::c_int = 7; -+pub const PR_SET_MM_ARG_START: ::c_int = 8; -+pub const PR_SET_MM_ARG_END: ::c_int = 9; -+pub const PR_SET_MM_ENV_START: ::c_int = 10; -+pub const PR_SET_MM_ENV_END: ::c_int = 11; -+pub const PR_SET_MM_AUXV: ::c_int = 12; -+pub const PR_SET_MM_EXE_FILE: ::c_int = 13; -+pub const PR_SET_MM_MAP: ::c_int = 14; -+pub const PR_SET_MM_MAP_SIZE: ::c_int = 15; -+ -+pub const PR_SET_PTRACER: ::c_int = 0x59616d61; -+ -+pub const PR_SET_CHILD_SUBREAPER: ::c_int = 36; -+pub const PR_GET_CHILD_SUBREAPER: ::c_int = 37; -+ -+pub const PR_SET_NO_NEW_PRIVS: ::c_int = 38; -+pub const PR_GET_NO_NEW_PRIVS: ::c_int = 39; -+ -+pub const PR_GET_TID_ADDRESS: ::c_int = 40; -+ -+pub const PR_SET_THP_DISABLE: ::c_int = 41; -+pub const PR_GET_THP_DISABLE: ::c_int = 42; -+ -+pub const ABDAY_1: ::nl_item = 0x300; -+pub const ABDAY_2: ::nl_item = 0x301; -+pub const ABDAY_3: ::nl_item = 0x302; -+pub const ABDAY_4: ::nl_item = 0x303; -+pub const ABDAY_5: ::nl_item = 0x304; -+pub const ABDAY_6: ::nl_item = 0x305; -+pub const ABDAY_7: ::nl_item = 0x306; -+ -+pub const DAY_1: ::nl_item = 0x307; -+pub const DAY_2: ::nl_item = 0x308; -+pub const DAY_3: ::nl_item = 0x309; -+pub const DAY_4: ::nl_item = 0x30A; -+pub const DAY_5: ::nl_item = 0x30B; -+pub const DAY_6: ::nl_item = 0x30C; -+pub const DAY_7: ::nl_item = 0x30D; -+ -+pub const ABMON_1: ::nl_item = 0x30E; -+pub const ABMON_2: ::nl_item = 0x30F; -+pub const ABMON_3: ::nl_item = 0x310; -+pub const ABMON_4: ::nl_item = 0x311; -+pub const ABMON_5: ::nl_item = 0x312; -+pub const ABMON_6: ::nl_item = 0x313; -+pub const ABMON_7: ::nl_item = 0x314; -+pub const ABMON_8: ::nl_item = 0x315; -+pub const ABMON_9: ::nl_item = 0x316; -+pub const ABMON_10: ::nl_item = 0x317; -+pub const ABMON_11: ::nl_item = 0x318; -+pub const ABMON_12: ::nl_item = 0x319; -+ -+pub const MON_1: ::nl_item = 0x31A; -+pub const MON_2: ::nl_item = 0x31B; -+pub const MON_3: ::nl_item = 0x31C; -+pub const MON_4: ::nl_item = 0x31D; -+pub const MON_5: ::nl_item = 0x31E; -+pub const MON_6: ::nl_item = 0x31F; -+pub const MON_7: ::nl_item = 0x320; -+pub const MON_8: ::nl_item = 0x321; -+pub const MON_9: ::nl_item = 0x322; -+pub const MON_10: ::nl_item = 0x323; -+pub const MON_11: ::nl_item = 0x324; -+pub const MON_12: ::nl_item = 0x325; -+ -+pub const AM_STR: ::nl_item = 0x326; -+pub const PM_STR: ::nl_item = 0x327; -+ -+pub const D_T_FMT: ::nl_item = 0x328; -+pub const D_FMT: ::nl_item = 0x329; -+pub const T_FMT: ::nl_item = 0x32A; -+pub const T_FMT_AMPM: ::nl_item = 0x32B; -+ -+pub const ERA: ::nl_item = 0x32C; -+pub const ERA_D_FMT: ::nl_item = 0x32E; -+pub const ALT_DIGITS: ::nl_item = 0x32F; -+pub const ERA_D_T_FMT: ::nl_item = 0x330; -+pub const ERA_T_FMT: ::nl_item = 0x331; -+ -+pub const CODESET: ::nl_item = 10; -+ -+pub const CRNCYSTR: ::nl_item = 0x215; -+ -+pub const RADIXCHAR: ::nl_item = 0x100; -+pub const THOUSEP: ::nl_item = 0x101; -+ -+pub const NOEXPR: ::nl_item = 0x501; -+pub const YESSTR: ::nl_item = 0x502; -+pub const NOSTR: ::nl_item = 0x503; -+ -+pub const FILENAME_MAX: ::c_uint = 4095; -+ -+pub const AF_MAX: ::c_int = 39; -+ -+f! { -+ pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () { -+ let fd = fd as usize; -+ let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; -+ (*set).fds_bits[fd / size] &= !(1 << (fd % size)); -+ return -+ } -+ -+ pub fn FD_ISSET(fd: ::c_int, set: *mut fd_set) -> bool { -+ let fd = fd as usize; -+ let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; -+ return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0 -+ } -+ -+ pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () { -+ let fd = fd as usize; -+ let size = mem::size_of_val(&(*set).fds_bits[0]) * 8; -+ (*set).fds_bits[fd / size] |= 1 << (fd % size); -+ return -+ } -+ -+ pub fn FD_ZERO(set: *mut fd_set) -> () { -+ for slot in (*set).fds_bits.iter_mut() { -+ *slot = 0; -+ } -+ } -+ -+ pub fn WIFSTOPPED(status: ::c_int) -> bool { -+ (status & 0xff) == 0x7f -+ } -+ -+ pub fn WSTOPSIG(status: ::c_int) -> ::c_int { -+ (status >> 8) & 0xff -+ } -+ -+ pub fn WIFCONTINUED(status: ::c_int) -> bool { -+ status == 0xffff -+ } -+ -+ pub fn WIFSIGNALED(status: ::c_int) -> bool { -+ ((status & 0x7f) + 1) as i8 >= 2 -+ } -+ -+ pub fn WTERMSIG(status: ::c_int) -> ::c_int { -+ status & 0x7f -+ } -+ -+ pub fn WIFEXITED(status: ::c_int) -> bool { -+ (status & 0x7f) == 0 -+ } -+ -+ pub fn WEXITSTATUS(status: ::c_int) -> ::c_int { -+ (status >> 8) & 0xff -+ } -+ -+ pub fn WCOREDUMP(status: ::c_int) -> bool { -+ (status & 0x80) != 0 -+ } -+ -+ pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () { -+ for slot in cpuset.bits.iter_mut() { -+ *slot = 0; -+ } -+ } -+ -+ pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () { -+ let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc -+ let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); -+ cpuset.bits[idx] |= 1 << offset; -+ () -+ } -+ -+ pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () { -+ let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc -+ let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); -+ cpuset.bits[idx] &= !(1 << offset); -+ () -+ } -+ -+ pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool { -+ let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); -+ let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits); -+ 0 != (cpuset.bits[idx] & (1 << offset)) -+ } -+ -+ pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool { -+ set1.bits == set2.bits -+ } -+} -+ -+extern { -+ pub fn getpwnam_r(name: *const ::c_char, -+ pwd: *mut passwd, -+ buf: *mut ::c_char, -+ buflen: ::size_t, -+ result: *mut *mut passwd) -> ::c_int; -+ pub fn getpwuid_r(uid: ::uid_t, -+ pwd: *mut passwd, -+ buf: *mut ::c_char, -+ buflen: ::size_t, -+ result: *mut *mut passwd) -> ::c_int; -+ pub fn fdatasync(fd: ::c_int) -> ::c_int; -+ pub fn mincore(addr: *mut ::c_void, len: ::size_t, -+ vec: *mut ::c_uchar) -> ::c_int; -+ pub fn clock_getres(clk_id: clockid_t, tp: *mut ::timespec) -> ::c_int; -+ pub fn clock_gettime(clk_id: clockid_t, tp: *mut ::timespec) -> ::c_int; -+ pub fn clock_nanosleep(clk_id: clockid_t, -+ flags: ::c_int, -+ rqtp: *const ::timespec, -+ rmtp: *mut ::timespec) -> ::c_int; -+ pub fn clock_settime(clk_id: clockid_t, tp: *const ::timespec) -> ::c_int; -+ pub fn prctl(option: ::c_int, ...) -> ::c_int; -+ pub fn pthread_getattr_np(native: ::pthread_t, -+ attr: *mut ::pthread_attr_t) -> ::c_int; -+ pub fn pthread_attr_getguardsize(attr: *const ::pthread_attr_t, -+ guardsize: *mut ::size_t) -> ::c_int; -+ pub fn pthread_attr_getstack(attr: *const ::pthread_attr_t, -+ stackaddr: *mut *mut ::c_void, -+ stacksize: *mut ::size_t) -> ::c_int; -+ pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; -+ pub fn setgroups(ngroups: ::size_t, -+ ptr: *const ::gid_t) -> ::c_int; -+ pub fn initgroups(user: *const ::c_char, group: ::gid_t) -> ::c_int; -+ pub fn sched_setscheduler(pid: ::pid_t, -+ policy: ::c_int, -+ param: *const sched_param) -> ::c_int; -+ pub fn sched_getscheduler(pid: ::pid_t) -> ::c_int; -+ pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int; -+ pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; -+ pub fn epoll_create(size: ::c_int) -> ::c_int; -+ pub fn epoll_create1(flags: ::c_int) -> ::c_int; -+ pub fn epoll_ctl(epfd: ::c_int, -+ op: ::c_int, -+ fd: ::c_int, -+ event: *mut epoll_event) -> ::c_int; -+ pub fn epoll_wait(epfd: ::c_int, -+ events: *mut epoll_event, -+ maxevents: ::c_int, -+ timeout: ::c_int) -> ::c_int; -+ pub fn pipe2(fds: *mut ::c_int, flags: ::c_int) -> ::c_int; -+ pub fn mount(src: *const ::c_char, -+ target: *const ::c_char, -+ fstype: *const ::c_char, -+ flags: ::c_ulong, -+ data: *const ::c_void) -> ::c_int; -+ pub fn umount(target: *const ::c_char) -> ::c_int; -+ pub fn umount2(target: *const ::c_char, flags: ::c_int) -> ::c_int; -+ pub fn clone(cb: extern fn(*mut ::c_void) -> ::c_int, -+ child_stack: *mut ::c_void, -+ flags: ::c_int, -+ arg: *mut ::c_void, ...) -> ::c_int; -+ pub fn statfs(path: *const ::c_char, buf: *mut statfs) -> ::c_int; -+ pub fn fstatfs(fd: ::c_int, buf: *mut statfs) -> ::c_int; -+ pub fn memrchr(cx: *const ::c_void, -+ c: ::c_int, -+ n: ::size_t) -> *mut ::c_void; -+ pub fn syscall(num: ::c_long, ...) -> ::c_long; -+ pub fn sendfile(out_fd: ::c_int, -+ in_fd: ::c_int, -+ offset: *mut off_t, -+ count: ::size_t) -> ::ssize_t; -+ pub fn splice(fd_in: ::c_int, -+ off_in: *mut ::loff_t, -+ fd_out: ::c_int, -+ off_out: *mut ::loff_t, -+ len: ::size_t, -+ flags: ::c_uint) -> ::ssize_t; -+ pub fn tee(fd_in: ::c_int, -+ fd_out: ::c_int, -+ len: ::size_t, -+ flags: ::c_uint) -> ::ssize_t; -+ pub fn vmsplice(fd: ::c_int, -+ iov: *const ::iovec, -+ nr_segs: ::size_t, -+ flags: ::c_uint) -> ::ssize_t; -+ -+ pub fn posix_fadvise(fd: ::c_int, offset: ::off_t, len: ::off_t, -+ advise: ::c_int) -> ::c_int; -+ pub fn futimens(fd: ::c_int, times: *const ::timespec) -> ::c_int; -+ pub fn utimensat(dirfd: ::c_int, path: *const ::c_char, -+ times: *const ::timespec, flag: ::c_int) -> ::c_int; -+ pub fn duplocale(base: ::locale_t) -> ::locale_t; -+ pub fn freelocale(loc: ::locale_t); -+ pub fn newlocale(mask: ::c_int, -+ locale: *const ::c_char, -+ base: ::locale_t) -> ::locale_t; -+ pub fn uselocale(loc: ::locale_t) -> ::locale_t; -+ pub fn creat64(path: *const c_char, mode: mode_t) -> ::c_int; -+ pub fn fstat64(fildes: ::c_int, buf: *mut stat64) -> ::c_int; -+ pub fn ftruncate64(fd: ::c_int, length: off64_t) -> ::c_int; -+ pub fn getrlimit64(resource: ::c_int, rlim: *mut rlimit64) -> ::c_int; -+ pub fn lseek64(fd: ::c_int, offset: off64_t, whence: ::c_int) -> off64_t; -+ pub fn lstat64(path: *const c_char, buf: *mut stat64) -> ::c_int; -+ pub fn mmap64(addr: *mut ::c_void, -+ len: ::size_t, -+ prot: ::c_int, -+ flags: ::c_int, -+ fd: ::c_int, -+ offset: off64_t) -+ -> *mut ::c_void; -+ pub fn open64(path: *const c_char, oflag: ::c_int, ...) -> ::c_int; -+ pub fn openat64(fd: ::c_int, -+ path: *const c_char, -+ oflag: ::c_int, ...) -> ::c_int; -+ pub fn pread64(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, -+ offset: off64_t) -> ::ssize_t; -+ pub fn pwrite64(fd: ::c_int, buf: *const ::c_void, count: ::size_t, -+ offset: off64_t) -> ::ssize_t; -+ pub fn readdir64(dirp: *mut ::DIR) -> *mut ::dirent64; -+ pub fn readdir64_r(dirp: *mut ::DIR, entry: *mut ::dirent64, -+ result: *mut *mut ::dirent64) -> ::c_int; -+ pub fn setrlimit64(resource: ::c_int, rlim: *const rlimit64) -> ::c_int; -+ pub fn stat64(path: *const c_char, buf: *mut stat64) -> ::c_int; -+ pub fn truncate64(path: *const c_char, length: off64_t) -> ::c_int; -+ pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int; -+ -+ pub fn fdopendir(fd: ::c_int) -> *mut ::DIR; -+ -+ pub fn mknodat(dirfd: ::c_int, pathname: *const ::c_char, -+ mode: ::mode_t, dev: dev_t) -> ::c_int; -+ pub fn ppoll(fds: *mut ::pollfd, -+ nfds: nfds_t, -+ timeout: *const ::timespec, -+ sigmask: *const sigset_t) -> ::c_int; -+ pub fn pthread_condattr_getclock(attr: *const pthread_condattr_t, -+ clock_id: *mut clockid_t) -> ::c_int; -+ pub fn pthread_condattr_setclock(attr: *mut pthread_condattr_t, -+ clock_id: clockid_t) -> ::c_int; -+ pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, -+ pshared: ::c_int) -> ::c_int; -+ pub fn pthread_condattr_getpshared(attr: *const pthread_condattr_t, -+ pshared: *mut ::c_int) -> ::c_int; -+ pub fn sched_getaffinity(pid: ::pid_t, -+ cpusetsize: ::size_t, -+ cpuset: *mut cpu_set_t) -> ::c_int; -+ pub fn sched_setaffinity(pid: ::pid_t, -+ cpusetsize: ::size_t, -+ cpuset: *const cpu_set_t) -> ::c_int; -+ pub fn unshare(flags: ::c_int) -> ::c_int; -+ pub fn sem_timedwait(sem: *mut sem_t, -+ abstime: *const ::timespec) -> ::c_int; -+ pub fn accept4(fd: ::c_int, addr: *mut ::sockaddr, len: *mut ::socklen_t, -+ flg: ::c_int) -> ::c_int; -+ pub fn pthread_mutex_timedlock(lock: *mut pthread_mutex_t, -+ abstime: *const ::timespec) -> ::c_int; -+ pub fn pthread_mutexattr_setpshared(attr: *mut pthread_mutexattr_t, -+ pshared: ::c_int) -> ::c_int; -+ pub fn pthread_mutexattr_getpshared(attr: *const pthread_mutexattr_t, -+ pshared: *mut ::c_int) -> ::c_int; -+ pub fn ptsname_r(fd: ::c_int, -+ buf: *mut ::c_char, -+ buflen: ::size_t) -> ::c_int; -+ pub fn clearenv() -> ::c_int; -+ pub fn waitid(idtype: idtype_t, id: id_t, infop: *mut ::siginfo_t, -+ options: ::c_int) -> ::c_int; -+ -+ pub fn lutimes(file: *const ::c_char, times: *const ::timeval) -> ::c_int; -+ -+ pub fn setpwent(); -+ pub fn getpwent() -> *mut passwd; -+ pub fn setspent(); -+ pub fn endspent(); -+ pub fn getspent() -> *mut spwd; -+ pub fn getspnam(__name: *const ::c_char) -> *mut spwd; -+ -+ pub fn shm_open(name: *const c_char, oflag: ::c_int, -+ mode: mode_t) -> ::c_int; -+ -+ // System V IPC -+ pub fn shmget(key: ::key_t, size: ::size_t, shmflg: ::c_int) -> ::c_int; -+ pub fn shmat(shmid: ::c_int, -+ shmaddr: *const ::c_void, -+ shmflg: ::c_int) -> *mut ::c_void; -+ pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int; -+ pub fn shmctl(shmid: ::c_int, -+ cmd: ::c_int, -+ buf: *mut ::shmid_ds) -> ::c_int; -+ pub fn ftok(pathname: *const ::c_char, proj_id: ::c_int) -> ::key_t; -+ pub fn msgctl(msqid: ::c_int, cmd: ::c_int, buf: *mut msqid_ds) -> ::c_int; -+ pub fn msgget(key: ::key_t, msgflg: ::c_int) -> ::c_int; -+ pub fn msgrcv(msqid: ::c_int, msgp: *mut ::c_void, msgsz: ::size_t, -+ msgtyp: ::c_long, msgflg: ::c_int) -> ::ssize_t; -+ pub fn msgsnd(msqid: ::c_int, msgp: *const ::c_void, msgsz: ::size_t, -+ msgflg: ::c_int) -> ::c_int; -+ -+ pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -+ -> ::c_int; -+ pub fn __errno_location() -> *mut ::c_int; -+ -+ pub fn fopen64(filename: *const c_char, -+ mode: *const c_char) -> *mut ::FILE; -+ pub fn freopen64(filename: *const c_char, mode: *const c_char, -+ file: *mut ::FILE) -> *mut ::FILE; -+ pub fn tmpfile64() -> *mut ::FILE; -+ pub fn fgetpos64(stream: *mut ::FILE, ptr: *mut fpos64_t) -> ::c_int; -+ pub fn fsetpos64(stream: *mut ::FILE, ptr: *const fpos64_t) -> ::c_int; -+ pub fn fseeko64(stream: *mut ::FILE, -+ offset: ::off64_t, -+ whence: ::c_int) -> ::c_int; -+ pub fn ftello64(stream: *mut ::FILE) -> ::off64_t; -+ pub fn readahead(fd: ::c_int, offset: ::off64_t, -+ count: ::size_t) -> ::ssize_t; -+ pub fn getxattr(path: *const c_char, name: *const c_char, -+ value: *mut ::c_void, size: ::size_t) -> ::ssize_t; -+ pub fn lgetxattr(path: *const c_char, name: *const c_char, -+ value: *mut ::c_void, size: ::size_t) -> ::ssize_t; -+ pub fn fgetxattr(filedes: ::c_int, name: *const c_char, -+ value: *mut ::c_void, size: ::size_t) -> ::ssize_t; -+ pub fn setxattr(path: *const c_char, name: *const c_char, -+ value: *const ::c_void, size: ::size_t, -+ flags: ::c_int) -> ::c_int; -+ pub fn lsetxattr(path: *const c_char, name: *const c_char, -+ value: *const ::c_void, size: ::size_t, -+ flags: ::c_int) -> ::c_int; -+ pub fn fsetxattr(filedes: ::c_int, name: *const c_char, -+ value: *const ::c_void, size: ::size_t, -+ flags: ::c_int) -> ::c_int; -+ pub fn listxattr(path: *const c_char, list: *mut c_char, -+ size: ::size_t) -> ::ssize_t; -+ pub fn llistxattr(path: *const c_char, list: *mut c_char, -+ size: ::size_t) -> ::ssize_t; -+ pub fn flistxattr(filedes: ::c_int, list: *mut c_char, -+ size: ::size_t) -> ::ssize_t; -+ pub fn removexattr(path: *const c_char, name: *const c_char) -> ::c_int; -+ pub fn lremovexattr(path: *const c_char, name: *const c_char) -> ::c_int; -+ pub fn fremovexattr(filedes: ::c_int, name: *const c_char) -> ::c_int; -+ pub fn signalfd(fd: ::c_int, -+ mask: *const ::sigset_t, -+ flags: ::c_int) -> ::c_int; -+ pub fn quotactl(cmd: ::c_int, -+ special: *const ::c_char, -+ id: ::c_int, -+ data: *mut ::c_char) -> ::c_int; -+ pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t; -+ pub fn mq_close(mqd: ::mqd_t) -> ::c_int; -+ pub fn mq_unlink(name: *const ::c_char) -> ::c_int; -+ pub fn mq_receive(mqd: ::mqd_t, -+ msg_ptr: *mut ::c_char, -+ msg_len: ::size_t, -+ msq_prio: *mut ::c_uint) -> ::ssize_t; -+ pub fn mq_send(mqd: ::mqd_t, -+ msg_ptr: *const ::c_char, -+ msg_len: ::size_t, -+ msq_prio: ::c_uint) -> ::c_int; -+ pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int; -+ pub fn mq_setattr(mqd: ::mqd_t, -+ newattr: *const ::mq_attr, -+ oldattr: *mut ::mq_attr) -> ::c_int; -+ pub fn epoll_pwait(epfd: ::c_int, -+ events: *mut ::epoll_event, -+ maxevents: ::c_int, -+ timeout: ::c_int, -+ sigmask: *const ::sigset_t) -> ::c_int; -+ pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; -+ pub fn sigtimedwait(set: *const sigset_t, -+ info: *mut siginfo_t, -+ timeout: *const ::timespec) -> ::c_int; -+ pub fn sigwaitinfo(set: *const sigset_t, -+ info: *mut siginfo_t) -> ::c_int; -+ pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char; -+ pub fn prlimit(pid: ::pid_t, resource: ::c_int, new_limit: *const ::rlimit, -+ old_limit: *mut ::rlimit) -> ::c_int; -+ pub fn prlimit64(pid: ::pid_t, -+ resource: ::c_int, -+ new_limit: *const ::rlimit64, -+ old_limit: *mut ::rlimit64) -> ::c_int; -+ pub fn reboot(how_to: ::c_int) -> ::c_int; -+ pub fn setfsgid(gid: ::gid_t) -> ::c_int; -+ pub fn setfsuid(uid: ::uid_t) -> ::c_int; -+ pub fn setresgid(rgid: ::gid_t, egid: ::gid_t, sgid: ::gid_t) -> ::c_int; -+ pub fn setresuid(ruid: ::uid_t, euid: ::uid_t, suid: ::uid_t) -> ::c_int; -+ -+ // Not available now on Android -+ pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, -+ mode: ::mode_t) -> ::c_int; -+ pub fn if_nameindex() -> *mut if_nameindex; -+ pub fn if_freenameindex(ptr: *mut if_nameindex); -+ pub fn sync_file_range(fd: ::c_int, offset: ::off64_t, -+ nbytes: ::off64_t, flags: ::c_uint) -> ::c_int; -+ pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int; -+ pub fn freeifaddrs(ifa: *mut ::ifaddrs); -+ -+ pub fn mremap(addr: *mut ::c_void, -+ len: ::size_t, -+ new_len: ::size_t, -+ flags: ::c_int, -+ ...) -> *mut ::c_void; -+ -+ pub fn glob(pattern: *const c_char, -+ flags: ::c_int, -+ errfunc: Option<extern fn(epath: *const c_char, -+ errno: ::c_int) -> ::c_int>, -+ pglob: *mut ::glob_t) -> ::c_int; -+ pub fn globfree(pglob: *mut ::glob_t); -+ -+ pub fn shm_unlink(name: *const ::c_char) -> ::c_int; -+ -+ pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long); -+ -+ pub fn telldir(dirp: *mut ::DIR) -> ::c_long; -+ pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -+ -> ::c_int; -+ -+ pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int; -+ -+ pub fn recvfrom(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, -+ flags: ::c_int, addr: *mut ::sockaddr, -+ addrlen: *mut ::socklen_t) -> ::ssize_t; -+ pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char; -+ -+ pub fn bind(socket: ::c_int, address: *const ::sockaddr, -+ address_len: ::socklen_t) -> ::c_int; -+ -+ pub fn writev(fd: ::c_int, -+ iov: *const ::iovec, -+ iovcnt: ::c_int) -> ::ssize_t; -+ pub fn readv(fd: ::c_int, -+ iov: *const ::iovec, -+ iovcnt: ::c_int) -> ::ssize_t; -+ -+ pub fn sendmsg(fd: ::c_int, -+ msg: *const ::msghdr, -+ flags: ::c_int) -> ::ssize_t; -+ pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -+ -> ::ssize_t; -+} -+ -+cfg_if! { -+ if #[cfg(target_arch = "mips")] { -+ mod mips; -+ pub use self::mips::*; -+ } else if #[cfg(target_arch = "x86_64")] { -+ mod x86_64; -+ pub use self::x86_64::*; -+ } else { -+ pub use unsupported_target; -+ } -+} -+ -diff --git third_party/rust/libc/src/unix/uclibc/x86_64/mod.rs third_party/rust/libc/src/unix/uclibc/x86_64/mod.rs -new file mode 100644 -index 000000000000..27222013479c ---- /dev/null -+++ third_party/rust/libc/src/unix/uclibc/x86_64/mod.rs -@@ -0,0 +1,312 @@ -+//! Definitions for l4re-uclibc on 64bit systems -+ -+pub type blkcnt_t = i64; -+pub type blksize_t = i64; -+pub type c_char = u8; -+pub type c_long = i64; -+pub type c_ulong = u64; -+pub type fsblkcnt_t = ::c_ulong; -+pub type fsfilcnt_t = ::c_ulong; -+pub type fsword_t = ::c_long; -+pub type ino_t = ::c_ulong; -+pub type nlink_t = ::c_uint; -+pub type off_t = ::c_long; -+pub type rlim_t = c_ulong; -+pub type rlim64_t = u64; -+pub type suseconds_t = ::c_long; -+pub type time_t = ::c_int; -+pub type wchar_t = ::c_int; -+ -+// ToDo, used? -+//pub type d_ino = ::c_ulong; -+pub type nfds_t = ::c_ulong; -+ -+s! { -+ // ------------------------------------------------------------ -+ // networking -+ pub struct in_addr { -+ pub s_addr: in_addr_t, -+ } -+ -+ pub struct in6_addr { -+ pub s6_addr: [u8; 16], -+ __align: [u32; 0], -+ } -+ -+ pub struct sockaddr { -+ pub sa_family: sa_family_t, -+ pub sa_data: [::c_char; 14], -+ } -+ -+ pub struct sockaddr_in { -+ pub sin_family: sa_family_t, -+ pub sin_port: ::in_port_t, -+ pub sin_addr: ::in_addr, -+ pub sin_zero: [u8; 8], -+ } -+ -+ pub struct sockaddr_in6 { -+ pub sin6_family: sa_family_t, -+ pub sin6_port: in_port_t, -+ pub sin6_flowinfo: u32, -+ pub sin6_addr: ::in6_addr, -+ pub sin6_scope_id: u32, -+ } -+ -+ // ------------------------------------------------------------ -+ // definitions below are *unverified* and might **break** the software -+ pub struct stat { // ToDo -+ pub st_dev: ::c_ulong, -+ st_pad1: [::c_long; 2], -+ pub st_ino: ::ino_t, -+ pub st_mode: ::mode_t, -+ pub st_nlink: ::nlink_t, -+ pub st_uid: ::uid_t, -+ pub st_gid: ::gid_t, -+ pub st_rdev: u64, -+ pub st_pad2: [u64; 1], -+ pub st_size: off_t, -+ st_pad3: ::c_long, -+ pub st_atime: ::time_t, -+ pub st_atime_nsec: ::c_long, -+ pub st_mtime: ::time_t, -+ pub st_mtime_nsec: ::c_long, -+ pub st_ctime: ::time_t, -+ pub st_ctime_nsec: ::c_long, -+ pub st_blksize: ::blksize_t, -+ st_pad4: ::c_long, -+ pub st_blocks: ::blkcnt_t, -+ st_pad5: [::c_long; 7], -+ } -+ -+ pub struct statvfs { // ToDo: broken -+ pub f_bsize: ::c_ulong, -+ pub f_frsize: ::c_ulong, -+ pub f_blocks: ::fsblkcnt_t, -+ pub f_bfree: ::fsblkcnt_t, -+ pub f_bavail: ::fsblkcnt_t, -+ pub f_files: ::fsfilcnt_t, -+ pub f_ffree: ::fsfilcnt_t, -+ pub f_favail: ::fsfilcnt_t, -+ #[cfg(target_endian = "little")] -+ pub f_fsid: ::c_ulong, -+ #[cfg(target_pointer_width = "32")] -+ __f_unused: ::c_int, -+ #[cfg(target_endian = "big")] -+ pub f_fsid: ::c_ulong, -+ pub f_flag: ::c_ulong, -+ pub f_namemax: ::c_ulong, -+ __f_spare: [::c_int; 6], -+ } -+ -+ pub struct dirent { // Todo -+ pub d_ino: ino_64_t, -+ pub d_off: off64_t, -+ d_reclen: u16, -+ pub d_type: u8, -+ pub d_name: [i8; 256], -+ } -+ -+ pub struct dirent64 { // -+ pub d_ino: ino64_t, -+ pub d_off: off64_t, -+ pub d_reclen: u16, -+ pub d_type: u8, -+ pub d_name: [i8; 256], -+ } -+ -+ pub struct pthread_attr_t { // ToDo -+ __size: [u64; 7] -+ } -+ -+ pub struct sigaction { // TODO!! -+ pub sa_sigaction: ::sighandler_t, -+ pub sa_mask: ::sigset_t, -+ #[cfg(target_arch = "sparc64")] -+ __reserved0: ::c_int, -+ pub sa_flags: ::c_int, -+ _restorer: *mut ::c_void, -+ } -+ -+ pub struct stack_t { // ToDo -+ pub ss_sp: *mut ::c_void, -+ pub ss_flags: ::c_int, -+ pub ss_size: ::size_t -+ } -+ -+ pub struct statfs { // ToDo -+ pub f_type: fsword_t, -+ pub f_bsize: fsword_t, -+ pub f_blocks: ::fsblkcnt_t, -+ pub f_bfree: ::fsblkcnt_t, -+ pub f_bavail: ::fsblkcnt_t, -+ pub f_files: ::fsfilcnt_t, -+ pub f_ffree: ::fsfilcnt_t, -+ pub f_fsid: ::fsid_t, -+ pub f_namelen: fsword_t, -+ pub f_frsize: fsword_t, -+ f_spare: [fsword_t; 5], -+ } -+ -+ pub struct msghdr { // ToDo -+ pub msg_name: *mut ::c_void, -+ pub msg_namelen: ::socklen_t, -+ pub msg_iov: *mut ::iovec, -+ pub msg_iovlen: ::size_t, -+ pub msg_control: *mut ::c_void, -+ pub msg_controllen: ::size_t, -+ pub msg_flags: ::c_int, -+ } -+ -+ pub struct termios { // ToDo -+ pub c_iflag: ::tcflag_t, -+ pub c_oflag: ::tcflag_t, -+ pub c_cflag: ::tcflag_t, -+ pub c_lflag: ::tcflag_t, -+ pub c_line: ::cc_t, -+ pub c_cc: [::cc_t; ::NCCS], -+ } -+ -+ pub struct sem_t { // ToDo -+ #[cfg(target_pointer_width = "32")] -+ __size: [::c_char; 16], -+ #[cfg(target_pointer_width = "64")] -+ __size: [::c_char; 32], -+ __align: [::c_long; 0], -+ } -+ -+ pub struct pthread_mutex_t { // ToDo -+ #[cfg(any(target_arch = "mips", target_arch = "arm", -+ target_arch = "powerpc"))] -+ __align: [::c_long; 0], -+ #[cfg(not(any(target_arch = "mips", target_arch = "arm", -+ target_arch = "powerpc")))] -+ __align: [::c_longlong; 0], -+ size: [u8; __SIZEOF_PTHREAD_MUTEX_T], -+ } -+ -+ pub struct pthread_mutexattr_t { // ToDo -+ #[cfg(any(target_arch = "x86_64", target_arch = "powerpc64", -+ target_arch = "mips64", target_arch = "s390x", -+ target_arch = "sparc64"))] -+ __align: [::c_int; 0], -+ #[cfg(not(any(target_arch = "x86_64", target_arch = "powerpc64", -+ target_arch = "mips64", target_arch = "s390x", -+ target_arch = "sparc64")))] -+ __align: [::c_long; 0], -+ size: [u8; __SIZEOF_PTHREAD_MUTEXATTR_T], -+ } -+ -+ pub struct pthread_cond_t { // ToDo -+ __align: [::c_longlong; 0], -+ size: [u8; __SIZEOF_PTHREAD_COND_T], -+ } -+ -+ pub struct pthread_condattr_t { // ToDo -+ __align: [::c_int; 0], -+ size: [u8; __SIZEOF_PTHREAD_CONDATTR_T], -+ } -+ -+ pub struct pthread_rwlock_t { // ToDo -+ #[cfg(any(target_arch = "mips", target_arch = "arm", -+ target_arch = "powerpc"))] -+ __align: [::c_long; 0], -+ #[cfg(not(any(target_arch = "mips", target_arch = "arm", -+ target_arch = "powerpc")))] -+ __align: [::c_longlong; 0], -+ size: [u8; __SIZEOF_PTHREAD_RWLOCK_T], -+ } -+ -+ pub struct sigset_t { // ToDo -+ __val: [::c_ulong; 16], -+ } -+ -+ pub struct sysinfo { // ToDo -+ pub uptime: ::c_long, -+ pub loads: [::c_ulong; 3], -+ pub totalram: ::c_ulong, -+ pub freeram: ::c_ulong, -+ pub sharedram: ::c_ulong, -+ pub bufferram: ::c_ulong, -+ pub totalswap: ::c_ulong, -+ pub freeswap: ::c_ulong, -+ pub procs: ::c_ushort, -+ pub pad: ::c_ushort, -+ pub totalhigh: ::c_ulong, -+ pub freehigh: ::c_ulong, -+ pub mem_unit: ::c_uint, -+ pub _f: [::c_char; 0], -+ } -+ -+ pub struct glob_t { // ToDo -+ pub gl_pathc: ::size_t, -+ pub gl_pathv: *mut *mut c_char, -+ pub gl_offs: ::size_t, -+ pub gl_flags: ::c_int, -+ __unused1: *mut ::c_void, -+ __unused2: *mut ::c_void, -+ __unused3: *mut ::c_void, -+ __unused4: *mut ::c_void, -+ __unused5: *mut ::c_void, -+ } -+ -+ pub struct stat64 { // ToDo -+ pub st_dev: ::dev_t, -+ pub st_ino: ::ino64_t, -+ pub st_nlink: ::nlink_t, -+ pub st_mode: ::mode_t, -+ pub st_uid: ::uid_t, -+ pub st_gid: ::gid_t, -+ __pad0: ::c_int, -+ pub st_rdev: ::dev_t, -+ pub st_size: ::off_t, -+ pub st_blksize: ::blksize_t, -+ pub st_blocks: ::blkcnt64_t, -+ pub st_atime: ::time_t, -+ pub st_atime_nsec: ::c_long, -+ pub st_mtime: ::time_t, -+ pub st_mtime_nsec: ::c_long, -+ pub st_ctime: ::time_t, -+ pub st_ctime_nsec: ::c_long, -+ __reserved: [::c_long; 3], -+ } -+ -+ pub struct rlimit64 { // ToDo -+ pub rlim_cur: rlim64_t, -+ pub rlim_max: rlim64_t, -+ } -+ -+ pub struct cpu_set_t { // ToDo -+ #[cfg(target_pointer_width = "32")] -+ bits: [u32; 32], -+ #[cfg(target_pointer_width = "64")] -+ bits: [u64; 16], -+ } -+ -+ pub struct timespec { // ToDo -+ tv_sec: time_t, // seconds -+ tv_nsec: ::c_ulong, // nanoseconds -+ } -+ -+ pub struct fsid_t { // ToDo -+ __val: [::c_int; 2], -+ } -+} -+ -+// constants -+pub const O_CLOEXEC: ::c_int = 0x80000; -+pub const O_DIRECTORY: ::c_int = 0200000; -+pub const NCCS: usize = 32; -+pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40; -+pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4; -+pub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; -+pub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; -+pub const PTHREAD_MUTEX_ERRORCHECK: ::c_int = 2; -+pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_NORMAL; -+pub const __SIZEOF_PTHREAD_COND_T: usize = 48; -+pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4; -+pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56; -+ -+extern { -+ pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void; -+} -diff --git toolkit/library/gtest/rust/Cargo.lock toolkit/library/gtest/rust/Cargo.lock -index 2561f3856303..ab148dfb5e13 100644 ---- toolkit/library/gtest/rust/Cargo.lock -+++ toolkit/library/gtest/rust/Cargo.lock -@@ -121,7 +121,7 @@ version = "0.1.5" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "gleam 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - ] - - [[package]] -@@ -132,7 +132,7 @@ dependencies = [ - "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "libloading 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - ] - -@@ -143,7 +143,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "ansi_term 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "strsim 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "term_size 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-segmentation 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -157,7 +157,7 @@ version = "0.3.0" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "core-foundation-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - ] - - [[package]] -@@ -165,7 +165,7 @@ name = "core-foundation-sys" - version = "0.3.1" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - ] - - [[package]] -@@ -174,7 +174,7 @@ version = "0.7.0" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "core-foundation 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 0.9.9 (registry+https://github.com/rust-lang/crates.io-index)", - ] - -@@ -185,7 +185,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "core-foundation 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "core-graphics 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - ] - - [[package]] -@@ -318,7 +318,7 @@ name = "freetype" - version = "0.2.0" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - ] - - [[package]] -@@ -348,7 +348,7 @@ dependencies = [ - "env_logger 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -443,7 +443,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" - - [[package]] - name = "libc" --version = "0.2.20" -+version = "0.2.24" - source = "registry+https://github.com/rust-lang/crates.io-index" - - [[package]] -@@ -472,7 +472,7 @@ name = "memchr" - version = "1.0.1" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - ] - - [[package]] -@@ -543,7 +543,7 @@ name = "num_cpus" - version = "1.2.1" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - ] - - [[package]] -@@ -605,7 +605,7 @@ version = "0.2.0" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -690,7 +690,7 @@ name = "rand" - version = "0.3.15" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - ] - - [[package]] -@@ -699,7 +699,7 @@ version = "0.6.0" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "deque 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", - ] -@@ -730,7 +730,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" - name = "rust_url_capi" - version = "0.0.1" - dependencies = [ -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "nsstring 0.1.0", - "url 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - ] -@@ -803,7 +803,7 @@ dependencies = [ - "gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 0.9.9 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_codegen 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -858,7 +858,7 @@ version = "0.1.5" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "lazy_static 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - ] - - [[package]] -@@ -963,7 +963,7 @@ name = "syntex_errors" - version = "0.54.0" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex_pos 0.54.0 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -985,7 +985,7 @@ version = "0.54.0" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex_errors 0.54.0 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -1019,7 +1019,7 @@ version = "0.2.3" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - ] - -@@ -1029,7 +1029,7 @@ version = "3.0.0" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - ] - - [[package]] -@@ -1057,7 +1057,7 @@ version = "0.1.36" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - ] -@@ -1223,7 +1223,7 @@ name = "x11" - version = "2.12.1" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "metadeps 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - ] - -@@ -1290,7 +1290,7 @@ dependencies = [ - "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" - "checksum khronos_api 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "09c9d3760673c427d46f91a0350f0a84a52e6bc5a84adf26dc610b6c52436630" - "checksum lazy_static 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6abe0ee2e758cd6bc8a2cd56726359007748fbf4128da998b65d0b70f881e19b" --"checksum libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)" = "684f330624d8c3784fb9558ca46c4ce488073a8d22450415c5eb4f4cfb0d11b5" -+"checksum libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)" = "38f5c2b18a287cf78b4097db62e20f43cace381dc76ae5c0a3073067f78b7ddc" - "checksum libloading 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "fd1835a714c1f67ba073a493493c23686a480e2614e208c921834808b1f19d8f" - "checksum log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ab83497bf8bf4ed2a74259c1c802351fcd67a65baa86394b6ba73c36f4838054" - "checksum matches 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "efd7622e3022e1a6eaa602c4cea8912254e5582c9c692e9167714182244801b1" -diff --git toolkit/library/rust/Cargo.lock toolkit/library/rust/Cargo.lock -index d69359a9a640..99443b59f1af 100644 ---- toolkit/library/rust/Cargo.lock -+++ toolkit/library/rust/Cargo.lock -@@ -119,7 +119,7 @@ version = "0.1.5" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "gleam 0.2.32 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - ] - - [[package]] -@@ -130,7 +130,7 @@ dependencies = [ - "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "libloading 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - ] - -@@ -141,7 +141,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "ansi_term 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "strsim 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "term_size 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-segmentation 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -155,7 +155,7 @@ version = "0.3.0" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "core-foundation-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - ] - - [[package]] -@@ -163,7 +163,7 @@ name = "core-foundation-sys" - version = "0.3.1" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - ] - - [[package]] -@@ -172,7 +172,7 @@ version = "0.7.0" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "core-foundation 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 0.9.9 (registry+https://github.com/rust-lang/crates.io-index)", - ] - -@@ -183,7 +183,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "core-foundation 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "core-graphics 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - ] - - [[package]] -@@ -316,7 +316,7 @@ name = "freetype" - version = "0.2.0" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - ] - - [[package]] -@@ -346,7 +346,7 @@ dependencies = [ - "env_logger 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "euclid 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -441,7 +441,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" - - [[package]] - name = "libc" --version = "0.2.20" -+version = "0.2.24" - source = "registry+https://github.com/rust-lang/crates.io-index" - - [[package]] -@@ -470,7 +470,7 @@ name = "memchr" - version = "1.0.1" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - ] - - [[package]] -@@ -530,7 +530,7 @@ name = "num_cpus" - version = "1.2.1" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - ] - - [[package]] -@@ -592,7 +592,7 @@ version = "0.2.0" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -677,7 +677,7 @@ name = "rand" - version = "0.3.15" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - ] - - [[package]] -@@ -686,7 +686,7 @@ version = "0.6.0" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "deque 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", - ] -@@ -717,7 +717,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" - name = "rust_url_capi" - version = "0.0.1" - dependencies = [ -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "nsstring 0.1.0", - "url 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - ] -@@ -790,7 +790,7 @@ dependencies = [ - "gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 0.9.9 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_codegen 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -845,7 +845,7 @@ version = "0.1.5" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "lazy_static 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - ] - - [[package]] -@@ -950,7 +950,7 @@ name = "syntex_errors" - version = "0.54.0" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex_pos 0.54.0 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -972,7 +972,7 @@ version = "0.54.0" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex_errors 0.54.0 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -1006,7 +1006,7 @@ version = "0.2.3" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - ] - -@@ -1016,7 +1016,7 @@ version = "3.0.0" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - ] - - [[package]] -@@ -1044,7 +1044,7 @@ version = "0.1.36" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - ] -@@ -1210,7 +1210,7 @@ name = "x11" - version = "2.12.1" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ -- "libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", -+ "libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)", - "metadeps 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - ] - -@@ -1277,7 +1277,7 @@ dependencies = [ - "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" - "checksum khronos_api 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "09c9d3760673c427d46f91a0350f0a84a52e6bc5a84adf26dc610b6c52436630" - "checksum lazy_static 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6abe0ee2e758cd6bc8a2cd56726359007748fbf4128da998b65d0b70f881e19b" --"checksum libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)" = "684f330624d8c3784fb9558ca46c4ce488073a8d22450415c5eb4f4cfb0d11b5" -+"checksum libc 0.2.24 (registry+https://github.com/rust-lang/crates.io-index)" = "38f5c2b18a287cf78b4097db62e20f43cace381dc76ae5c0a3073067f78b7ddc" - "checksum libloading 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "fd1835a714c1f67ba073a493493c23686a480e2614e208c921834808b1f19d8f" - "checksum log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ab83497bf8bf4ed2a74259c1c802351fcd67a65baa86394b6ba73c36f4838054" - "checksum matches 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "efd7622e3022e1a6eaa602c4cea8912254e5582c9c692e9167714182244801b1" |
