FreeBSD Bugzilla – Attachment 184692 Details for
Bug 219963
www/firefox: update to 55.0
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
beta12
ff55.diff (text/plain), 480.03 KB, created by
Jan Beich
on 2017-07-25 07:31:35 UTC
(
hide
)
Description:
beta12
Filename:
MIME Type:
Creator:
Jan Beich
Created:
2017-07-25 07:31:35 UTC
Size:
480.03 KB
patch
obsolete
>From 7760902212ecbaeb184adad370f0672f8c655ebb Mon Sep 17 00:00:00 2001 >From: Jan Beich <jbeich@FreeBSD.org> >Date: Tue, 11 Apr 2017 14:17:57 +0000 >Subject: [PATCH] www/firefox: update to 55.0 > >This is the last release to support RUST=off. Later versions >remove non-Rust codepaths e.g., via encoding_rs. > >Changes: https://www.mozilla.org/firefox/55.0/releasenotes/ >PR: 216541 219963 >Tested by: ? >Security: 555b244e-6b20-4546-851f-d8eb7d6c1ffa >MFH: 2017Q3 >--- > Mk/Uses/gecko.mk | 4 +- > www/firefox-i18n/Makefile | 4 +- > www/firefox-i18n/Makefile.lang | 5 +- > www/firefox-i18n/Makefile.option | 1 + > www/firefox-i18n/distinfo | 380 +- > www/firefox/Makefile | 12 +- > www/firefox/distinfo | 6 +- > www/firefox/files/patch-bug1021761 | 40 +- > www/firefox/files/patch-bug1312182 | 376 + > www/firefox/files/patch-bug1356709 | 170 - > www/firefox/files/patch-bug1357874 | 43 - > www/firefox/files/patch-bug1360321 | 49 - > www/firefox/files/patch-bug1376411 | 9687 -------------------- > www/firefox/files/patch-bug702179 | 17 +- > www/firefox/files/patch-bug826985 | 12 - > www/firefox/files/patch-bug847568 | 2 +- > www/firefox/files/patch-bug981348 | 61 - > ...ch-python_futures_concurrent_futures_process.py | 15 - > www/firefox/files/patch-rust-option | 569 +- > ...ty_python_futures_concurrent_futures_process.py | 15 + > 20 files changed, 1147 insertions(+), 10321 deletions(-) > create mode 100644 www/firefox/files/patch-bug1312182 > delete mode 100644 www/firefox/files/patch-bug1356709 > delete mode 100644 www/firefox/files/patch-bug1357874 > delete mode 100644 www/firefox/files/patch-bug1360321 > delete mode 100644 www/firefox/files/patch-bug1376411 > delete mode 100644 www/firefox/files/patch-bug981348 > delete mode 100644 www/firefox/files/patch-python_futures_concurrent_futures_process.py > create mode 100644 www/firefox/files/patch-third__party_python_futures_concurrent_futures_process.py > >diff --git a/Mk/Uses/gecko.mk b/Mk/Uses/gecko.mk >index 8ce100dc6937..691bd5aaa827 100644 >--- a/Mk/Uses/gecko.mk >+++ b/Mk/Uses/gecko.mk >@@ -37,12 +37,12 @@ RUN_DEPENDS+= libxul>=45:www/libxul > .elif ${gecko_ARGS:Mfirefox} > > _GECKO_DEFAULT_VERSION= 52 >-_GECKO_VERSIONS= 52 54 >+_GECKO_VERSIONS= 52 55 > _GECKO_TYPE= firefox > > # Dependence lines for different Firefox versions > 52_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox-esr >-54_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox >+55_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox > > .if exists(${LOCALBASE}/bin/firefox) > _GECKO_INSTALLED_VER!= ${LOCALBASE}/bin/firefox --version 2>/dev/null >diff --git a/www/firefox-i18n/Makefile b/www/firefox-i18n/Makefile >index e9036082b6fa..90ac72d63b36 100644 >--- a/www/firefox-i18n/Makefile >+++ b/www/firefox-i18n/Makefile >@@ -2,7 +2,7 @@ > # $FreeBSD$ > > PORTNAME= firefox-i18n >-PORTVERSION= 54.0.1 >+PORTVERSION= 55.0b12 > CATEGORIES= www > MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${DISTVERSION}/linux-i686/xpi \ > MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}-candidates/build1/linux-i686/xpi >@@ -15,7 +15,7 @@ COMMENT= Localized interface for Firefox > > EXTRACT_DEPENDS= zip:archivers/zip > >-USES= zip:infozip gecko:firefox,54,build >+USES= zip:infozip gecko:firefox,55,build > USE_XPI= firefox > > NO_ARCH= yes >diff --git a/www/firefox-i18n/Makefile.lang b/www/firefox-i18n/Makefile.lang >index dd9c4962df11..20d45f4ce03e 100644 >--- a/www/firefox-i18n/Makefile.lang >+++ b/www/firefox-i18n/Makefile.lang >@@ -1,7 +1,7 @@ > # Created by: Koji Yokota <yokota@res.otaru-uc.ac.jp> > # $FreeBSD$ > >-FIREFOX_I18N_ALL_= ach af an ar as ast az bg bn-BD bn-IN br bs ca cak \ >+FIREFOX_I18N_ALL_= ach af an ar as ast az be bg bn-BD bn-IN br bs ca cak \ > cs cy da de dsb el en-GB en-US en-ZA eo es-AR es-CL \ > es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gn \ > gu-IN he hi-IN hr hsb hu hy-AM id is it ja ka kab \ >@@ -33,6 +33,9 @@ FIREFOX_I18N+= ast > .if ${PORT_OPTIONS:MLANG_AZ} > FIREFOX_I18N+= az > .endif >+.if ${PORT_OPTIONS:MLANG_BE} >+FIREFOX_I18N+= be >+.endif > .if ${PORT_OPTIONS:MLANG_BG} > FIREFOX_I18N+= bg > .endif >diff --git a/www/firefox-i18n/Makefile.option b/www/firefox-i18n/Makefile.option >index 16f86ebc6c3e..bc2035278e9d 100644 >--- a/www/firefox-i18n/Makefile.option >+++ b/www/firefox-i18n/Makefile.option >@@ -9,6 +9,7 @@ OPTIONS_DEFINE= LANG_ACH \ > LANG_AS \ > LANG_AST \ > LANG_AZ \ >+ LANG_BE \ > LANG_BG \ > LANG_BB \ > LANG_BN \ >diff --git a/www/firefox-i18n/distinfo b/www/firefox-i18n/distinfo >index ac77e1448b28..ad2c4e1d776f 100644 >--- a/www/firefox-i18n/distinfo >+++ b/www/firefox-i18n/distinfo >@@ -1,189 +1,191 @@ >-TIMESTAMP = 1498670356 >-SHA256 (xpi/firefox-i18n-54.0.1/ach.xpi) = 2ac6571fee99dbb0886e6b4d75d9ed9b793b5a2551413d0969c4b443e797b9a8 >-SIZE (xpi/firefox-i18n-54.0.1/ach.xpi) = 426785 >-SHA256 (xpi/firefox-i18n-54.0.1/af.xpi) = 86e4a12e511e7a88b7eb762b0755984e72b8774c77398481609237e9ca44b4a5 >-SIZE (xpi/firefox-i18n-54.0.1/af.xpi) = 436585 >-SHA256 (xpi/firefox-i18n-54.0.1/an.xpi) = a925947a8d77450357b2e85454c8b02b71f2553a6abc373d6ef865a098acef6a >-SIZE (xpi/firefox-i18n-54.0.1/an.xpi) = 445344 >-SHA256 (xpi/firefox-i18n-54.0.1/ar.xpi) = 8e7d0af2143a5df4f93fb70d0e240180b897320234d9e0f17274f996c9e7ca29 >-SIZE (xpi/firefox-i18n-54.0.1/ar.xpi) = 473124 >-SHA256 (xpi/firefox-i18n-54.0.1/as.xpi) = 3f4f218ce4da291d008630f20b29d032182f8c5356c387be81a55616881585d3 >-SIZE (xpi/firefox-i18n-54.0.1/as.xpi) = 484171 >-SHA256 (xpi/firefox-i18n-54.0.1/ast.xpi) = b215e69042c029156b8e787c03f9504beb5e056ea71f0e8e6eb706205f8eee1f >-SIZE (xpi/firefox-i18n-54.0.1/ast.xpi) = 440269 >-SHA256 (xpi/firefox-i18n-54.0.1/az.xpi) = a092eb7b69b97e44a375ac1244a8f1bfc48acfd7d99051350803632273164e68 >-SIZE (xpi/firefox-i18n-54.0.1/az.xpi) = 454243 >-SHA256 (xpi/firefox-i18n-54.0.1/bg.xpi) = 2d12828369f44e8c805e2825946cec5ef040585a92b35c89ff17aceac8a0a83d >-SIZE (xpi/firefox-i18n-54.0.1/bg.xpi) = 485835 >-SHA256 (xpi/firefox-i18n-54.0.1/bn-BD.xpi) = ab3a823e662776edf0aeaf9c4535f451ebe4e8ad5811023377ca88eebef56306 >-SIZE (xpi/firefox-i18n-54.0.1/bn-BD.xpi) = 508867 >-SHA256 (xpi/firefox-i18n-54.0.1/bn-IN.xpi) = 0acff03ac54f2a4609c626d4e5b461c0abacb8b24d6df4dc1b3f2cffc6baffa7 >-SIZE (xpi/firefox-i18n-54.0.1/bn-IN.xpi) = 506168 >-SHA256 (xpi/firefox-i18n-54.0.1/br.xpi) = e164f7ba23ce3fac8240f9f3cb3b44dd0555c558550d0f9fc98cbfa5eb05de8d >-SIZE (xpi/firefox-i18n-54.0.1/br.xpi) = 434372 >-SHA256 (xpi/firefox-i18n-54.0.1/bs.xpi) = 7b74a68b66b6763922cfa08ed8c2dab8dad64fe4b8cd8e51f3b023c635d0dddc >-SIZE (xpi/firefox-i18n-54.0.1/bs.xpi) = 441131 >-SHA256 (xpi/firefox-i18n-54.0.1/ca.xpi) = 104ae2cc9b629669005648e5fb2e7cad06965eb700c6246bacc8874c48180b82 >-SIZE (xpi/firefox-i18n-54.0.1/ca.xpi) = 443027 >-SHA256 (xpi/firefox-i18n-54.0.1/cak.xpi) = aced374c69e3cd85800b685bd1003b290b58f0a37c870e42badce50c740a0a36 >-SIZE (xpi/firefox-i18n-54.0.1/cak.xpi) = 458232 >-SHA256 (xpi/firefox-i18n-54.0.1/cs.xpi) = 937ab90c522119406605eb0051f81dbe0a0c716826cf222cee532bbaeeb049ac >-SIZE (xpi/firefox-i18n-54.0.1/cs.xpi) = 443929 >-SHA256 (xpi/firefox-i18n-54.0.1/cy.xpi) = 6a095bdbe2c274da1772c87914aad3ca4a788f6f3a0d3a10d9432cfdf646a6a3 >-SIZE (xpi/firefox-i18n-54.0.1/cy.xpi) = 436310 >-SHA256 (xpi/firefox-i18n-54.0.1/da.xpi) = 1a0d5e22c79b0f558031b14edc8aa8a4dd1ce0a5c418549c68c8223c5ab7a7f9 >-SIZE (xpi/firefox-i18n-54.0.1/da.xpi) = 423766 >-SHA256 (xpi/firefox-i18n-54.0.1/de.xpi) = 1bc9004a9aa4f41245c610ab0c239496cd649157e8ad7bbb89feb83585889b60 >-SIZE (xpi/firefox-i18n-54.0.1/de.xpi) = 442814 >-SHA256 (xpi/firefox-i18n-54.0.1/dsb.xpi) = 0946b957ff6765bd30171477394ed5e0345cc3c6dadf1fee07b85a57d789515d >-SIZE (xpi/firefox-i18n-54.0.1/dsb.xpi) = 458691 >-SHA256 (xpi/firefox-i18n-54.0.1/el.xpi) = 60f7e95db941c2c2b9bdbbb7b4c601badd2cc92f59c716e3ea82294fb7078e63 >-SIZE (xpi/firefox-i18n-54.0.1/el.xpi) = 511228 >-SHA256 (xpi/firefox-i18n-54.0.1/en-GB.xpi) = 50b09222acad38c4d2a878850905b55cd399f5923fa9aa2b2fa118a48560883e >-SIZE (xpi/firefox-i18n-54.0.1/en-GB.xpi) = 419545 >-SHA256 (xpi/firefox-i18n-54.0.1/en-US.xpi) = 14e0d08ce9fd79cd1b9ade2c19d92b255b758384c7e7e608d573beed36f639a3 >-SIZE (xpi/firefox-i18n-54.0.1/en-US.xpi) = 425757 >-SHA256 (xpi/firefox-i18n-54.0.1/en-ZA.xpi) = 1fcea8c4bd696913c4d93fdd8dc3569707de035e6b5ed4808892e85a8945b58f >-SIZE (xpi/firefox-i18n-54.0.1/en-ZA.xpi) = 413431 >-SHA256 (xpi/firefox-i18n-54.0.1/eo.xpi) = d32c2f771aea465c62c4b9d782fccc1d22969be3ea827027d7acdb592ee66e19 >-SIZE (xpi/firefox-i18n-54.0.1/eo.xpi) = 437027 >-SHA256 (xpi/firefox-i18n-54.0.1/es-AR.xpi) = c1b6a6ffdf9f74d653f72cf3157b820b95eddf26fabc72be3d2bae84457f5d78 >-SIZE (xpi/firefox-i18n-54.0.1/es-AR.xpi) = 445558 >-SHA256 (xpi/firefox-i18n-54.0.1/es-CL.xpi) = 222dd573b6f877926bee2d58963366b670a4d5176c839663073da1bb6ff51eb5 >-SIZE (xpi/firefox-i18n-54.0.1/es-CL.xpi) = 445585 >-SHA256 (xpi/firefox-i18n-54.0.1/es-ES.xpi) = 494983532ee064521a37d90cbfbef46d0fab37fe82d4d72b3ade3c539db3585b >-SIZE (xpi/firefox-i18n-54.0.1/es-ES.xpi) = 341281 >-SHA256 (xpi/firefox-i18n-54.0.1/es-MX.xpi) = 3a74d108671f717c3bb5954298eb396c861aa902cf7c426cc2cc02ecc15f6dbf >-SIZE (xpi/firefox-i18n-54.0.1/es-MX.xpi) = 447976 >-SHA256 (xpi/firefox-i18n-54.0.1/et.xpi) = 4a926107e99dd4bd6a8b6089f08fc53a33f5fb7d55dab8197121558bfc8df1d8 >-SIZE (xpi/firefox-i18n-54.0.1/et.xpi) = 423855 >-SHA256 (xpi/firefox-i18n-54.0.1/eu.xpi) = 17fc4a655d72a25ed1acc41276fcdd22f5c3662c87b61bca48195345d45f5a3a >-SIZE (xpi/firefox-i18n-54.0.1/eu.xpi) = 438025 >-SHA256 (xpi/firefox-i18n-54.0.1/fa.xpi) = 325b3a51f4e5adb0fad02fe050d43d6bfd3b0f6f8bcec24eeccc93df4e2a61da >-SIZE (xpi/firefox-i18n-54.0.1/fa.xpi) = 490360 >-SHA256 (xpi/firefox-i18n-54.0.1/ff.xpi) = 7f3616ce409ef5a709321b230541236c0654848b943f7f08e538d8f9606290c5 >-SIZE (xpi/firefox-i18n-54.0.1/ff.xpi) = 441539 >-SHA256 (xpi/firefox-i18n-54.0.1/fi.xpi) = 1e124737d0d1a51f8edfa2452e39db0da28068fa0a8ba1de97d8a5a8fceac5d2 >-SIZE (xpi/firefox-i18n-54.0.1/fi.xpi) = 428998 >-SHA256 (xpi/firefox-i18n-54.0.1/fr.xpi) = a77a3ff17a868e64fa45f3543a43a7a35b7c2a8b63a83a9f3ab25ade74252c81 >-SIZE (xpi/firefox-i18n-54.0.1/fr.xpi) = 451596 >-SHA256 (xpi/firefox-i18n-54.0.1/fy-NL.xpi) = c604b47608caaef2101a1465efdbd70519ceef08d06a7527934a5b612a0af65c >-SIZE (xpi/firefox-i18n-54.0.1/fy-NL.xpi) = 444473 >-SHA256 (xpi/firefox-i18n-54.0.1/ga-IE.xpi) = 78e5c09e43ae6c8f0ce17e16c26a50e64a5ec6c71f942c3c3fd78c3087ea6dd5 >-SIZE (xpi/firefox-i18n-54.0.1/ga-IE.xpi) = 457484 >-SHA256 (xpi/firefox-i18n-54.0.1/gd.xpi) = 8ee562188ed70c78e997215c4c00d9a1f97360dcee5ea430cf6830405c69d40f >-SIZE (xpi/firefox-i18n-54.0.1/gd.xpi) = 446084 >-SHA256 (xpi/firefox-i18n-54.0.1/gl.xpi) = d1b440764c3a50c5e69369d459e2ec1be1bded24096d6c33fe09af12b74e0b47 >-SIZE (xpi/firefox-i18n-54.0.1/gl.xpi) = 443277 >-SHA256 (xpi/firefox-i18n-54.0.1/gn.xpi) = 1c43832720ff7355b5edc8d95e112395abc18c810840de5c2b768a1756b9a981 >-SIZE (xpi/firefox-i18n-54.0.1/gn.xpi) = 456068 >-SHA256 (xpi/firefox-i18n-54.0.1/gu-IN.xpi) = ddcda3eaf8c04d3eccde0a86e3a95642377d9881849599c8150a9751ee129a93 >-SIZE (xpi/firefox-i18n-54.0.1/gu-IN.xpi) = 487118 >-SHA256 (xpi/firefox-i18n-54.0.1/he.xpi) = 99b4ea64591e975b5207418812e8b178f1d139fec32d1042d86f69563ca182ae >-SIZE (xpi/firefox-i18n-54.0.1/he.xpi) = 454287 >-SHA256 (xpi/firefox-i18n-54.0.1/hi-IN.xpi) = 4031a32ad3f54f38aac8748839404e3ac9da1c2c46ecfe80c59ed31d5a2dd3ff >-SIZE (xpi/firefox-i18n-54.0.1/hi-IN.xpi) = 504632 >-SHA256 (xpi/firefox-i18n-54.0.1/hr.xpi) = 9e9c3133951e1af4c71aa3f0583102a78420aec89c6b5ba270b5695b554d5578 >-SIZE (xpi/firefox-i18n-54.0.1/hr.xpi) = 447780 >-SHA256 (xpi/firefox-i18n-54.0.1/hsb.xpi) = 3e1756b6ebd88994d14cd46bd93bb83041f2da4e33df22a21c27fcd158dd70a8 >-SIZE (xpi/firefox-i18n-54.0.1/hsb.xpi) = 456528 >-SHA256 (xpi/firefox-i18n-54.0.1/hu.xpi) = 5050f78682cf02e180005fa305751bf65dc12b76e1b0d15178d553a1ab8aae25 >-SIZE (xpi/firefox-i18n-54.0.1/hu.xpi) = 451123 >-SHA256 (xpi/firefox-i18n-54.0.1/hy-AM.xpi) = eef38f7bbaf2f6d3ec282931eeb0032951e44db39469cbf532ae8883c887217f >-SIZE (xpi/firefox-i18n-54.0.1/hy-AM.xpi) = 496020 >-SHA256 (xpi/firefox-i18n-54.0.1/id.xpi) = b5c619719efee4a36e2b5008f6ce2cb4251faa9308f59502909933e14836f36f >-SIZE (xpi/firefox-i18n-54.0.1/id.xpi) = 425284 >-SHA256 (xpi/firefox-i18n-54.0.1/is.xpi) = d4a28ac291cd5e6649800b1babd39ec3e7dd808da15b608b16ac15e4548cd256 >-SIZE (xpi/firefox-i18n-54.0.1/is.xpi) = 441708 >-SHA256 (xpi/firefox-i18n-54.0.1/it.xpi) = ccadf76ba443e1ee2ce80db7a895dae99b0a7670736b78eb21cd75788b97e278 >-SIZE (xpi/firefox-i18n-54.0.1/it.xpi) = 335501 >-SHA256 (xpi/firefox-i18n-54.0.1/ja.xpi) = 820b33c1c4675fe59f8bc73328da8718bddcec6fd3b7ceeb171ff1994322dcb3 >-SIZE (xpi/firefox-i18n-54.0.1/ja.xpi) = 486807 >-SHA256 (xpi/firefox-i18n-54.0.1/ka.xpi) = 2d596db623a85e87c45fa698e18ad9e66733f29534be8297ef4c52e7288db8a7 >-SIZE (xpi/firefox-i18n-54.0.1/ka.xpi) = 473231 >-SHA256 (xpi/firefox-i18n-54.0.1/kab.xpi) = a0611e7f5bebefb65a7de1b0b80b921ae01a5448c65c7218eabdd31ee292d7e6 >-SIZE (xpi/firefox-i18n-54.0.1/kab.xpi) = 443917 >-SHA256 (xpi/firefox-i18n-54.0.1/kk.xpi) = 9f2d4fb392830db601a650ec0a86860a99647150d65f2a3f58d3ca5f86c667bf >-SIZE (xpi/firefox-i18n-54.0.1/kk.xpi) = 493048 >-SHA256 (xpi/firefox-i18n-54.0.1/km.xpi) = 9ba58f2ad59b02905f39ab52e10c967555f4e9d4efde5832d4fed9d9acbdba06 >-SIZE (xpi/firefox-i18n-54.0.1/km.xpi) = 517240 >-SHA256 (xpi/firefox-i18n-54.0.1/kn.xpi) = e4ee165edd2accef0b75e7ac373be81bac94be182d9184477cee7ba72a9eefb0 >-SIZE (xpi/firefox-i18n-54.0.1/kn.xpi) = 516492 >-SHA256 (xpi/firefox-i18n-54.0.1/ko.xpi) = 34258d81a65b8e8d82992c359c2c864208f9cbe775b6d8503bff73639a4f38de >-SIZE (xpi/firefox-i18n-54.0.1/ko.xpi) = 460422 >-SHA256 (xpi/firefox-i18n-54.0.1/lij.xpi) = 5175475d43dad7033fc3d5ff29bf2ef4b6b7c7c78aa5772494e9e0b076a83b88 >-SIZE (xpi/firefox-i18n-54.0.1/lij.xpi) = 431675 >-SHA256 (xpi/firefox-i18n-54.0.1/lt.xpi) = 965dac8a258b3f1fa95408f7bb1e4778a4935b0c5259f4b4cadc261a2202b9b0 >-SIZE (xpi/firefox-i18n-54.0.1/lt.xpi) = 451195 >-SHA256 (xpi/firefox-i18n-54.0.1/lv.xpi) = 28fa09ca2dfa0e35fa939b1e404b38d247b921fbae83d12e84a75a3fe2d506d9 >-SIZE (xpi/firefox-i18n-54.0.1/lv.xpi) = 447753 >-SHA256 (xpi/firefox-i18n-54.0.1/mai.xpi) = 549b205729fda9ac5b518e4fd14e482cdf53330195cac9aa5abd7a5960e6bd94 >-SIZE (xpi/firefox-i18n-54.0.1/mai.xpi) = 497012 >-SHA256 (xpi/firefox-i18n-54.0.1/mk.xpi) = bb71fa5d9de5b7f22e9a61846a9712039307d82e410c283ec4c5646eb1722dfc >-SIZE (xpi/firefox-i18n-54.0.1/mk.xpi) = 493118 >-SHA256 (xpi/firefox-i18n-54.0.1/ml.xpi) = cf8fd4617b462f10014b56d058526afe5a21c5d27437e6e7bd2d3972d6a80f5f >-SIZE (xpi/firefox-i18n-54.0.1/ml.xpi) = 512264 >-SHA256 (xpi/firefox-i18n-54.0.1/mr.xpi) = 5721566ae1bb2aab7bcd10ab5d6461d4828c0665e778694bfc41f7dcda7ec46b >-SIZE (xpi/firefox-i18n-54.0.1/mr.xpi) = 501035 >-SHA256 (xpi/firefox-i18n-54.0.1/ms.xpi) = 1ae16e71b6fc08b3eb7bd3db4f356300e33a8eb4093587e7c553109774378541 >-SIZE (xpi/firefox-i18n-54.0.1/ms.xpi) = 435502 >-SHA256 (xpi/firefox-i18n-54.0.1/my.xpi) = f634472bbd81089fdcf675d4c05078b6a380b5b32f35efcfd2549ae322062ee5 >-SIZE (xpi/firefox-i18n-54.0.1/my.xpi) = 511255 >-SHA256 (xpi/firefox-i18n-54.0.1/nb-NO.xpi) = 64b19a30823f1ceca9790f91d663569da7e3559f56c91af6d52fe3cb12b42685 >-SIZE (xpi/firefox-i18n-54.0.1/nb-NO.xpi) = 433681 >-SHA256 (xpi/firefox-i18n-54.0.1/nl.xpi) = 3a42e931b4f4504e7459f5e976cbb6b23d2660d98751a2307fca4da5bf600579 >-SIZE (xpi/firefox-i18n-54.0.1/nl.xpi) = 431501 >-SHA256 (xpi/firefox-i18n-54.0.1/nn-NO.xpi) = e423caf98330b9655476c5c6181b5390caccdb73c6c1260788d7d854ce2135d3 >-SIZE (xpi/firefox-i18n-54.0.1/nn-NO.xpi) = 427871 >-SHA256 (xpi/firefox-i18n-54.0.1/or.xpi) = 21542c795149a5014c762ab5b0d80758228d520fbb29d5da3575bac319efcc20 >-SIZE (xpi/firefox-i18n-54.0.1/or.xpi) = 494082 >-SHA256 (xpi/firefox-i18n-54.0.1/pa-IN.xpi) = ff23be5a0183b9ab0f508e0454363ccb4d4ea787e234f47f506a59a53b823900 >-SIZE (xpi/firefox-i18n-54.0.1/pa-IN.xpi) = 473517 >-SHA256 (xpi/firefox-i18n-54.0.1/pl.xpi) = f5b54399bde33a78e26ed608a541641cbbd455d6f615ebadaf51a1d4a070c49b >-SIZE (xpi/firefox-i18n-54.0.1/pl.xpi) = 347205 >-SHA256 (xpi/firefox-i18n-54.0.1/pt-BR.xpi) = d2fec0d257a63098d1815c19cfda9485898671b05cbd04d405d7aea37bab0da6 >-SIZE (xpi/firefox-i18n-54.0.1/pt-BR.xpi) = 437173 >-SHA256 (xpi/firefox-i18n-54.0.1/pt-PT.xpi) = 81ab31f6e804bb4000e82d8e5c0f1a523a06017b5c70702080b3d37e69a0cddc >-SIZE (xpi/firefox-i18n-54.0.1/pt-PT.xpi) = 436178 >-SHA256 (xpi/firefox-i18n-54.0.1/rm.xpi) = 1f97345a398a8debe697c52c1c9470e8e372b27358f03b97c362936961075c42 >-SIZE (xpi/firefox-i18n-54.0.1/rm.xpi) = 433406 >-SHA256 (xpi/firefox-i18n-54.0.1/ro.xpi) = a240485bcc277196ff5d9dc83b0ca3682bdb28eea348de9675d076a0cda90252 >-SIZE (xpi/firefox-i18n-54.0.1/ro.xpi) = 449474 >-SHA256 (xpi/firefox-i18n-54.0.1/ru.xpi) = ed18d1fdb2e0f71bf08a272e80d8954e3cbb67e47656f3c37d94f3368f9d5013 >-SIZE (xpi/firefox-i18n-54.0.1/ru.xpi) = 487731 >-SHA256 (xpi/firefox-i18n-54.0.1/si.xpi) = 4dce9708ecdd61c82621d97eb88476a4c13212efa136e1cf2db0f7df7e0c4271 >-SIZE (xpi/firefox-i18n-54.0.1/si.xpi) = 491069 >-SHA256 (xpi/firefox-i18n-54.0.1/sk.xpi) = fa7d3fdf5448c1fde3d875b1897207e129b04e3338d8e20eb050b65d6db1a383 >-SIZE (xpi/firefox-i18n-54.0.1/sk.xpi) = 455015 >-SHA256 (xpi/firefox-i18n-54.0.1/sl.xpi) = 31795653987c7dc1a1968006b3c8068f6e1089b0f2311d9d53c08cb73d2d3617 >-SIZE (xpi/firefox-i18n-54.0.1/sl.xpi) = 433176 >-SHA256 (xpi/firefox-i18n-54.0.1/son.xpi) = f1ee7a8fe539071cd78361d40f1e547ee25d0a5e10a72e040ff56d9f20bc297a >-SIZE (xpi/firefox-i18n-54.0.1/son.xpi) = 435053 >-SHA256 (xpi/firefox-i18n-54.0.1/sq.xpi) = 4310b19b43b5cd4c841ded13a62c621cf3eea4391e516b08bb70a4ea3e008a9a >-SIZE (xpi/firefox-i18n-54.0.1/sq.xpi) = 448158 >-SHA256 (xpi/firefox-i18n-54.0.1/sr.xpi) = 22a1101556894ea99607cc9e447bf6e54705a906e476245e3f599fd7ffc24484 >-SIZE (xpi/firefox-i18n-54.0.1/sr.xpi) = 461355 >-SHA256 (xpi/firefox-i18n-54.0.1/sv-SE.xpi) = 6fbaa53965beac50102a130257e3703ceddc4621744941beace41d172ab8d559 >-SIZE (xpi/firefox-i18n-54.0.1/sv-SE.xpi) = 440479 >-SHA256 (xpi/firefox-i18n-54.0.1/ta.xpi) = 192fe9dcf242ff01da8e51c216f04d32fe4a91170dbce22e5e40ecfa7f5e0759 >-SIZE (xpi/firefox-i18n-54.0.1/ta.xpi) = 493957 >-SHA256 (xpi/firefox-i18n-54.0.1/te.xpi) = c4e2bef212d4fbc5c250808f92318165db9f3bb0936be28b2517f43f213a3010 >-SIZE (xpi/firefox-i18n-54.0.1/te.xpi) = 513339 >-SHA256 (xpi/firefox-i18n-54.0.1/th.xpi) = be7902e644099d01405198a7f3a7c651494012c26e9729aa63f103a58adb28ba >-SIZE (xpi/firefox-i18n-54.0.1/th.xpi) = 487219 >-SHA256 (xpi/firefox-i18n-54.0.1/tr.xpi) = 4460fb3b0c3419ccc67de5b81709337e3990bd0f3753e66cbed467b468e58aff >-SIZE (xpi/firefox-i18n-54.0.1/tr.xpi) = 440413 >-SHA256 (xpi/firefox-i18n-54.0.1/uk.xpi) = 9009a1ff5f9e53b2041dd58a47b377d73e0e9dc59d257b49c2ce0f4fe9e15471 >-SIZE (xpi/firefox-i18n-54.0.1/uk.xpi) = 490758 >-SHA256 (xpi/firefox-i18n-54.0.1/ur.xpi) = efa36df7c6ccda5551d3be4a0beaff1069310607afb99040b7d586a9abd422e4 >-SIZE (xpi/firefox-i18n-54.0.1/ur.xpi) = 496584 >-SHA256 (xpi/firefox-i18n-54.0.1/uz.xpi) = 90b31da2151bbf9c89766074afec716c4cd05bfbae3d30bac1ccf14a0eb1db62 >-SIZE (xpi/firefox-i18n-54.0.1/uz.xpi) = 448113 >-SHA256 (xpi/firefox-i18n-54.0.1/vi.xpi) = b971ef91795039963a35e59ab7d653d7f0568760c3a0e2c95dccaf5052fd3750 >-SIZE (xpi/firefox-i18n-54.0.1/vi.xpi) = 449655 >-SHA256 (xpi/firefox-i18n-54.0.1/xh.xpi) = dbb7ca463660d3bf1fc2c079551b6380dc8d238be1a34cd2426cae4b74382bb9 >-SIZE (xpi/firefox-i18n-54.0.1/xh.xpi) = 440803 >-SHA256 (xpi/firefox-i18n-54.0.1/zh-CN.xpi) = 0acf841d128b347c85ceb8fa34dd2dcdb3177b1c4cb9fa2a97666ba0912dd16b >-SIZE (xpi/firefox-i18n-54.0.1/zh-CN.xpi) = 458333 >-SHA256 (xpi/firefox-i18n-54.0.1/zh-TW.xpi) = bebd2c45d83ba97ebafc3fd463385d3a75d3818bae33bf71e3430594f5f5abbc >-SIZE (xpi/firefox-i18n-54.0.1/zh-TW.xpi) = 469166 >+TIMESTAMP = 1500917547 >+SHA256 (xpi/firefox-i18n-55.0b12/ach.xpi) = 7152667f030edbb63aa6416711474b625953ba1544422951b71cc8eaaefd22c8 >+SIZE (xpi/firefox-i18n-55.0b12/ach.xpi) = 447502 >+SHA256 (xpi/firefox-i18n-55.0b12/af.xpi) = 3d44fc657965e6c631443393de916726b86e6bf1b769f6de51c67577294be952 >+SIZE (xpi/firefox-i18n-55.0b12/af.xpi) = 448924 >+SHA256 (xpi/firefox-i18n-55.0b12/an.xpi) = be0cc6e2f8664c1a5bedc7b25d95204b443671b5cb9b5be174690823ee40dc11 >+SIZE (xpi/firefox-i18n-55.0b12/an.xpi) = 468636 >+SHA256 (xpi/firefox-i18n-55.0b12/ar.xpi) = 815383a77c470906c48f76f97671f783253a274664ec7634ce022e0ba2e5b082 >+SIZE (xpi/firefox-i18n-55.0b12/ar.xpi) = 492759 >+SHA256 (xpi/firefox-i18n-55.0b12/as.xpi) = 7f2d4e176390687ca3534626e49f54744001236c8cc286c6243ca830b55c986b >+SIZE (xpi/firefox-i18n-55.0b12/as.xpi) = 501507 >+SHA256 (xpi/firefox-i18n-55.0b12/ast.xpi) = de47099847c15c2c54de79b960f54dab089c873dda93391525c7b270f5cc9404 >+SIZE (xpi/firefox-i18n-55.0b12/ast.xpi) = 460839 >+SHA256 (xpi/firefox-i18n-55.0b12/az.xpi) = 4904a6319fcfa034bd452fa7042fc5fd8596e12b1a70a54c36c084db675c5752 >+SIZE (xpi/firefox-i18n-55.0b12/az.xpi) = 475366 >+SHA256 (xpi/firefox-i18n-55.0b12/be.xpi) = 7e0f379a405c9eb6d988ebc1e21771f4f397263a6e212b98cd443672f55efd1f >+SIZE (xpi/firefox-i18n-55.0b12/be.xpi) = 522574 >+SHA256 (xpi/firefox-i18n-55.0b12/bg.xpi) = fd6d28495fe4aa40ee6a10b1bd12dda4197d3bca963a6e34276cc6475ce8a181 >+SIZE (xpi/firefox-i18n-55.0b12/bg.xpi) = 520009 >+SHA256 (xpi/firefox-i18n-55.0b12/bn-BD.xpi) = 6c69844f2d89ddc08622095549ebd92246e1e96209a992925f7e7f6a45233dd3 >+SIZE (xpi/firefox-i18n-55.0b12/bn-BD.xpi) = 535105 >+SHA256 (xpi/firefox-i18n-55.0b12/bn-IN.xpi) = d23576043364829fc80a5abe9b1b843f84ade0c099c642cc5ea4842f04fd0cf2 >+SIZE (xpi/firefox-i18n-55.0b12/bn-IN.xpi) = 526353 >+SHA256 (xpi/firefox-i18n-55.0b12/br.xpi) = 29b3f821a50a9aa45746003a2c80638349dff890c413ec187a7d619bb564248a >+SIZE (xpi/firefox-i18n-55.0b12/br.xpi) = 457058 >+SHA256 (xpi/firefox-i18n-55.0b12/bs.xpi) = a9028a13fb4ed56080c093089cbbd971351b0a7a443afd619ffb3523b04cd284 >+SIZE (xpi/firefox-i18n-55.0b12/bs.xpi) = 465023 >+SHA256 (xpi/firefox-i18n-55.0b12/ca.xpi) = e47463b5ff99b7f2881b449ba1595739566bead55e60e07f6de6811106da107b >+SIZE (xpi/firefox-i18n-55.0b12/ca.xpi) = 473017 >+SHA256 (xpi/firefox-i18n-55.0b12/cak.xpi) = ade26382c1eda5f421a11af7a76de2c5c9259d99fd9120dd713ca2c8037ae10b >+SIZE (xpi/firefox-i18n-55.0b12/cak.xpi) = 481772 >+SHA256 (xpi/firefox-i18n-55.0b12/cs.xpi) = 1c3dfae6db5f0281e86e576ac1d797759e26cf9f1ca908a17424c4bc8305aa0e >+SIZE (xpi/firefox-i18n-55.0b12/cs.xpi) = 476809 >+SHA256 (xpi/firefox-i18n-55.0b12/cy.xpi) = d7437dba16c0737f437593738e8250d8caf1bf3fd2d2febd5ac4166057d14bb6 >+SIZE (xpi/firefox-i18n-55.0b12/cy.xpi) = 458719 >+SHA256 (xpi/firefox-i18n-55.0b12/da.xpi) = c5bc7fbec60337b56ed896b56ede99247393c1ac22ae1845453ff80b63d37846 >+SIZE (xpi/firefox-i18n-55.0b12/da.xpi) = 452517 >+SHA256 (xpi/firefox-i18n-55.0b12/de.xpi) = e97b11e055a8506c69592e76da549af131ff4c4e750ed08321ee872664927d6e >+SIZE (xpi/firefox-i18n-55.0b12/de.xpi) = 465988 >+SHA256 (xpi/firefox-i18n-55.0b12/dsb.xpi) = 79bb5737a261de4514d874630d2186efb30bcfaf97a33c01e59a515de463ea32 >+SIZE (xpi/firefox-i18n-55.0b12/dsb.xpi) = 482079 >+SHA256 (xpi/firefox-i18n-55.0b12/el.xpi) = 9b625b4476b1927ed72ef0015e920d6347912d7a641bc2ea16f9cfa47a5fc139 >+SIZE (xpi/firefox-i18n-55.0b12/el.xpi) = 539777 >+SHA256 (xpi/firefox-i18n-55.0b12/en-GB.xpi) = 3cec4570874dba838a74949dced0d8a9126ed6011cfcee656ea6e4afeae9188b >+SIZE (xpi/firefox-i18n-55.0b12/en-GB.xpi) = 439266 >+SHA256 (xpi/firefox-i18n-55.0b12/en-US.xpi) = 6e48418b8251189baa662323892c0ca71be87d22cd3e4b786557cecd813802ee >+SIZE (xpi/firefox-i18n-55.0b12/en-US.xpi) = 439813 >+SHA256 (xpi/firefox-i18n-55.0b12/en-ZA.xpi) = 90d8f5fcc9b34ad740c2f9e2273d015fa591c7124e7a4ee402935e9c2c490ea8 >+SIZE (xpi/firefox-i18n-55.0b12/en-ZA.xpi) = 438620 >+SHA256 (xpi/firefox-i18n-55.0b12/eo.xpi) = ebc0cc97e38957ce356d97576c60c5e48bc186e2e7f03de48f4a0b7759e6ecd2 >+SIZE (xpi/firefox-i18n-55.0b12/eo.xpi) = 460805 >+SHA256 (xpi/firefox-i18n-55.0b12/es-AR.xpi) = 7d5898f82fb5b38d0b5d4c016dcb4e2e64691b76c4b4db4b27fdf368fbfdeaa1 >+SIZE (xpi/firefox-i18n-55.0b12/es-AR.xpi) = 467616 >+SHA256 (xpi/firefox-i18n-55.0b12/es-CL.xpi) = c5aca3a3ca23b0ff91088fa9245b28f47ad02ea388280b4741f0c0bab93def34 >+SIZE (xpi/firefox-i18n-55.0b12/es-CL.xpi) = 471597 >+SHA256 (xpi/firefox-i18n-55.0b12/es-ES.xpi) = fa4b625d0ac52ee0439f5816a0f930a8040a5c567ca4cc42a837062878c60360 >+SIZE (xpi/firefox-i18n-55.0b12/es-ES.xpi) = 359821 >+SHA256 (xpi/firefox-i18n-55.0b12/es-MX.xpi) = de2141443605977213156c52f444fc303270a7b11a38b430bc372a7a2517adff >+SIZE (xpi/firefox-i18n-55.0b12/es-MX.xpi) = 474243 >+SHA256 (xpi/firefox-i18n-55.0b12/et.xpi) = 587ad99f6eade2a618f3b96da9982ffc755814357c439ee31467f9881c8eaef3 >+SIZE (xpi/firefox-i18n-55.0b12/et.xpi) = 454469 >+SHA256 (xpi/firefox-i18n-55.0b12/eu.xpi) = 97e99a37621b91a45bd6991b9e6c6ba1c1cdfe30068b762b3f4e25b845c6a230 >+SIZE (xpi/firefox-i18n-55.0b12/eu.xpi) = 460411 >+SHA256 (xpi/firefox-i18n-55.0b12/fa.xpi) = 31856d763a57018001984e57e7e591e8b334b0b6e8549b467ea8f93d833fcd54 >+SIZE (xpi/firefox-i18n-55.0b12/fa.xpi) = 511558 >+SHA256 (xpi/firefox-i18n-55.0b12/ff.xpi) = 81bbf7de99e9e899342d0d8f66eb63b3e72ef58d9ed3c30181cbbf930e0d0598 >+SIZE (xpi/firefox-i18n-55.0b12/ff.xpi) = 455293 >+SHA256 (xpi/firefox-i18n-55.0b12/fi.xpi) = e15364692622a02033203d7cf2a05daa5af7085955598a7b6f44054663a92996 >+SIZE (xpi/firefox-i18n-55.0b12/fi.xpi) = 453945 >+SHA256 (xpi/firefox-i18n-55.0b12/fr.xpi) = ead48ad58fd3527b88490712a2fd223eb90c6bf47373e6199a9917e672e0cd9e >+SIZE (xpi/firefox-i18n-55.0b12/fr.xpi) = 476667 >+SHA256 (xpi/firefox-i18n-55.0b12/fy-NL.xpi) = 885e9b329af8fbc6d6a26b49f70fe84015a825594466160dfca067e38c19c484 >+SIZE (xpi/firefox-i18n-55.0b12/fy-NL.xpi) = 469966 >+SHA256 (xpi/firefox-i18n-55.0b12/ga-IE.xpi) = edbed7083dcaab21534136b234d6d98bc1d897848c5ce10ab312bdd0657029d2 >+SIZE (xpi/firefox-i18n-55.0b12/ga-IE.xpi) = 481438 >+SHA256 (xpi/firefox-i18n-55.0b12/gd.xpi) = a72dcf1a30cc7424c1ea8cd62e2ef7e969006d40976a706808c636f273a011c1 >+SIZE (xpi/firefox-i18n-55.0b12/gd.xpi) = 469053 >+SHA256 (xpi/firefox-i18n-55.0b12/gl.xpi) = a28780f9e66adc33ddc245fe25c03cdd9a88a59115fa9eebb3596f34d56a668c >+SIZE (xpi/firefox-i18n-55.0b12/gl.xpi) = 459110 >+SHA256 (xpi/firefox-i18n-55.0b12/gn.xpi) = 7d402bb9114a13c32ea271bee8aa72cba04a4a9952eebdb5b3589d0592afc391 >+SIZE (xpi/firefox-i18n-55.0b12/gn.xpi) = 476199 >+SHA256 (xpi/firefox-i18n-55.0b12/gu-IN.xpi) = e2eb8a4b460b381dc635f50f03b5ae96201757932d1eb7aa5e7aa5ce206c4543 >+SIZE (xpi/firefox-i18n-55.0b12/gu-IN.xpi) = 498980 >+SHA256 (xpi/firefox-i18n-55.0b12/he.xpi) = 525fbd4aaa9b2ac5597bbb3c2aa5d8e9ed8e13877c2d2263def236b70cb868cd >+SIZE (xpi/firefox-i18n-55.0b12/he.xpi) = 479881 >+SHA256 (xpi/firefox-i18n-55.0b12/hi-IN.xpi) = e205400747907e491492ea07e6404b20b8abe3116d91acdc932c606508cd1d4a >+SIZE (xpi/firefox-i18n-55.0b12/hi-IN.xpi) = 530570 >+SHA256 (xpi/firefox-i18n-55.0b12/hr.xpi) = 23d7c35c153cd84a9cbfb11dcf0a0e179f107eb5c05b2dd839a79566922d363f >+SIZE (xpi/firefox-i18n-55.0b12/hr.xpi) = 467991 >+SHA256 (xpi/firefox-i18n-55.0b12/hsb.xpi) = fc5ad1a846e4055557d0284baf0911324b35843599a5c4a9c66e9696061616a9 >+SIZE (xpi/firefox-i18n-55.0b12/hsb.xpi) = 479795 >+SHA256 (xpi/firefox-i18n-55.0b12/hu.xpi) = d5940d15f88fd97f995305625f30498810fa9f7864d626228878e94431a35e48 >+SIZE (xpi/firefox-i18n-55.0b12/hu.xpi) = 481645 >+SHA256 (xpi/firefox-i18n-55.0b12/hy-AM.xpi) = 8e0d88fcc6f7a8f875ff4d0a7a1468b378c478f64afba3845d417b77801f89c1 >+SIZE (xpi/firefox-i18n-55.0b12/hy-AM.xpi) = 520881 >+SHA256 (xpi/firefox-i18n-55.0b12/id.xpi) = af3762a24d823e8a6fa7a7e3b39e153f4367f216bd898c735bc2293c0199a5cc >+SIZE (xpi/firefox-i18n-55.0b12/id.xpi) = 450290 >+SHA256 (xpi/firefox-i18n-55.0b12/is.xpi) = 5959270e33b75fdd3e97ea290cf89376f3e961af903894382bdf72931cafc9dd >+SIZE (xpi/firefox-i18n-55.0b12/is.xpi) = 464368 >+SHA256 (xpi/firefox-i18n-55.0b12/it.xpi) = 8af60800948121f39602781ef96302f72e54fcd039e60cd36c0aa51bd9fdd1de >+SIZE (xpi/firefox-i18n-55.0b12/it.xpi) = 352940 >+SHA256 (xpi/firefox-i18n-55.0b12/ja.xpi) = f8b625327969faa01923e7c00d6af2ccb9781caf5fc7d6f124f7182b78fe1fb0 >+SIZE (xpi/firefox-i18n-55.0b12/ja.xpi) = 519762 >+SHA256 (xpi/firefox-i18n-55.0b12/ka.xpi) = 64f06410fb47eb4be0bdc4b5a4fc3cebea70713628907d4f94a32023da10870c >+SIZE (xpi/firefox-i18n-55.0b12/ka.xpi) = 493535 >+SHA256 (xpi/firefox-i18n-55.0b12/kab.xpi) = bfebc9878e6d378b631428a03de712755563cb3f739bb1e62b2ecc726111cedc >+SIZE (xpi/firefox-i18n-55.0b12/kab.xpi) = 470042 >+SHA256 (xpi/firefox-i18n-55.0b12/kk.xpi) = a25e5afcf1394bb9c8e6774dd40b392bcbda7fe59b886965b8f25fd94fc6e650 >+SIZE (xpi/firefox-i18n-55.0b12/kk.xpi) = 526706 >+SHA256 (xpi/firefox-i18n-55.0b12/km.xpi) = 267a0cff346dd8561281aaeceb4bc1f2203a1eec3a4b73aadd7e33ae6bf1f212 >+SIZE (xpi/firefox-i18n-55.0b12/km.xpi) = 540646 >+SHA256 (xpi/firefox-i18n-55.0b12/kn.xpi) = afe4d2ceef184c3e567647a57adfb6ed6487ee79b792b9a37fb78c60e27bc88b >+SIZE (xpi/firefox-i18n-55.0b12/kn.xpi) = 538858 >+SHA256 (xpi/firefox-i18n-55.0b12/ko.xpi) = 969d68b798cc690f248acbb91146b40fe30339a48f30d35b36e98e668c6d5149 >+SIZE (xpi/firefox-i18n-55.0b12/ko.xpi) = 494546 >+SHA256 (xpi/firefox-i18n-55.0b12/lij.xpi) = 8d6974480d960043afdc8c6781656947cf2aea1d46d970ea4867e69874c39323 >+SIZE (xpi/firefox-i18n-55.0b12/lij.xpi) = 458696 >+SHA256 (xpi/firefox-i18n-55.0b12/lt.xpi) = 88439ddd1956657bb6e306ed6ac3db1631f85899c63a0858c8f8b28340201d46 >+SIZE (xpi/firefox-i18n-55.0b12/lt.xpi) = 481080 >+SHA256 (xpi/firefox-i18n-55.0b12/lv.xpi) = 4af79671acdc5bb44293616356bf670bfeecf3f4f3c3de933948e33106e63f07 >+SIZE (xpi/firefox-i18n-55.0b12/lv.xpi) = 473735 >+SHA256 (xpi/firefox-i18n-55.0b12/mai.xpi) = 9fba795da5e6c0b5b8509f375ba0d6065b1e43d46e390c48c694604b7d7be30d >+SIZE (xpi/firefox-i18n-55.0b12/mai.xpi) = 517893 >+SHA256 (xpi/firefox-i18n-55.0b12/mk.xpi) = 8350e5f4e59a0d54c9d515aa49001bd46be215c910d5ac9be41e09f399c7bf47 >+SIZE (xpi/firefox-i18n-55.0b12/mk.xpi) = 500206 >+SHA256 (xpi/firefox-i18n-55.0b12/ml.xpi) = 04a4793fffc8e8493f1aec38db6441d075cd91652c2df17fc542c23234b0cf87 >+SIZE (xpi/firefox-i18n-55.0b12/ml.xpi) = 540980 >+SHA256 (xpi/firefox-i18n-55.0b12/mr.xpi) = f577f2ca438495a3b0ceeb37cb418aaea913cdaad522e438a9c2d3b0caa1eda4 >+SIZE (xpi/firefox-i18n-55.0b12/mr.xpi) = 528247 >+SHA256 (xpi/firefox-i18n-55.0b12/ms.xpi) = fb9f846025c39cb11eb805d854ab7e6794103459fa422820590d7f58c3ab54fe >+SIZE (xpi/firefox-i18n-55.0b12/ms.xpi) = 459191 >+SHA256 (xpi/firefox-i18n-55.0b12/my.xpi) = be9a8d540ba137a585ca1696d343a8bba227660ef5a4b07b4696a391c0aff95a >+SIZE (xpi/firefox-i18n-55.0b12/my.xpi) = 528097 >+SHA256 (xpi/firefox-i18n-55.0b12/nb-NO.xpi) = de2d0d8f9404c77ebbded3dfac4b55870fdc2b528e29043b92c5ac26e00f42ca >+SIZE (xpi/firefox-i18n-55.0b12/nb-NO.xpi) = 457645 >+SHA256 (xpi/firefox-i18n-55.0b12/nl.xpi) = 6098c9a7731d75965c2c325853875b609b8cb5c80653e40ce39f2d01fab704f4 >+SIZE (xpi/firefox-i18n-55.0b12/nl.xpi) = 461510 >+SHA256 (xpi/firefox-i18n-55.0b12/nn-NO.xpi) = 8697e4ed570e1c36da60c3b268d0de25b7c82681de7733a0d79a64f180d22672 >+SIZE (xpi/firefox-i18n-55.0b12/nn-NO.xpi) = 458456 >+SHA256 (xpi/firefox-i18n-55.0b12/or.xpi) = 5683e5ed101544d1ff0c0c84cf218747af96a69bf13060af45b1d92a72690d40 >+SIZE (xpi/firefox-i18n-55.0b12/or.xpi) = 511354 >+SHA256 (xpi/firefox-i18n-55.0b12/pa-IN.xpi) = 54e8ab26ff52e8e115c599d2b16c595e44d36be720363aaecd17aeabbc3cb021 >+SIZE (xpi/firefox-i18n-55.0b12/pa-IN.xpi) = 498452 >+SHA256 (xpi/firefox-i18n-55.0b12/pl.xpi) = cdb65904da04416c3815e3e6bb5af848f23ca660d3b5ad9be24573d84cbe217b >+SIZE (xpi/firefox-i18n-55.0b12/pl.xpi) = 372428 >+SHA256 (xpi/firefox-i18n-55.0b12/pt-BR.xpi) = 5db0810472aaac7b31dc15f1114323e4c5ae7e9218edaf3644d756530ae5932d >+SIZE (xpi/firefox-i18n-55.0b12/pt-BR.xpi) = 462715 >+SHA256 (xpi/firefox-i18n-55.0b12/pt-PT.xpi) = 31e8c88f28e463409ed0d5fb59ac10c591dcf63cbec3b598bfbab410f75c6dce >+SIZE (xpi/firefox-i18n-55.0b12/pt-PT.xpi) = 465235 >+SHA256 (xpi/firefox-i18n-55.0b12/rm.xpi) = 668485fa3afc2ef38682211685922f93201dadba88bb166952c11431bbc1fec5 >+SIZE (xpi/firefox-i18n-55.0b12/rm.xpi) = 458263 >+SHA256 (xpi/firefox-i18n-55.0b12/ro.xpi) = 60d75916b2f1d7ffb559e7720ed63025684a0abcc5e35511a764f92a99673e6c >+SIZE (xpi/firefox-i18n-55.0b12/ro.xpi) = 462971 >+SHA256 (xpi/firefox-i18n-55.0b12/ru.xpi) = f38b4281c3a62b348965cd7c4fde596d28aef8fc8ce509bdaedcef6818c1278b >+SIZE (xpi/firefox-i18n-55.0b12/ru.xpi) = 530900 >+SHA256 (xpi/firefox-i18n-55.0b12/si.xpi) = e89910ed839a61d0cbfb43402c458a6319b5b6f163877ff44a0cc29286299c44 >+SIZE (xpi/firefox-i18n-55.0b12/si.xpi) = 508351 >+SHA256 (xpi/firefox-i18n-55.0b12/sk.xpi) = 2fae3a34aa53daa5b00084a7a8eaf9ebd6595d7e89a3872d7d0ced476375d0c9 >+SIZE (xpi/firefox-i18n-55.0b12/sk.xpi) = 487582 >+SHA256 (xpi/firefox-i18n-55.0b12/sl.xpi) = b8bb0f4128a71278950d4e6201b6fe34c52adb4237ac951de263c7b62a125f13 >+SIZE (xpi/firefox-i18n-55.0b12/sl.xpi) = 465759 >+SHA256 (xpi/firefox-i18n-55.0b12/son.xpi) = 215d8211b5b286b04125ac7fc5d3e3ddb5594466470f3524e6e7afaea3fd8ae2 >+SIZE (xpi/firefox-i18n-55.0b12/son.xpi) = 456957 >+SHA256 (xpi/firefox-i18n-55.0b12/sq.xpi) = f7f67f2d19eb586a0e8f358f395181829ac30a513b29e7f1259a97a6163ac4ab >+SIZE (xpi/firefox-i18n-55.0b12/sq.xpi) = 470631 >+SHA256 (xpi/firefox-i18n-55.0b12/sr.xpi) = 6b462412d395ab6f49e40a8ed9abdb19a064f47a2b992824562654bee13c4ad0 >+SIZE (xpi/firefox-i18n-55.0b12/sr.xpi) = 494877 >+SHA256 (xpi/firefox-i18n-55.0b12/sv-SE.xpi) = 26f65ba73f3fee23140fa46a986fe6c8dba3910114f8962c36b13c1d7ab973d9 >+SIZE (xpi/firefox-i18n-55.0b12/sv-SE.xpi) = 466007 >+SHA256 (xpi/firefox-i18n-55.0b12/ta.xpi) = f8058a2804dd6737718477ab204d962d43368b5f372d69d89f06d58a4b4688ee >+SIZE (xpi/firefox-i18n-55.0b12/ta.xpi) = 519995 >+SHA256 (xpi/firefox-i18n-55.0b12/te.xpi) = 807dcf7ff3b8962e1822834d82c0888017d73f79a8c8e341635dc57d9244c8d4 >+SIZE (xpi/firefox-i18n-55.0b12/te.xpi) = 541170 >+SHA256 (xpi/firefox-i18n-55.0b12/th.xpi) = 3d528652fa5e09ff0d65443e1463ccdcd34db6abae8a1003dedc4f4e915496e4 >+SIZE (xpi/firefox-i18n-55.0b12/th.xpi) = 511901 >+SHA256 (xpi/firefox-i18n-55.0b12/tr.xpi) = e119ccb9ec461c6ba3a5ed1d62bb8b863e5253871cf505bdd2b2acbeb6d4b55d >+SIZE (xpi/firefox-i18n-55.0b12/tr.xpi) = 472160 >+SHA256 (xpi/firefox-i18n-55.0b12/uk.xpi) = 0da5c557aeae18f2571b1acdfa9b9a30fd9a3bc4be1ba67f6ce344a42f1c6441 >+SIZE (xpi/firefox-i18n-55.0b12/uk.xpi) = 526436 >+SHA256 (xpi/firefox-i18n-55.0b12/ur.xpi) = 198053681dc0a365a3f737c138a2a7be5abca01ca6e9e2f6932ffdad95afcc18 >+SIZE (xpi/firefox-i18n-55.0b12/ur.xpi) = 520745 >+SHA256 (xpi/firefox-i18n-55.0b12/uz.xpi) = 751338ee9e23b29043530ac2b3de2e19f4c55d55ef57c65bebc9fcc9d19633e5 >+SIZE (xpi/firefox-i18n-55.0b12/uz.xpi) = 467669 >+SHA256 (xpi/firefox-i18n-55.0b12/vi.xpi) = 0cca33b87cfa715c4b95ea05e279296beb356d99ee6c2907af0c8cb09baf1c18 >+SIZE (xpi/firefox-i18n-55.0b12/vi.xpi) = 474775 >+SHA256 (xpi/firefox-i18n-55.0b12/xh.xpi) = c3b78d39f3a4f25d89e2ae8d7a34d4510501a45a99d01db8f7ababe35a6c0e42 >+SIZE (xpi/firefox-i18n-55.0b12/xh.xpi) = 470719 >+SHA256 (xpi/firefox-i18n-55.0b12/zh-CN.xpi) = 727d2d871f4fc1df0a9581b8f0ce3f5eae812520c6791bed0e277a40710d4c74 >+SIZE (xpi/firefox-i18n-55.0b12/zh-CN.xpi) = 490383 >+SHA256 (xpi/firefox-i18n-55.0b12/zh-TW.xpi) = c1b771ab7056996d2c51419a720ac62202cafe1216268bb7f28ae9743229f8be >+SIZE (xpi/firefox-i18n-55.0b12/zh-TW.xpi) = 489345 >diff --git a/www/firefox/Makefile b/www/firefox/Makefile >index 5bca600e7a7e..0fc290d29518 100644 >--- a/www/firefox/Makefile >+++ b/www/firefox/Makefile >@@ -2,9 +2,8 @@ > # $FreeBSD$ > > PORTNAME= firefox >-DISTVERSION= 54.0.1 >+DISTVERSION= 55.0b12 > DISTVERSIONSUFFIX=.source >-PORTREVISION= 1 > PORTEPOCH= 1 > CATEGORIES= www ipv6 > MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \ >@@ -13,15 +12,15 @@ MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \ > MAINTAINER= gecko@FreeBSD.org > COMMENT= Web browser based on the browser portion of Mozilla > >-BUILD_DEPENDS= nspr>=4.14:devel/nspr \ >- nss>=3.30.2:security/nss \ >+BUILD_DEPENDS= nspr>=4.15:devel/nspr \ >+ nss>=3.31:security/nss \ > libevent>=2.0.22:devel/libevent \ >- harfbuzz>=1.4.3:print/harfbuzz \ >+ harfbuzz>=1.4.6:print/harfbuzz \ > graphite2>=1.3.10:graphics/graphite2 \ > png>=1.6.28:graphics/png \ > libvorbis>=1.3.5,3:audio/libvorbis \ > libvpx>=1.5.0:multimedia/libvpx \ >- sqlite3>=3.17.0:databases/sqlite3 \ >+ sqlite3>=3.19.2:databases/sqlite3 \ > ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3 \ > v4l_compat>0:multimedia/v4l_compat \ > autoconf-2.13:devel/autoconf213 \ >@@ -47,6 +46,7 @@ MOZ_OPTIONS= --enable-application=browser \ > > OPTIONS_DEFINE= RUST > OPTIONS_DEFAULT= BUNDLED_CAIRO >+OPTIONS_EXCLUDE= GNOMEUI > # XXX lang/rust and devel/cargo currently build only on these platforms > OPTIONS_DEFAULT_aarch64=RUST > OPTIONS_DEFAULT_amd64= RUST >diff --git a/www/firefox/distinfo b/www/firefox/distinfo >index 59fb3cb34dac..a226f22dc96e 100644 >--- a/www/firefox/distinfo >+++ b/www/firefox/distinfo >@@ -1,3 +1,3 @@ >-TIMESTAMP = 1498670356 >-SHA256 (firefox-54.0.1.source.tar.xz) = 07843e68f2f64842bb230b7fe821e45c82944e64dc3f2a3a90d3ea9f1efa7f77 >-SIZE (firefox-54.0.1.source.tar.xz) = 229935420 >+TIMESTAMP = 1500917547 >+SHA256 (firefox-55.0b12.source.tar.xz) = 3a3bdf48bb258f3324cf4fd637334eb6c935aaf0370350c4bc986776648bc192 >+SIZE (firefox-55.0b12.source.tar.xz) = 236503384 >diff --git a/www/firefox/files/patch-bug1021761 b/www/firefox/files/patch-bug1021761 >index e59fce618f00..f0764a8c4b22 100644 >--- a/www/firefox/files/patch-bug1021761 >+++ b/www/firefox/files/patch-bug1021761 >@@ -122,7 +122,18 @@ index 57bcb4c13652..68be024f4a68 100644 > > static int > validate_stream_params(cubeb_stream_params * input_stream_params, >-@@ -138,6 +141,9 @@ cubeb_init(cubeb ** context, char const * context_name) >+@@ -155,6 +158,10 @@ cubeb_init(cubeb ** context, char const * context_name, char const * backend_nam >+ #if defined(USE_KAI) >+ init_oneshot = kai_init; >+ #endif >++ } else if (!strcmp(backend_name, "oss")) { >++#if defined(USE_OSS) >++ init_oneshot = oss_init; >++#endif >+ } else { >+ /* Already set */ >+ } >+@@ -196,6 +203,9 @@ cubeb_init(cubeb ** context, char const * context_name, char const * backend_nam > #if defined(USE_KAI) > kai_init, > #endif >@@ -246,7 +257,7 @@ index 05ad27fef53b..3ea78e994f59 100644 > + char * buftail = stm->buffer + WRAP(snd_pcm_frames_to_bytes)(stm->pcm, stm->bufframes); > > /* Correct read size to the other stream available frames */ >- if (stm->other_stream && got > stm->other_stream->bufframes) { >+ if (stm->other_stream && got > (snd_pcm_sframes_t) stm->other_stream->bufframes) { > @@ -372,8 +421,8 @@ alsa_process_stream(cubeb_stream * stm) > long drain_frames = avail - stm->bufframes; > double drain_time = (double) drain_frames / stm->params.rate; >@@ -579,7 +590,7 @@ index 05ad27fef53b..3ea78e994f59 100644 > + r = WRAP(snd_pcm_poll_descriptors)(stm->pcm, stm->saved_fds, stm->nfds); > assert((nfds_t) r == stm->nfds); > >- r = pthread_cond_init(&stm->cond, NULL); >+ if (alsa_register_stream(ctx, stm) != 0) { > @@ -1048,7 +1156,7 @@ alsa_stream_destroy(cubeb_stream * stm) > pthread_mutex_lock(&stm->mutex); > if (stm->pcm) { >@@ -1182,29 +1193,14 @@ diff --git media/libcubeb/update.sh media/libcubeb/update.sh > index b139b8f497fd..d1f8a223c6d8 100755 > --- media/libcubeb/update.sh > +++ media/libcubeb/update.sh >-@@ -17,6 +17,7 @@ cp $1/src/cubeb_audiounit.cpp src >- cp $1/src/cubeb_osx_run_loop.h src >- cp $1/src/cubeb_jack.cpp src >+@@ -20,6 +20,7 @@ cp $1/src/cubeb_log.h src >+ cp $1/src/cubeb_mixer.cpp src >+ cp $1/src/cubeb_mixer.h src > cp $1/src/cubeb_opensl.c src > +cp $1/src/cubeb_oss.c src >- cp $1/src/cubeb_array_queue.h src >+ cp $1/src/cubeb_osx_run_loop.h src > cp $1/src/cubeb_panner.cpp src > cp $1/src/cubeb_panner.h src >-diff --git media/webrtc/signaling/test/common.build media/webrtc/signaling/test/common.build >-index 3e5450f5d63a..dd45427f655a 100644 >---- media/webrtc/signaling/test/common.build >-+++ media/webrtc/signaling/test/common.build >-@@ -99,8 +99,8 @@ USE_LIBS += ['mozglue'] >- OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS'] >- OS_LIBS += CONFIG['REALTIME_LIBS'] >- >--if CONFIG['MOZ_ALSA']: >-- OS_LIBS += CONFIG['MOZ_ALSA_LIBS'] >-+if CONFIG['MOZ_OSS']: >-+ OS_LIBS += CONFIG['MOZ_OSS_LIBS'] >- >- if CONFIG['MOZ_SYSTEM_JPEG']: >- OS_LIBS += CONFIG['MOZ_JPEG_LIBS'] > diff --git toolkit/library/moz.build toolkit/library/moz.build > index a61c689c83c3..7764df6f8a6b 100644 > --- toolkit/library/moz.build >diff --git a/www/firefox/files/patch-bug1312182 b/www/firefox/files/patch-bug1312182 >new file mode 100644 >index 000000000000..9c2b65f06d65 >--- /dev/null >+++ b/www/firefox/files/patch-bug1312182 >@@ -0,0 +1,376 @@ >+commit 0d02dac1638ad >+Author: Alessio Placitelli <alessio.placitelli@gmail.com> >+Date: Tue May 30 10:42:42 2017 +0200 >+ >+ Bug 1312182 - Consolidate the uses of MOZ_TELEMETRY_REPORTING in the code. r=flod,gfritzsche,jaws >+ >+ The MOZ_TELEMETRY_REPORTING define does not control whether or not Telemetry is enabled >+ but rather if it will send the gathered data to Mozilla servers. We still want to >+ display the about:preferences options and let developers know about this behaviour. >+ Please note that this patch is not changing any behaviour: it's only making it explicit >+ by showing the options as disabled rather than hiding them. >+ >+ MozReview-Commit-ID: 7A0y0E0hm0Q >+ >+ --HG-- >+ extra : rebase_source : 36d1a7f5ec5c05b43731daf9507d3068fe7674ee >+--- >+ browser/base/content/baseMenuOverlay.xul | 2 +- >+ browser/components/nsBrowserGlue.js | 8 +-- >+ .../components/preferences/in-content-new/main.xul | 2 - >+ .../preferences/in-content-new/privacy.js | 32 +++++------ >+ .../preferences/in-content-new/privacy.xul | 14 ++--- >+ .../components/preferences/in-content/advanced.js | 63 +++++++++++----------- >+ .../components/preferences/in-content/advanced.xul | 7 ++- >+ .../chrome/browser/preferences-old/advanced.dtd | 5 ++ >+ .../en-US/chrome/browser/preferences/advanced.dtd | 5 ++ >+ 9 files changed, 67 insertions(+), 71 deletions(-) >+ >+diff --git browser/base/content/baseMenuOverlay.xul browser/base/content/baseMenuOverlay.xul >+index 1befa2bb66cc..804bbdebb797 100644 >+--- browser/base/content/baseMenuOverlay.xul >++++ browser/base/content/baseMenuOverlay.xul >+@@ -61,7 +61,7 @@ >+ onclick="checkForMiddleClick(this, event);" >+ label="&helpKeyboardShortcuts.label;" >+ accesskey="&helpKeyboardShortcuts.accesskey;"/> >+-#ifdef MOZ_TELEMETRY_REPORTING >++#ifdef MOZ_SERVICES_HEALTHREPORT >+ <menuitem id="healthReport" >+ label="&healthReport2.label;" >+ accesskey="&healthReport2.accesskey;" >+diff --git browser/components/nsBrowserGlue.js browser/components/nsBrowserGlue.js >+index 554c279356b9..1c21bf4c4323 100644 >+--- browser/components/nsBrowserGlue.js >++++ browser/components/nsBrowserGlue.js >+@@ -528,9 +528,7 @@ BrowserGlue.prototype = { >+ os.addObserver(this, "distribution-customization-complete"); >+ os.addObserver(this, "handle-xul-text-link"); >+ os.addObserver(this, "profile-before-change"); >+- if (AppConstants.MOZ_TELEMETRY_REPORTING) { >+- os.addObserver(this, "keyword-search"); >+- } >++ os.addObserver(this, "keyword-search"); >+ os.addObserver(this, "browser-search-engine-modified"); >+ os.addObserver(this, "restart-in-safe-mode"); >+ os.addObserver(this, "flash-plugin-hang"); >+@@ -583,9 +581,7 @@ BrowserGlue.prototype = { >+ os.removeObserver(this, "places-database-locked"); >+ os.removeObserver(this, "handle-xul-text-link"); >+ os.removeObserver(this, "profile-before-change"); >+- if (AppConstants.MOZ_TELEMETRY_REPORTING) { >+- os.removeObserver(this, "keyword-search"); >+- } >++ os.removeObserver(this, "keyword-search"); >+ os.removeObserver(this, "browser-search-engine-modified"); >+ os.removeObserver(this, "flash-plugin-hang"); >+ os.removeObserver(this, "xpi-signature-changed"); >+diff --git browser/components/preferences/in-content-new/main.xul browser/components/preferences/in-content-new/main.xul >+index e89ee1891c91..8672557bede2 100644 >+--- browser/components/preferences/in-content-new/main.xul >++++ browser/components/preferences/in-content-new/main.xul >+@@ -183,11 +183,9 @@ >+ name="layout.spellcheckDefault" >+ type="int"/> >+ >+-#ifdef MOZ_TELEMETRY_REPORTING >+ <preference id="toolkit.telemetry.enabled" >+ name="toolkit.telemetry.enabled" >+ type="bool"/> >+-#endif >+ >+ <preference id="browser.preferences.defaultPerformanceSettings.enabled" >+ name="browser.preferences.defaultPerformanceSettings.enabled" >+diff --git browser/components/preferences/in-content-new/privacy.js browser/components/preferences/in-content-new/privacy.js >+index be057bfad611..73f72391b991 100644 >+--- browser/components/preferences/in-content-new/privacy.js >++++ browser/components/preferences/in-content-new/privacy.js >+@@ -321,11 +321,9 @@ var gPrivacyPane = { >+ this.initSubmitCrashes(); >+ } >+ this.initTelemetry(); >+- if (AppConstants.MOZ_TELEMETRY_REPORTING) { >+- this.initSubmitHealthReport(); >+- setEventListener("submitHealthReportBox", "command", >+- gPrivacyPane.updateSubmitHealthReport); >+- } >++ this.initSubmitHealthReport(); >++ setEventListener("submitHealthReportBox", "command", >++ gPrivacyPane.updateSubmitHealthReport); >+ >+ // Append search keywords into the elements could open subdialogs. >+ let bundlePrefs = document.getElementById("bundlePreferences"); >+@@ -1414,8 +1412,10 @@ var gPrivacyPane = { >+ * In all cases, set up the Learn More link sanely. >+ */ >+ initTelemetry() { >+- if (AppConstants.MOZ_TELEMETRY_REPORTING) { >+- this._setupLearnMoreLink("toolkit.telemetry.infoURL", "telemetryLearnMore"); >++ this._setupLearnMoreLink("toolkit.telemetry.infoURL", "telemetryLearnMore"); >++ // If we're not sending any Telemetry, disable the telemetry upload checkbox as well. >++ if (!AppConstants.MOZ_TELEMETRY_REPORTING) { >++ document.getElementById("submitTelemetryBox").setAttribute("disabled", "true"); >+ } >+ }, >+ >+@@ -1439,9 +1439,6 @@ var gPrivacyPane = { >+ * @param {Boolean} aEnabled False disables the controls, true enables them. >+ */ >+ setTelemetrySectionEnabled(aEnabled) { >+- if (!AppConstants.MOZ_TELEMETRY_REPORTING) { >+- return; >+- } >+ // If FHR is disabled, additional data sharing should be disabled as well. >+ let disabled = !aEnabled; >+ document.getElementById("submitTelemetryBox").disabled = disabled; >+@@ -1456,19 +1453,21 @@ var gPrivacyPane = { >+ * Initialize the health report service reference and checkbox. >+ */ >+ initSubmitHealthReport() { >+- if (!AppConstants.MOZ_TELEMETRY_REPORTING) { >+- return; >+- } >+ this._setupLearnMoreLink("datareporting.healthreport.infoURL", "FHRLearnMore"); >+ >+ let checkbox = document.getElementById("submitHealthReportBox"); >+ >+- if (Services.prefs.prefIsLocked(PREF_UPLOAD_ENABLED)) { >++ // Telemetry is only sending data if MOZ_TELEMETRY_REPORTING is defined. >++ // We still want to display the preferences panel if that's not the case, but >++ // we want it to be disabled and unchecked. >++ if (Services.prefs.prefIsLocked(PREF_UPLOAD_ENABLED) || >++ !AppConstants.MOZ_TELEMETRY_REPORTING) { >+ checkbox.setAttribute("disabled", "true"); >+ return; >+ } >+ >+- checkbox.checked = Services.prefs.getBoolPref(PREF_UPLOAD_ENABLED); >++ checkbox.checked = Services.prefs.getBoolPref(PREF_UPLOAD_ENABLED) && >++ AppConstants.MOZ_TELEMETRY_REPORTING; >+ this.setTelemetrySectionEnabled(checkbox.checked); >+ }, >+ >+@@ -1476,9 +1475,6 @@ var gPrivacyPane = { >+ * Update the health report preference with state from checkbox. >+ */ >+ updateSubmitHealthReport() { >+- if (!AppConstants.MOZ_TELEMETRY_REPORTING) { >+- return; >+- } >+ let checkbox = document.getElementById("submitHealthReportBox"); >+ Services.prefs.setBoolPref(PREF_UPLOAD_ENABLED, checkbox.checked); >+ this.setTelemetrySectionEnabled(checkbox.checked); >+diff --git browser/components/preferences/in-content-new/privacy.xul browser/components/preferences/in-content-new/privacy.xul >+index 9d531bd8274b..8030567573f8 100644 >+--- browser/components/preferences/in-content-new/privacy.xul >++++ browser/components/preferences/in-content-new/privacy.xul >+@@ -760,9 +760,14 @@ >+ </groupbox> >+ >+ <!-- Data Choices --> >+-#ifdef MOZ_TELEMETRY_REPORTING >+-<groupbox id="historyGroup" data-category="panePrivacy" data-subcategory="reports" hidden="true"> >++#ifdef MOZ_DATA_REPORTING >++ >++<groupbox id="telemetryGroup" data-category="panePrivacy" data-subcategory="reports" hidden="true"> >+ <caption><label>&reports.label;</label></caption> >++#ifndef MOZ_TELEMETRY_REPORTING >++ <description id="TelemetryDisabledDesc" control="telemetryGroup">&healthReportingDisabled.label;</description> >++#endif >++ >+ <hbox align="center"> >+ <checkbox id="submitHealthReportBox" label="&enableHealthReport.label;" >+ accesskey="&enableHealthReport.accesskey;"/> >+@@ -782,14 +787,9 @@ >+ class="indent">&telemetryDesc.label;</description> >+ </vbox> >+ </groupbox> >+-#endif >+ >+-#ifdef MOZ_DATA_REPORTING >+ #ifdef MOZ_CRASHREPORTER >+ <groupbox id="crashReporterGroup" data-category="panePrivacy" data-subcategory="reports" hidden="true"> >+-#ifndef MOZ_TELEMETRY_REPORTING >+-<caption><label>&reports.label;</label></caption> >+-#endif >+ <hbox align="center"> >+ <checkbox id="automaticallySubmitCrashesBox" >+ preference="browser.crashReports.unsubmittedCheck.autoSubmit" >+diff --git browser/components/preferences/in-content/advanced.js browser/components/preferences/in-content/advanced.js >+index a6a2abaad9cf..9c7a2e716403 100644 >+--- browser/components/preferences/in-content/advanced.js >++++ browser/components/preferences/in-content/advanced.js >+@@ -46,9 +46,7 @@ var gAdvancedPane = { >+ this.initSubmitCrashes(); >+ } >+ this.initTelemetry(); >+- if (AppConstants.MOZ_TELEMETRY_REPORTING) { >+- this.initSubmitHealthReport(); >+- } >++ this.initSubmitHealthReport(); >+ this.updateOnScreenKeyboardVisibility(); >+ this.updateCacheSizeInputField(); >+ this.updateActualCacheSize(); >+@@ -78,10 +76,8 @@ var gAdvancedPane = { >+ gAdvancedPane.updateHardwareAcceleration); >+ setEventListener("advancedPrefs", "select", >+ gAdvancedPane.tabSelectionChanged); >+- if (AppConstants.MOZ_TELEMETRY_REPORTING) { >+- setEventListener("submitHealthReportBox", "command", >+- gAdvancedPane.updateSubmitHealthReport); >+- } >++ setEventListener("submitHealthReportBox", "command", >++ gAdvancedPane.updateSubmitHealthReport); >+ >+ setEventListener("connectionSettings", "command", >+ gAdvancedPane.showConnections); >+@@ -293,8 +289,10 @@ var gAdvancedPane = { >+ * In all cases, set up the Learn More link sanely. >+ */ >+ initTelemetry() { >+- if (AppConstants.MOZ_TELEMETRY_REPORTING) { >+- this._setupLearnMoreLink("toolkit.telemetry.infoURL", "telemetryLearnMore"); >++ this._setupLearnMoreLink("toolkit.telemetry.infoURL", "telemetryLearnMore"); >++ // If we're not sending any Telemetry, disable the telemetry upload checkbox as well. >++ if (!AppConstants.MOZ_TELEMETRY_REPORTING) { >++ document.getElementById("submitTelemetryBox").setAttribute("disabled", "true"); >+ } >+ }, >+ >+@@ -303,46 +301,45 @@ var gAdvancedPane = { >+ * @param {Boolean} aEnabled False disables the controls, true enables them. >+ */ >+ setTelemetrySectionEnabled(aEnabled) { >+- if (AppConstants.MOZ_TELEMETRY_REPORTING) { >+- // If FHR is disabled, additional data sharing should be disabled as well. >+- let disabled = !aEnabled; >+- document.getElementById("submitTelemetryBox").disabled = disabled; >+- if (disabled) { >+- // If we disable FHR, untick the telemetry checkbox. >+- Services.prefs.setBoolPref("toolkit.telemetry.enabled", false); >+- } >+- document.getElementById("telemetryDataDesc").disabled = disabled; >++ // If FHR is disabled, additional data sharing should be disabled as well. >++ let disabled = !aEnabled; >++ document.getElementById("submitTelemetryBox").disabled = disabled; >++ if (disabled) { >++ // If we disable FHR, untick the telemetry checkbox. >++ Services.prefs.setBoolPref("toolkit.telemetry.enabled", false); >+ } >++ document.getElementById("telemetryDataDesc").disabled = disabled; >+ }, >+ >+ /** >+ * Initialize the health report service reference and checkbox. >+ */ >+ initSubmitHealthReport() { >+- if (AppConstants.MOZ_TELEMETRY_REPORTING) { >+- this._setupLearnMoreLink("datareporting.healthreport.infoURL", "FHRLearnMore"); >+- >+- let checkbox = document.getElementById("submitHealthReportBox"); >++ this._setupLearnMoreLink("datareporting.healthreport.infoURL", "FHRLearnMore"); >+ >+- if (Services.prefs.prefIsLocked(PREF_UPLOAD_ENABLED)) { >+- checkbox.setAttribute("disabled", "true"); >+- return; >+- } >++ let checkbox = document.getElementById("submitHealthReportBox"); >+ >+- checkbox.checked = Services.prefs.getBoolPref(PREF_UPLOAD_ENABLED); >+- this.setTelemetrySectionEnabled(checkbox.checked); >++ // Telemetry is only sending data if MOZ_TELEMETRY_REPORTING is defined. >++ // We still want to display the preferences panel if that's not the case, but >++ // we want it to be disabled and unchecked. >++ if (Services.prefs.prefIsLocked(PREF_UPLOAD_ENABLED) || >++ !AppConstants.MOZ_TELEMETRY_REPORTING) { >++ checkbox.setAttribute("disabled", "true"); >++ return; >+ } >++ >++ checkbox.checked = Services.prefs.getBoolPref(PREF_UPLOAD_ENABLED) && >++ AppConstants.MOZ_TELEMETRY_REPORTING; >++ this.setTelemetrySectionEnabled(checkbox.checked); >+ }, >+ >+ /** >+ * Update the health report preference with state from checkbox. >+ */ >+ updateSubmitHealthReport() { >+- if (AppConstants.MOZ_TELEMETRY_REPORTING) { >+- let checkbox = document.getElementById("submitHealthReportBox"); >+- Services.prefs.setBoolPref(PREF_UPLOAD_ENABLED, checkbox.checked); >+- this.setTelemetrySectionEnabled(checkbox.checked); >+- } >++ let checkbox = document.getElementById("submitHealthReportBox"); >++ Services.prefs.setBoolPref(PREF_UPLOAD_ENABLED, checkbox.checked); >++ this.setTelemetrySectionEnabled(checkbox.checked); >+ }, >+ >+ updateOnScreenKeyboardVisibility() { >+diff --git browser/components/preferences/in-content/advanced.xul browser/components/preferences/in-content/advanced.xul >+index f2330223fb18..1b2c62168a59 100644 >+--- browser/components/preferences/in-content/advanced.xul >++++ browser/components/preferences/in-content/advanced.xul >+@@ -37,12 +37,9 @@ >+ <preference id="layout.spellcheckDefault" >+ name="layout.spellcheckDefault" >+ type="int"/> >+- >+-#ifdef MOZ_TELEMETRY_REPORTING >+ <preference id="toolkit.telemetry.enabled" >+ name="toolkit.telemetry.enabled" >+ type="bool"/> >+-#endif >+ >+ <!-- Data Choices tab --> >+ #ifdef MOZ_CRASHREPORTER >+@@ -189,6 +186,9 @@ >+ <!-- Data Choices --> >+ <tabpanel id="dataChoicesPanel" orient="vertical"> >+ #ifdef MOZ_TELEMETRY_REPORTING >++ <description>&healthReportingDisabled.label;</description> >++ <separator class="thin"/> >++#endif >+ <groupbox> >+ <caption> >+ <checkbox id="submitHealthReportBox" label="&enableHealthReport.label;" >+@@ -216,7 +216,6 @@ >+ </hbox> >+ </vbox> >+ </groupbox> >+-#endif >+ #ifdef MOZ_CRASHREPORTER >+ <groupbox> >+ <caption> >+diff --git browser/locales/en-US/chrome/browser/preferences-old/advanced.dtd browser/locales/en-US/chrome/browser/preferences-old/advanced.dtd >+index 215b800d3385..bf23c4fd251f 100644 >+--- browser/locales/en-US/chrome/browser/preferences-old/advanced.dtd >++++ browser/locales/en-US/chrome/browser/preferences-old/advanced.dtd >+@@ -28,6 +28,11 @@ >+ >+ <!ENTITY dataChoicesTab.label "Data Choices"> >+ >++<!-- LOCALIZATION NOTE (healthReportingDisabled.label): This message is displayed above >++disabled data sharing options in developer builds or builds with no Telemetry support >++available. --> >++<!ENTITY healthReportingDisabled.label "Data reporting is disabled for this build configuration"> >++ >+ <!ENTITY healthReportDesc.label "Helps you understand your browser performance and shares data with &vendorShortName; about your browser health"> >+ <!ENTITY enableHealthReport.label "Enable &brandShortName; Health Report"> >+ <!ENTITY enableHealthReport.accesskey "R"> >+diff --git browser/locales/en-US/chrome/browser/preferences/advanced.dtd browser/locales/en-US/chrome/browser/preferences/advanced.dtd >+index 58a6b38630cf..6c478e48244a 100644 >+--- browser/locales/en-US/chrome/browser/preferences/advanced.dtd >++++ browser/locales/en-US/chrome/browser/preferences/advanced.dtd >+@@ -28,6 +28,11 @@ >+ >+ <!ENTITY dataChoicesTab.label "Data Choices"> >+ >++<!-- LOCALIZATION NOTE (healthReportingDisabled.label): This message is displayed above >++disabled data sharing options in developer builds or builds with no Telemetry support >++available. --> >++<!ENTITY healthReportingDisabled.label "Data reporting is disabled for this build configuration"> >++ >+ <!ENTITY healthReportDesc.label "Helps you understand your browser performance and shares data with &vendorShortName; about your browser health"> >+ <!ENTITY enableHealthReport.label "Enable &brandShortName; Health Report"> >+ <!ENTITY enableHealthReport.accesskey "R"> >diff --git a/www/firefox/files/patch-bug1356709 b/www/firefox/files/patch-bug1356709 >deleted file mode 100644 >index b795836a4ad4..000000000000 >--- a/www/firefox/files/patch-bug1356709 >+++ /dev/null >@@ -1,170 +0,0 @@ >-commit acc36099bfc1 >-Author: Steve Fink <sfink@mozilla.com> >-Date: Mon Apr 17 21:04:08 2017 -0700 >- >- Bug 1356709 - Fix uses of uninitialized values in arm64 code, r=sstangl >- >- --HG-- >- extra : rebase_source : 2f9a59c88f21dd467fbc4232e2f6b20850fd53ed >- extra : histedit_source : b5110806cf04a3ca056ea89709bcc707368a2e57 >---- >- js/src/jit/arm64/MacroAssembler-arm64.cpp | 4 +++- >- js/src/jit/arm64/vixl/Debugger-vixl.cpp | 10 ++++++---- >- js/src/jit/arm64/vixl/Decoder-vixl.cpp | 12 ++++++------ >- js/src/jit/arm64/vixl/Instrument-vixl.cpp | 4 +++- >- js/src/jit/arm64/vixl/MozSimulator-vixl.cpp | 8 ++++++-- >- 5 files changed, 24 insertions(+), 14 deletions(-) >- >-diff --git js/src/jit/arm64/MacroAssembler-arm64.cpp js/src/jit/arm64/MacroAssembler-arm64.cpp >-index 013fefd85e9b..f1704c622cb6 100644 >---- js/src/jit/arm64/MacroAssembler-arm64.cpp >-+++ js/src/jit/arm64/MacroAssembler-arm64.cpp >-@@ -682,7 +682,9 @@ MacroAssembler::callWithABIPre(uint32_t* stackAdjust, bool callFromWasm) >- *stackAdjust = stackForCall; >- reserveStack(*stackAdjust); >- { >-- moveResolver_.resolve(); >-+ enoughMemory_ &= moveResolver_.resolve(); >-+ if (!enoughMemory_) >-+ return; >- MoveEmitter emitter(*this); >- emitter.emit(moveResolver_); >- emitter.finish(); >-diff --git js/src/jit/arm64/vixl/Debugger-vixl.cpp js/src/jit/arm64/vixl/Debugger-vixl.cpp >-index 85097ed5a086..2f4966fbef15 100644 >---- js/src/jit/arm64/vixl/Debugger-vixl.cpp >-+++ js/src/jit/arm64/vixl/Debugger-vixl.cpp >-@@ -30,6 +30,7 @@ >- >- #include "jit/arm64/vixl/Debugger-vixl.h" >- >-+#include "mozilla/Unused.h" >- #include "mozilla/Vector.h" >- >- #include "jsalloc.h" >-@@ -1109,6 +1110,7 @@ bool DebugCommand::Match(const char* name, const char** aliases) { >- >- >- DebugCommand* DebugCommand::Parse(char* line) { >-+ using mozilla::Unused; >- TokenVector args; >- >- for (char* chunk = strtok(line, " \t"); >-@@ -1120,15 +1122,15 @@ DebugCommand* DebugCommand::Parse(char* line) { >- Token* format = FormatToken::Tokenize(dot + 1); >- if (format != NULL) { >- *dot = '\0'; >-- args.append(Token::Tokenize(chunk)); >-- args.append(format); >-+ Unused << args.append(Token::Tokenize(chunk)); >-+ Unused << args.append(format); >- } else { >- // Error while parsing the format, push the UnknownToken so an error >- // can be accurately reported. >-- args.append(Token::Tokenize(chunk)); >-+ Unused << args.append(Token::Tokenize(chunk)); >- } >- } else { >-- args.append(Token::Tokenize(chunk)); >-+ Unused << args.append(Token::Tokenize(chunk)); >- } >- } >- >-diff --git js/src/jit/arm64/vixl/Decoder-vixl.cpp js/src/jit/arm64/vixl/Decoder-vixl.cpp >-index 5865689ae6fa..c74f71a11b24 100644 >---- js/src/jit/arm64/vixl/Decoder-vixl.cpp >-+++ js/src/jit/arm64/vixl/Decoder-vixl.cpp >-@@ -112,12 +112,12 @@ void Decoder::DecodeInstruction(const Instruction *instr) { >- } >- >- void Decoder::AppendVisitor(DecoderVisitor* new_visitor) { >-- visitors_.append(new_visitor); >-+ MOZ_ALWAYS_TRUE(visitors_.append(new_visitor)); >- } >- >- >- void Decoder::PrependVisitor(DecoderVisitor* new_visitor) { >-- visitors_.insert(visitors_.begin(), new_visitor); >-+ MOZ_ALWAYS_TRUE(visitors_.insert(visitors_.begin(), new_visitor)); >- } >- >- >-@@ -125,12 +125,12 @@ void Decoder::InsertVisitorBefore(DecoderVisitor* new_visitor, >- DecoderVisitor* registered_visitor) { >- for (auto it = visitors_.begin(); it != visitors_.end(); it++) { >- if (*it == registered_visitor) { >-- visitors_.insert(it, new_visitor); >-+ MOZ_ALWAYS_TRUE(visitors_.insert(it, new_visitor)); >- return; >- } >- } >- // We reached the end of the list without finding registered_visitor. >-- visitors_.append(new_visitor); >-+ MOZ_ALWAYS_TRUE(visitors_.append(new_visitor)); >- } >- >- >-@@ -139,12 +139,12 @@ void Decoder::InsertVisitorAfter(DecoderVisitor* new_visitor, >- for (auto it = visitors_.begin(); it != visitors_.end(); it++) { >- if (*it == registered_visitor) { >- it++; >-- visitors_.insert(it, new_visitor); >-+ MOZ_ALWAYS_TRUE(visitors_.insert(it, new_visitor)); >- return; >- } >- } >- // We reached the end of the list without finding registered_visitor. >-- visitors_.append(new_visitor); >-+ MOZ_ALWAYS_TRUE(visitors_.append(new_visitor)); >- } >- >- >-diff --git js/src/jit/arm64/vixl/Instrument-vixl.cpp js/src/jit/arm64/vixl/Instrument-vixl.cpp >-index 7653e0856281..15d143c8ec13 100644 >---- js/src/jit/arm64/vixl/Instrument-vixl.cpp >-+++ js/src/jit/arm64/vixl/Instrument-vixl.cpp >-@@ -26,6 +26,8 @@ >- >- #include "jit/arm64/vixl/Instrument-vixl.h" >- >-+#include "mozilla/Unused.h" >-+ >- namespace vixl { >- >- Counter::Counter(const char* name, CounterType type) >-@@ -139,7 +141,7 @@ Instrument::Instrument(const char* datafile, uint64_t sample_period) >- // Construct Counter objects from counter description array. >- for (int i = 0; i < num_counters; i++) { >- if (Counter* counter = js_new<Counter>(kCounterList[i].name, kCounterList[i].type)) >-- counters_.append(counter); >-+ mozilla::Unused << counters_.append(counter); >- } >- >- DumpCounterNames(); >-diff --git js/src/jit/arm64/vixl/MozSimulator-vixl.cpp js/src/jit/arm64/vixl/MozSimulator-vixl.cpp >-index 0f8acebf9de6..284413bc5875 100644 >---- js/src/jit/arm64/vixl/MozSimulator-vixl.cpp >-+++ js/src/jit/arm64/vixl/MozSimulator-vixl.cpp >-@@ -29,6 +29,7 @@ >- #include "jit/arm64/vixl/Debugger-vixl.h" >- #include "jit/arm64/vixl/Simulator-vixl.h" >- #include "jit/IonTypes.h" >-+#include "js/Utility.h" >- #include "threading/LockGuard.h" >- #include "vm/Runtime.h" >- #include "wasm/WasmCode.h" >-@@ -427,9 +428,12 @@ void Simulator::VisitException(const Instruction* instr) { >- case kCallRtRedirected: >- VisitCallRedirection(instr); >- return; >-- case kMarkStackPointer: >-- spStack_.append(xreg(31, Reg31IsStackPointer)); >-+ case kMarkStackPointer: { >-+ js::AutoEnterOOMUnsafeRegion oomUnsafe; >-+ if (!spStack_.append(xreg(31, Reg31IsStackPointer))) >-+ oomUnsafe.crash("tracking stack for ARM64 simulator"); >- return; >-+ } >- case kCheckStackPointer: { >- int64_t current = xreg(31, Reg31IsStackPointer); >- int64_t expected = spStack_.popCopy(); >diff --git a/www/firefox/files/patch-bug1357874 b/www/firefox/files/patch-bug1357874 >deleted file mode 100644 >index a4c69d2571dd..000000000000 >--- a/www/firefox/files/patch-bug1357874 >+++ /dev/null >@@ -1,43 +0,0 @@ >-commit 50d30e203b35 >-Author: Jim Chen <nchen@mozilla.com> >-Date: Mon May 1 14:46:00 2017 -0400 >- >- Bug 1357874 - Add more AArch64 support to JS code; r=luke >- >- * Fix a parentheses warning when compiling testGCAllocator.cpp. >- >- * Enable trace logging in TraceLogging.cpp. >---- >- js/src/jsapi-tests/testGCAllocator.cpp | 2 +- >- js/src/jsmath.cpp | 2 ++ >- js/src/jsnativestack.cpp | 10 +++++----- >- js/src/vm/TraceLogging.cpp | 2 +- >- js/src/wasm/WasmSignalHandlers.cpp | 2 ++ >- 5 files changed, 11 insertions(+), 7 deletions(-) >- >-diff --git js/src/jsapi-tests/testGCAllocator.cpp js/src/jsapi-tests/testGCAllocator.cpp >-index 229e56422fdf..ec5407e8cca1 100644 >---- js/src/jsapi-tests/testGCAllocator.cpp >-+++ js/src/jsapi-tests/testGCAllocator.cpp >-@@ -315,7 +315,7 @@ mapMemoryAt(void* desired, size_t length) >- >- #if defined(__ia64__) || defined(__aarch64__) || \ >- (defined(__sparc__) && defined(__arch64__) && (defined(__NetBSD__) || defined(__linux__))) >-- MOZ_RELEASE_ASSERT(0xffff800000000000ULL & (uintptr_t(desired) + length - 1) == 0); >-+ MOZ_RELEASE_ASSERT((0xffff800000000000ULL & (uintptr_t(desired) + length - 1)) == 0); >- #endif >- void* region = mmap(desired, length, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0); >- if (region == MAP_FAILED) >-diff --git js/src/vm/TraceLogging.cpp js/src/vm/TraceLogging.cpp >-index c7bc6a84b2e9..82fdf7c77e8a 100644 >---- js/src/vm/TraceLogging.cpp >-+++ js/src/vm/TraceLogging.cpp >-@@ -61,7 +61,7 @@ rdtsc(void) >- return result; >- >- } >--#elif defined(__arm__) >-+#elif defined(__arm__) || defined(__aarch64__) >- >- #include <sys/time.h> >- >diff --git a/www/firefox/files/patch-bug1360321 b/www/firefox/files/patch-bug1360321 >deleted file mode 100644 >index b9989ef7c099..000000000000 >--- a/www/firefox/files/patch-bug1360321 >+++ /dev/null >@@ -1,49 +0,0 @@ >-commit a2dff5ad917b >-Author: Jim Chen <nchen@mozilla.com> >-Date: Wed May 17 13:06:23 2017 -0400 >- >- Bug 1360321 - 10. Fix opt build warnings in VIXL; r=me >- >- Fix an unused variable warning for `visitor` because it's only used in >- the assertion macro. >- >- Fix several no-return-value errors because the compiler cannot assume >- the VIXL_UNREACHABLE() macro is actually unreachable. >- >- r=me for trivial patch. >- >- MozReview-Commit-ID: 13IlMyUsXUN >---- >- js/src/jit/arm64/vixl/Decoder-vixl.h | 2 ++ >- js/src/jit/arm64/vixl/Globals-vixl.h | 2 +- >- 2 files changed, 3 insertions(+), 1 deletion(-) >- >-diff --git js/src/jit/arm64/vixl/Decoder-vixl.h js/src/jit/arm64/vixl/Decoder-vixl.h >-index 95dd589e8ab0..742c6f954c72 100644 >---- js/src/jit/arm64/vixl/Decoder-vixl.h >-+++ js/src/jit/arm64/vixl/Decoder-vixl.h >-@@ -151,9 +151,11 @@ class Decoder { >- >- // Top-level wrappers around the actual decoding function. >- void Decode(const Instruction* instr) { >-+#ifdef DEBUG >- for (auto visitor : visitors_) { >- VIXL_ASSERT(visitor->IsConstVisitor()); >- } >-+#endif >- DecodeInstruction(instr); >- } >- void Decode(Instruction* instr) { >-diff --git js/src/jit/arm64/vixl/Globals-vixl.h js/src/jit/arm64/vixl/Globals-vixl.h >-index 8a7418eb8c47..39d9c1d3f37d 100644 >---- js/src/jit/arm64/vixl/Globals-vixl.h >-+++ js/src/jit/arm64/vixl/Globals-vixl.h >-@@ -76,7 +76,7 @@ const int MBytes = 1024 * KBytes; >- #define VIXL_ASSERT(condition) ((void) 0) >- #define VIXL_CHECK(condition) ((void) 0) >- #define VIXL_UNIMPLEMENTED() ((void) 0) >-- #define VIXL_UNREACHABLE() ((void) 0) >-+ #define VIXL_UNREACHABLE() MOZ_MAKE_COMPILER_ASSUME_IS_UNREACHABLE() >- #endif >- // This is not as powerful as template based assertions, but it is simple. >- // It assumes that the descriptions are unique. If this starts being a problem, >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" >diff --git a/www/firefox/files/patch-bug702179 b/www/firefox/files/patch-bug702179 >index bb642382dfd8..0c998526736e 100644 >--- a/www/firefox/files/patch-bug702179 >+++ b/www/firefox/files/patch-bug702179 >@@ -1,13 +1,12 @@ >---- js/src/moz.build.orig 2015-12-16 12:32:04.574425000 +0100 >-+++ js/src/moz.build 2015-12-16 12:32:09.032032000 +0100 >-@@ -671,10 +671,6 @@ CFLAGS += CONFIG['MOZ_ICU_CFLAGS'] >- CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS'] >- LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES'] >+Don't build static JS lib to make sure DTrace probes are picked up. >+ >+--- js/src/build/moz.build.orig 2017-04-16 18:00:50 UTC >++++ js/src/build/moz.build >+@@ -71,7 +71,3 @@ if CONFIG['OS_ARCH'] == 'SunOS': >+ ] > >+ OS_LIBS += CONFIG['REALTIME_LIBS'] >+- > -NO_EXPAND_LIBS = True > - > -DIST_INSTALL = True >-- >- # Prepare self-hosted JS code for embedding >- GENERATED_FILES += ['selfhosted.out.h'] >- selfhosted = GENERATED_FILES['selfhosted.out.h'] >diff --git a/www/firefox/files/patch-bug826985 b/www/firefox/files/patch-bug826985 >index 1f21f8f960cd..8e23b9382748 100644 >--- a/www/firefox/files/patch-bug826985 >+++ b/www/firefox/files/patch-bug826985 >@@ -51,18 +51,6 @@ index b483cd1..f1dd1f0 100644 > # basic stuff for everything > 'include_internal_video_render': 0, > 'clang_use_chrome_plugins': 0, >-diff --git media/webrtc/signaling/test/common.build media/webrtc/signaling/test/common.build >-index b483cd1..f1dd1f0 100644 >---- media/webrtc/signaling/test/common.build >-+++ media/webrtc/signaling/test/common.build >-@@ -99,6 +99,7 @@ if CONFIG['JS_SHARED_LIBRARY']: >- >- USE_LIBS += ['mozglue'] >- >-+OS_LIBS += CONFIG['MOZ_LIBV4L2_LIBS'] >- OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS'] >- OS_LIBS += CONFIG['REALTIME_LIBS'] >- > diff --git media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc > index 239a292..bab496c 100644 > --- media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc >diff --git a/www/firefox/files/patch-bug847568 b/www/firefox/files/patch-bug847568 >index 9ef2dbadd362..0deb5a504f56 100644 >--- a/www/firefox/files/patch-bug847568 >+++ b/www/firefox/files/patch-bug847568 >@@ -261,7 +261,7 @@ index 9297e4d6f501..d8e273887e4b 100644 > +option('--with-system-harfbuzz', > + help="Use system harfbuzz (located with pkgconfig)") > + >-+system_harfbuzz = pkg_check_modules('MOZ_HARFBUZZ', 'harfbuzz >= 1.4.3', >++system_harfbuzz = pkg_check_modules('MOZ_HARFBUZZ', 'harfbuzz >= 1.4.6', > + when='--with-system-harfbuzz') > + > +set_config('MOZ_SYSTEM_HARFBUZZ', depends_if(system_harfbuzz)(lambda _: True)) >diff --git a/www/firefox/files/patch-bug981348 b/www/firefox/files/patch-bug981348 >deleted file mode 100644 >index 0c2ffea1ef7b..000000000000 >--- a/www/firefox/files/patch-bug981348 >+++ /dev/null >@@ -1,61 +0,0 @@ >-diff --git dom/system/OSFileConstants.cpp dom/system/OSFileConstants.cpp >-index 88bba9baa401..99f240952dfe 100644 >---- dom/system/OSFileConstants.cpp >-+++ dom/system/OSFileConstants.cpp >-@@ -16,14 +16,17 @@ >- #include "dirent.h" >- #include "poll.h" >- #include "sys/stat.h" >--#if defined(ANDROID) >-+#if defined(XP_LINUX) >- #include <sys/vfs.h> >- #define statvfs statfs >-+#define f_frsize f_bsize >- #else >- #include "sys/statvfs.h" >-+#endif // defined(XP_LINUX) >-+#if !defined(ANDROID) >- #include "sys/wait.h" >- #include <spawn.h> >--#endif // defined(ANDROID) >-+#endif // !defined(ANDROID) >- #endif // defined(XP_UNIX) >- >- #if defined(XP_LINUX) >-@@ -699,7 +702,7 @@ static const dom::ConstantSpec gLibcProperties[] = >- >- { "OSFILE_SIZEOF_STATVFS", JS::Int32Value(sizeof (struct statvfs)) }, >- >-- { "OSFILE_OFFSETOF_STATVFS_F_BSIZE", JS::Int32Value(offsetof (struct statvfs, f_bsize)) }, >-+ { "OSFILE_OFFSETOF_STATVFS_F_FRSIZE", JS::Int32Value(offsetof (struct statvfs, f_frsize)) }, >- { "OSFILE_OFFSETOF_STATVFS_F_BAVAIL", JS::Int32Value(offsetof (struct statvfs, f_bavail)) }, >- >- #endif // defined(XP_UNIX) >-diff --git toolkit/components/osfile/modules/osfile_unix_back.jsm toolkit/components/osfile/modules/osfile_unix_back.jsm >-index a028dda7d5ec..f5c632e3d7e5 100644 >---- toolkit/components/osfile/modules/osfile_unix_back.jsm >-+++ toolkit/components/osfile/modules/osfile_unix_back.jsm >-@@ -228,8 +228,8 @@ >- let statvfs = new SharedAll.HollowStructure("statvfs", >- Const.OSFILE_SIZEOF_STATVFS); >- >-- statvfs.add_field_at(Const.OSFILE_OFFSETOF_STATVFS_F_BSIZE, >-- "f_bsize", Type.unsigned_long.implementation); >-+ statvfs.add_field_at(Const.OSFILE_OFFSETOF_STATVFS_F_FRSIZE, >-+ "f_frsize", Type.unsigned_long.implementation); >- statvfs.add_field_at(Const.OSFILE_OFFSETOF_STATVFS_F_BAVAIL, >- "f_bavail", Type.fsblkcnt_t.implementation); >- >-diff --git toolkit/components/osfile/modules/osfile_unix_front.jsm toolkit/components/osfile/modules/osfile_unix_front.jsm >-index bd60d4d8419c..a8cd6b546b0e 100644 >---- toolkit/components/osfile/modules/osfile_unix_front.jsm >-+++ toolkit/components/osfile/modules/osfile_unix_front.jsm >-@@ -399,7 +399,7 @@ >- throw_on_negative("statvfs", (UnixFile.statvfs || UnixFile.statfs)(sourcePath, fileSystemInfoPtr)); >- >- let bytes = new Type.uint64_t.implementation( >-- fileSystemInfo.f_bsize * fileSystemInfo.f_bavail); >-+ fileSystemInfo.f_frsize * fileSystemInfo.f_bavail); >- >- return bytes.value; >- }; >diff --git a/www/firefox/files/patch-python_futures_concurrent_futures_process.py b/www/firefox/files/patch-python_futures_concurrent_futures_process.py >deleted file mode 100644 >index 5327af944b8b..000000000000 >--- a/www/firefox/files/patch-python_futures_concurrent_futures_process.py >+++ /dev/null >@@ -1,15 +0,0 @@ >---- python/futures/concurrent/futures/process.py.orig 2017-04-11 04:15:19 UTC >-+++ python/futures/concurrent/futures/process.py >-@@ -247,7 +247,11 @@ def _check_system_limits(): >- _system_limits_checked = True >- try: >- import os >-- nsems_max = os.sysconf("SC_SEM_NSEMS_MAX") >-+ if sys.platform.startswith('freebsd'): >-+ # sem(4) confuses sysconf(3) on FreeBSD < 11.1 >-+ nsems_max = -1 >-+ else: >-+ nsems_max = os.sysconf("SC_SEM_NSEMS_MAX") >- except (AttributeError, ValueError): >- # sysconf not available or setting not available >- return >diff --git a/www/firefox/files/patch-rust-option b/www/firefox/files/patch-rust-option >index 57da0de6038e..e60e11b111ee 100644 >--- a/www/firefox/files/patch-rust-option >+++ b/www/firefox/files/patch-rust-option >@@ -1,4 +1,4 @@ >-Revert bug 1284816 and bug 1341967 to postpone bustage on non-x86 archs. >+Revert bug 1284816, bug 1341967, bug 1336153 to postpone bustage on non-x86 archs. > > diff --git browser/confvars.sh browser/confvars.sh > index d8dcd99c2757..740d9d3e5fcf 100755 >@@ -56,11 +56,58 @@ index 267d989f1597..f709820e60ae 100644 > if not rustc_info: > die(dedent('''\ > Rust compiler not found. >+@@ -97,6 +110,9 @@ def rust_compiler(rustc_info, cargo_info): >+ >+ return True >+ >++set_define('MOZ_RUST', rust_compiler) >++set_config('MOZ_RUST', rust_compiler) >++ >+ @template >+ def rust_triple_alias(host_or_target): >+ """Template defining the alias used for rustc's --target flag. >+@@ -227,7 +243,8 @@ set_config('RUST_HOST_TARGET', rust_host_triple) >+ >+ @depends(rust_target_triple) >+ def rust_target_env_name(triple): >+- return triple.upper().replace('-','_') >++ if triple: >++ return triple.upper().replace('-','_') >+ >+ # We need this to form various Cargo environment variables, as there is no >+ # uppercase function in make, and we don't want to shell out just for >+@@ -235,5 +252,6 @@ def rust_target_env_name(triple): >+ set_config('RUST_TARGET_ENV_NAME', rust_target_env_name) >+ >+ # Until we remove all the other Rust checks in old-configure. >++add_old_configure_assignment('MOZ_RUST', rust_compiler) >+ add_old_configure_assignment('RUSTC', rustc) >+ add_old_configure_assignment('RUST_TARGET', rust_target_triple) >+diff --git config/rules.mk config/rules.mk >+index 94cc5556e3d0..7b143ebc5146 100644 >+--- config/rules.mk >++++ config/rules.mk >+@@ -900,6 +900,7 @@ endif >+ >+ $(foreach file,$(DUMP_SYMS_TARGETS),$(eval $(call syms_template,$(file),$(file)_syms.track))) >+ >++ifdef MOZ_RUST >+ cargo_host_flag := --target=$(RUST_HOST_TARGET) >+ cargo_target_flag := --target=$(RUST_TARGET) >+ >+@@ -1055,6 +1056,7 @@ force-cargo-host-program-build: >+ >+ $(HOST_RUST_PROGRAMS): force-cargo-host-program-build >+ endif # HOST_RUST_PROGRAMS >++endif # MOZ_RUST >+ >+ $(SOBJS): >+ $(REPORT_BUILD) > diff --git dom/media/MediaPrefs.h dom/media/MediaPrefs.h > index 4dcc659222a4..559334d89fd1 100644 > --- dom/media/MediaPrefs.h > +++ dom/media/MediaPrefs.h >-@@ -165,7 +165,7 @@ private: >+@@ -183,7 +183,7 @@ private: > DECL_MEDIA_PREF("media.ogg.flac.enabled", FlacInOgg, bool, false); > DECL_MEDIA_PREF("media.flac.enabled", FlacEnabled, bool, true); > >@@ -69,6 +116,42 @@ index 4dcc659222a4..559334d89fd1 100644 > DECL_MEDIA_PREF("media.rust.test_mode", RustTestMode, bool, false); > #endif > >+diff --git dom/media/gtest/moz.build dom/media/gtest/moz.build >+index c66ac4a9437f..e2203c0a4321 100644 >+--- dom/media/gtest/moz.build >++++ dom/media/gtest/moz.build >+@@ -22,7 +22,6 @@ UNIFIED_SOURCES += [ >+ 'TestMozPromise.cpp', >+ 'TestMP3Demuxer.cpp', >+ 'TestMP4Demuxer.cpp', >+- 'TestRust.cpp', >+ 'TestTrackEncoder.cpp', >+ 'TestVideoSegment.cpp', >+ 'TestVideoUtils.cpp', >+@@ -36,6 +35,9 @@ if CONFIG['MOZ_WEBM_ENCODER']: >+ 'TestWebMWriter.cpp', >+ ] >+ >++if CONFIG['MOZ_RUST']: >++ UNIFIED_SOURCES += ['TestRust.cpp',] >++ >+ TEST_HARNESS_FILES.gtest += [ >+ '../test/gizmo-frag.mp4', >+ '../test/gizmo.mp4', >+diff --git media/libcubeb/src/moz.build media/libcubeb/src/moz.build >+index c65b53b80f63..8953f646e831 100644 >+--- media/libcubeb/src/moz.build >++++ media/libcubeb/src/moz.build >+@@ -32,7 +32,8 @@ if CONFIG['MOZ_PULSEAUDIO']: >+ 'cubeb_pulse.c', >+ ] >+ DEFINES['USE_PULSE'] = True >+- DEFINES['USE_PULSE_RUST'] = True >++ if CONFIG['MOZ_RUST']: >++ DEFINES['USE_PULSE_RUST'] = True >+ >+ if CONFIG['MOZ_JACK']: >+ SOURCES += [ > diff --git media/libstagefright/binding/DecoderData.cpp media/libstagefright/binding/DecoderData.cpp > index 109ea329d154..a06e533b1e62 100644 > --- media/libstagefright/binding/DecoderData.cpp >@@ -84,16 +167,16 @@ index 109ea329d154..a06e533b1e62 100644 > +#endif // MOZ_RUST_MP4PARSE > > using namespace stagefright; >- >-@@ -187,6 +189,7 @@ MP4VideoInfo::Update(const MetaData* aMetaData, const char* aMimeType) >- >+ using mozilla::media::TimeUnit; >+@@ -177,6 +179,7 @@ MP4VideoInfo::Update(const MetaData* aMetaData, const char* aMimeType) >+ FindData(aMetaData, kKeyAVCC, mExtraData); > } > > +#ifdef MOZ_RUST_MP4PARSE > static void > UpdateTrackProtectedInfo(mozilla::TrackInfo& aConfig, > const mp4parse_sinf_info& aSinf) >-@@ -266,6 +269,7 @@ MP4VideoInfo::Update(const mp4parse_track_info* track, >+@@ -263,6 +266,7 @@ MP4VideoInfo::Update(const mp4parse_track_info* track, > mExtraData->AppendElements(video->extra_data.data, video->extra_data.length); > } > } >@@ -105,7 +188,7 @@ diff --git media/libstagefright/binding/MP4Metadata.cpp media/libstagefright/bin > index 5c3810d99a38..5d14dfd8b8a9 100644 > --- media/libstagefright/binding/MP4Metadata.cpp > +++ media/libstagefright/binding/MP4Metadata.cpp >-@@ -19,14 +19,18 @@ >+@@ -20,14 +20,18 @@ > #include "mp4_demuxer/MP4Metadata.h" > #include "mp4_demuxer/Stream.h" > #include "MediaPrefs.h" >@@ -123,8 +206,8 @@ index 5c3810d99a38..5d14dfd8b8a9 100644 > +#endif // MOZ_RUST_MP4PARSE > > using namespace stagefright; >- >-@@ -101,6 +103,7 @@ private: >+ using mozilla::media::TimeUnit; >+@@ -105,6 +109,7 @@ private: > bool mCanSeek; > }; > >@@ -132,19 +215,35 @@ index 5c3810d99a38..5d14dfd8b8a9 100644 > // Wrap an mp4_demuxer::Stream to remember the read offset. > > class RustStreamAdaptor { >-@@ -145,9 +149,11 @@ private: >+@@ -151,6 +156,7 @@ private: > RustStreamAdaptor mRustSource; > mozilla::UniquePtr<mp4parse_parser, FreeMP4Parser> mRustParser; > }; > +#endif // MOZ_RUST_MP4PARSE > >+ class IndiceWrapperStagefright : public IndiceWrapper { >+ public: >+@@ -187,6 +193,7 @@ IndiceWrapperStagefright::GetIndice(size_t aIndex, Index::Indice& aIndice) const >+ return true; >+ } >+ >++#ifdef MOZ_RUST_MP4PARSE >+ // the owner of mIndice is rust mp4 paser, so lifetime of this class >+ // SHOULD NOT longer than rust parser. >+ class IndiceWrapperRust : public IndiceWrapper >+@@ -232,9 +239,11 @@ IndiceWrapperRust::GetIndice(size_t aIndex, Index::Indice& aIndice) const >+ aIndice.sync = indice->sync; >+ return true; >+ } >++#endif // MOZ_RUST_MP4PARSE >+ > MP4Metadata::MP4Metadata(Stream* aSource) > : mStagefright(MakeUnique<MP4MetadataStagefright>(aSource)) > +#ifdef MOZ_RUST_MP4PARSE > , mRust(MakeUnique<MP4MetadataRust>(aSource)) >- , mPreferRust(false) >+ , mPreferRust(MediaPrefs::EnableRustMP4Parser()) > , mReportedAudioTrackTelemetry(false) >-@@ -155,6 +161,7 @@ MP4Metadata::MP4Metadata(Stream* aSource) >+@@ -242,6 +251,7 @@ MP4Metadata::MP4Metadata(Stream* aSource) > #ifndef RELEASE_OR_BETA > , mRustTestMode(MediaPrefs::RustTestMode()) > #endif >@@ -152,44 +251,46 @@ index 5c3810d99a38..5d14dfd8b8a9 100644 > { > } > >-@@ -186,6 +193,7 @@ MP4Metadata::GetNumberTracks(mozilla::TrackInfo::TrackType aType) const >- { >- uint32_t numTracks = mStagefright->GetNumberTracks(aType); >+@@ -274,8 +284,11 @@ MP4Metadata::GetNumberTracks(mozilla::TrackInfo::TrackType aType) const >+ MP4Metadata::ResultAndTrackCount numTracks = >+ mStagefright->GetNumberTracks(aType); > > +#ifdef MOZ_RUST_MP4PARSE > if (!mRust) { >++#endif // MOZ_RUST_MP4PARSE > return numTracks; >++#ifdef MOZ_RUST_MP4PARSE > } >-@@ -211,10 +219,12 @@ MP4Metadata::GetNumberTracks(mozilla::TrackInfo::TrackType aType) const >- mPreferRust = true; >- return numTracksRust; >- } >-+#endif // MOZ_RUST_MP4PARSE > >- return numTracks; >+ MP4Metadata::ResultAndTrackCount numTracksRust = >+@@ -350,8 +363,10 @@ MP4Metadata::GetNumberTracks(mozilla::TrackInfo::TrackType aType) const >+ // Same non-error numbers, just return any. >+ // (Choosing Rust here, in case it carries a warning, we'd want to know that.) >+ return numTracksRust; >++#endif // MOZ_RUST_MP4PARSE > } > > +#ifdef MOZ_RUST_MP4PARSE > bool MP4Metadata::ShouldPreferRust() const { > if (!mRust) { > return false; >-@@ -245,6 +255,7 @@ bool MP4Metadata::ShouldPreferRust() const { >+@@ -389,6 +404,7 @@ bool MP4Metadata::ShouldPreferRust() const { > // Otherwise, fall back. > return false; > } > +#endif // MOZ_RUST_MP4PARSE > >- mozilla::UniquePtr<mozilla::TrackInfo> >- MP4Metadata::GetTrackInfo(mozilla::TrackInfo::TrackType aType, >-@@ -253,6 +264,7 @@ MP4Metadata::GetTrackInfo(mozilla::TrackInfo::TrackType aType, >- mozilla::UniquePtr<mozilla::TrackInfo> info = >- mStagefright->GetTrackInfo(aType, aTrackNumber); >+ static const char* >+ GetDifferentField(const mozilla::TrackInfo& info, >+@@ -443,6 +459,7 @@ MP4Metadata::GetTrackInfo(mozilla::TrackInfo::TrackType aType, >+ MP4Metadata::ResultAndTrackInfo info = >+ mStagefright->GetTrackInfo(aType, aTrackNumber); > > +#ifdef MOZ_RUST_MP4PARSE > if (!mRust) { > return info; > } >-@@ -305,6 +317,7 @@ MP4Metadata::GetTrackInfo(mozilla::TrackInfo::TrackTyp >+@@ -514,6 +531,7 @@ MP4Metadata::GetTrackInfo(mozilla::TrackInfo::TrackType aType, > if (mPreferRust) { > return infoRust; > } >@@ -197,15 +298,15 @@ index 5c3810d99a38..5d14dfd8b8a9 100644 > > return info; > } >-@@ -319,6 +334,7 @@ const CryptoFile& >+@@ -528,6 +546,7 @@ MP4Metadata::ResultAndCryptoFile > MP4Metadata::Crypto() const > { >- const CryptoFile& crypto = mStagefright->Crypto(); >+ MP4Metadata::ResultAndCryptoFile crypto = mStagefright->Crypto(); > +#ifdef MOZ_RUST_MP4PARSE >- const CryptoFile& rustCrypto = mRust->Crypto(); >+ MP4Metadata::ResultAndCryptoFile rustCrypto = mRust->Crypto(); > > #ifndef RELEASE_OR_BETA >-@@ -330,6 +347,7 @@ MP4Metadata::Crypto() const >+@@ -548,6 +567,7 @@ MP4Metadata::Crypto() const > if (mPreferRust) { > return rustCrypto; > } >@@ -213,17 +314,59 @@ index 5c3810d99a38..5d14dfd8b8a9 100644 > > return crypto; > } >-@@ -594,6 +612,7 @@ MP4MetadataStagefright::Metadata(Stream* aSource) >- return parser->Metadata(); >+@@ -556,17 +576,22 @@ MP4Metadata::ResultAndIndice >+ MP4Metadata::GetTrackIndice(mozilla::TrackID aTrackID) >+ { >+ FallibleTArray<Index::Indice> indiceSF; >++#ifdef MOZ_RUST_MP4PARSE >+ if (!mPreferRust >+ #ifndef RELEASE_OR_BETA >+ || mRustTestMode >+ #endif >+ ) { >++#endif // MOZ_RUST_MP4PARSE >+ MediaResult rv = mStagefright->ReadTrackIndex(indiceSF, aTrackID); >+ if (NS_FAILED(rv)) { >+ return {Move(rv), nullptr}; >+ } >++#ifdef MOZ_RUST_MP4PARSE >+ } >++#endif // MOZ_RUST_MP4PARSE >+ >++#ifdef MOZ_RUST_MP4PARSE >+ mp4parse_byte_data indiceRust = {}; >+ if (mPreferRust >+ #ifndef RELEASE_OR_BETA >+@@ -592,13 +617,18 @@ MP4Metadata::GetTrackIndice(mozilla::TrackID aTrackID) >+ } >+ } >+ #endif >++#endif // MOZ_RUST_MP4PARSE >+ >+ UniquePtr<IndiceWrapper> indice; >++#ifdef MOZ_RUST_MP4PARSE >+ if (mPreferRust) { >+ indice = mozilla::MakeUnique<IndiceWrapperRust>(indiceRust); >+ } else { >++#endif // MOZ_RUST_MP4PARSE >+ indice = mozilla::MakeUnique<IndiceWrapperStagefright>(indiceSF); >++#ifdef MOZ_RUST_MP4PARSE >+ } >++#endif // MOZ_RUST_MP4PARSE >+ >+ return {NS_OK, Move(indice)}; >+ } >+@@ -856,6 +886,7 @@ MP4MetadataStagefright::Metadata(Stream* aSource) >+ return {NS_OK, Move(buffer)}; > } > > +#ifdef MOZ_RUST_MP4PARSE > bool > RustStreamAdaptor::Read(uint8_t* buffer, uintptr_t size, size_t* bytes_read) > { >-@@ -859,5 +878,6 @@ MP4MetadataRust::Metadata(Stream* aSource) >+@@ -1152,5 +1183,6 @@ MP4MetadataRust::Metadata(Stream* aSource) > MOZ_ASSERT(false, "Not yet implemented"); >- return nullptr; >+ return {NS_ERROR_NOT_IMPLEMENTED, nullptr}; > } > +#endif // MOZ_RUST_MP4PARSE > >@@ -272,7 +415,17 @@ diff --git media/libstagefright/binding/include/mp4_demuxer/MP4Metadata.h media/ > index 492c9c1c1bc3..e16dbbd1155e 100644 > --- media/libstagefright/binding/include/mp4_demuxer/MP4Metadata.h > +++ media/libstagefright/binding/include/mp4_demuxer/MP4Metadata.h >-@@ -36,6 +36,7 @@ public: >+@@ -13,7 +13,9 @@ >+ #include "MediaInfo.h" >+ #include "MediaResult.h" >+ #include "Stream.h" >++#ifdef MOZ_RUST_MP4PARSE >+ #include "mp4parse.h" >++#endif // MOZ_RUST_MP4PARSE >+ >+ namespace mp4_demuxer { >+ >+@@ -82,6 +84,7 @@ public: > > private: > UniquePtr<MP4MetadataStagefright> mStagefright; >@@ -280,7 +433,7 @@ index 492c9c1c1bc3..e16dbbd1155e 100644 > UniquePtr<MP4MetadataRust> mRust; > mutable bool mPreferRust; > mutable bool mReportedAudioTrackTelemetry; >-@@ -44,6 +45,7 @@ private: >+@@ -90,6 +93,7 @@ private: > mutable bool mRustTestMode; > #endif > bool ShouldPreferRust() const; >@@ -288,6 +441,49 @@ index 492c9c1c1bc3..e16dbbd1155e 100644 > }; > > } // namespace mp4_demuxer >+diff --git media/libstagefright/gtest/moz.build media/libstagefright/gtest/moz.build >+index be4d56fc93f7..66fdd365f8f3 100644 >+--- media/libstagefright/gtest/moz.build >++++ media/libstagefright/gtest/moz.build >+@@ -38,12 +38,13 @@ TEST_HARNESS_FILES.gtest += [ >+ 'test_case_1351094.mp4', >+ ] >+ >+-UNIFIED_SOURCES += ['TestMP4Rust.cpp',] >+-TEST_HARNESS_FILES.gtest += [ >+- '../../../dom/media/test/street.mp4', >+-] >+-LOCAL_INCLUDES += [ >+- '../binding/include', >+-] >++if CONFIG['MOZ_RUST']: >++ UNIFIED_SOURCES += ['TestMP4Rust.cpp',] >++ TEST_HARNESS_FILES.gtest += [ >++ '../../../dom/media/test/street.mp4', >++ ] >++ LOCAL_INCLUDES += [ >++ '../binding/include', >++ ] >+ >+ FINAL_LIBRARY = 'xul-gtest' >+diff --git media/libstagefright/moz.build media/libstagefright/moz.build >+index af5d1194d621..6725a0179989 100644 >+--- media/libstagefright/moz.build >++++ media/libstagefright/moz.build >+@@ -83,9 +83,10 @@ SOURCES += [ >+ 'system/core/libutils/VectorImpl.cpp', >+ ] >+ >+-EXPORTS += [ >+- 'binding/include/mp4parse.h', >+-] >++if CONFIG['MOZ_RUST']: >++ EXPORTS += [ >++ 'binding/include/mp4parse.h', >++ ] >+ >+ UNIFIED_SOURCES += [ >+ 'binding/Adts.cpp', > diff --git mobile/android/confvars.sh mobile/android/confvars.sh > index e79b6f5c0707..eb62763acaf7 100644 > --- mobile/android/confvars.sh >@@ -301,21 +497,98 @@ index e79b6f5c0707..eb62763acaf7 100644 > # use custom widget for html:select > MOZ_USE_NATIVE_POPUP_WINDOWS=1 > >+diff --git netwerk/base/moz.build netwerk/base/moz.build >+index 61d022a9660e..e5ca1d77d859 100644 >+--- netwerk/base/moz.build >++++ netwerk/base/moz.build >+@@ -256,7 +256,7 @@ UNIFIED_SOURCES += [ >+ 'TLSServerSocket.cpp', >+ ] >+ >+-if CONFIG['MOZ_RUST_URLPARSE']: >++if CONFIG['MOZ_RUST'] and CONFIG['MOZ_RUST_URLPARSE']: >+ EXPORTS.mozilla.net += [ 'RustURL.h' ] >+ UNIFIED_SOURCES += [ 'RustURL.cpp' ] >+ >+diff --git netwerk/base/nsStandardURL.cpp netwerk/base/nsStandardURL.cpp >+index 608b918a4ecf..20bcdeb34ab8 100644 >+--- netwerk/base/nsStandardURL.cpp >++++ netwerk/base/nsStandardURL.cpp >+@@ -858,6 +858,7 @@ nsStandardURL::BuildNormalizedSpec(const char *spec) >+ if (!SegmentIs(spec, mScheme, "resource") && >+ !SegmentIs(spec, mScheme, "chrome")) { >+ nsAutoCString ipString; >++#ifdef MOZ_RUST >+ if (encHost.Length() > 0 && >+ encHost.First() == '[' && encHost.Last() == ']' && >+ ValidIPv6orHostname(encHost.get(), encHost.Length())) { >+@@ -866,7 +867,9 @@ nsStandardURL::BuildNormalizedSpec(const char *spec) >+ return rv; >+ } >+ encHost = ipString; >+- } else if (NS_SUCCEEDED(NormalizeIPv4(encHost, ipString))) { >++ } else >++#endif >++ if (NS_SUCCEEDED(NormalizeIPv4(encHost, ipString))) { >+ encHost = ipString; >+ } >+ } >+@@ -2112,6 +2115,7 @@ nsStandardURL::SetHost(const nsACString &input) >+ >+ if (!SegmentIs(mScheme, "resource") && !SegmentIs(mScheme, "chrome")) { >+ nsAutoCString ipString; >++#ifdef MOZ_RUST >+ if (hostBuf.Length() > 0 && >+ hostBuf.First() == '[' && hostBuf.Last() == ']' && >+ ValidIPv6orHostname(hostBuf.get(), hostBuf.Length())) { >+@@ -2120,7 +2124,9 @@ nsStandardURL::SetHost(const nsACString &input) >+ return rv; >+ } >+ hostBuf = ipString; >+- } else if (NS_SUCCEEDED(NormalizeIPv4(hostBuf, ipString))) { >++ } else >++#endif >++ if (NS_SUCCEEDED(NormalizeIPv4(hostBuf, ipString))) { >+ hostBuf = ipString; >+ } >+ } >+diff --git old-configure.in old-configure.in >+index 717a94fcc692..54b29d737cc1 100644 >+--- old-configure.in >++++ old-configure.in >+@@ -2330,9 +2330,14 @@ if test -n "$MOZ_MULET"; then >+ fi >+ >+ # Propagate feature switches for code written in rust from confvars.sh >+-if test -n "$MOZ_RUST_URLPARSE"; then >+- AC_DEFINE(MOZ_RUST_URLPARSE) >+- AC_SUBST(MOZ_RUST_URLPARSE) >++if test -n "$MOZ_RUST"; then >++ if test -n "$MOZ_RUST_MP4PARSE"; then >++ AC_DEFINE(MOZ_RUST_MP4PARSE) >++ fi >++ if test -n "$MOZ_RUST_URLPARSE"; then >++ AC_DEFINE(MOZ_RUST_URLPARSE) >++ AC_SUBST(MOZ_RUST_URLPARSE) >++ fi >+ fi >+ >+ AC_SUBST(MOZ_PHOENIX) > diff --git toolkit/components/telemetry/Histograms.json toolkit/components/telemetry/Histograms.json > index 061c55f6a5b6..e49dfd176952 100644 > --- toolkit/components/telemetry/Histograms.json > +++ toolkit/components/telemetry/Histograms.json >-@@ -6996,7 +6996,8 @@ >- "expires_in_version": "55", >+@@ -8320,7 +8320,8 @@ >+ "expires_in_version": "60", > "kind": "boolean", > "bug_numbers": [1220885], >-- "description": "(Bug 1220885) Whether the rust mp4 demuxer successfully parsed a stream segment." >-+ "description": "(Bug 1220885) Whether the rust mp4 demuxer successfully parsed a stream segment.", >+- "description": "Whether the rust mp4 demuxer successfully parsed a stream segment." >++ "description": "Whether the rust mp4 demuxer successfully parsed a stream segment.", > + "cpp_guard": "MOZ_RUST_MP4PARSE" > }, > "MEDIA_RUST_MP4PARSE_ERROR_CODE": { >- "alert_emails": ["giles@mozilla.com", "kinetik@flim.org"], >-@@ -7004,21 +7005,24 @@ >+ "record_in_processes": ["main", "content"], >+@@ -8329,7 +8330,8 @@ > "kind": "enumerated", > "n_values": 32, > "bug_numbers": [1238420], >@@ -324,8 +597,9 @@ index 061c55f6a5b6..e49dfd176952 100644 > + "cpp_guard": "MOZ_RUST_MP4PARSE" > }, > "MEDIA_RUST_MP4PARSE_TRACK_MATCH_AUDIO": { >- "alert_emails": ["giles@mozilla.com", "kinetik@flim.org"], >- "expires_in_version": "55", >+ "record_in_processes": ["main", "content"], >+@@ -8337,7 +8339,8 @@ >+ "expires_in_version": "60", > "kind": "boolean", > "bug_numbers": [1231169], > - "description": "Whether rust and stagefight mp4 parser audio track results match." >@@ -333,8 +607,9 @@ index 061c55f6a5b6..e49dfd176952 100644 > + "cpp_guard": "MOZ_RUST_MP4PARSE" > }, > "MEDIA_RUST_MP4PARSE_TRACK_MATCH_VIDEO": { >- "alert_emails": ["giles@mozilla.com", "kinetik@flim.org"], >- "expires_in_version": "55", >+ "record_in_processes": ["main", "content"], >+@@ -8345,7 +8348,8 @@ >+ "expires_in_version": "60", > "kind": "boolean", > "bug_numbers": [1231169], > - "description": "Whether rust and stagefight mp4 parser video track results match." >@@ -342,4 +617,200 @@ index 061c55f6a5b6..e49dfd176952 100644 > + "cpp_guard": "MOZ_RUST_MP4PARSE" > }, > "MEDIA_WMF_DECODE_ERROR": { >- "expires_in_version": "55", >+ "record_in_processes": ["main", "content", "gpu"], >+diff --git toolkit/library/gtest/moz.build toolkit/library/gtest/moz.build >+index 69a8fb1f4893..c684f48e456e 100644 >+--- toolkit/library/gtest/moz.build >++++ toolkit/library/gtest/moz.build >+@@ -7,7 +7,6 @@ >+ FINAL_TARGET = 'dist/bin/gtest' >+ >+ USE_LIBS += [ >+- 'gkrust-gtest', >+ 'static:xul', >+ # xul-gtest is an intermediate static library. It is used as FINAL_TARGET >+ # for gtest code. >+@@ -21,6 +20,11 @@ USE_LIBS += [ >+ # before StaticXULComponentStart. >+ Libxul('xul-gtest-real') >+ >++if CONFIG['MOZ_RUST']: >++ USE_LIBS += [ >++ 'gkrust-gtest', >++ ] >++ >+ DIRS += [ >+ 'static', >+ ] >+diff --git toolkit/library/moz.build toolkit/library/moz.build >+index 650f6eaba980..191e90ceb09a 100644 >+--- toolkit/library/moz.build >++++ toolkit/library/moz.build >+@@ -63,7 +63,7 @@ def Libxul(name): >+ >+ # This option should go away in bug 1290972, but we need to wait until >+ # Rust 1.12 has been released. >+- if CONFIG['OS_ARCH'] == 'Darwin': >++ if CONFIG['MOZ_RUST'] and CONFIG['OS_ARCH'] == 'Darwin': >+ LDFLAGS += ['-Wl,-no_compact_unwind'] >+ >+ Libxul('xul') >+@@ -343,4 +343,5 @@ USE_LIBS += ['StaticXULComponentsEnd'] >+ # The above library needs to be last for C++ purposes. This library, >+ # however, is entirely composed of Rust code, and needs to come after >+ # all the C++ code so any possible C++ -> Rust calls can be resolved. >+-USE_LIBS += ['gkrust'] >++if CONFIG['MOZ_RUST']: >++ USE_LIBS += ['gkrust'] >+diff --git toolkit/moz.configure toolkit/moz.configure >+index ac9d123224ce..e90da70f0fa5 100644 >+--- toolkit/moz.configure >++++ toolkit/moz.configure >+@@ -88,8 +88,7 @@ include('../js/moz.configure') >+ >+ # Rust >+ # ============================================================== >+-include('../build/moz.configure/rust.configure', >+- when='--enable-compile-environment') >++include('../build/moz.configure/rust.configure') >+ >+ >+ # L10N >+@@ -623,13 +622,13 @@ id_and_secret_keyfile('Leanplum SDK') >+ option('--enable-stylo', nargs='?', choices=('build',), >+ help='Include Stylo in the build and/or enable it at runtime') >+ >+-@depends('--enable-stylo') >+-def stylo_config(value): >++@depends('--enable-stylo', '--enable-rust') >++def stylo_config(value, rust_enabled): >+ build_stylo = None >+ enable_stylo = None >+ >+ # The default is to not build Stylo at all. >+- if value.origin == 'default': >++ if not rust_enabled or value.origin == 'default': >+ pass >+ elif value == 'build': >+ build_stylo = True >+@@ -769,12 +768,14 @@ set_config('SERVO_TARGET_DIR', servo_target_dir) >+ option('--enable-webrender', nargs='?', choices=('build',), >+ help='Include WebRender in the build and/or enable it at runtime') >+ >+-@depends('--enable-webrender', milestone) >+-def webrender(value, milestone): >++@depends('--enable-webrender', '--enable-rust', milestone) >++def webrender(value, rust_enabled, milestone): >+ build_webrender = None >+ enable_webrender = None >+ >+- if value.origin == 'default': >++ if not rust_enabled: >++ pass >++ elif value.origin == 'default': >+ # if nothing is specified, default to just building on Nightly >+ build_webrender = milestone.is_nightly >+ elif value == 'build': >+diff --git toolkit/toolkit.mozbuild toolkit/toolkit.mozbuild >+index b845aab48023..9215afc6dd2d 100644 >+--- toolkit/toolkit.mozbuild >++++ toolkit/toolkit.mozbuild >+@@ -133,16 +133,23 @@ if CONFIG['MOZ_PREF_EXTENSIONS']: >+ >+ DIRS += [ >+ '/devtools', >+- '/toolkit/library', >+- '/toolkit/library/gtest/rust', >+- '/toolkit/library/rust', >+- '/toolkit/library/StaticXULComponentsEnd', >+ '/services', >+ '/startupcache', >+ '/js/ductwork/debugger', >+ '/other-licenses/snappy', >+ ] >+ >++if CONFIG['MOZ_RUST']: >++ DIRS += [ >++ '/toolkit/library/gtest/rust', >++ '/toolkit/library/rust', >++ ] >++ >++DIRS += [ >++ '/toolkit/library/StaticXULComponentsEnd', >++ '/toolkit/library', >++] >++ >+ if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']: >+ DIRS += ['/toolkit/system/gnome'] >+ >+diff --git toolkit/xre/nsAppRunner.cpp toolkit/xre/nsAppRunner.cpp >+index 667c2eb1b365..6fb6cf102baa 100644 >+--- toolkit/xre/nsAppRunner.cpp >++++ toolkit/xre/nsAppRunner.cpp >+@@ -227,11 +227,13 @@ >+ extern uint32_t gRestartMode; >+ extern void InstallSignalHandlers(const char *ProgramName); >+ >++#ifdef MOZ_RUST >+ // This workaround is fixed in Rust 1.19. For details, see bug 1358151. >+ // Implementation in toolkit/library/rust/shared/lib.rs >+ extern "C" { >+ void rust_init_please_remove_this_after_updating_rust_1_19(); >+ } >++#endif >+ >+ #define FILE_COMPATIBILITY_INFO NS_LITERAL_CSTRING("compatibility.ini") >+ #define FILE_INVALIDATE_CACHES NS_LITERAL_CSTRING(".purgecaches") >+@@ -3122,8 +3124,10 @@ XREMain::XRE_mainInit(bool* aExitFlag) >+ return 1; >+ *aExitFlag = false; >+ >++#ifdef MOZ_RUST >+ // This workaround is fixed in Rust 1.19. For details, see bug 1358151. >+ rust_init_please_remove_this_after_updating_rust_1_19(); >++#endif >+ >+ atexit(UnexpectedExit); >+ auto expectedShutdown = mozilla::MakeScopeExit([&] { >+diff --git xpcom/base/nsDebugImpl.cpp xpcom/base/nsDebugImpl.cpp >+index e6bb623c258b..c49d61dce605 100644 >+--- xpcom/base/nsDebugImpl.cpp >++++ xpcom/base/nsDebugImpl.cpp >+@@ -148,14 +148,20 @@ nsDebugImpl::Abort(const char* aFile, int32_t aLine) >+ return NS_OK; >+ } >+ >++#ifdef MOZ_RUST >+ // From toolkit/library/rust/lib.rs >+ extern "C" void intentional_panic(const char* message); >++#endif >+ >+ NS_IMETHODIMP >+ nsDebugImpl::RustPanic(const char* aMessage) >+ { >++#ifdef MOZ_RUST >+ intentional_panic(aMessage); >+ return NS_OK; >++#else >++ return NS_ERROR_NOT_IMPLEMENTED; >++#endif >+ } >+ >+ NS_IMETHODIMP >+diff --git xpcom/rust/nsstring/gtest/moz.build xpcom/rust/nsstring/gtest/moz.build >+index 197411678815..5bed9e57e57d 100644 >+--- xpcom/rust/nsstring/gtest/moz.build >++++ xpcom/rust/nsstring/gtest/moz.build >+@@ -4,8 +4,9 @@ >+ # License, v. 2.0. If a copy of the MPL was not distributed with this >+ # file, You can obtain one at http://mozilla.org/MPL/2.0/. >+ >+-UNIFIED_SOURCES += [ >+- 'Test.cpp' >+-] >++if CONFIG['MOZ_RUST']: >++ UNIFIED_SOURCES += [ >++ 'Test.cpp' >++ ] >+ >+ FINAL_LIBRARY = 'xul-gtest' >diff --git a/www/firefox/files/patch-third__party_python_futures_concurrent_futures_process.py b/www/firefox/files/patch-third__party_python_futures_concurrent_futures_process.py >new file mode 100644 >index 000000000000..0f584dbca8e5 >--- /dev/null >+++ b/www/firefox/files/patch-third__party_python_futures_concurrent_futures_process.py >@@ -0,0 +1,15 @@ >+--- third_party/python/futures/concurrent/futures/process.py.orig 2017-04-11 04:15:19 UTC >++++ third_party/python/futures/concurrent/futures/process.py >+@@ -247,7 +247,11 @@ def _check_system_limits(): >+ _system_limits_checked = True >+ try: >+ import os >+- nsems_max = os.sysconf("SC_SEM_NSEMS_MAX") >++ if sys.platform.startswith('freebsd'): >++ # sem(4) confuses sysconf(3) on FreeBSD < 11.1 >++ nsems_max = -1 >++ else: >++ nsems_max = os.sysconf("SC_SEM_NSEMS_MAX") >+ except (AttributeError, ValueError): >+ # sysconf not available or setting not available >+ return
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 219963
:
183457
|
183533
|
183736
|
183737
|
183827
|
183933
|
184163
|
184285
|
184351
|
184692
|
184908
|
185168