Bug 1340637 - Vendor geckodriver dependencies; r=ted
authorAndreas Tolfsen <ato@mozilla.com>
Tue, 23 May 2017 18:03:07 +0100
changeset 360658 f9e93f02596fe7a6202367d24d186a140210ac13
parent 360657 26c5ecc78764b2ff82807c4bdee921204b2907a7
child 360659 ffcd5303a4ff063016a4bcf6e82478be6c2b53bf
push id31890
push userryanvm@gmail.com
push dateThu, 25 May 2017 20:32:08 +0000
treeherdermozilla-central@bdf2d1918fb0 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersted
bugs1340637
milestone55.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1340637 - Vendor geckodriver dependencies; r=ted MozReview-Commit-ID: 1muL5Jc7ulI
third_party/rust/advapi32-sys/.cargo-checksum.json
third_party/rust/advapi32-sys/.cargo-ok
third_party/rust/advapi32-sys/Cargo.toml
third_party/rust/advapi32-sys/README.md
third_party/rust/advapi32-sys/build.rs
third_party/rust/advapi32-sys/src/lib.rs
third_party/rust/backtrace-sys/.cargo-checksum.json
third_party/rust/backtrace-sys/.cargo-ok
third_party/rust/backtrace-sys/Cargo.toml
third_party/rust/backtrace-sys/build.rs
third_party/rust/backtrace-sys/src/lib.rs
third_party/rust/backtrace-sys/src/libbacktrace/ChangeLog
third_party/rust/backtrace-sys/src/libbacktrace/ChangeLog.jit
third_party/rust/backtrace-sys/src/libbacktrace/Makefile.am
third_party/rust/backtrace-sys/src/libbacktrace/Makefile.in
third_party/rust/backtrace-sys/src/libbacktrace/README
third_party/rust/backtrace-sys/src/libbacktrace/aclocal.m4
third_party/rust/backtrace-sys/src/libbacktrace/alloc.c
third_party/rust/backtrace-sys/src/libbacktrace/ansidecl.h
third_party/rust/backtrace-sys/src/libbacktrace/atomic.c
third_party/rust/backtrace-sys/src/libbacktrace/backtrace-supported.h.in
third_party/rust/backtrace-sys/src/libbacktrace/backtrace.c
third_party/rust/backtrace-sys/src/libbacktrace/backtrace.h
third_party/rust/backtrace-sys/src/libbacktrace/btest.c
third_party/rust/backtrace-sys/src/libbacktrace/config.guess
third_party/rust/backtrace-sys/src/libbacktrace/config.h.in
third_party/rust/backtrace-sys/src/libbacktrace/config.sub
third_party/rust/backtrace-sys/src/libbacktrace/configure
third_party/rust/backtrace-sys/src/libbacktrace/configure.ac
third_party/rust/backtrace-sys/src/libbacktrace/dwarf.c
third_party/rust/backtrace-sys/src/libbacktrace/dwarf2.def
third_party/rust/backtrace-sys/src/libbacktrace/dwarf2.h
third_party/rust/backtrace-sys/src/libbacktrace/elf.c
third_party/rust/backtrace-sys/src/libbacktrace/fileline.c
third_party/rust/backtrace-sys/src/libbacktrace/filenames.h
third_party/rust/backtrace-sys/src/libbacktrace/filetype.awk
third_party/rust/backtrace-sys/src/libbacktrace/hashtab.h
third_party/rust/backtrace-sys/src/libbacktrace/install-sh
third_party/rust/backtrace-sys/src/libbacktrace/internal.h
third_party/rust/backtrace-sys/src/libbacktrace/ltmain.sh
third_party/rust/backtrace-sys/src/libbacktrace/missing
third_party/rust/backtrace-sys/src/libbacktrace/mmap.c
third_party/rust/backtrace-sys/src/libbacktrace/mmapio.c
third_party/rust/backtrace-sys/src/libbacktrace/nounwind.c
third_party/rust/backtrace-sys/src/libbacktrace/pecoff.c
third_party/rust/backtrace-sys/src/libbacktrace/posix.c
third_party/rust/backtrace-sys/src/libbacktrace/print.c
third_party/rust/backtrace-sys/src/libbacktrace/read.c
third_party/rust/backtrace-sys/src/libbacktrace/simple.c
third_party/rust/backtrace-sys/src/libbacktrace/sort.c
third_party/rust/backtrace-sys/src/libbacktrace/state.c
third_party/rust/backtrace-sys/src/libbacktrace/stest.c
third_party/rust/backtrace-sys/src/libbacktrace/unknown.c
third_party/rust/backtrace-sys/symbol-map
third_party/rust/backtrace/.cargo-checksum.json
third_party/rust/backtrace/.cargo-ok
third_party/rust/backtrace/.gitignore
third_party/rust/backtrace/.travis.yml
third_party/rust/backtrace/Cargo.toml
third_party/rust/backtrace/LICENSE-APACHE
third_party/rust/backtrace/LICENSE-MIT
third_party/rust/backtrace/README.md
third_party/rust/backtrace/appveyor.yml
third_party/rust/backtrace/examples/backtrace.rs
third_party/rust/backtrace/examples/raw.rs
third_party/rust/backtrace/src/backtrace/dbghelp.rs
third_party/rust/backtrace/src/backtrace/libunwind.rs
third_party/rust/backtrace/src/backtrace/mod.rs
third_party/rust/backtrace/src/backtrace/noop.rs
third_party/rust/backtrace/src/backtrace/unix_backtrace.rs
third_party/rust/backtrace/src/capture.rs
third_party/rust/backtrace/src/dylib.rs
third_party/rust/backtrace/src/lib.rs
third_party/rust/backtrace/src/symbolize/coresymbolication.rs
third_party/rust/backtrace/src/symbolize/dbghelp.rs
third_party/rust/backtrace/src/symbolize/dladdr.rs
third_party/rust/backtrace/src/symbolize/libbacktrace.rs
third_party/rust/backtrace/src/symbolize/mod.rs
third_party/rust/backtrace/src/symbolize/noop.rs
third_party/rust/backtrace/tests/smoke.rs
third_party/rust/base64/.cargo-checksum.json
third_party/rust/base64/.cargo-ok
third_party/rust/base64/.gitignore
third_party/rust/base64/Cargo.toml
third_party/rust/base64/LICENSE-APACHE
third_party/rust/base64/LICENSE-MIT
third_party/rust/base64/README.md
third_party/rust/base64/benches/benchmarks.rs
third_party/rust/base64/examples/make_tables.rs
third_party/rust/base64/src/lib.rs
third_party/rust/base64/src/tables.rs
third_party/rust/base64/tests/tests.rs
third_party/rust/bzip2-sys/.cargo-checksum.json
third_party/rust/bzip2-sys/.cargo-ok
third_party/rust/bzip2-sys/Cargo.toml
third_party/rust/bzip2-sys/build.rs
third_party/rust/bzip2-sys/bzip2-1.0.6/CHANGES
third_party/rust/bzip2-sys/bzip2-1.0.6/LICENSE
third_party/rust/bzip2-sys/bzip2-1.0.6/Makefile
third_party/rust/bzip2-sys/bzip2-1.0.6/Makefile-libbz2_so
third_party/rust/bzip2-sys/bzip2-1.0.6/README
third_party/rust/bzip2-sys/bzip2-1.0.6/README.COMPILATION.PROBLEMS
third_party/rust/bzip2-sys/bzip2-1.0.6/README.XML.STUFF
third_party/rust/bzip2-sys/bzip2-1.0.6/blocksort.c
third_party/rust/bzip2-sys/bzip2-1.0.6/bz-common.xsl
third_party/rust/bzip2-sys/bzip2-1.0.6/bz-fo.xsl
third_party/rust/bzip2-sys/bzip2-1.0.6/bz-html.xsl
third_party/rust/bzip2-sys/bzip2-1.0.6/bzdiff
third_party/rust/bzip2-sys/bzip2-1.0.6/bzdiff.1
third_party/rust/bzip2-sys/bzip2-1.0.6/bzgrep
third_party/rust/bzip2-sys/bzip2-1.0.6/bzgrep.1
third_party/rust/bzip2-sys/bzip2-1.0.6/bzip.css
third_party/rust/bzip2-sys/bzip2-1.0.6/bzip2.1
third_party/rust/bzip2-sys/bzip2-1.0.6/bzip2.1.preformatted
third_party/rust/bzip2-sys/bzip2-1.0.6/bzip2.c
third_party/rust/bzip2-sys/bzip2-1.0.6/bzip2.txt
third_party/rust/bzip2-sys/bzip2-1.0.6/bzip2recover.c
third_party/rust/bzip2-sys/bzip2-1.0.6/bzlib.c
third_party/rust/bzip2-sys/bzip2-1.0.6/bzlib.h
third_party/rust/bzip2-sys/bzip2-1.0.6/bzlib_private.h
third_party/rust/bzip2-sys/bzip2-1.0.6/bzmore
third_party/rust/bzip2-sys/bzip2-1.0.6/bzmore.1
third_party/rust/bzip2-sys/bzip2-1.0.6/compress.c
third_party/rust/bzip2-sys/bzip2-1.0.6/crctable.c
third_party/rust/bzip2-sys/bzip2-1.0.6/decompress.c
third_party/rust/bzip2-sys/bzip2-1.0.6/dlltest.c
third_party/rust/bzip2-sys/bzip2-1.0.6/dlltest.dsp
third_party/rust/bzip2-sys/bzip2-1.0.6/entities.xml
third_party/rust/bzip2-sys/bzip2-1.0.6/format.pl
third_party/rust/bzip2-sys/bzip2-1.0.6/huffman.c
third_party/rust/bzip2-sys/bzip2-1.0.6/libbz2.def
third_party/rust/bzip2-sys/bzip2-1.0.6/libbz2.dsp
third_party/rust/bzip2-sys/bzip2-1.0.6/makefile.msc
third_party/rust/bzip2-sys/bzip2-1.0.6/manual.html
third_party/rust/bzip2-sys/bzip2-1.0.6/manual.ps
third_party/rust/bzip2-sys/bzip2-1.0.6/manual.xml
third_party/rust/bzip2-sys/bzip2-1.0.6/mk251.c
third_party/rust/bzip2-sys/bzip2-1.0.6/randtable.c
third_party/rust/bzip2-sys/bzip2-1.0.6/sample1.bz2
third_party/rust/bzip2-sys/bzip2-1.0.6/sample1.ref
third_party/rust/bzip2-sys/bzip2-1.0.6/sample2.bz2
third_party/rust/bzip2-sys/bzip2-1.0.6/sample2.ref
third_party/rust/bzip2-sys/bzip2-1.0.6/sample3.bz2
third_party/rust/bzip2-sys/bzip2-1.0.6/sample3.ref
third_party/rust/bzip2-sys/bzip2-1.0.6/spewG.c
third_party/rust/bzip2-sys/bzip2-1.0.6/unzcrash.c
third_party/rust/bzip2-sys/bzip2-1.0.6/words0
third_party/rust/bzip2-sys/bzip2-1.0.6/words1
third_party/rust/bzip2-sys/bzip2-1.0.6/words2
third_party/rust/bzip2-sys/bzip2-1.0.6/words3
third_party/rust/bzip2-sys/bzip2-1.0.6/xmlproc.sh
third_party/rust/bzip2-sys/lib.rs
third_party/rust/bzip2/.cargo-checksum.json
third_party/rust/bzip2/.cargo-ok
third_party/rust/bzip2/.gitignore
third_party/rust/bzip2/.travis.yml
third_party/rust/bzip2/Cargo.toml
third_party/rust/bzip2/LICENSE-APACHE
third_party/rust/bzip2/LICENSE-MIT
third_party/rust/bzip2/README.md
third_party/rust/bzip2/appveyor.yml
third_party/rust/bzip2/src/bufread.rs
third_party/rust/bzip2/src/lib.rs
third_party/rust/bzip2/src/mem.rs
third_party/rust/bzip2/src/read.rs
third_party/rust/bzip2/src/write.rs
third_party/rust/bzip2/tests/tokio.rs
third_party/rust/chrono/.cargo-checksum.json
third_party/rust/chrono/.cargo-ok
third_party/rust/chrono/.gitignore
third_party/rust/chrono/.travis.yml
third_party/rust/chrono/AUTHORS.txt
third_party/rust/chrono/CHANGELOG.md
third_party/rust/chrono/Cargo.toml
third_party/rust/chrono/LICENSE.txt
third_party/rust/chrono/Makefile
third_party/rust/chrono/README.md
third_party/rust/chrono/src/date.rs
third_party/rust/chrono/src/datetime.rs
third_party/rust/chrono/src/div.rs
third_party/rust/chrono/src/format/mod.rs
third_party/rust/chrono/src/format/parse.rs
third_party/rust/chrono/src/format/parsed.rs
third_party/rust/chrono/src/format/scan.rs
third_party/rust/chrono/src/format/strftime.rs
third_party/rust/chrono/src/lib.rs
third_party/rust/chrono/src/naive/date.rs
third_party/rust/chrono/src/naive/datetime.rs
third_party/rust/chrono/src/naive/time.rs
third_party/rust/chrono/src/offset/fixed.rs
third_party/rust/chrono/src/offset/local.rs
third_party/rust/chrono/src/offset/mod.rs
third_party/rust/chrono/src/offset/utc.rs
third_party/rust/cookie/.cargo-checksum.json
third_party/rust/cookie/.cargo-ok
third_party/rust/cookie/.gitignore
third_party/rust/cookie/.travis.yml
third_party/rust/cookie/Cargo.toml
third_party/rust/cookie/LICENSE-APACHE
third_party/rust/cookie/LICENSE-MIT
third_party/rust/cookie/README.md
third_party/rust/cookie/src/builder.rs
third_party/rust/cookie/src/jar.rs
third_party/rust/cookie/src/lib.rs
third_party/rust/cookie/src/parse.rs
third_party/rust/crossbeam/.cargo-checksum.json
third_party/rust/crossbeam/.cargo-ok
third_party/rust/crossbeam/.gitignore
third_party/rust/crossbeam/.travis.yml
third_party/rust/crossbeam/CHANGELOG.md
third_party/rust/crossbeam/Cargo.toml
third_party/rust/crossbeam/LICENSE-APACHE
third_party/rust/crossbeam/LICENSE-MIT
third_party/rust/crossbeam/README.md
third_party/rust/crossbeam/scala-bench/bench.scala
third_party/rust/crossbeam/src/bin/bench.rs
third_party/rust/crossbeam/src/bin/extra_impls/mod.rs
third_party/rust/crossbeam/src/bin/extra_impls/mpsc_queue.rs
third_party/rust/crossbeam/src/bin/stress-msq.rs
third_party/rust/crossbeam/src/lib.rs
third_party/rust/crossbeam/src/mem/cache_padded.rs
third_party/rust/crossbeam/src/mem/epoch/atomic.rs
third_party/rust/crossbeam/src/mem/epoch/garbage.rs
third_party/rust/crossbeam/src/mem/epoch/global.rs
third_party/rust/crossbeam/src/mem/epoch/guard.rs
third_party/rust/crossbeam/src/mem/epoch/local.rs
third_party/rust/crossbeam/src/mem/epoch/mod.rs
third_party/rust/crossbeam/src/mem/epoch/participant.rs
third_party/rust/crossbeam/src/mem/epoch/participants.rs
third_party/rust/crossbeam/src/mem/mod.rs
third_party/rust/crossbeam/src/scoped.rs
third_party/rust/crossbeam/src/sync/arc_cell.rs
third_party/rust/crossbeam/src/sync/atomic_option.rs
third_party/rust/crossbeam/src/sync/chase_lev.rs
third_party/rust/crossbeam/src/sync/mod.rs
third_party/rust/crossbeam/src/sync/ms_queue.rs
third_party/rust/crossbeam/src/sync/seg_queue.rs
third_party/rust/crossbeam/src/sync/treiber_stack.rs
third_party/rust/dbghelp-sys/.cargo-checksum.json
third_party/rust/dbghelp-sys/.cargo-ok
third_party/rust/dbghelp-sys/Cargo.toml
third_party/rust/dbghelp-sys/README.md
third_party/rust/dbghelp-sys/build.rs
third_party/rust/dbghelp-sys/i686/libdbghelp.a
third_party/rust/dbghelp-sys/src/lib.rs
third_party/rust/dbghelp-sys/x86_64/libdbghelp.a
third_party/rust/flate2/.cargo-checksum.json
third_party/rust/flate2/.cargo-ok
third_party/rust/flate2/.gitignore
third_party/rust/flate2/.travis.yml
third_party/rust/flate2/Cargo.toml
third_party/rust/flate2/LICENSE-APACHE
third_party/rust/flate2/LICENSE-MIT
third_party/rust/flate2/README.md
third_party/rust/flate2/appveyor.yml
third_party/rust/flate2/src/bufreader.rs
third_party/rust/flate2/src/crc.rs
third_party/rust/flate2/src/deflate.rs
third_party/rust/flate2/src/ffi.rs
third_party/rust/flate2/src/gz.rs
third_party/rust/flate2/src/lib.rs
third_party/rust/flate2/src/mem.rs
third_party/rust/flate2/src/zio.rs
third_party/rust/flate2/src/zlib.rs
third_party/rust/flate2/tests/corrupt-file.gz
third_party/rust/flate2/tests/good-file.gz
third_party/rust/flate2/tests/good-file.txt
third_party/rust/flate2/tests/gunzip.rs
third_party/rust/flate2/tests/multi.gz
third_party/rust/flate2/tests/multi.txt
third_party/rust/flate2/tests/tokio.rs
third_party/rust/httparse/.cargo-checksum.json
third_party/rust/httparse/.cargo-ok
third_party/rust/httparse/.gitignore
third_party/rust/httparse/.travis.yml
third_party/rust/httparse/.travis_after.sh
third_party/rust/httparse/Cargo.toml
third_party/rust/httparse/LICENSE-APACHE
third_party/rust/httparse/LICENSE-MIT
third_party/rust/httparse/README.md
third_party/rust/httparse/benches/parse.rs
third_party/rust/httparse/src/iter.rs
third_party/rust/httparse/src/lib.rs
third_party/rust/hyper/.cargo-checksum.json
third_party/rust/hyper/.cargo-ok
third_party/rust/hyper/Cargo.toml
third_party/rust/hyper/LICENSE
third_party/rust/hyper/build.rs
third_party/rust/hyper/src/buffer.rs
third_party/rust/hyper/src/client/mod.rs
third_party/rust/hyper/src/client/pool.rs
third_party/rust/hyper/src/client/proxy.rs
third_party/rust/hyper/src/client/request.rs
third_party/rust/hyper/src/client/response.rs
third_party/rust/hyper/src/error.rs
third_party/rust/hyper/src/header/common/accept.rs
third_party/rust/hyper/src/header/common/accept_charset.rs
third_party/rust/hyper/src/header/common/accept_encoding.rs
third_party/rust/hyper/src/header/common/accept_language.rs
third_party/rust/hyper/src/header/common/accept_ranges.rs
third_party/rust/hyper/src/header/common/access_control_allow_credentials.rs
third_party/rust/hyper/src/header/common/access_control_allow_headers.rs
third_party/rust/hyper/src/header/common/access_control_allow_methods.rs
third_party/rust/hyper/src/header/common/access_control_allow_origin.rs
third_party/rust/hyper/src/header/common/access_control_expose_headers.rs
third_party/rust/hyper/src/header/common/access_control_max_age.rs
third_party/rust/hyper/src/header/common/access_control_request_headers.rs
third_party/rust/hyper/src/header/common/access_control_request_method.rs
third_party/rust/hyper/src/header/common/allow.rs
third_party/rust/hyper/src/header/common/authorization.rs
third_party/rust/hyper/src/header/common/cache_control.rs
third_party/rust/hyper/src/header/common/connection.rs
third_party/rust/hyper/src/header/common/content_disposition.rs
third_party/rust/hyper/src/header/common/content_encoding.rs
third_party/rust/hyper/src/header/common/content_language.rs
third_party/rust/hyper/src/header/common/content_length.rs
third_party/rust/hyper/src/header/common/content_range.rs
third_party/rust/hyper/src/header/common/content_type.rs
third_party/rust/hyper/src/header/common/cookie.rs
third_party/rust/hyper/src/header/common/date.rs
third_party/rust/hyper/src/header/common/etag.rs
third_party/rust/hyper/src/header/common/expect.rs
third_party/rust/hyper/src/header/common/expires.rs
third_party/rust/hyper/src/header/common/from.rs
third_party/rust/hyper/src/header/common/host.rs
third_party/rust/hyper/src/header/common/if_match.rs
third_party/rust/hyper/src/header/common/if_modified_since.rs
third_party/rust/hyper/src/header/common/if_none_match.rs
third_party/rust/hyper/src/header/common/if_range.rs
third_party/rust/hyper/src/header/common/if_unmodified_since.rs
third_party/rust/hyper/src/header/common/last-event-id.rs
third_party/rust/hyper/src/header/common/last_modified.rs
third_party/rust/hyper/src/header/common/location.rs
third_party/rust/hyper/src/header/common/mod.rs
third_party/rust/hyper/src/header/common/origin.rs
third_party/rust/hyper/src/header/common/pragma.rs
third_party/rust/hyper/src/header/common/prefer.rs
third_party/rust/hyper/src/header/common/preference_applied.rs
third_party/rust/hyper/src/header/common/range.rs
third_party/rust/hyper/src/header/common/referer.rs
third_party/rust/hyper/src/header/common/referrer_policy.rs
third_party/rust/hyper/src/header/common/server.rs
third_party/rust/hyper/src/header/common/set_cookie.rs
third_party/rust/hyper/src/header/common/strict_transport_security.rs
third_party/rust/hyper/src/header/common/transfer_encoding.rs
third_party/rust/hyper/src/header/common/upgrade.rs
third_party/rust/hyper/src/header/common/user_agent.rs
third_party/rust/hyper/src/header/common/vary.rs
third_party/rust/hyper/src/header/internals/cell.rs
third_party/rust/hyper/src/header/internals/item.rs
third_party/rust/hyper/src/header/internals/mod.rs
third_party/rust/hyper/src/header/internals/vec_map.rs
third_party/rust/hyper/src/header/mod.rs
third_party/rust/hyper/src/header/parsing.rs
third_party/rust/hyper/src/header/shared/charset.rs
third_party/rust/hyper/src/header/shared/encoding.rs
third_party/rust/hyper/src/header/shared/entity.rs
third_party/rust/hyper/src/header/shared/httpdate.rs
third_party/rust/hyper/src/header/shared/mod.rs
third_party/rust/hyper/src/header/shared/quality_item.rs
third_party/rust/hyper/src/http/h1.rs
third_party/rust/hyper/src/http/message.rs
third_party/rust/hyper/src/http/mod.rs
third_party/rust/hyper/src/lib.rs
third_party/rust/hyper/src/method.rs
third_party/rust/hyper/src/mock.rs
third_party/rust/hyper/src/net.rs
third_party/rust/hyper/src/server/listener.rs
third_party/rust/hyper/src/server/mod.rs
third_party/rust/hyper/src/server/request.rs
third_party/rust/hyper/src/server/response.rs
third_party/rust/hyper/src/status.rs
third_party/rust/hyper/src/uri.rs
third_party/rust/hyper/src/version.rs
third_party/rust/isatty/.cargo-checksum.json
third_party/rust/isatty/.cargo-ok
third_party/rust/isatty/.gitignore
third_party/rust/isatty/.travis.yml
third_party/rust/isatty/Cargo.toml
third_party/rust/isatty/LICENSE-APACHE
third_party/rust/isatty/LICENSE-MIT
third_party/rust/isatty/README.md
third_party/rust/isatty/src/lib.rs
third_party/rust/kernel32-sys-0.1.4/.cargo-checksum.json
third_party/rust/kernel32-sys-0.1.4/.cargo-ok
third_party/rust/kernel32-sys-0.1.4/Cargo.toml
third_party/rust/kernel32-sys-0.1.4/README.md
third_party/rust/kernel32-sys-0.1.4/build.rs
third_party/rust/kernel32-sys-0.1.4/src/lib.rs
third_party/rust/ktmw32-sys/.cargo-checksum.json
third_party/rust/ktmw32-sys/.cargo-ok
third_party/rust/ktmw32-sys/Cargo.toml
third_party/rust/ktmw32-sys/README.md
third_party/rust/ktmw32-sys/build.rs
third_party/rust/ktmw32-sys/i686/libktmw32.a
third_party/rust/ktmw32-sys/src/lib.rs
third_party/rust/ktmw32-sys/x86_64/libktmw32.a
third_party/rust/language-tags/.cargo-checksum.json
third_party/rust/language-tags/.cargo-ok
third_party/rust/language-tags/Cargo.toml
third_party/rust/language-tags/LICENSE
third_party/rust/language-tags/src/lib.rs
third_party/rust/language-tags/tests/tests.rs
third_party/rust/lazy_static-0.1.16/.cargo-checksum.json
third_party/rust/lazy_static-0.1.16/.cargo-ok
third_party/rust/lazy_static-0.1.16/.gitignore
third_party/rust/lazy_static-0.1.16/.travis.yml
third_party/rust/lazy_static-0.1.16/Cargo.toml
third_party/rust/lazy_static-0.1.16/LICENSE
third_party/rust/lazy_static-0.1.16/README.md
third_party/rust/lazy_static-0.1.16/src/lib.rs
third_party/rust/lazy_static-0.1.16/src/liblib.so
third_party/rust/lazy_static-0.1.16/tests/test.rs
third_party/rust/mime/.cargo-checksum.json
third_party/rust/mime/.cargo-ok
third_party/rust/mime/.gitignore
third_party/rust/mime/.travis.yml
third_party/rust/mime/Cargo.toml
third_party/rust/mime/LICENSE
third_party/rust/mime/README.md
third_party/rust/mime/src/lib.rs
third_party/rust/miniz-sys/.cargo-checksum.json
third_party/rust/miniz-sys/.cargo-ok
third_party/rust/miniz-sys/Cargo.toml
third_party/rust/miniz-sys/build.rs
third_party/rust/miniz-sys/lib.rs
third_party/rust/miniz-sys/miniz.c
third_party/rust/mozprofile/.cargo-checksum.json
third_party/rust/mozprofile/.cargo-ok
third_party/rust/mozprofile/.gitignore
third_party/rust/mozprofile/Cargo.toml
third_party/rust/mozprofile/LICENSE
third_party/rust/mozprofile/src/lib.rs
third_party/rust/mozprofile/src/prefdata.rs
third_party/rust/mozprofile/src/preferences.rs
third_party/rust/mozprofile/src/prefreader.rs
third_party/rust/mozprofile/src/profile.rs
third_party/rust/mozrunner/.cargo-checksum.json
third_party/rust/mozrunner/.cargo-ok
third_party/rust/mozrunner/.gitignore
third_party/rust/mozrunner/Cargo.toml
third_party/rust/mozrunner/LICENSE
third_party/rust/mozrunner/src/bin/firefox-default-path.rs
third_party/rust/mozrunner/src/lib.rs
third_party/rust/mozrunner/src/runner.rs
third_party/rust/mozversion/.cargo-checksum.json
third_party/rust/mozversion/.cargo-ok
third_party/rust/mozversion/.gitignore
third_party/rust/mozversion/Cargo.toml
third_party/rust/mozversion/src/lib.rs
third_party/rust/msdos_time/.cargo-checksum.json
third_party/rust/msdos_time/.cargo-ok
third_party/rust/msdos_time/.gitignore
third_party/rust/msdos_time/.travis.yml
third_party/rust/msdos_time/Cargo.toml
third_party/rust/msdos_time/LICENSE-APACHE
third_party/rust/msdos_time/LICENSE-MIT
third_party/rust/msdos_time/README.md
third_party/rust/msdos_time/appveyor.yml
third_party/rust/msdos_time/script/doc-upload.cfg
third_party/rust/msdos_time/src/lib.rs
third_party/rust/num-iter/.cargo-checksum.json
third_party/rust/num-iter/.cargo-ok
third_party/rust/num-iter/Cargo.toml
third_party/rust/num-iter/LICENSE-APACHE
third_party/rust/num-iter/LICENSE-MIT
third_party/rust/num-iter/src/lib.rs
third_party/rust/num/.cargo-checksum.json
third_party/rust/num/.cargo-ok
third_party/rust/num/.gitignore
third_party/rust/num/.travis.yml
third_party/rust/num/Cargo.toml
third_party/rust/num/LICENSE-APACHE
third_party/rust/num/LICENSE-MIT
third_party/rust/num/README.md
third_party/rust/num/benches/bigint.rs
third_party/rust/num/benches/shootout-pidigits.rs
third_party/rust/num/ci/.gitignore
third_party/rust/num/ci/deploy.enc
third_party/rust/num/ci/deploy.sh
third_party/rust/num/ci/rustup.sh
third_party/rust/num/ci/test_full.sh
third_party/rust/num/doc/favicon.ico
third_party/rust/num/doc/index.html
third_party/rust/num/doc/rust-logo-128x128-blk-v2.png
third_party/rust/num/src/lib.rs
third_party/rust/podio/.cargo-checksum.json
third_party/rust/podio/.cargo-ok
third_party/rust/podio/.gitignore
third_party/rust/podio/.travis.yml
third_party/rust/podio/Cargo.toml
third_party/rust/podio/LICENSE-APACHE
third_party/rust/podio/LICENSE-MIT
third_party/rust/podio/README.md
third_party/rust/podio/appveyor.yml
third_party/rust/podio/benches/benchmark.rs
third_party/rust/podio/script/doc-upload.cfg
third_party/rust/podio/src/lib.rs
third_party/rust/podio/tests/bytes.rs
third_party/rust/podio/tests/io.rs
third_party/rust/rust-ini/.cargo-checksum.json
third_party/rust/rust-ini/.cargo-ok
third_party/rust/rust-ini/.gitignore
third_party/rust/rust-ini/.travis.yml
third_party/rust/rust-ini/Cargo.toml
third_party/rust/rust-ini/README.rst
third_party/rust/rust-ini/examples/test.rs
third_party/rust/rust-ini/src/ini.rs
third_party/rust/rust-ini/src/lib.rs
third_party/rust/rustc-demangle/.cargo-checksum.json
third_party/rust/rustc-demangle/.cargo-ok
third_party/rust/rustc-demangle/.gitignore
third_party/rust/rustc-demangle/.travis.yml
third_party/rust/rustc-demangle/Cargo.toml
third_party/rust/rustc-demangle/LICENSE-APACHE
third_party/rust/rustc-demangle/LICENSE-MIT
third_party/rust/rustc-demangle/README.md
third_party/rust/rustc-demangle/src/lib.rs
third_party/rust/rustc_version/.cargo-checksum.json
third_party/rust/rustc_version/.cargo-ok
third_party/rust/rustc_version/.gitignore
third_party/rust/rustc_version/.travis.yml
third_party/rust/rustc_version/Cargo.toml
third_party/rust/rustc_version/LICENSE-APACHE
third_party/rust/rustc_version/LICENSE-MIT
third_party/rust/rustc_version/README.md
third_party/rust/rustc_version/src/lib.rs
third_party/rust/semver-0.1.20/.cargo-checksum.json
third_party/rust/semver-0.1.20/.cargo-ok
third_party/rust/semver-0.1.20/.gitignore
third_party/rust/semver-0.1.20/.travis.yml
third_party/rust/semver-0.1.20/Cargo.toml
third_party/rust/semver-0.1.20/LICENSE-APACHE
third_party/rust/semver-0.1.20/LICENSE-MIT
third_party/rust/semver-0.1.20/README.md
third_party/rust/semver-0.1.20/src/lib.rs
third_party/rust/semver-0.1.20/src/version.rs
third_party/rust/semver-0.1.20/src/version_req.rs
third_party/rust/slog-atomic/.cargo-checksum.json
third_party/rust/slog-atomic/.cargo-ok
third_party/rust/slog-atomic/.gitignore
third_party/rust/slog-atomic/.travis.yml
third_party/rust/slog-atomic/CHANGELOG.md
third_party/rust/slog-atomic/Cargo.toml
third_party/rust/slog-atomic/LICENSE-MPL2
third_party/rust/slog-atomic/Makefile
third_party/rust/slog-atomic/README.md
third_party/rust/slog-atomic/examples/signal.rs
third_party/rust/slog-atomic/lib.rs
third_party/rust/slog-extra/.cargo-checksum.json
third_party/rust/slog-extra/.cargo-ok
third_party/rust/slog-extra/.gitignore
third_party/rust/slog-extra/.travis.yml
third_party/rust/slog-extra/CHANGELOG.md
third_party/rust/slog-extra/Cargo.toml
third_party/rust/slog-extra/LICENSE-MPL2
third_party/rust/slog-extra/Makefile
third_party/rust/slog-extra/README.md
third_party/rust/slog-extra/lib.rs
third_party/rust/slog-stdlog/.cargo-checksum.json
third_party/rust/slog-stdlog/.cargo-ok
third_party/rust/slog-stdlog/CHANGELOG.md
third_party/rust/slog-stdlog/Cargo.toml
third_party/rust/slog-stdlog/lib.rs
third_party/rust/slog-stream/.cargo-checksum.json
third_party/rust/slog-stream/.cargo-ok
third_party/rust/slog-stream/.gitignore
third_party/rust/slog-stream/.travis.yml
third_party/rust/slog-stream/CHANGELOG.md
third_party/rust/slog-stream/Cargo.toml
third_party/rust/slog-stream/LICENSE-MPL2
third_party/rust/slog-stream/Makefile
third_party/rust/slog-stream/README.md
third_party/rust/slog-stream/format.rs
third_party/rust/slog-stream/lib.rs
third_party/rust/slog-stream/rusty-tags.vi
third_party/rust/slog-term/.cargo-checksum.json
third_party/rust/slog-term/.cargo-ok
third_party/rust/slog-term/.gitignore
third_party/rust/slog-term/.travis.yml
third_party/rust/slog-term/CHANGELOG.md
third_party/rust/slog-term/Cargo.toml
third_party/rust/slog-term/LICENSE-MPL2
third_party/rust/slog-term/Makefile
third_party/rust/slog-term/README.md
third_party/rust/slog-term/lib.rs
third_party/rust/slog/.cargo-checksum.json
third_party/rust/slog/.cargo-ok
third_party/rust/slog/.cargo/config
third_party/rust/slog/.gitignore
third_party/rust/slog/.travis.yml
third_party/rust/slog/CHANGELOG.md
third_party/rust/slog/Cargo.toml
third_party/rust/slog/LICENSE-MPL2
third_party/rust/slog/Makefile
third_party/rust/slog/README.md
third_party/rust/slog/benches.txt
third_party/rust/slog/examples.txt
third_party/rust/slog/src/_drain.rs
third_party/rust/slog/src/_level.rs
third_party/rust/slog/src/_logger.rs
third_party/rust/slog/src/lib.rs
third_party/rust/slog/src/ser.rs
third_party/rust/slog/src/tests.rs
third_party/rust/tempdir/.cargo-checksum.json
third_party/rust/tempdir/.cargo-ok
third_party/rust/tempdir/.gitignore
third_party/rust/tempdir/.travis.yml
third_party/rust/tempdir/Cargo.toml
third_party/rust/tempdir/LICENSE-APACHE
third_party/rust/tempdir/LICENSE-MIT
third_party/rust/tempdir/README.md
third_party/rust/tempdir/src/lib.rs
third_party/rust/tempdir/tests/smoke.rs
third_party/rust/traitobject/.cargo-checksum.json
third_party/rust/traitobject/.cargo-ok
third_party/rust/traitobject/.gitignore
third_party/rust/traitobject/.travis.yml
third_party/rust/traitobject/Cargo.toml
third_party/rust/traitobject/README.md
third_party/rust/traitobject/src/impls.rs
third_party/rust/traitobject/src/lib.rs
third_party/rust/typeable/.cargo-checksum.json
third_party/rust/typeable/.cargo-ok
third_party/rust/typeable/.gitignore
third_party/rust/typeable/.travis.yml
third_party/rust/typeable/Cargo.toml
third_party/rust/typeable/src/lib.rs
third_party/rust/unicase/.cargo-checksum.json
third_party/rust/unicase/.cargo-ok
third_party/rust/unicase/.gitignore
third_party/rust/unicase/.travis.yml
third_party/rust/unicase/Cargo.toml
third_party/rust/unicase/LICENSE
third_party/rust/unicase/README.md
third_party/rust/unicase/build.rs
third_party/rust/unicase/src/lib.rs
third_party/rust/uuid/.cargo-checksum.json
third_party/rust/uuid/.cargo-ok
third_party/rust/uuid/.gitignore
third_party/rust/uuid/.travis.yml
third_party/rust/uuid/Cargo.toml
third_party/rust/uuid/LICENSE-APACHE
third_party/rust/uuid/LICENSE-MIT
third_party/rust/uuid/README.md
third_party/rust/uuid/benches/parse_str.rs
third_party/rust/uuid/src/lib.rs
third_party/rust/webdriver/.cargo-checksum.json
third_party/rust/webdriver/.cargo-ok
third_party/rust/webdriver/.gitignore
third_party/rust/webdriver/.travis.yml
third_party/rust/webdriver/Cargo.toml
third_party/rust/webdriver/LICENSE
third_party/rust/webdriver/README.md
third_party/rust/webdriver/src/capabilities.rs
third_party/rust/webdriver/src/command.rs
third_party/rust/webdriver/src/common.rs
third_party/rust/webdriver/src/error.rs
third_party/rust/webdriver/src/httpapi.rs
third_party/rust/webdriver/src/lib.rs
third_party/rust/webdriver/src/macros.rs
third_party/rust/webdriver/src/response.rs
third_party/rust/webdriver/src/server.rs
third_party/rust/winreg/.cargo-checksum.json
third_party/rust/winreg/.cargo-ok
third_party/rust/winreg/.gitignore
third_party/rust/winreg/Cargo.toml
third_party/rust/winreg/LICENSE
third_party/rust/winreg/README.md
third_party/rust/winreg/examples/basic_usage.rs
third_party/rust/winreg/examples/enum.rs
third_party/rust/winreg/examples/serialization.rs
third_party/rust/winreg/examples/transaction.rs
third_party/rust/winreg/src/enums.rs
third_party/rust/winreg/src/lib.rs
third_party/rust/winreg/src/serialization.rs
third_party/rust/winreg/src/transaction.rs
third_party/rust/winreg/src/types.rs
third_party/rust/zip/.cargo-checksum.json
third_party/rust/zip/.cargo-ok
third_party/rust/zip/.gitignore
third_party/rust/zip/.travis.yml
third_party/rust/zip/Cargo.toml
third_party/rust/zip/LICENSE
third_party/rust/zip/README.md
third_party/rust/zip/appveyor.yml
third_party/rust/zip/examples/extract.rs
third_party/rust/zip/examples/extract_lorem.rs
third_party/rust/zip/examples/write_sample.rs
third_party/rust/zip/script/doc-upload.cfg
third_party/rust/zip/src/compression.rs
third_party/rust/zip/src/cp437.rs
third_party/rust/zip/src/crc32.rs
third_party/rust/zip/src/lib.rs
third_party/rust/zip/src/read.rs
third_party/rust/zip/src/result.rs
third_party/rust/zip/src/spec.rs
third_party/rust/zip/src/types.rs
third_party/rust/zip/src/write.rs
new file mode 100644
--- /dev/null
+++ b/third_party/rust/advapi32-sys/.cargo-checksum.json
@@ -0,0 +1,1 @@
+{"files":{".cargo-ok":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","Cargo.toml":"323ff5358cf140e4d815e6f7563efdeffce840fa3394ead82839fdd8b02a6689","README.md":"cf602fdefd59881da22ea4f7a8db2cfa94e6e03cd9afb4fbf838143e1ca2c194","build.rs":"e063024318a8d117756b5a58dfb3a21d872ab9ba3c8762906f773ddc53eae45a","src/lib.rs":"6de786f2f5b1a1fcb0123086845bfeab7b012a600920862ff98dbacf67f3947a"},"package":"307c92332867e586720c0222ee9d890bbe8431711efed8a1b06bc5b40fc66bd7"}
\ No newline at end of file
new file mode 100644
new file mode 100644
--- /dev/null
+++ b/third_party/rust/advapi32-sys/Cargo.toml
@@ -0,0 +1,20 @@
+[package]
+name = "advapi32-sys"
+version = "0.1.2"
+authors = ["Peter Atashian <retep998@gmail.com>"]
+description = "FFI bindings to advapi32."
+documentation = "https://retep998.github.io/doc/advapi32/"
+repository = "https://github.com/retep998/winapi-rs"
+readme = "README.md"
+keywords = ["Windows", "FFI", "WinSDK"]
+license = "MIT"
+build = "build.rs"
+links = "advapi32"
+
+[lib]
+name = "advapi32"
+
+[dependencies]
+winapi = { version = "*", path = "../.." }
+[build-dependencies]
+winapi-build = { version = "*", path = "../../build" }
new file mode 100644
--- /dev/null
+++ b/third_party/rust/advapi32-sys/README.md
@@ -0,0 +1,4 @@
+# advapi32-sys #
+FFI bindings to advapi32.
+
+[Documentation](https://retep998.github.io/doc/advapi32/)
new file mode 100644
--- /dev/null
+++ b/third_party/rust/advapi32-sys/build.rs
@@ -0,0 +1,6 @@
+// Copyright © 2015, Peter Atashian
+// Licensed under the MIT License <LICENSE.md>
+extern crate build;
+fn main() {
+    build::link("advapi32", false)
+}
new file mode 100644
--- /dev/null
+++ b/third_party/rust/advapi32-sys/src/lib.rs
@@ -0,0 +1,1001 @@
+// Copyright © 2015, Peter Atashian
+// Licensed under the MIT License <LICENSE.md>
+//! FFI bindings to advapi32.
+#![cfg(windows)]
+extern crate winapi;
+use winapi::*;
+extern "system" {
+    // pub fn AbortSystemShutdownA();
+    // pub fn AbortSystemShutdownW();
+    // pub fn AccessCheck();
+    // pub fn AccessCheckAndAuditAlarmA();
+    // pub fn AccessCheckAndAuditAlarmW();
+    // pub fn AccessCheckByType();
+    // pub fn AccessCheckByTypeAndAuditAlarmA();
+    // pub fn AccessCheckByTypeAndAuditAlarmW();
+    // pub fn AccessCheckByTypeResultList();
+    // pub fn AccessCheckByTypeResultListAndAuditAlarmA();
+    // pub fn AccessCheckByTypeResultListAndAuditAlarmByHandleA();
+    // pub fn AccessCheckByTypeResultListAndAuditAlarmByHandleW();
+    // pub fn AccessCheckByTypeResultListAndAuditAlarmW();
+    // pub fn AddAccessAllowedAce();
+    // pub fn AddAccessAllowedAceEx();
+    // pub fn AddAccessAllowedObjectAce();
+    // pub fn AddAccessDeniedAce();
+    // pub fn AddAccessDeniedAceEx();
+    // pub fn AddAccessDeniedObjectAce();
+    // pub fn AddAce();
+    // pub fn AddAuditAccessAce();
+    // pub fn AddAuditAccessAceEx();
+    // pub fn AddAuditAccessObjectAce();
+    // pub fn AddConditionalAce();
+    // pub fn AddMandatoryAce();
+    // pub fn AddUsersToEncryptedFile();
+    // pub fn AddUsersToEncryptedFileEx();
+    // pub fn AdjustTokenGroups();
+    pub fn AdjustTokenPrivileges(
+        TokenHandle: HANDLE, DisableAllPrivileges: BOOL, NewState: PTOKEN_PRIVILEGES,
+        BufferLength: DWORD, PreviousState: PTOKEN_PRIVILEGES, ReturnLength: PDWORD,
+    ) -> BOOL;
+    // pub fn AllocateAndInitializeSid();
+    // pub fn AllocateLocallyUniqueId();
+    // pub fn AreAllAccessesGranted();
+    // pub fn AreAnyAccessesGranted();
+    // pub fn AuditComputeEffectivePolicyBySid();
+    // pub fn AuditComputeEffectivePolicyByToken();
+    // pub fn AuditEnumerateCategories();
+    // pub fn AuditEnumeratePerUserPolicy();
+    // pub fn AuditEnumerateSubCategories();
+    // pub fn AuditFree();
+    // pub fn AuditLookupCategoryGuidFromCategoryId();
+    // pub fn AuditLookupCategoryIdFromCategoryGuid();
+    // pub fn AuditLookupCategoryNameA();
+    // pub fn AuditLookupCategoryNameW();
+    // pub fn AuditLookupSubCategoryNameA();
+    // pub fn AuditLookupSubCategoryNameW();
+    // pub fn AuditQueryGlobalSaclA();
+    // pub fn AuditQueryGlobalSaclW();
+    // pub fn AuditQueryPerUserPolicy();
+    // pub fn AuditQuerySecurity();
+    // pub fn AuditQuerySystemPolicy();
+    // pub fn AuditSetGlobalSaclA();
+    // pub fn AuditSetGlobalSaclW();
+    // pub fn AuditSetPerUserPolicy();
+    // pub fn AuditSetSecurity();
+    // pub fn AuditSetSystemPolicy();
+    // pub fn BackupEventLogA();
+    // pub fn BackupEventLogW();
+    // pub fn BaseRegCloseKey();
+    // pub fn BaseRegCreateKey();
+    // pub fn BaseRegDeleteKeyEx();
+    // pub fn BaseRegDeleteValue();
+    // pub fn BaseRegFlushKey();
+    // pub fn BaseRegGetVersion();
+    // pub fn BaseRegLoadKey();
+    // pub fn BaseRegOpenKey();
+    // pub fn BaseRegRestoreKey();
+    // pub fn BaseRegSaveKeyEx();
+    // pub fn BaseRegSetKeySecurity();
+    // pub fn BaseRegSetValue();
+    // pub fn BaseRegUnLoadKey();
+    // pub fn BuildExplicitAccessWithNameA();
+    // pub fn BuildExplicitAccessWithNameW();
+    // pub fn BuildImpersonateExplicitAccessWithNameA();
+    // pub fn BuildImpersonateExplicitAccessWithNameW();
+    // pub fn BuildImpersonateTrusteeA();
+    // pub fn BuildImpersonateTrusteeW();
+    // pub fn BuildSecurityDescriptorA();
+    // pub fn BuildSecurityDescriptorW();
+    // pub fn BuildTrusteeWithNameA();
+    // pub fn BuildTrusteeWithNameW();
+    // pub fn BuildTrusteeWithObjectsAndNameA();
+    // pub fn BuildTrusteeWithObjectsAndNameW();
+    // pub fn BuildTrusteeWithObjectsAndSidA();
+    // pub fn BuildTrusteeWithObjectsAndSidW();
+    // pub fn BuildTrusteeWithSidA();
+    // pub fn BuildTrusteeWithSidW();
+    // pub fn CancelOverlappedAccess();
+    // pub fn ChangeServiceConfig2A();
+    // pub fn ChangeServiceConfig2W();
+    // pub fn ChangeServiceConfigA();
+    // pub fn ChangeServiceConfigW();
+    // pub fn CheckForHiberboot();
+    // pub fn CheckTokenMembership();
+    // pub fn ClearEventLogA();
+    // pub fn ClearEventLogW();
+    // pub fn CloseCodeAuthzLevel();
+    // pub fn CloseEncryptedFileRaw();
+    // pub fn CloseEventLog();
+    pub fn CloseServiceHandle(hSCObject: SC_HANDLE) -> BOOL;
+    // pub fn CloseThreadWaitChainSession();
+    // pub fn CloseTrace();
+    // pub fn CommandLineFromMsiDescriptor();
+    // pub fn ComputeAccessTokenFromCodeAuthzLevel();
+    pub fn ControlService(
+        hService: SC_HANDLE, dwControl: DWORD, lpServiceStatus: LPSERVICE_STATUS,
+    ) -> BOOL;
+    // pub fn ControlServiceExA();
+    // pub fn ControlServiceExW();
+    // pub fn ControlTraceA();
+    // pub fn ControlTraceW();
+    // pub fn ConvertAccessToSecurityDescriptorA();
+    // pub fn ConvertAccessToSecurityDescriptorW();
+    // pub fn ConvertSDToStringSDDomainW();
+    // pub fn ConvertSDToStringSDRootDomainA();
+    // pub fn ConvertSDToStringSDRootDomainW();
+    // pub fn ConvertSecurityDescriptorToAccessA();
+    // pub fn ConvertSecurityDescriptorToAccessNamedA();
+    // pub fn ConvertSecurityDescriptorToAccessNamedW();
+    // pub fn ConvertSecurityDescriptorToAccessW();
+    // pub fn ConvertSecurityDescriptorToStringSecurityDescriptorA();
+    // pub fn ConvertSecurityDescriptorToStringSecurityDescriptorW();
+    // pub fn ConvertSidToStringSidA();
+    // pub fn ConvertSidToStringSidW();
+    // pub fn ConvertStringSDToSDDomainA();
+    // pub fn ConvertStringSDToSDDomainW();
+    // pub fn ConvertStringSDToSDRootDomainA();
+    // pub fn ConvertStringSDToSDRootDomainW();
+    // pub fn ConvertStringSecurityDescriptorToSecurityDescriptorA();
+    // pub fn ConvertStringSecurityDescriptorToSecurityDescriptorW();
+    // pub fn ConvertStringSidToSidA();
+    // pub fn ConvertStringSidToSidW();
+    // pub fn ConvertToAutoInheritPrivateObjectSecurity();
+    // pub fn CopySid();
+    // pub fn CreateCodeAuthzLevel();
+    // pub fn CreatePrivateObjectSecurity();
+    // pub fn CreatePrivateObjectSecurityEx();
+    // pub fn CreatePrivateObjectSecurityWithMultipleInheritance();
+    // pub fn CreateProcessAsUserA();
+    // pub fn CreateProcessAsUserW();
+    // pub fn CreateProcessWithLogonW();
+    // pub fn CreateProcessWithTokenW();
+    // pub fn CreateRestrictedToken();
+    pub fn CreateServiceA(
+        hSCManager: SC_HANDLE, lpServiceName: LPCSTR, lpDisplayName: LPCSTR,
+        dwDesiredAccess: DWORD, dwServiceType: DWORD, dwStartType: DWORD, dwErrorControl: DWORD,
+        lpBinaryPathName: LPCSTR, lpLoadOrderGroup: LPCSTR, lpdwTagId: LPDWORD,
+        lpDependencies: LPCSTR, lpServiceStartName: LPCSTR, lpPassword: LPCSTR,
+    ) -> SC_HANDLE;
+    pub fn CreateServiceW(
+        hSCManager: SC_HANDLE, lpServiceName: LPCWSTR, lpDisplayName: LPCWSTR,
+        dwDesiredAccess: DWORD, dwServiceType: DWORD, dwStartType: DWORD, dwErrorControl: DWORD,
+        lpBinaryPathName: LPCWSTR, lpLoadOrderGroup: LPCWSTR, lpdwTagId: LPDWORD,
+        lpDependencies: LPCWSTR, lpServiceStartName: LPCWSTR, lpPassword: LPCWSTR,
+    ) -> SC_HANDLE;
+    // pub fn CreateTraceInstanceId();
+    // pub fn CreateWellKnownSid();
+    pub fn CredDeleteA(TargetName: LPCSTR, Type: DWORD, Flags: DWORD) -> BOOL;
+    pub fn CredDeleteW(TargetName: LPCWSTR, Type: DWORD, Flags: DWORD) -> BOOL;
+    // pub fn CredEnumerateA();
+    // pub fn CredEnumerateW();
+    // pub fn CredFindBestCredentialA();
+    // pub fn CredFindBestCredentialW();
+    pub fn CredFree(Buffer: PVOID);
+    // pub fn CredGetSessionTypes();
+    // pub fn CredGetTargetInfoA();
+    // pub fn CredGetTargetInfoW();
+    // pub fn CredIsMarshaledCredentialA();
+    // pub fn CredIsMarshaledCredentialW();
+    // pub fn CredIsProtectedA();
+    // pub fn CredIsProtectedW();
+    // pub fn CredMarshalCredentialA();
+    // pub fn CredMarshalCredentialW();
+    // pub fn CredProtectA();
+    // pub fn CredProtectW();
+    pub fn CredReadA(
+        TargetName: LPCSTR, Type: DWORD, Flags: DWORD, Credential: *mut PCREDENTIALA,
+    ) -> BOOL;
+    // pub fn CredReadDomainCredentialsA();
+    // pub fn CredReadDomainCredentialsW();
+    pub fn CredReadW(
+        TargetName: LPCWSTR, Type: DWORD, Flags: DWORD, Credential: *mut PCREDENTIALW,
+    ) -> BOOL;
+    // pub fn CredRenameA();
+    // pub fn CredRenameW();
+    // pub fn CredUnmarshalCredentialA();
+    // pub fn CredUnmarshalCredentialW();
+    // pub fn CredUnprotectA();
+    // pub fn CredUnprotectW();
+    pub fn CredWriteA(Credential: PCREDENTIALA, Flags: DWORD) -> BOOL;
+    // pub fn CredWriteDomainCredentialsA();
+    // pub fn CredWriteDomainCredentialsW();
+    pub fn CredWriteW(Credential: PCREDENTIALW, Flags: DWORD) -> BOOL;
+    pub fn CryptAcquireContextA(
+        phProv: *mut HCRYPTPROV, szContainer: LPCSTR, szProvider: LPCSTR, dwProvType: DWORD,
+        dwFlags: DWORD,
+    ) -> BOOL;
+    pub fn CryptAcquireContextW(
+        phProv: *mut HCRYPTPROV, szContainer: LPCWSTR, szProvider: LPCWSTR, dwProvType: DWORD,
+        dwFlags: DWORD,
+    ) -> BOOL;
+    pub fn CryptContextAddRef(hProv: HCRYPTPROV, pdwReserved: *mut DWORD, dwFlags: DWORD) -> BOOL;
+    pub fn CryptCreateHash(
+        hProv: HCRYPTPROV, Algid: ALG_ID, hKey: HCRYPTKEY, dwFlags: DWORD, phHash: *mut HCRYPTHASH,
+    ) -> BOOL;
+    pub fn CryptDecrypt(
+        hKey: HCRYPTKEY, hHash: HCRYPTHASH, Final: BOOL, dwFlags: DWORD, pbData: *mut BYTE, 
+        pdwDataLen: *mut DWORD,
+    ) -> BOOL;
+    pub fn CryptDeriveKey(
+        hProv: HCRYPTPROV, Algid: ALG_ID, hBaseData: HCRYPTHASH, dwFlags: DWORD,
+        phKey: *mut HCRYPTKEY,
+    ) -> BOOL;
+    pub fn CryptDestroyHash(hHash: HCRYPTHASH) -> BOOL;
+    pub fn CryptDestroyKey(hKey: HCRYPTKEY) -> BOOL;
+    pub fn CryptDuplicateHash(
+        hHash: HCRYPTHASH, pdwReserved: *mut DWORD, dwFlags: DWORD, phHash: *mut HCRYPTHASH,
+    ) -> BOOL;
+    pub fn CryptDuplicateKey(
+        hKey: HCRYPTKEY, pdwReserved: *mut DWORD, dwFlags: DWORD, phKey: *mut HCRYPTKEY,
+    ) -> BOOL;
+    pub fn CryptEncrypt(
+        hKey: HCRYPTKEY, hHash: HCRYPTHASH, Final: BOOL, dwFlags: DWORD, pbData: *mut BYTE, 
+        pdwDataLen: *mut DWORD, dwBufLen: DWORD,
+    ) -> BOOL;
+    pub fn CryptEnumProviderTypesA(
+        dwIndex: DWORD, pdwReserved: *mut DWORD, dwFlags: DWORD, pdwProvType: *mut DWORD, 
+        szTypeName: LPSTR, pcbTypeName: *mut DWORD,
+    ) -> BOOL;
+    pub fn CryptEnumProviderTypesW(
+        dwIndex: DWORD, pdwReserved: *mut DWORD, dwFlags: DWORD, pdwProvType: *mut DWORD, 
+        szTypeName: LPWSTR, pcbTypeName: *mut DWORD,
+    ) -> BOOL;
+    pub fn CryptEnumProvidersA(
+        dwIndex: DWORD, pdwReserved: *mut DWORD, dwFlags: DWORD, pdwProvType: *mut DWORD, 
+        szProvName: LPSTR, pcbProvName: *mut DWORD,
+    ) -> BOOL;
+    pub fn CryptEnumProvidersW(
+        dwIndex: DWORD, pdwReserved: *mut DWORD, dwFlags: DWORD, pdwProvType: *mut DWORD, 
+        szProvName: LPWSTR, pcbProvName: *mut DWORD,
+    ) -> BOOL;
+    pub fn CryptExportKey(
+        hKey: HCRYPTKEY, hExpKey: HCRYPTKEY, dwBlobType: DWORD, dwFlags: DWORD, pbData: *mut BYTE,
+        pdwDataLen: *mut DWORD,
+    ) -> BOOL;
+    pub fn CryptGenKey(
+        hProv: HCRYPTPROV, Algid: ALG_ID, dwFlags: DWORD, phKey: *mut HCRYPTKEY,
+    ) -> BOOL;
+    pub fn CryptGenRandom(hProv: HCRYPTPROV, dwLen: DWORD, pbBuffer: *mut BYTE) -> BOOL;
+    pub fn CryptGetDefaultProviderA(
+        dwProvType: DWORD, pdwReserved: *mut DWORD, dwFlags: DWORD, pszProvName: LPSTR,
+        pcbProvName: *mut DWORD,
+    ) -> BOOL;
+    pub fn CryptGetDefaultProviderW(
+        dwProvType: DWORD, pdwReserved: *mut DWORD, dwFlags: DWORD, pszProvName: LPWSTR,
+        pcbProvName: *mut DWORD,
+    ) -> BOOL;
+    pub fn CryptGetHashParam(
+        hHash: HCRYPTHASH, dwParam: DWORD, pbData: *mut BYTE, pdwDataLen: *mut DWORD,
+        dwFlags: DWORD,
+    ) -> BOOL;
+    pub fn CryptGetKeyParam(
+        hKey: HCRYPTKEY, dwParam: DWORD, pbData: *mut BYTE, pdwDataLen: *mut DWORD, dwFlags: DWORD,
+    ) -> BOOL;
+    pub fn CryptGetProvParam(
+        hProv: HCRYPTPROV, dwParam: DWORD, pbData: *mut BYTE, pdwDataLen: *mut DWORD,
+        dwFlags: DWORD,
+    ) -> BOOL;
+    pub fn CryptGetUserKey(hProv: HCRYPTPROV, dwKeySpec: DWORD, phUserKey: *mut HCRYPTKEY) -> BOOL;
+    pub fn CryptHashData(
+        hHash: HCRYPTHASH, pbData: *const BYTE, dwDataLen: DWORD, dwFlags: DWORD,
+    ) -> BOOL;
+    pub fn CryptHashSessionKey(hHash: HCRYPTHASH, hKey: HCRYPTKEY, dwFlags: DWORD) -> BOOL;
+    pub fn CryptImportKey(
+        hProv: HCRYPTPROV, pbData: *const BYTE, dwDataLen: DWORD, hPubKey: HCRYPTKEY,
+        dwFlags: DWORD, phKey: *mut HCRYPTKEY,
+    ) -> BOOL;
+    pub fn CryptReleaseContext(hProv: HCRYPTPROV, dwFlags: DWORD) -> BOOL;
+    pub fn CryptSetHashParam(
+        hHash: HCRYPTHASH, dwParam: DWORD, pbData: *const BYTE, dwFlags: DWORD,
+    ) -> BOOL;
+    pub fn CryptSetKeyParam(
+        hKey: HCRYPTKEY, dwParam: DWORD, pbData: *const BYTE, dwFlags: DWORD,
+    ) -> BOOL;
+    pub fn CryptSetProvParam(
+        hProv: HCRYPTPROV, dwParam: DWORD, pbData: *const BYTE, dwFlags: DWORD,
+    ) -> BOOL;
+    pub fn CryptSetProviderA(pszProvName: LPCSTR, dwProvType: DWORD) -> BOOL;
+    pub fn CryptSetProviderExA(
+        pszProvName: LPCSTR, dwProvType: DWORD, pdwReserved: *mut DWORD, dwFlags: DWORD,
+    ) -> BOOL;
+    pub fn CryptSetProviderExW(
+        pszProvName: LPCWSTR, dwProvType: DWORD, pdwReserved: *mut DWORD, dwFlags: DWORD,
+    ) -> BOOL;
+    pub fn CryptSetProviderW(pszProvName: LPCWSTR, dwProvType: DWORD) -> BOOL;
+    pub fn CryptSignHashA(
+        hHash: HCRYPTHASH, dwKeySpec: DWORD, szDescription: LPCSTR, dwFlags: DWORD,
+        pbSignature: *mut BYTE, pdwSigLen: *mut DWORD,
+    ) -> BOOL;
+    pub fn CryptSignHashW(
+        hHash: HCRYPTHASH, dwKeySpec: DWORD, szDescription: LPCWSTR, dwFlags: DWORD,
+        pbSignature: *mut BYTE, pdwSigLen: *mut DWORD,
+    ) -> BOOL;
+    pub fn CryptVerifySignatureA(
+        hHash: HCRYPTHASH, pbSignature: *const BYTE, dwSigLen: DWORD, hPubKey: HCRYPTKEY, 
+        szDescription: LPCSTR, dwFlags: DWORD,
+    ) -> BOOL;
+    pub fn CryptVerifySignatureW(
+        hHash: HCRYPTHASH, pbSignature: *const BYTE, dwSigLen: DWORD, hPubKey: HCRYPTKEY, 
+        szDescription: LPCWSTR, dwFlags: DWORD,
+    ) -> BOOL;
+    // pub fn DecryptFileA();
+    // pub fn DecryptFileW();
+    // pub fn DeleteAce();
+    pub fn DeleteService(hService: SC_HANDLE) -> BOOL;
+    // pub fn DeregisterEventSource();
+    // pub fn DestroyPrivateObjectSecurity();
+    // pub fn DuplicateEncryptionInfoFile();
+    // pub fn DuplicateToken();
+    // pub fn DuplicateTokenEx();
+    // pub fn ElfBackupEventLogFileA();
+    // pub fn ElfBackupEventLogFileW();
+    // pub fn ElfChangeNotify();
+    // pub fn ElfClearEventLogFileA();
+    // pub fn ElfClearEventLogFileW();
+    // pub fn ElfCloseEventLog();
+    // pub fn ElfDeregisterEventSource();
+    // pub fn ElfFlushEventLog();
+    // pub fn ElfNumberOfRecords();
+    // pub fn ElfOldestRecord();
+    // pub fn ElfOpenBackupEventLogA();
+    // pub fn ElfOpenBackupEventLogW();
+    // pub fn ElfOpenEventLogA();
+    // pub fn ElfOpenEventLogW();
+    // pub fn ElfReadEventLogA();
+    // pub fn ElfReadEventLogW();
+    // pub fn ElfRegisterEventSourceA();
+    // pub fn ElfRegisterEventSourceW();
+    // pub fn ElfReportEventA();
+    // pub fn ElfReportEventAndSourceW();
+    // pub fn ElfReportEventW();
+    // pub fn EnableTrace();
+    // pub fn EnableTraceEx();
+    // pub fn EnableTraceEx2();
+    // pub fn EncryptFileA();
+    // pub fn EncryptFileW();
+    // pub fn EncryptedFileKeyInfo();
+    // pub fn EncryptionDisable();
+    // pub fn EnumDependentServicesA();
+    // pub fn EnumDependentServicesW();
+    // pub fn EnumDynamicTimeZoneInformation();
+    // pub fn EnumServiceGroupW();
+    // pub fn EnumServicesStatusA();
+    // pub fn EnumServicesStatusExA();
+    // pub fn EnumServicesStatusExW();
+    // pub fn EnumServicesStatusW();
+    // pub fn EnumerateTraceGuids();
+    // pub fn EnumerateTraceGuidsEx();
+    // pub fn EqualDomainSid();
+    // pub fn EqualPrefixSid();
+    // pub fn EqualSid();
+    // pub fn EtwLogSysConfigExtension();
+    // pub fn EventAccessControl();
+    // pub fn EventAccessQuery();
+    // pub fn EventAccessRemove();
+    // pub fn EventActivityIdControl();
+    // pub fn EventEnabled();
+    // pub fn EventProviderEnabled();
+    // pub fn EventRegister();
+    // pub fn EventSetInformation();
+    // pub fn EventUnregister();
+    // pub fn EventWrite();
+    // pub fn EventWriteEndScenario();
+    // pub fn EventWriteEx();
+    // pub fn EventWriteStartScenario();
+    // pub fn EventWriteString();
+    // pub fn EventWriteTransfer();
+    // pub fn FileEncryptionStatusA();
+    // pub fn FileEncryptionStatusW();
+    // pub fn FindFirstFreeAce();
+    // pub fn FlushEfsCache();
+    // pub fn FlushTraceA();
+    // pub fn FlushTraceW();
+    // pub fn FreeEncryptedFileKeyInfo();
+    // pub fn FreeEncryptedFileMetadata();
+    // pub fn FreeEncryptionCertificateHashList();
+    // pub fn FreeInheritedFromArray();
+    // pub fn FreeSid();
+    // pub fn GetAccessPermissionsForObjectA();
+    // pub fn GetAccessPermissionsForObjectW();
+    // pub fn GetAce();
+    // pub fn GetAclInformation();
+    // pub fn GetAuditedPermissionsFromAclA();
+    // pub fn GetAuditedPermissionsFromAclW();
+    // pub fn GetCurrentHwProfileA();
+    // pub fn GetCurrentHwProfileW();
+    // pub fn GetDynamicTimeZoneInformationEffectiveYears();
+    // pub fn GetEffectiveRightsFromAclA();
+    // pub fn GetEffectiveRightsFromAclW();
+    // pub fn GetEncryptedFileMetadata();
+    // pub fn GetEventLogInformation();
+    // pub fn GetExplicitEntriesFromAclA();
+    // pub fn GetExplicitEntriesFromAclW();
+    // pub fn GetFileSecurityA();
+    // pub fn GetFileSecurityW();
+    // pub fn GetInformationCodeAuthzLevelW();
+    // pub fn GetInformationCodeAuthzPolicyW();
+    // pub fn GetInheritanceSourceA();
+    // pub fn GetInheritanceSourceW();
+    // pub fn GetKernelObjectSecurity();
+    // pub fn GetLengthSid();
+    // pub fn GetLocalManagedApplicationData();
+    // pub fn GetLocalManagedApplications();
+    // pub fn GetManagedApplicationCategories();
+    // pub fn GetManagedApplications();
+    // pub fn GetMultipleTrusteeA();
+    // pub fn GetMultipleTrusteeOperationA();
+    // pub fn GetMultipleTrusteeOperationW();
+    // pub fn GetMultipleTrusteeW();
+    // pub fn GetNamedSecurityInfoA();
+    // pub fn GetNamedSecurityInfoExA();
+    // pub fn GetNamedSecurityInfoExW();
+    // pub fn GetNamedSecurityInfoW();
+    // pub fn GetNumberOfEventLogRecords();
+    // pub fn GetOldestEventLogRecord();
+    // pub fn GetOverlappedAccessResults();
+    // pub fn GetPrivateObjectSecurity();
+    // pub fn GetSecurityDescriptorControl();
+    // pub fn GetSecurityDescriptorDacl();
+    // pub fn GetSecurityDescriptorGroup();
+    // pub fn GetSecurityDescriptorLength();
+    // pub fn GetSecurityDescriptorOwner();
+    // pub fn GetSecurityDescriptorRMControl();
+    // pub fn GetSecurityDescriptorSacl();
+    // pub fn GetSecurityInfo();
+    // pub fn GetSecurityInfoExA();
+    // pub fn GetSecurityInfoExW();
+    // pub fn GetServiceDisplayNameA();
+    // pub fn GetServiceDisplayNameW();
+    // pub fn GetServiceKeyNameA();
+    // pub fn GetServiceKeyNameW();
+    // pub fn GetSidIdentifierAuthority();
+    // pub fn GetSidLengthRequired();
+    // pub fn GetSidSubAuthority();
+    // pub fn GetSidSubAuthorityCount();
+    // pub fn GetStringConditionFromBinary();
+    // pub fn GetThreadWaitChain();
+    // pub fn GetTokenInformation();
+    // pub fn GetTraceEnableFlags();
+    // pub fn GetTraceEnableLevel();
+    // pub fn GetTraceLoggerHandle();
+    // pub fn GetTrusteeFormA();
+    // pub fn GetTrusteeFormW();
+    // pub fn GetTrusteeNameA();
+    // pub fn GetTrusteeNameW();
+    // pub fn GetTrusteeTypeA();
+    // pub fn GetTrusteeTypeW();
+    pub fn GetUserNameA(lpBuffer: LPSTR, pcbBuffer: LPDWORD) -> BOOL;
+    pub fn GetUserNameW(lpBuffer: LPWSTR, pcbBuffer: LPDWORD) -> BOOL;
+    // pub fn GetWindowsAccountDomainSid();
+    // pub fn I_ScSetServiceBitsA();
+    // pub fn I_ScSetServiceBitsW();
+    // pub fn IdentifyCodeAuthzLevelW();
+    // pub fn ImpersonateAnonymousToken();
+    // pub fn ImpersonateLoggedOnUser();
+    // pub fn ImpersonateNamedPipeClient();
+    // pub fn ImpersonateSelf();
+    // pub fn InitializeAcl();
+    // pub fn InitializeSecurityDescriptor();
+    // pub fn InitializeSid();
+    // pub fn InitiateShutdownA();
+    // pub fn InitiateShutdownW();
+    // pub fn InitiateSystemShutdownA();
+    // pub fn InitiateSystemShutdownExA();
+    // pub fn InitiateSystemShutdownExW();
+    // pub fn InitiateSystemShutdownW();
+    // pub fn InstallApplication();
+    // pub fn IsTextUnicode();
+    // pub fn IsTokenRestricted();
+    // pub fn IsTokenUntrusted();
+    // pub fn IsValidAcl();
+    // pub fn IsValidRelativeSecurityDescriptor();
+    // pub fn IsValidSecurityDescriptor();
+    // pub fn IsValidSid();
+    // pub fn IsWellKnownSid();
+    // pub fn LockServiceDatabase();
+    // pub fn LogonUserA();
+    // pub fn LogonUserExA();
+    // pub fn LogonUserExExW();
+    // pub fn LogonUserExW();
+    // pub fn LogonUserW();
+    // pub fn LookupAccountNameA();
+    // pub fn LookupAccountNameW();
+    // pub fn LookupAccountSidA();
+    // pub fn LookupAccountSidW();
+    // pub fn LookupPrivilegeDisplayNameA();
+    // pub fn LookupPrivilegeDisplayNameW();
+    // pub fn LookupPrivilegeNameA();
+    // pub fn LookupPrivilegeNameW();
+    pub fn LookupPrivilegeValueA(
+        lpSystemName: LPCSTR, lpName: LPCSTR, lpLuid: PLUID,
+    ) -> BOOL;
+    pub fn LookupPrivilegeValueW(
+        lpSystemName: LPCWSTR, lpName: LPCWSTR, lpLuid: PLUID,
+    ) -> BOOL;
+    // pub fn LookupSecurityDescriptorPartsA();
+    // pub fn LookupSecurityDescriptorPartsW();
+    // pub fn LsaAddAccountRights();
+    // pub fn LsaAddPrivilegesToAccount();
+    // pub fn LsaClearAuditLog();
+    // pub fn LsaClose();
+    // pub fn LsaCreateAccount();
+    // pub fn LsaCreateSecret();
+    // pub fn LsaCreateTrustedDomain();
+    // pub fn LsaCreateTrustedDomainEx();
+    // pub fn LsaDelete();
+    // pub fn LsaDeleteTrustedDomain();
+    // pub fn LsaEnumerateAccountRights();
+    // pub fn LsaEnumerateAccounts();
+    // pub fn LsaEnumerateAccountsWithUserRight();
+    // pub fn LsaEnumeratePrivileges();
+    // pub fn LsaEnumeratePrivilegesOfAccount();
+    // pub fn LsaEnumerateTrustedDomains();
+    // pub fn LsaEnumerateTrustedDomainsEx();
+    // pub fn LsaFreeMemory();
+    // pub fn LsaGetAppliedCAPIDs();
+    // pub fn LsaGetQuotasForAccount();
+    // pub fn LsaGetRemoteUserName();
+    // pub fn LsaGetSystemAccessAccount();
+    // pub fn LsaGetUserName();
+    // pub fn LsaICLookupNames();
+    // pub fn LsaICLookupNamesWithCreds();
+    // pub fn LsaICLookupSids();
+    // pub fn LsaICLookupSidsWithCreds();
+    // pub fn LsaLookupNames();
+    // pub fn LsaLookupNames2();
+    // pub fn LsaLookupPrivilegeDisplayName();
+    // pub fn LsaLookupPrivilegeName();
+    // pub fn LsaLookupPrivilegeValue();
+    // pub fn LsaLookupSids();
+    // pub fn LsaLookupSids2();
+    // pub fn LsaManageSidNameMapping();
+    // pub fn LsaNtStatusToWinError();
+    // pub fn LsaOpenAccount();
+    // pub fn LsaOpenPolicy();
+    // pub fn LsaOpenPolicySce();
+    // pub fn LsaOpenSecret();
+    // pub fn LsaOpenTrustedDomain();
+    // pub fn LsaOpenTrustedDomainByName();
+    // pub fn LsaQueryCAPs();
+    // pub fn LsaQueryDomainInformationPolicy();
+    // pub fn LsaQueryForestTrustInformation();
+    // pub fn LsaQueryInfoTrustedDomain();
+    // pub fn LsaQueryInformationPolicy();
+    // pub fn LsaQuerySecret();
+    // pub fn LsaQuerySecurityObject();
+    // pub fn LsaQueryTrustedDomainInfo();
+    // pub fn LsaQueryTrustedDomainInfoByName();
+    // pub fn LsaRemoveAccountRights();
+    // pub fn LsaRemovePrivilegesFromAccount();
+    // pub fn LsaRetrievePrivateData();
+    // pub fn LsaSetCAPs();
+    // pub fn LsaSetDomainInformationPolicy();
+    // pub fn LsaSetForestTrustInformation();
+    // pub fn LsaSetInformationPolicy();
+    // pub fn LsaSetInformationTrustedDomain();
+    // pub fn LsaSetQuotasForAccount();
+    // pub fn LsaSetSecret();
+    // pub fn LsaSetSecurityObject();
+    // pub fn LsaSetSystemAccessAccount();
+    // pub fn LsaSetTrustedDomainInfoByName();
+    // pub fn LsaSetTrustedDomainInformation();
+    // pub fn LsaStorePrivateData();
+    // pub fn MIDL_user_free_Ext();
+    // pub fn MSChapSrvChangePassword();
+    // pub fn MSChapSrvChangePassword2();
+    // pub fn MakeAbsoluteSD();
+    // pub fn MakeAbsoluteSD2();
+    // pub fn MakeSelfRelativeSD();
+    // pub fn MapGenericMask();
+    // pub fn NotifyBootConfigStatus();
+    // pub fn NotifyChangeEventLog();
+    // pub fn NotifyServiceStatusChange();
+    // pub fn NotifyServiceStatusChangeA();
+    // pub fn NotifyServiceStatusChangeW();
+    // pub fn ObjectCloseAuditAlarmA();
+    // pub fn ObjectCloseAuditAlarmW();
+    // pub fn ObjectDeleteAuditAlarmA();
+    // pub fn ObjectDeleteAuditAlarmW();
+    // pub fn ObjectOpenAuditAlarmA();
+    // pub fn ObjectOpenAuditAlarmW();
+    // pub fn ObjectPrivilegeAuditAlarmA();
+    // pub fn ObjectPrivilegeAuditAlarmW();
+    // pub fn OpenBackupEventLogA();
+    // pub fn OpenBackupEventLogW();
+    // pub fn OpenEncryptedFileRawA();
+    // pub fn OpenEncryptedFileRawW();
+    // pub fn OpenEventLogA();
+    // pub fn OpenEventLogW();
+    pub fn OpenProcessToken(
+        ProcessHandle: HANDLE, DesiredAccess: DWORD, TokenHandle: PHANDLE,
+    ) -> BOOL;
+    pub fn OpenSCManagerA(
+        lpMachineName: LPCSTR, lpDatabaseName: LPCSTR, dwDesiredAccess: DWORD,
+    ) -> SC_HANDLE;
+    pub fn OpenSCManagerW(
+        lpMachineName: LPCWSTR, lpDatabaseName: LPCWSTR, dwDesiredAccess: DWORD,
+    ) -> SC_HANDLE;
+    pub fn OpenServiceA(
+        hSCManager: SC_HANDLE, lpServiceName: LPCSTR, dwDesiredAccess: DWORD,
+    ) -> SC_HANDLE;
+    pub fn OpenServiceW(
+        hSCManager: SC_HANDLE, lpServiceName: LPCWSTR, dwDesiredAccess: DWORD,
+    ) -> SC_HANDLE;
+    // pub fn OpenThreadToken();
+    // pub fn OpenThreadWaitChainSession();
+    // pub fn OpenTraceA();
+    // pub fn OpenTraceW();
+    // pub fn OperationEnd();
+    // pub fn OperationStart();
+    // pub fn PerfAddCounters();
+    // pub fn PerfCloseQueryHandle();
+    // pub fn PerfCreateInstance();
+    // pub fn PerfDecrementULongCounterValue();
+    // pub fn PerfDecrementULongLongCounterValue();
+    // pub fn PerfDeleteCounters();
+    // pub fn PerfDeleteInstance();
+    // pub fn PerfEnumerateCounterSet();
+    // pub fn PerfEnumerateCounterSetInstances();
+    // pub fn PerfIncrementULongCounterValue();
+    // pub fn PerfIncrementULongLongCounterValue();
+    // pub fn PerfOpenQueryHandle();
+    // pub fn PerfQueryCounterData();
+    // pub fn PerfQueryCounterInfo();
+    // pub fn PerfQueryCounterSetRegistrationInfo();
+    // pub fn PerfQueryInstance();
+    // pub fn PerfRegCloseKey();
+    // pub fn PerfRegEnumKey();
+    // pub fn PerfRegEnumValue();
+    // pub fn PerfRegQueryInfoKey();
+    // pub fn PerfRegQueryValue();
+    // pub fn PerfRegSetValue();
+    // pub fn PerfSetCounterRefValue();
+    // pub fn PerfSetCounterSetInfo();
+    // pub fn PerfSetULongCounterValue();
+    // pub fn PerfSetULongLongCounterValue();
+    // pub fn PerfStartProvider();
+    // pub fn PerfStartProviderEx();
+    // pub fn PerfStopProvider();
+    // pub fn PrivilegeCheck();
+    // pub fn PrivilegedServiceAuditAlarmA();
+    // pub fn PrivilegedServiceAuditAlarmW();
+    // pub fn ProcessTrace();
+    // pub fn QueryAllTracesA();
+    // pub fn QueryAllTracesW();
+    // pub fn QueryRecoveryAgentsOnEncryptedFile();
+    // pub fn QuerySecurityAccessMask();
+    // pub fn QueryServiceConfig2A();
+    // pub fn QueryServiceConfig2W();
+    // pub fn QueryServiceConfigA();
+    // pub fn QueryServiceConfigW();
+    // pub fn QueryServiceDynamicInformation();
+    // pub fn QueryServiceLockStatusA();
+    // pub fn QueryServiceLockStatusW();
+    // pub fn QueryServiceObjectSecurity();
+    pub fn QueryServiceStatus(hService: SC_HANDLE, lpServiceStatus: LPSERVICE_STATUS) -> BOOL;
+    pub fn QueryServiceStatusEx(
+        hService: SC_HANDLE, InfoLevel: SC_STATUS_TYPE, lpBuffer: LPBYTE, cbBufSize: DWORD,
+        pcbBytesNeeded: LPDWORD,
+    ) -> BOOL;
+    // pub fn QueryTraceA();
+    // pub fn QueryTraceW();
+    // pub fn QueryUsersOnEncryptedFile();
+    // pub fn ReadEncryptedFileRaw();
+    // pub fn ReadEventLogA();
+    // pub fn ReadEventLogW();
+    pub fn RegCloseKey(hKey: HKEY) -> LONG;
+    pub fn RegConnectRegistryA(lpMachineName: LPCSTR, hKey: HKEY, phkResult: PHKEY) -> LONG;
+    // pub fn RegConnectRegistryExA();
+    // pub fn RegConnectRegistryExW();
+    pub fn RegConnectRegistryW(lpMachineName: LPCWSTR, hKey: HKEY, phkResult: PHKEY) -> LONG;
+    pub fn RegCopyTreeA(hKeySrc: HKEY, lpSubKey: LPCSTR, hKeyDest: HKEY) -> LONG;
+    pub fn RegCopyTreeW(hKeySrc: HKEY, lpSubKey: LPCWSTR, hKeyDest: HKEY) -> LONG;
+    // pub fn RegCreateKeyA();
+    pub fn RegCreateKeyExA(
+        hKey: HKEY, lpSubKey: LPCSTR, Reserved: DWORD, lpClass: LPSTR, dwOptions: DWORD,
+        samDesired: REGSAM, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, phkResult: PHKEY,
+        lpdwDisposition: LPDWORD,
+    ) -> LONG;
+    pub fn RegCreateKeyExW(
+        hKey: HKEY, lpSubKey: LPCWSTR, Reserved: DWORD, lpClass: LPWSTR, dwOptions: DWORD,
+        samDesired: REGSAM, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, phkResult: PHKEY,
+        lpdwDisposition: LPDWORD,
+    ) -> LONG;
+    pub fn RegCreateKeyTransactedA(
+        hKey: HKEY, lpSubKey: LPCSTR, Reserved: DWORD, lpClass: LPSTR, dwOptions: DWORD,
+        samDesired: REGSAM, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, phkResult: PHKEY,
+        lpdwDisposition: LPDWORD, hTransaction: HANDLE, pExtendedParemeter: PVOID,
+    ) -> LONG;
+    pub fn RegCreateKeyTransactedW(
+        hKey: HKEY, lpSubKey: LPCWSTR, Reserved: DWORD, lpClass: LPWSTR, dwOptions: DWORD,
+        samDesired: REGSAM, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, phkResult: PHKEY,
+        lpdwDisposition: LPDWORD, hTransaction: HANDLE, pExtendedParemeter: PVOID,
+    ) -> LONG;
+    // pub fn RegCreateKeyW();
+    pub fn RegDeleteKeyA(hKey: HKEY, lpSubKey: LPCSTR) -> LONG;
+    pub fn RegDeleteKeyExA(
+        hKey: HKEY, lpSubKey: LPCSTR, samDesired: REGSAM, Reserved: DWORD,
+    ) -> LONG;
+    pub fn RegDeleteKeyExW(
+        hKey: HKEY, lpSubKey: LPCWSTR, samDesired: REGSAM, Reserved: DWORD,
+    ) -> LONG;
+    pub fn RegDeleteKeyTransactedA(
+        hKey: HKEY, lpSubKey: LPCSTR, samDesired: REGSAM, Reserved: DWORD,
+        hTransaction: HANDLE, pExtendedParemeter: PVOID,
+    ) -> LONG;
+    pub fn RegDeleteKeyTransactedW(
+        hKey: HKEY, lpSubKey: LPCWSTR, samDesired: REGSAM, Reserved: DWORD,
+        hTransaction: HANDLE, pExtendedParemeter: PVOID,
+    ) -> LONG;
+    pub fn RegDeleteKeyValueA(hKey: HKEY, lpSubKey: LPCSTR, lpValueName: LPCSTR) -> LONG;
+    pub fn RegDeleteKeyValueW(hKey: HKEY, lpSubKey: LPCWSTR, lpValueName: LPCWSTR) -> LONG;
+    pub fn RegDeleteKeyW(hKey: HKEY, lpSubKey: LPCWSTR) -> LONG;
+    pub fn RegDeleteTreeA(hKey: HKEY, lpSubKey: LPCSTR) -> LONG;
+    pub fn RegDeleteTreeW(hKey: HKEY, lpSubKey: LPCWSTR) -> LONG;
+    pub fn RegDeleteValueA(hKey: HKEY, lpValueName: LPCSTR) -> LONG;
+    pub fn RegDeleteValueW(hKey: HKEY, lpValueName: LPCWSTR) -> LONG;
+    pub fn RegDisablePredefinedCache() -> LONG;
+    pub fn RegDisablePredefinedCacheEx() -> LONG;
+    pub fn RegDisableReflectionKey(hBase: HKEY) -> LONG;
+    pub fn RegEnableReflectionKey(hBase: HKEY) -> LONG;
+    // pub fn RegEnumKeyA();
+    pub fn RegEnumKeyExA(
+        hKey: HKEY, dwIndex: DWORD, lpName: LPSTR, lpcName: LPDWORD, lpReserved: LPDWORD,
+        lpClass: LPSTR, lpcClass: LPDWORD, lpftLastWriteTime: PFILETIME,
+    ) -> LONG;
+    pub fn RegEnumKeyExW(
+        hKey: HKEY, dwIndex: DWORD, lpName: LPWSTR, lpcName: LPDWORD, lpReserved: LPDWORD,
+        lpClass: LPWSTR, lpcClass: LPDWORD, lpftLastWriteTime: PFILETIME,
+    ) -> LONG;
+    // pub fn RegEnumKeyW();
+    pub fn RegEnumValueA(
+        hKey: HKEY, dwIndex: DWORD, lpValueName: LPSTR, lpcchValueName: LPDWORD,
+        lpReserved: LPDWORD, lpType: LPDWORD, lpData: LPBYTE, lpcbData: LPDWORD,
+    ) -> LONG;
+    pub fn RegEnumValueW(
+        hKey: HKEY, dwIndex: DWORD, lpValueName: LPWSTR, lpcchValueName: LPDWORD,
+        lpReserved: LPDWORD, lpType: LPDWORD, lpData: LPBYTE, lpcbData: LPDWORD,
+    ) -> LONG;
+    pub fn RegFlushKey(hKey: HKEY) -> LONG;
+    // pub fn RegGetKeySecurity();
+    pub fn RegGetValueA(
+        hkey: HKEY, lpSubKey: LPCSTR, lpValue: LPCSTR, dwFlags: DWORD, pdwType: LPDWORD,
+        pvData: PVOID, pcbData: LPDWORD,
+    ) -> LONG;
+    pub fn RegGetValueW(
+        hkey: HKEY, lpSubKey: LPCWSTR, lpValue: LPCWSTR, dwFlags: DWORD, pdwType: LPDWORD,
+        pvData: PVOID, pcbData: LPDWORD,
+    ) -> LONG;
+    // pub fn RegLoadAppKeyA();
+    // pub fn RegLoadAppKeyW();
+    // pub fn RegLoadKeyA();
+    // pub fn RegLoadKeyW();
+    // pub fn RegLoadMUIStringA();
+    pub fn RegLoadMUIStringW(
+        hKey: HKEY, pszValue: LPCWSTR, pszOutBuf: LPWSTR, cbOutBuf: DWORD, pcbData: LPDWORD,
+        Flags: DWORD, pszDirectory: LPCWSTR,
+    ) -> LONG;
+    pub fn RegNotifyChangeKeyValue(
+        hKey: HKEY, bWatchSubtree: BOOL, dwNotifyFilter: DWORD, hEvent: HANDLE,
+        fAsynchronous: BOOL,
+    ) -> LONG;
+    pub fn RegOpenCurrentUser(samDesired: REGSAM, phkResult: PHKEY) -> LONG;
+    // pub fn RegOpenKeyA();
+    pub fn RegOpenKeyExA(
+        hKey: HKEY, lpSubKey: LPCSTR, ulOptions: DWORD, samDesired: REGSAM, phkResult: PHKEY,
+    ) -> LONG;
+    pub fn RegOpenKeyExW(
+        hKey: HKEY, lpSubKey: LPCWSTR, ulOptions: DWORD, samDesired: REGSAM, phkResult: PHKEY,
+    ) -> LONG;
+    pub fn RegOpenKeyTransactedA(
+        hKey: HKEY, lpSubKey: LPCSTR, ulOptions: DWORD, samDesired: REGSAM, phkResult: PHKEY,
+        hTransaction: HANDLE, pExtendedParemeter: PVOID,
+    ) -> LONG;
+    pub fn RegOpenKeyTransactedW(
+        hKey: HKEY, lpSubKey: LPCWSTR, ulOptions: DWORD, samDesired: REGSAM, phkResult: PHKEY,
+        hTransaction: HANDLE, pExtendedParemeter: PVOID,
+    ) -> LONG;
+    // pub fn RegOpenKeyW();
+    pub fn RegOpenUserClassesRoot(
+        hToken: HANDLE, dwOptions: DWORD, samDesired: REGSAM, phkResult: PHKEY,
+    ) -> LONG;
+    pub fn RegOverridePredefKey(hKey: HKEY, hNewHKey: HKEY) -> LONG;
+    pub fn RegQueryInfoKeyA(
+        hKey: HKEY, lpClass: LPSTR, lpcClass: LPDWORD, lpReserved: LPDWORD, lpcSubKeys: LPDWORD,
+        lpcMaxSubKeyLen: LPDWORD, lpcMaxClassLen: LPDWORD, lpcValues: LPDWORD,
+        lpcMaxValueNameLen: LPDWORD, lpcMaxValueLen: LPDWORD, lpcbSecurityDescriptor: LPDWORD,
+        lpftLastWriteTime: PFILETIME,
+    ) -> LONG;
+    pub fn RegQueryInfoKeyW(
+        hKey: HKEY, lpClass: LPWSTR, lpcClass: LPDWORD, lpReserved: LPDWORD, lpcSubKeys: LPDWORD,
+        lpcMaxSubKeyLen: LPDWORD, lpcMaxClassLen: LPDWORD, lpcValues: LPDWORD,
+        lpcMaxValueNameLen: LPDWORD, lpcMaxValueLen: LPDWORD, lpcbSecurityDescriptor: LPDWORD,
+        lpftLastWriteTime: PFILETIME,
+    ) -> LONG;
+    pub fn RegQueryMultipleValuesA(
+        hKey: HKEY, val_list: PVALENTA, num_vals: DWORD, lpValueBuf: LPSTR, ldwTotsize: LPDWORD,
+    ) -> LONG;
+    pub fn RegQueryMultipleValuesW(
+        hKey: HKEY, val_list: PVALENTW, num_vals: DWORD, lpValueBuf: LPWSTR, ldwTotsize: LPDWORD,
+    ) -> LONG;
+    pub fn RegQueryReflectionKey(hBase: HKEY, bIsReflectionDisabled: PBOOL) -> LONG;
+    pub fn RegQueryValueExA(
+        hKey: HKEY, lpValueName: LPCSTR, lpReserved: LPDWORD, lpType: LPDWORD, lpData: LPBYTE,
+        lpcbData: LPDWORD,
+    ) -> LONG;
+    pub fn RegQueryValueExW(
+        hKey: HKEY, lpValueName: LPCWSTR, lpReserved: LPDWORD, lpType: LPDWORD, lpData: LPBYTE,
+        lpcbData: LPDWORD,
+    ) -> LONG;
+    // pub fn RegQueryValueW();
+    // pub fn RegRenameKey();
+    // pub fn RegReplaceKeyA();
+    // pub fn RegReplaceKeyW();
+    // pub fn RegRestoreKeyA();
+    // pub fn RegRestoreKeyW();
+    // pub fn RegSaveKeyA();
+    // pub fn RegSaveKeyExA();
+    // pub fn RegSaveKeyExW();
+    // pub fn RegSaveKeyW();
+    // pub fn RegSetKeySecurity();
+    pub fn RegSetKeyValueA(
+        hKey: HKEY, lpSubKey: LPCSTR, lpValueName: LPCSTR, dwType: DWORD, lpData: LPCVOID,
+        cbData: DWORD,
+    ) -> LONG;
+    pub fn RegSetValueExA(
+        hKey: HKEY, lpValueName: LPCSTR, Reserved: DWORD, dwType: DWORD, lpData: *const BYTE,
+        cbData: DWORD,
+    ) -> LONG;
+    pub fn RegSetValueExW(
+        hKey: HKEY, lpValueName: LPCWSTR, Reserved: DWORD, dwType: DWORD, lpData: *const BYTE,
+        cbData: DWORD,
+    ) -> LONG;
+    pub fn RegSetKeyValueW(
+        hKey: HKEY, lpSubKey: LPCWSTR, lpValueName: LPCWSTR, dwType: DWORD, lpData: LPCVOID,
+        cbData: DWORD,
+    ) -> LONG;
+    // pub fn RegUnLoadKeyA();
+    // pub fn RegUnLoadKeyW();
+    // pub fn RegisterEventSourceA();
+    // pub fn RegisterEventSourceW();
+    pub fn RegisterServiceCtrlHandlerA(
+        lpServiceName: LPCSTR, lpHandlerProc: LPHANDLER_FUNCTION,
+    ) -> SERVICE_STATUS_HANDLE;
+    pub fn RegisterServiceCtrlHandlerExA(
+        lpServiceName: LPCSTR, lpHandlerProc: LPHANDLER_FUNCTION_EX, lpContext: LPVOID,
+    ) -> SERVICE_STATUS_HANDLE;
+    pub fn RegisterServiceCtrlHandlerExW(
+        lpServiceName: LPCWSTR, lpHandlerProc: LPHANDLER_FUNCTION_EX, lpContext: LPVOID,
+    ) -> SERVICE_STATUS_HANDLE;
+    pub fn RegisterServiceCtrlHandlerW(
+        lpServiceName: LPCWSTR, lpHandlerProc: LPHANDLER_FUNCTION,
+    ) -> SERVICE_STATUS_HANDLE;
+    // pub fn RegisterTraceGuidsA();
+    // pub fn RegisterTraceGuidsW();
+    // pub fn RegisterWaitChainCOMCallback();
+    // pub fn RemoteRegEnumKeyWrapper();
+    // pub fn RemoteRegEnumValueWrapper();
+    // pub fn RemoteRegQueryInfoKeyWrapper();
+    // pub fn RemoteRegQueryValueWrapper();
+    // pub fn RemoveTraceCallback();
+    // pub fn RemoveUsersFromEncryptedFile();
+    // pub fn ReportEventA();
+    // pub fn ReportEventW();
+    // pub fn RevertToSelf();
+    // pub fn SafeBaseRegGetKeySecurity();
+    // pub fn SaferCloseLevel();
+    // pub fn SaferComputeTokenFromLevel();
+    // pub fn SaferCreateLevel();
+    // pub fn SaferGetLevelInformation();
+    // pub fn SaferGetPolicyInformation();
+    // pub fn SaferIdentifyLevel();
+    // pub fn SaferRecordEventLogEntry();
+    // pub fn SaferSetLevelInformation();
+    // pub fn SaferSetPolicyInformation();
+    // pub fn SaferiIsExecutableFileType();
+    // pub fn SetAclInformation();
+    // pub fn SetEncryptedFileMetadata();
+    // pub fn SetEntriesInAccessListA();
+    // pub fn SetEntriesInAccessListW();
+    // pub fn SetEntriesInAclA();
+    // pub fn SetEntriesInAclW();
+    // pub fn SetEntriesInAuditListA();
+    // pub fn SetEntriesInAuditListW();
+    // pub fn SetFileSecurityA();
+    // pub fn SetFileSecurityW();
+    // pub fn SetInformationCodeAuthzLevelW();
+    // pub fn SetInformationCodeAuthzPolicyW();
+    // pub fn SetKernelObjectSecurity();
+    // pub fn SetNamedSecurityInfoA();
+    // pub fn SetNamedSecurityInfoExA();
+    // pub fn SetNamedSecurityInfoExW();
+    // pub fn SetNamedSecurityInfoW();
+    // pub fn SetPrivateObjectSecurity();
+    // pub fn SetPrivateObjectSecurityEx();
+    // pub fn SetSecurityAccessMask();
+    // pub fn SetSecurityDescriptorControl();
+    // pub fn SetSecurityDescriptorDacl();
+    // pub fn SetSecurityDescriptorGroup();
+    // pub fn SetSecurityDescriptorOwner();
+    // pub fn SetSecurityDescriptorRMControl();
+    // pub fn SetSecurityDescriptorSacl();
+    // pub fn SetSecurityInfo();
+    // pub fn SetSecurityInfoExA();
+    // pub fn SetSecurityInfoExW();
+    // pub fn SetServiceBits();
+    // pub fn SetServiceObjectSecurity();
+    pub fn SetServiceStatus(
+        hServiceStatus: SERVICE_STATUS_HANDLE, lpServiceStatus: LPSERVICE_STATUS,
+    ) -> BOOL;
+    // pub fn SetThreadToken();
+    // pub fn SetTokenInformation();
+    // pub fn SetTraceCallback();
+    // pub fn SetUserFileEncryptionKey();
+    // pub fn SetUserFileEncryptionKeyEx();
+    // pub fn StartServiceA();
+    pub fn StartServiceCtrlDispatcherA(lpServiceStartTable: *const SERVICE_TABLE_ENTRYA) -> BOOL;
+    pub fn StartServiceCtrlDispatcherW(lpServiceStartTable: *const SERVICE_TABLE_ENTRYW) -> BOOL;
+    // pub fn StartServiceW();
+    // pub fn StartTraceA();
+    // pub fn StartTraceW();
+    // pub fn StopTraceA();
+    // pub fn StopTraceW();
+    // pub fn SystemFunction001();
+    // pub fn SystemFunction002();
+    // pub fn SystemFunction003();
+    // pub fn SystemFunction004();
+    // pub fn SystemFunction005();
+    // pub fn SystemFunction006();
+    // pub fn SystemFunction007();
+    // pub fn SystemFunction008();
+    // pub fn SystemFunction009();
+    // pub fn SystemFunction010();
+    // pub fn SystemFunction011();
+    // pub fn SystemFunction012();
+    // pub fn SystemFunction013();
+    // pub fn SystemFunction014();
+    // pub fn SystemFunction015();
+    // pub fn SystemFunction016();
+    // pub fn SystemFunction017();
+    // pub fn SystemFunction018();
+    // pub fn SystemFunction019();
+    // pub fn SystemFunction020();
+    // pub fn SystemFunction021();
+    // pub fn SystemFunction022();
+    // pub fn SystemFunction023();
+    // pub fn SystemFunction024();
+    // pub fn SystemFunction025();
+    // pub fn SystemFunction026();
+    // pub fn SystemFunction027();
+    // pub fn SystemFunction028();
+    // pub fn SystemFunction029();
+    // pub fn SystemFunction030();
+    // pub fn SystemFunction031();
+    // pub fn SystemFunction032();
+    // pub fn SystemFunction033();
+    // pub fn SystemFunction034();
+    // pub fn SystemFunction036();
+    // pub fn SystemFunction040();
+    // pub fn SystemFunction041();
+    // pub fn TraceEvent();
+    // pub fn TraceEventInstance();
+    // pub fn TraceMessage();
+    // pub fn TraceMessageVa();
+    // pub fn TraceQueryInformation();
+    // pub fn TraceSetInformation();
+    // pub fn TreeResetNamedSecurityInfoA();
+    // pub fn TreeResetNamedSecurityInfoW();
+    // pub fn TreeSetNamedSecurityInfoA();
+    // pub fn TreeSetNamedSecurityInfoW();
+    // pub fn TrusteeAccessToObjectA();
+    // pub fn TrusteeAccessToObjectW();
+    // pub fn UninstallApplication();
+    // pub fn UnlockServiceDatabase();
+    // pub fn UnregisterTraceGuids();
+    // pub fn UpdateTraceA();
+    // pub fn UpdateTraceW();
+    // pub fn UsePinForEncryptedFilesA();
+    // pub fn UsePinForEncryptedFilesW();
+    // pub fn WaitServiceState();
+    // pub fn WriteEncryptedFileRaw();
+}
new file mode 100644
--- /dev/null
+++ b/third_party/rust/backtrace-sys/.cargo-checksum.json
@@ -0,0 +1,1 @@
+{"files":{".cargo-ok":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","Cargo.toml":"749f043da5cdbd988e2068e94feb3e75ed326945a99cf288c94ae444f5328680","build.rs":"2cf7c28f03f85c8e68969bcb5b076c8effa8543d39a12fe651ff332ac6a394c7","src/lib.rs":"cb45ba047240bceac6ea74da50c2f48ae81a965b578c833a766a3ea0db1075f3","src/libbacktrace/ChangeLog":"ad6f9058524b950aed734db83419e0624df55a48af8091c8bcad7a125aeeffdd","src/libbacktrace/ChangeLog.jit":"ee143b5c9dc571d9aca006be246a83b1f019c39a3fd7b0025eb37463e30200ce","src/libbacktrace/Makefile.am":"74d0036c9715cb7fa6c749cead794ba96283f47d243cf2b25bc6fac8f04667d5","src/libbacktrace/Makefile.in":"9ca92df95c8d62b8a0e106357a796ef4d2c5ec7fd02ab133fd0a65de1984e096","src/libbacktrace/README":"3d1a15714583197945df8db054da6f30613316ec311c5ec2d68b92fab12364a2","src/libbacktrace/aclocal.m4":"e3a6dfa4ce929624ac289b260987a7fa9b512cfbf3ff6f39c5d1e38cbad1a0ea","src/libbacktrace/alloc.c":"829ceab369210fc60758f339807fe0bf55832c77adb3a4450fae586a90a9673d","src/libbacktrace/ansidecl.h":"14acfcd6c044bc73de85b120cbc3e626771a01712911ee1f6137585fd710fb1e","src/libbacktrace/atomic.c":"3e1882a520e0e1115107e194fbd97daa8d3feef15a70047969f4976e7542c263","src/libbacktrace/backtrace-supported.h.in":"42277f3c383386b6cfa3d3d889336e92303fac0ae1a9fb8a6a56737245dfb8f3","src/libbacktrace/backtrace.c":"76bdabddc4eb8a46a7eec98ce610c86909c89c629eb850a0cde98f5a78c9b99d","src/libbacktrace/backtrace.h":"cd2db6474556b655e42c0a973b871c1b6cb4796809490bf59cc8d3d0e8c083f5","src/libbacktrace/btest.c":"fff55e4acf6ad02a6f719046fc4e3f8bf795166ed9956122a79e17c6be266738","src/libbacktrace/config.guess":"8131853dbc8c3be5171fa96353de7a884a79d3f1d6b3fbf48f99037f5f95fe27","src/libbacktrace/config.h.in":"9b0d30416c93906e5c0ce36c95a7426bfd41228114f381949e89d263305b5b65","src/libbacktrace/config.sub":"3b739084e4b409aacf8531f87b57efa602eccdd17b5cddbc4ae1313a2c866f34","src/libbacktrace/configure":"2b45c89d06809c6ed49d70bfdf51a93e44370fc81f689169a073f47b14b366e5","src/libbacktrace/configure.ac":"360b1a033e33d2c58d2f36aaa6644a2aac0dd8960417df6d64202cc099a1c3f3","src/libbacktrace/dwarf.c":"b969c3abb07a09aa4ac5094dba5777d2c23fee77ade4ec0934142d6b81049785","src/libbacktrace/dwarf2.def":"d947302d8b259f0abdd9dd2f50a0713f4e7395c05ce88ddfdb37a7145b045d82","src/libbacktrace/dwarf2.h":"b3b13fa412a1573e3ee8dcb1d603ec33de7140f00b3bbbaa5292724f0087ace3","src/libbacktrace/elf.c":"728d7e47bf077de4dad6eecc76c134b4b4898dc5866572587692848f29aaec5c","src/libbacktrace/fileline.c":"bae25b6662bfd01a43bccc645206e00aeea27f18a51f6303f00f4fa1d9f2e861","src/libbacktrace/filenames.h":"bce400200dbc7452ca2a7f27dd36516949c4c94a135a6a322f011f3ce7817377","src/libbacktrace/filetype.awk":"9dd5352f288c3737fccd24a2c7583f4d0dbca2b95b2735a90a26b644478018af","src/libbacktrace/hashtab.h":"4cb7f68db5c2e8ff1190ecf859e7feb58447ea20bd9818bb1f447b46e2813c58","src/libbacktrace/install-sh":"d7c113e5484fce8b48f9a34a7a91e385ec279247d415b0b7d749bd56ad8ee8a2","src/libbacktrace/internal.h":"ed657e14aa33b4b5217919435e69019c5a677a00a9c134bf0297f000f146b093","src/libbacktrace/ltmain.sh":"ee4019f80b993cdb1bd13bf39434ad4f1ef15ae57a97594c53fb7b1d76d776a4","src/libbacktrace/missing":"b1a337b731bbb58846d31ca2f5143c293a455fa41b481e236e89a9016d96b034","src/libbacktrace/mmap.c":"fec72286a2d8a0c53fd56ea61b3766b87031f6f803f6de6c3c656e39bc85cdc2","src/libbacktrace/mmapio.c":"32a672fd2b8b3395c8a16ef11d839437ca35570fbc235bb0e2e70ef8097a12fc","src/libbacktrace/nounwind.c":"7694636af38ef488c814ab9b71854d6a259c1f3f635bd4c3ed99a88ca2beb5f1","src/libbacktrace/pecoff.c":"00cf6976cfc1e018f5e5473d4fbef4ae86de825dd2749897c45dfcebcefc6abf","src/libbacktrace/posix.c":"73754fcfa0a5b0342e8fe32166e7228b61e022699a8a3c9a2ef8e46260736704","src/libbacktrace/print.c":"ec1e80e17e27130bf9412470e8dc9155a0dc9ca3a78125081f5073b438b54157","src/libbacktrace/read.c":"399458fb06389aa4bd5ce376c4620cf733b5555d1dabe7ef19f185da1e37e614","src/libbacktrace/simple.c":"686d976c2bdb1a074f9be05af026d4b4c7a4978c2602268747d492563f18e0dc","src/libbacktrace/sort.c":"1a1e44af4e4d02fc568b318aa1517792edd6972a27029ba78e938856ef8ba1a0","src/libbacktrace/state.c":"49d547f5622b0ea0c39bc873b09a7dce276fdc6469118f5ab2e72c55bd0457fb","src/libbacktrace/stest.c":"aa1b90fe2d6dc8ac65ac0168776c2d242efc6460ac596deb14ac1e72bf764871","src/libbacktrace/unknown.c":"914aa113cd17ed678d40927391b35f6027e87b3a02e36e9f1822ec1efe9c0e20","symbol-map":"b941b2516efbb9e46521eeb166c60b31d52b2a4aaaf35d7f9af24946bbe1328a"},"package":"d192fd129132fbc97497c1f2ec2c2c5174e376b95f535199ef4fe0a293d33842"}
\ No newline at end of file
new file mode 100644
new file mode 100644
--- /dev/null
+++ b/third_party/rust/backtrace-sys/Cargo.toml
@@ -0,0 +1,18 @@
+[package]
+name = "backtrace-sys"
+version = "0.1.10"
+authors = ["Alex Crichton <alex@alexcrichton.com>"]
+build = "build.rs"
+license = "MIT/Apache-2.0"
+repository = "https://github.com/alexcrichton/backtrace-rs"
+homepage = "https://github.com/alexcrichton/backtrace-rs"
+documentation = "http://alexcrichton.com/backtrace-rs"
+description = """
+Bindings to the libbacktrace gcc library
+"""
+
+[dependencies]
+libc = "0.2"
+
+[build-dependencies]
+gcc = "0.3"
new file mode 100644
--- /dev/null
+++ b/third_party/rust/backtrace-sys/build.rs
@@ -0,0 +1,136 @@
+extern crate gcc;
+
+use std::env;
+use std::ffi::OsString;
+use std::fs;
+use std::io;
+use std::path::PathBuf;
+use std::process::Command;
+
+macro_rules! t {
+    ($e:expr) => (match $e {
+        Ok(e) => e,
+        Err(e) => panic!("{} failed with {}", stringify!($e), e),
+    })
+}
+
+fn try_tool(compiler: &gcc::Tool, cc: &str, compiler_suffix: &str, tool_suffix: &str)
+            -> Option<PathBuf> {
+    if !cc.ends_with(compiler_suffix) {
+        return None
+    }
+    let cc = cc.replace(compiler_suffix, tool_suffix);
+    let candidate = compiler.path().parent().unwrap().join(cc);
+    if Command::new(&candidate).output().is_ok() {
+        Some(candidate)
+    } else {
+        None
+    }
+}
+
+fn find_tool(compiler: &gcc::Tool, cc: &str, tool: &str) -> PathBuf {
+    // Allow overrides via env var
+    if let Some(s) = env::var_os(tool.to_uppercase()) {
+        return s.into()
+    }
+    let tool_suffix = format!("-{}", tool);
+    try_tool(compiler, cc, "-gcc", &tool_suffix)
+        .or_else(|| try_tool(compiler, cc, "-cc", &tool_suffix))
+        .unwrap_or_else(|| PathBuf::from(tool))
+}
+
+fn main() {
+    let src = env::current_dir().unwrap();
+    let dst = PathBuf::from(env::var_os("OUT_DIR").unwrap());
+    let target = env::var("TARGET").unwrap();
+    let host = env::var("HOST").unwrap();
+
+    // libbacktrace doesn't currently support Mach-O files
+    if target.contains("darwin") {
+        return
+    }
+
+    // libbacktrace isn't used on windows
+    if target.contains("windows") {
+        return
+    }
+
+    // no way this will ever compile for emscripten
+    if target.contains("emscripten") {
+        return
+    }
+
+    let cfg = gcc::Config::new();
+    let compiler = cfg.get_compiler();
+    let cc = compiler.path().file_name().unwrap().to_str().unwrap();
+    let mut flags = OsString::new();
+    for (i, flag) in compiler.args().iter().enumerate() {
+        if i > 0 {
+            flags.push(" ");
+        }
+        flags.push(flag);
+    }
+    let ar = find_tool(&compiler, cc, "ar");
+    run(Command::new(src.join("src/libbacktrace/configure"))
+                .current_dir(&dst)
+                .env("CC", compiler.path())
+                .env("CFLAGS", flags)
+                .arg("--with-pic")
+                .arg("--disable-multilib")
+                .arg("--disable-shared")
+                .arg("--disable-host-shared")
+                .arg(format!("--target={}", target))
+                .arg(format!("--host={}", host)),
+        "sh");
+    run(Command::new("make")
+                .current_dir(&dst)
+                .arg(format!("INCDIR={}",
+                             src.join("src/libbacktrace").display())),
+        "make");
+    println!("cargo:rustc-link-search=native={}/.libs", dst.display());
+    println!("cargo:rustc-link-lib=static=backtrace");
+
+    // The standard library currently bundles in libbacktrace, but it's
+    // compiled with hidden visibility (naturally) so we can't use it.
+    //
+    // To prevent conflicts with a second statically linked copy we rename all
+    // symbols with a '__rbt_' prefix manually here through `objcopy`.
+    let lib = dst.join(".libs/libbacktrace.a");
+    let tmpdir = dst.join("__tmp");
+    drop(fs::remove_dir_all(&tmpdir));
+    t!(fs::create_dir_all(&tmpdir));
+    run(Command::new(&ar).arg("x").arg(&lib).current_dir(&tmpdir),
+        ar.to_str().unwrap());
+
+    t!(fs::remove_file(&lib));
+    let mut objs = Vec::new();
+    let objcopy = find_tool(&compiler, cc, "objcopy");
+    for obj in t!(tmpdir.read_dir()) {
+        let obj = t!(obj);
+        run(Command::new(&objcopy)
+                    .arg("--redefine-syms=symbol-map")
+                    .arg(obj.path()),
+            objcopy.to_str().unwrap());
+        objs.push(obj.path());
+    }
+
+    run(Command::new(&ar).arg("crus").arg(&lib).args(&objs),
+        ar.to_str().unwrap());
+}
+
+fn run(cmd: &mut Command, program: &str) {
+    println!("running: {:?}", cmd);
+    let status = match cmd.status() {
+        Ok(s) => s,
+        Err(ref e) if e.kind() == io::ErrorKind::NotFound => {
+            panic!("\n\nfailed to execute command: {}\nIs `{}` \
+                    not installed?\n\n",
+                   e,
+                   program);
+        }
+        Err(e) => panic!("failed to get status: {}", e),
+    };
+    if !status.success() {
+        panic!("failed with: {}", status);
+    }
+}
new file mode 100644
--- /dev/null
+++ b/third_party/rust/backtrace-sys/src/lib.rs
@@ -0,0 +1,44 @@
+#![allow(bad_style)]
+
+extern crate libc;
+
+use libc::uintptr_t;
+use std::os::raw::{c_void, c_char, c_int};
+
+pub type backtrace_syminfo_callback =
+    extern fn(data: *mut c_void,
+              pc: uintptr_t,
+              symname: *const c_char,
+              symval: uintptr_t,
+              symsize: uintptr_t);
+pub type backtrace_full_callback =
+    extern fn(data: *mut c_void,
+              pc: uintptr_t,
+              filename: *const c_char,
+              lineno: c_int,
+              function: *const c_char) -> c_int;
+pub type backtrace_error_callback =
+    extern fn(data: *mut c_void,
+              msg: *const c_char,
+              errnum: c_int);
+pub enum backtrace_state {}
+
+extern {
+    #[link_name = "__rbt_backtrace_create_state"]
+    pub fn backtrace_create_state(filename: *const c_char,
+                                  threaded: c_int,
+                                  error: backtrace_error_callback,
+                                  data: *mut c_void) -> *mut backtrace_state;
+    #[link_name = "__rbt_backtrace_syminfo"]
+    pub fn backtrace_syminfo(state: *mut backtrace_state,
+                             addr: uintptr_t,
+                             cb: backtrace_syminfo_callback,
+                             error: backtrace_error_callback,
+                             data: *mut c_void) -> c_int;
+    #[link_name = "__rbt_backtrace_pcinfo"]
+    pub fn backtrace_pcinfo(state: *mut backtrace_state,
+                            addr: uintptr_t,
+                            cb: backtrace_full_callback,
+                            error: backtrace_error_callback,
+                            data: *mut c_void) -> c_int;
+}
new file mode 100644
--- /dev/null
+++ b/third_party/rust/backtrace-sys/src/libbacktrace/ChangeLog
@@ -0,0 +1,598 @@
+2016-11-15  Matthias Klose  <doko@ubuntu.com>
+
+	* configure: Regenerate.
+
+2016-09-11  Carlos Liam  <carlos@aarzee.me>
+
+	* all: Remove meaningless trailing whitespace.
+
+2016-05-18  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/71161
+	* elf.c (phdr_callback) [__i386__]: Add
+	__attribute__((__force_align_arg_pointer__)).
+
+2016-03-02  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>
+
+	* elf.c (backtrace_initialize): Properly initialize elf_fileline_fn to
+	avoid possible crash.
+	(elf_add): Don't set *fileline_fn to elf_nodebug value in case of
+	missing debug info anymore.
+
+2016-02-06  John David Anglin  <danglin@gcc.gnu.org>
+
+	* mmap.c (MAP_FAILED): Define if not defined.
+
+2016-01-04  Jakub Jelinek  <jakub@redhat.com>
+
+	Update copyright years.
+
+2015-12-18  Andris Pavenis  <andris.pavenis@iki.fi>
+
+	* configure.ac: Specify that DJGPP do not have mmap
+	even when sys/mman.h exists.
+	* configure: Regenerate
+
+2015-12-09  John David Anglin  <danglin@gcc.gnu.org>
+
+	PR libgfortran/68115
+	* configure.ac: Set libbacktrace_cv_sys_sync to no on hppa*-*-hpux*.
+	* configure: Regenerate.
+	* elf.c (backtrace_initialize): Cast __sync_bool_compare_and_swap call
+	to void.
+
+2015-09-17  Ian Lance Taylor  <iant@google.com>
+
+	* posix.c (backtrace_open): Cast second argument of open() to int.
+
+2015-09-11  Ian Lance Taylor  <iant@google.com>
+
+	* Makefile.am (backtrace.lo): Depend on internal.h.
+	(sort.lo, stest.lo): Add explicit dependencies.
+	* Makefile.in: Rebuild.
+
+2015-09-09  Hans-Peter Nilsson  <hp@axis.com>
+
+	* backtrace.c: #include <sys/types.h>.
+
+2015-09-08  Ian Lance Taylor  <iant@google.com>
+
+	PR other/67457
+	* backtrace.c: #include "internal.h".
+	(struct backtrace_data): Add can_alloc field.
+	(unwind): If can_alloc is false, don't try to get file/line
+	information.
+	(backtrace_full): Set can_alloc field in bdata.
+	* alloc.c (backtrace_alloc): Don't call error_callback if it is
+	NULL.
+	* mmap.c (backtrace_alloc): Likewise.
+	* internal.h: Update comments for backtrace_alloc and
+	backtrace_free.
+
+2015-09-08  Ian Lance Taylor  <iant@google.com>
+
+	PR other/67457
+	* mmap.c (backtrace_alloc): Correct test for mmap failure.
+
+2015-08-31  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+	* configure.ac: For spu-*-* targets, set have_fcntl to no.
+	* configure: Regenerate.
+
+2015-08-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+	* configure.ac: Remove [disable-shared] argument to LT_INIT.
+	Remove setting PIC_FLAG when building as target library.
+	* configure: Regenerate.
+
+2015-08-26  Hans-Peter Nilsson  <hp@axis.com>
+
+	* configure.ac: Only compile with -fPIC if the target
+	supports it.
+	* configure: Regenerate.
+
+2015-08-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+	* configure.ac: Set have_mmap to no on spu-*-* targets.
+	* configure: Regenerate.
+
+2015-08-13  Ian Lance Taylor  <iant@google.com>
+
+	* dwarf.c (read_function_entry): Add vec_inlined parameter.
+	Change all callers.
+
+2015-06-11  Martin Sebor  <msebor@redhat.com>
+
+	PR sanitizer/65479
+	* dwarf.c (struct line): Add new field idx.
+	(line_compare): Use it.
+	(add_line): Set it.
+	(read_line_info): Reset it.
+
+2015-05-29  Tristan Gingold  <gingold@adacore.com>
+
+	* pecoff.c: New file.
+	* Makefile.am (FORMAT_FILES): Add pecoff.c and dependencies.
+	* Makefile.in: Regenerate.
+	* filetype.awk: Detect pecoff.
+	* configure.ac: Define BACKTRACE_SUPPORTS_DATA on elf platforms.
+	Add pecoff.
+	* btest.c (test5): Test enabled only if BACKTRACE_SUPPORTS_DATA is
+	true.
+	* backtrace-supported.h.in (BACKTRACE_SUPPORTS_DATA): Define.
+	* configure: Regenerate.
+	* pecoff.c: New file.
+
+2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
+
+	* Makefile.in: Regenerated with automake-1.11.6.
+	* aclocal.m4: Likewise.
+	* configure: Likewise.
+
+2015-01-24  Matthias Klose  <doko@ubuntu.com>
+
+	* configure.ac: Move AM_ENABLE_MULTILIB before AC_PROG_CC.
+	* configure: Regenerate.
+
+2015-01-05  Jakub Jelinek  <jakub@redhat.com>
+
+	Update copyright years.
+
+2014-11-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR bootstrap/63784
+	* configure: Regenerated.
+
+2014-11-11  David Malcolm  <dmalcolm@redhat.com>
+
+	* ChangeLog.jit: New.
+
+2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+	PR target/63610
+	* configure: Regenerate.
+
+2014-10-23  Ian Lance Taylor  <iant@google.com>
+
+	* internal.h (backtrace_atomic_load_pointer) [no atomic or sync]:
+	Fix to return void *.
+
+2014-05-08  Ian Lance Taylor  <iant@google.com>
+
+	* mmap.c (backtrace_free): If freeing a large aligned block of
+	memory, call munmap rather than holding onto it.
+	(backtrace_vector_grow): When growing a vector, double the number
+	of pages requested.  When releasing the old version of a grown
+	vector, pass the correct size to backtrace_free.
+
+2014-03-07  Ian Lance Taylor  <iant@google.com>
+
+	* sort.c (backtrace_qsort): Use middle element as pivot.
+
+2014-03-06  Ian Lance Taylor  <iant@google.com>
+
+	* sort.c: New file.
+	* stest.c: New file.
+	* internal.h (backtrace_qsort): Declare.
+	* dwarf.c (read_abbrevs): Call backtrace_qsort instead of qsort.
+	(read_line_info, read_function_entry): Likewise.
+	(read_function_info, build_dwarf_data): Likewise.
+	* elf.c (elf_initialize_syminfo): Likewise.
+	* Makefile.am (libbacktrace_la_SOURCES): Add sort.c.
+	(stest_SOURCES, stest_LDADD): Define.
+	(check_PROGRAMS): Add stest.
+
+2014-02-07  Misty De Meo  <misty@brew.sh>
+
+	PR target/58710
+	* configure.ac: Use AC_LINK_IFELSE in check for
+	_Unwind_GetIPInfo.
+	* configure: Regenerate.
+
+2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
+
+	Update copyright years
+
+2013-12-06  Jakub Jelinek  <jakub@redhat.com>
+
+	* elf.c (ET_DYN): Undefine and define again.
+	(elf_add): Add exe argument, if true and ehdr.e_type is ET_DYN,
+	return early -1 without closing the descriptor.
+	(struct phdr_data): Add exe_descriptor.
+	(phdr_callback): If pd->exe_descriptor is not -1, for very first
+	call if dlpi_name is NULL just call elf_add with the exe_descriptor,
+	otherwise backtrace_close the exe_descriptor if not -1.  Adjust
+	call to elf_add.
+	(backtrace_initialize): Adjust call to elf_add.  If it returns
+	-1, set pd.exe_descriptor to descriptor, otherwise set it to -1.
+
+2013-12-05  Ian Lance Taylor  <iant@google.com>
+
+	* alloc.c (backtrace_vector_finish): Add error_callback and data
+	parameters.  Call backtrace_vector_release.  Return address base.
+	* mmap.c (backtrace_vector_finish): Add error_callback and data
+	parameters.  Return address base.
+	* dwarf.c (read_function_info): Get new address base from
+	backtrace_vector_finish.
+	* internal.h (backtrace_vector_finish): Update declaration.
+
+2013-11-27  Ian Lance Taylor  <iant@google.com>
+
+	* dwarf.c (find_address_ranges): New static function, broken out
+	of build_address_map.
+	(build_address_map): Call it.
+	* btest.c (check): Check for missing filename or function, rather
+	than crashing.
+	(f3): Check that enough frames were returned.
+
+2013-11-19  Jakub Jelinek  <jakub@redhat.com>
+
+	* backtrace.h (backtrace_syminfo_callback): Add symsize argument.
+	* elf.c (elf_syminfo): Pass 0 or sym->size to the callback as
+	last argument.
+	* btest.c (struct symdata): Add size field.
+	(callback_three): Add symsize argument.  Copy it to the data->size
+	field.
+	(f23): Set symdata.size to 0.
+	(test5): Likewise.  If sizeof (int) > 1, lookup address of
+	((uintptr_t) &global) + 1.  Verify symdata.val and symdata.size
+	values.
+
+	* atomic.c: Include sys/types.h.
+
+2013-11-18  Ian Lance Taylor  <iant@google.com>
+
+	* configure.ac: Check for support of __atomic extensions.
+	* internal.h: Declare or #define atomic functions for use in
+	backtrace code.
+	* atomic.c: New file.
+	* dwarf.c (dwarf_lookup_pc): Use atomic functions.
+	(dwarf_fileline, backtrace_dwarf_add): Likewise.
+	* elf.c (elf_add_syminfo_data, elf_syminfo): Likewise.
+	(backtrace_initialize): Likewise.
+	* fileline.c (fileline_initialize): Likewise.
+	* Makefile.am (libbacktrace_la_SOURCES): Add atomic.c.
+	* configure, config.h.in, Makefile.in: Rebuild.
+
+2013-11-18  Jakub Jelinek  <jakub@redhat.com>
+
+	* elf.c (SHN_UNDEF): Define.
+	(elf_initialize_syminfo): Add base_address argument.  Ignore symbols
+	with st_shndx == SHN_UNDEF.  Add base_address to address fields.
+	(elf_add): Adjust caller.
+
+	* elf.c (phdr_callback): Process info->dlpi_addr == 0 normally.
+
+2013-11-16  Ian Lance Taylor  <iant@google.com>
+
+	* backtrace.h (backtrace_create_state): Correct comment about
+	threading.
+
+2013-11-15  Ian Lance Taylor  <iant@google.com>
+
+	* backtrace.h (backtrace_syminfo): Update comment and parameter
+	name to take any address, not just a PC value.
+	* elf.c (STT_OBJECT): Define.
+	(elf_nosyms): Rename parameter pc to addr.
+	(elf_symbol_search): Rename local variable pc to addr.
+	(elf_initialize_syminfo): Add STT_OBJECT symbols to elf_symbols.
+	(elf_syminfo): Rename parameter pc to addr.
+	* btest.c (global): New global variable.
+	(test5): New test.
+	(main): Call test5.
+
+2013-10-17  Ian Lance Taylor  <iant@google.com>
+
+	* elf.c (elf_add): Don't get the wrong offsets if a debug section
+	is missing.
+
+2013-10-15  David Malcolm  <dmalcolm@redhat.com>
+
+	* configure.ac: Add --enable-host-shared, setting up
+	pre-existing PIC_FLAG variable within Makefile.am et al.
+	* configure: Regenerate.
+
+2013-09-20  Alan Modra  <amodra@gmail.com>
+
+	* configure: Regenerate.
+
+2013-07-23  Alexander Monakov  <amonakov@ispras.ru>
+
+	* elf.c (elf_syminfo): Loop over the elf_syminfo_data chain.
+
+2013-07-23  Alexander Monakov  <amonakov@ispras.ru>
+
+	* elf.c (backtrace_initialize): Pass elf_fileline_fn to
+	dl_iterate_phdr callbacks.
+
+2013-03-25  Ian Lance Taylor  <iant@google.com>
+
+	* alloc.c: #include <sys/types.h>.
+	* mmap.c: Likewise.
+
+2013-01-31  Ian Lance Taylor  <iant@google.com>
+
+	* dwarf.c (read_function_info): Permit fvec parameter to be NULL.
+	(dwarf_lookup_pc): Don't use ddata->fvec if threaded.
+
+2013-01-25  Jakub Jelinek  <jakub@redhat.com>
+
+	PR other/56076
+	* dwarf.c (read_line_header): Don't crash if DW_AT_comp_dir
+	attribute was not seen.
+
+2013-01-16  Ian Lance Taylor  <iant@google.com>
+
+	* dwarf.c (struct unit): Add filename and abs_filename fields.
+	(build_address_map): Set new fields when reading unit.
+	(dwarf_lookup_pc): If we don't find an entry in the line table,
+	just return the main file name.
+
+2013-01-14  Richard Sandiford  <rdsandiford@googlemail.com>
+
+	Update copyright years.
+
+2013-01-01  Ian Lance Taylor  <iant@google.com>
+
+	PR bootstrap/54834
+	* Makefile.am (AM_CPPFLAGS): Remove -I ../gcc/include and -I
+	$(MULTIBUILDTOP)/../../gcc/include.
+	* Makefile.in: Rebuild.
+
+2013-01-01  Ian Lance Taylor  <iant@google.com>
+
+	PR other/55536
+	* mmap.c (backtrace_alloc): Don't call sync functions if not
+	threaded.
+	(backtrace_free): Likewise.
+
+2012-12-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	* mmapio.c: Define MAP_FAILED if not defined.
+
+2012-12-11  Jakub Jelinek  <jakub@redhat.com>
+
+	PR bootstrap/54926
+	* Makefile.am (AM_CFLAGS): Remove -frandom-seed=$@.
+	* configure.ac: If --with-target-subdir, add -frandom-seed=$@
+	to EXTRA_FLAGS unconditionally, otherwise check whether the compiler
+	accepts it.
+	* Makefile.in: Regenerated.
+	* configure: Regenerated.
+
+2012-12-07  Jakub Jelinek  <jakub@redhat.com>
+
+	PR bootstrap/54926
+	* Makefile.am (AM_CFLAGS): Add -frandom-seed=$@.
+	* Makefile.in: Regenerated.
+
+2012-11-20  Ian Lance Taylor  <iant@google.com>
+
+	* dwarf.c (read_attribute): Always clear val.
+
+2012-11-13  Ian Lance Taylor  <iant@google.com>
+
+	PR other/55312
+	* configure.ac: Only add -Werror if building a target library.
+	* configure: Rebuild.
+
+2012-11-12  Ian Lance Taylor  <iant@google.com>
+	    Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+	    Gerald Pfeifer  <gerald@pfeifer.com>
+
+	* configure.ac: Check for getexecname.
+	* fileline.c: #include <errno.h>.  Define getexecname if not
+	available.
+	(fileline_initialize): Try to find the executable in a few
+	different ways.
+	* print.c (error_callback): Only print the filename if it came
+	from the backtrace state.
+	* configure, config.h.in: Rebuild.
+
+2012-10-29  Ian Lance Taylor  <iant@google.com>
+
+	* mmap.c (backtrace_vector_release): Correct last patch: add
+	aligned, not size.
+
+2012-10-29  Ian Lance Taylor  <iant@google.com>
+
+	* mmap.c (backtrace_vector_release): Make sure freed block is
+	aligned on 8-byte boundary.
+
+2012-10-26  Ian Lance Taylor  <iant@google.com>
+
+	PR other/55087
+	* posix.c (backtrace_open): Add does_not_exist parameter.
+	* elf.c (phdr_callback): Do not warn if shared library could not
+	be opened.
+	* fileline.c (fileline_initialize): Update calls to
+	backtrace_open.
+	* internal.h (backtrace_open): Update declaration.
+
+2012-10-26  Jack Howarth  <howarth@bromo.med.uc.edu>
+
+	PR target/55061
+	* configure.ac: Check for _Unwind_GetIPInfo function declaration.
+	* configure: Regenerate.
+
+2012-10-24  Ian Lance Taylor  <iant@google.com>
+
+	PR target/55061
+	* configure.ac: Check whether -funwind-tables option works.
+	* configure: Rebuild.
+
+2012-10-11  Ian Lance Taylor  <iant@google.com>
+
+	* configure.ac: Do not use dl_iterate_phdr on Solaris 10.
+	* configure: Rebuild.
+
+2012-10-10  Ian Lance Taylor  <iant@google.com>
+
+	* elf.c: Rename all Elf typedefs to start with b_elf, and be all
+	lower case.
+
+2012-10-10  Hans-Peter Nilsson  <hp@bitrange.com>
+
+	* elf.c (elf_add_syminfo_data): Add casts to avoid warning.
+
+2012-10-09  Ian Lance Taylor  <iant@google.com>
+
+	* dwarf.c (dwarf_fileline): Add cast to avoid warning.
+	(backtrace_dwarf_add): Likewise.
+
+2012-10-09  Ian Lance Taylor  <iant@google.com>
+
+	Add support for tracing through shared libraries.
+	* configure.ac: Check for link.h and dl_iterate_phdr.
+	* elf.c: #include <link.h> if system has dl_iterate_phdr.  #undef
+	ELF macros before #defining them.
+	(dl_phdr_info, dl_iterate_phdr): Define if system does not have
+	dl_iterate_phdr.
+	(struct elf_syminfo_data): Add next field.
+	(elf_initialize_syminfo): Initialize next field.
+	(elf_add_syminfo_data): New static function.
+	(elf_add): New static function, broken out of
+	backtrace_initialize.  Call backtrace_dwarf_add instead of
+	backtrace_dwarf_initialize.
+	(struct phdr_data): Define.
+	(phdr_callback): New static function.
+	(backtrace_initialize): Call elf_add.
+	* dwarf.c (struct dwarf_data): Add next and base_address fields.
+	(add_unit_addr): Add base_address parameter.  Change all callers.
+	(add_unit_ranges, build_address_map): Likewise.
+	(add_line): Add ddata parameter.  Change all callers.
+	(read_line_program, add_function_range): Likewise.
+	(dwarf_lookup_pc): New static function, broken out of
+	dwarf_fileline.
+	(dwarf_fileline): Call dwarf_lookup_pc.
+	(build_dwarf_data): New static function.
+	(backtrace_dwarf_add): New function.
+	(backtrace_dwarf_initialize): Remove.
+	* internal.h (backtrace_dwarf_initialize): Don't declare.
+	(backtrace_dwarf_add): Declare.
+	* configure, config.h.in: Rebuild.
+
+2012-10-04  Gerald Pfeifer  <gerald@pfeifer.com>
+
+	* btest.c (f23): Avoid uninitialized variable warning.
+
+2012-10-04  Ian Lance Taylor  <iant@google.com>
+
+	* dwarf.c: If the system header files do not declare strnlen,
+	provide our own version.
+
+2012-10-03  Ian Lance Taylor  <iant@google.com>
+
+	* dwarf.c (read_uleb128): Fix overflow test.
+	(read_sleb128): Likewise.
+	(build_address_map): Don't change unit_buf.start.
+
+2012-10-02  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR other/54761
+	* configure.ac (EXTRA_FLAGS): New.
+	* Makefile.am (AM_FLAGS): Add $(EXTRA_FLAGS).
+	* configure, Makefile.in: Regenerate.
+
+2012-09-29  Ian Lance Taylor  <iant@google.com>
+
+	PR other/54749
+	* fileline.c (fileline_initialize): Pass errnum as -1 when
+	reporting that we could not read executable information after a
+	previous failure.
+
+2012-09-27  Ian Lance Taylor  <iant@google.com>
+
+	PR bootstrap/54732
+	* configure.ac: Add no-dependencies to AM_INIT_AUTOMAKE.
+	* Makefile.am: Add dependencies for all objects.
+	* configure, aclocal.m4, Makefile.in: Rebuild.
+
+2012-09-27  Ian Lance Taylor  <iant@google.com>
+
+	PR other/54726
+	* elf.c (backtrace_initialize): Set *fileln_fn, not
+	state->fileln_fn.
+
+2012-09-19  Ian Lance Taylor  <iant@google.com>
+
+	* configure.ac: Only use GCC_CHECK_UNWIND_GETIPINFO when compiled
+	as a target library.
+	* configure: Rebuild.
+
+2012-09-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+	    Ian Lance Taylor  <iant@google.com>
+
+        * configure.ac (GCC_HEADER_STDINT): Invoke.
+        * backtrace.h: If we can't find <stdint.h>, use "gstdint.h".
+        * btest.c: Don't include <stdint.h>.
+        * dwarf.c: Likewise.
+        * configure, aclocal.m4, Makefile.in, config.h.in: Rebuild.
+
+2012-09-18  Ian Lance Taylor  <iant@google.com>
+
+	PR bootstrap/54623
+	* Makefile.am (AM_CPPFLAGS): Define.
+	(AM_CFLAGS): Remove -I options.
+	* Makefile.in: Rebuild.
+
+2012-09-18  Ian Lance Taylor  <iant@google.com>
+
+	* posix.c (O_BINARY): Define if not defined.
+	(backtrace_open): Pass O_BINARY to open.  Only call fcntl if
+	HAVE_FCNTL is defined.
+	* configure.ac: Test for the fcntl function.
+	* configure, config.h.in: Rebuild.
+
+2012-09-18  Ian Lance Taylor  <iant@google.com>
+
+	* btest.c (test1, test2, test3, test4): Add the unused attribute.
+
+2012-09-18  Ian Lance Taylor  <iant@google.com>
+
+	* dwarf.c: Correct test of HAVE_DECL_STRNLEN.
+
+2012-09-18  Ian Lance Taylor  <iant@google.com>
+
+	* configure.ac: Add AC_USE_SYSTEM_EXTENSIONS.
+	* mmapio.c: Don't define _GNU_SOURCE.
+	* configure, config.h.in: Rebuild.
+
+2012-09-18  Ian Lance Taylor  <iant@google.com>
+
+	* configure.ac: Check whether strnlen is declared.
+	* dwarf.c: Declare strnlen if not declared.
+	* configure, config.h.in: Rebuild.
+
+2012-09-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	* fileline.c: Include <stdlib.h>.
+	* mmap.c: Likewise.
+
+2012-09-17  Ian Lance Taylor  <iant@google.com>
+
+	PR bootstrap/54611
+	* nounwind.c (backtrace_full): Rename from backtrace.  Add state
+	parameter.
+
+2012-09-17  Gerald Pfeifer  <gerald@pfeifer.com>
+
+	PR bootstrap/54611
+	* nounwind.c (backtrace_simple): Add state parameter.
+
+2012-09-17  Ian Lance Taylor  <iant@google.com>
+
+	PR bootstrap/54609
+	* unknown.c (unknown_fileline): Add state parameter, remove
+	fileline_data parameter, name error_callback parameter.
+	(backtrace_initialize): Add state parameter.
+
+2012-09-17  Ian Lance Taylor  <iant@google.com>
+
+	* Initial implementation.
+
+Copyright (C) 2012-2016 Free Software Foundation, Inc.
+
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
new file mode 100644
--- /dev/null
+++ b/third_party/rust/backtrace-sys/src/libbacktrace/ChangeLog.jit
@@ -0,0 +1,14 @@
+2014-09-24  David Malcolm  <dmalcolm@redhat.com>
+
+	* ChangeLog.jit: Add copyright footer.
+
+2013-10-03  David Malcolm  <dmalcolm@redhat.com>
+
+	* configure.ac: Add --enable-host-shared.
+	* configure: Regenerate.
+
+Copyright (C) 2013-2014 Free Software Foundation, Inc.
+
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
new file mode 100644
--- /dev/null
+++ b/third_party/rust/backtrace-sys/src/libbacktrace/Makefile.am
@@ -0,0 +1,136 @@
+# Makefile.am -- Backtrace Makefile.
+# Copyright (C) 2012-2016 Free Software Foundation, Inc.
+
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+
+#     (1) Redistributions of source code must retain the above copyright
+#     notice, this list of conditions and the following disclaimer.
+
+#     (2) Redistributions in binary form must reproduce the above copyright
+#     notice, this list of conditions and the following disclaimer in
+#     the documentation and/or other materials provided with the
+#     distribution.
+
+#     (3) The name of the author may not be used to
+#     endorse or promote products derived from this software without
+#     specific prior written permission.
+
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+ACLOCAL_AMFLAGS = -I .. -I ../config
+
+AM_CPPFLAGS = -I $(top_srcdir)/../include -I $(top_srcdir)/../libgcc \
+	-I ../libgcc
+
+AM_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) $(PIC_FLAG)
+
+noinst_LTLIBRARIES = libbacktrace.la
+
+libbacktrace_la_SOURCES = \
+	backtrace.h \
+	atomic.c \
+	dwarf.c \
+	fileline.c \
+	internal.h \
+	posix.c \
+	print.c \
+	sort.c \
+	state.c
+
+BACKTRACE_FILES = \
+	backtrace.c \
+	simple.c \
+	nounwind.c
+
+FORMAT_FILES = \
+	elf.c \
+	pecoff.c \
+	unknown.c
+
+VIEW_FILES = \
+	read.c \
+	mmapio.c
+
+ALLOC_FILES = \
+	alloc.c \
+	mmap.c
+
+EXTRA_libbacktrace_la_SOURCES = \
+	$(BACKTRACE_FILES) \
+	$(FORMAT_FILES) \
+	$(VIEW_FILES) \
+	$(ALLOC_FILES)
+
+libbacktrace_la_LIBADD = \
+	$(BACKTRACE_FILE) \
+	$(FORMAT_FILE) \
+	$(VIEW_FILE) \
+	$(ALLOC_FILE)
+
+libbacktrace_la_DEPENDENCIES = $(libbacktrace_la_LIBADD)
+
+# Testsuite.
+
+check_PROGRAMS =
+
+TESTS = $(check_PROGRAMS)
+
+if NATIVE
+
+btest_SOURCES = btest.c
+btest_CFLAGS = $(AM_CFLAGS) -g -O
+btest_LDADD = libbacktrace.la
+
+check_PROGRAMS += btest
+
+stest_SOURCES = stest.c
+stest_LDADD = libbacktrace.la
+
+check_PROGRAMS += stest
+
+endif NATIVE
+
+# We can't use automake's automatic dependency tracking, because it
+# breaks when using bootstrap-lean.  Automatic dependency tracking
+# with GCC bootstrap will cause some of the objects to depend on
+# header files in prev-gcc/include, e.g., stddef.h and stdarg.h.  When
+# using bootstrap-lean, prev-gcc is removed after each stage.  When
+# running "make install", those header files will be gone, causing the
+# library to be rebuilt at install time.  That may not succeed.
+
+# These manual dependencies do not include dependencies on unwind.h,
+# even though that is part of GCC, because where to find it depends on
+# whether we are being built as a host library or a target library.
+
+INCDIR = $(top_srcdir)/../include
+alloc.lo: config.h backtrace.h internal.h
+backtrace.lo: config.h backtrace.h internal.h
+btest.lo: (INCDIR)/filenames.h backtrace.h backtrace-supported.h
+dwarf.lo: config.h $(INCDIR)/dwarf2.h $(INCDIR)/dwarf2.def \
+	$(INCDIR)/filenames.h backtrace.h internal.h
+elf.lo: config.h backtrace.h internal.h
+fileline.lo: config.h backtrace.h internal.h
+mmap.lo: config.h backtrace.h internal.h
+mmapio.lo: config.h backtrace.h internal.h
+nounwind.lo: config.h internal.h
+pecoff.lo: config.h backtrace.h internal.h
+posix.lo: config.h backtrace.h internal.h
+print.lo: config.h backtrace.h internal.h
+read.lo: config.h backtrace.h internal.h
+simple.lo: config.h backtrace.h internal.h
+sort.lo: config.h backtrace.h internal.h
+stest.lo: config.h backtrace.h internal.h
+state.lo: config.h backtrace.h backtrace-supported.h internal.h
+unknown.lo: config.h backtrace.h internal.h
new file mode 100644
--- /dev/null
+++ b/third_party/rust/backtrace-sys/src/libbacktrace/Makefile.in
@@ -0,0 +1,770 @@
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Makefile.am -- Backtrace Makefile.
+# Copyright (C) 2012-2016 Free Software Foundation, Inc.
+
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+
+#     (1) Redistributions of source code must retain the above copyright
+#     notice, this list of conditions and the following disclaimer.
+
+#     (2) Redistributions in binary form must reproduce the above copyright
+#     notice, this list of conditions and the following disclaimer in
+#     the documentation and/or other materials provided with the
+#     distribution.
+
+#     (3) The name of the author may not be used to
+#     endorse or promote products derived from this software without
+#     specific prior written permission.
+
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+check_PROGRAMS = $(am__EXEEXT_1)
+@NATIVE_TRUE@am__append_1 = btest stest
+subdir = .
+DIST_COMMON = README ChangeLog $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am $(top_srcdir)/configure \
+	$(am__configure_deps) $(srcdir)/config.h.in \
+	$(srcdir)/../mkinstalldirs $(srcdir)/backtrace-supported.h.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/../config/lead-dot.m4 \
+	$(top_srcdir)/../config/multi.m4 \
+	$(top_srcdir)/../config/override.m4 \
+	$(top_srcdir)/../config/stdint.m4 \
+	$(top_srcdir)/../config/unwind_ipinfo.m4 \
+	$(top_srcdir)/../config/warnings.m4 \
+	$(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \
+	$(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \
+	$(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES = backtrace-supported.h
+CONFIG_CLEAN_VPATH_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+am_libbacktrace_la_OBJECTS = atomic.lo dwarf.lo fileline.lo posix.lo \
+	print.lo sort.lo state.lo
+libbacktrace_la_OBJECTS = $(am_libbacktrace_la_OBJECTS)
+@NATIVE_TRUE@am__EXEEXT_1 = btest$(EXEEXT) stest$(EXEEXT)
+@NATIVE_TRUE@am_btest_OBJECTS = btest-btest.$(OBJEXT)
+btest_OBJECTS = $(am_btest_OBJECTS)
+@NATIVE_TRUE@btest_DEPENDENCIES = libbacktrace.la
+btest_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(btest_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+@NATIVE_TRUE@am_stest_OBJECTS = stest.$(OBJEXT)
+stest_OBJECTS = $(am_stest_OBJECTS)
+@NATIVE_TRUE@stest_DEPENDENCIES = libbacktrace.la
+DEFAULT_INCLUDES = -I.@am__isrc@
+depcomp =
+am__depfiles_maybe =
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(libbacktrace_la_SOURCES) $(EXTRA_libbacktrace_la_SOURCES) \
+	$(btest_SOURCES) $(stest_SOURCES)
+MULTISRCTOP = 
+MULTIBUILDTOP = 
+MULTIDIRS = 
+MULTISUBDIR = 
+MULTIDO = true
+MULTICLEAN = true
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+ETAGS = etags
+CTAGS = ctags
+am__tty_colors = \
+red=; grn=; lgn=; blu=; std=
+ACLOCAL = @ACLOCAL@
+ALLOC_FILE = @ALLOC_FILE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BACKTRACE_FILE = @BACKTRACE_FILE@
+BACKTRACE_SUPPORTED = @BACKTRACE_SUPPORTED@
+BACKTRACE_SUPPORTS_DATA = @BACKTRACE_SUPPORTS_DATA@
+BACKTRACE_SUPPORTS_THREADS = @BACKTRACE_SUPPORTS_THREADS@
+BACKTRACE_USES_MALLOC = @BACKTRACE_USES_MALLOC@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXTRA_FLAGS = @EXTRA_FLAGS@
+FGREP = @FGREP@
+FORMAT_FILE = @FORMAT_FILE@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PIC_FLAG = @PIC_FLAG@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+VIEW_FILE = @VIEW_FILE@
+WARN_FLAGS = @WARN_FLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__leading_dot = @am__leading_dot@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+libtool_VERSION = @libtool_VERSION@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+multi_basedir = @multi_basedir@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+ACLOCAL_AMFLAGS = -I .. -I ../config
+AM_CPPFLAGS = -I $(top_srcdir)/../include -I $(top_srcdir)/../libgcc \
+	-I ../libgcc
+
+AM_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) $(PIC_FLAG)
+noinst_LTLIBRARIES = libbacktrace.la
+libbacktrace_la_SOURCES = \
+	backtrace.h \
+	atomic.c \
+	dwarf.c \
+	fileline.c \
+	internal.h \
+	posix.c \
+	print.c \
+	sort.c \
+	state.c
+
+BACKTRACE_FILES = \
+	backtrace.c \
+	simple.c \
+	nounwind.c
+
+FORMAT_FILES = \
+	elf.c \
+	pecoff.c \
+	unknown.c
+
+VIEW_FILES = \
+	read.c \
+	mmapio.c
+
+ALLOC_FILES = \
+	alloc.c \
+	mmap.c
+
+EXTRA_libbacktrace_la_SOURCES = \
+	$(BACKTRACE_FILES) \
+	$(FORMAT_FILES) \
+	$(VIEW_FILES) \
+	$(ALLOC_FILES)
+
+libbacktrace_la_LIBADD = \
+	$(BACKTRACE_FILE) \
+	$(FORMAT_FILE) \
+	$(VIEW_FILE) \
+	$(ALLOC_FILE)
+
+libbacktrace_la_DEPENDENCIES = $(libbacktrace_la_LIBADD)
+TESTS = $(check_PROGRAMS)
+@NATIVE_TRUE@btest_SOURCES = btest.c
+@NATIVE_TRUE@btest_CFLAGS = $(AM_CFLAGS) -g -O
+@NATIVE_TRUE@btest_LDADD = libbacktrace.la
+@NATIVE_TRUE@stest_SOURCES = stest.c
+@NATIVE_TRUE@stest_LDADD = libbacktrace.la
+
+# We can't use automake's automatic dependency tracking, because it
+# breaks when using bootstrap-lean.  Automatic dependency tracking
+# with GCC bootstrap will cause some of the objects to depend on
+# header files in prev-gcc/include, e.g., stddef.h and stdarg.h.  When
+# using bootstrap-lean, prev-gcc is removed after each stage.  When
+# running "make install", those header files will be gone, causing the
+# library to be rebuilt at install time.  That may not succeed.
+
+# These manual dependencies do not include dependencies on unwind.h,
+# even though that is part of GCC, because where to find it depends on
+# whether we are being built as a host library or a target library.
+INCDIR = $(top_srcdir)/../include
+all: config.h
+	$(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+am--refresh: Makefile
+	@:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      echo ' cd $(srcdir) && $(AUTOMAKE) --foreign --ignore-deps'; \
+	      $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign --ignore-deps \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign --ignore-deps Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    echo ' $(SHELL) ./config.status'; \
+	    $(SHELL) ./config.status;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	$(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	$(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+config.h: stamp-h1
+	@if test ! -f $@; then rm -f stamp-h1; else :; fi
+	@if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+	@rm -f stamp-h1
+	cd $(top_builddir) && $(SHELL) ./config.status config.h
+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 
+	($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+	rm -f stamp-h1
+	touch $@
+
+distclean-hdr:
+	-rm -f config.h stamp-h1
+backtrace-supported.h: $(top_builddir)/config.status $(srcdir)/backtrace-supported.h.in
+	cd $(top_builddir) && $(SHELL) ./config.status $@
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libbacktrace.la: $(libbacktrace_la_OBJECTS) $(libbacktrace_la_DEPENDENCIES) $(EXTRA_libbacktrace_la_DEPENDENCIES) 
+	$(LINK)  $(libbacktrace_la_OBJECTS) $(libbacktrace_la_LIBADD) $(LIBS)
+
+clean-checkPROGRAMS:
+	@list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
+	echo " rm -f" $$list; \
+	rm -f $$list || exit $$?; \
+	test -n "$(EXEEXT)" || exit 0; \
+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+	echo " rm -f" $$list; \
+	rm -f $$list
+btest$(EXEEXT): $(btest_OBJECTS) $(btest_DEPENDENCIES) $(EXTRA_btest_DEPENDENCIES) 
+	@rm -f btest$(EXEEXT)
+	$(btest_LINK) $(btest_OBJECTS) $(btest_LDADD) $(LIBS)
+stest$(EXEEXT): $(stest_OBJECTS) $(stest_DEPENDENCIES) $(EXTRA_stest_DEPENDENCIES) 
+	@rm -f stest$(EXEEXT)
+	$(LINK) $(stest_OBJECTS) $(stest_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+.c.o:
+	$(COMPILE) -c $<
+
+.c.obj:
+	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+	$(LTCOMPILE) -c -o $@ $<
+
+btest-btest.o: btest.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_CFLAGS) $(CFLAGS) -c -o btest-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c
+
+btest-btest.obj: btest.c
+	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(btest_CFLAGS) $(CFLAGS) -c -o btest-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi`
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool config.lt
+
+# GNU Make needs to see an explicit $(MAKE) variable in the command it
+# runs to enable its job server during parallel builds.  Hence the
+# comments below.
+all-multi:
+	$(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do # $(MAKE)
+install-multi:
+	$(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do # $(MAKE)
+
+mostlyclean-multi:
+	$(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean # $(MAKE)
+clean-multi:
+	$(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean # $(MAKE)
+distclean-multi:
+	$(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean # $(MAKE)
+maintainer-clean-multi:
+	$(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean # $(MAKE)
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	set x; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+check-TESTS: $(TESTS)
+	@failed=0; all=0; xfail=0; xpass=0; skip=0; \
+	srcdir=$(srcdir); export srcdir; \
+	list=' $(TESTS) '; \
+	$(am__tty_colors); \
+	if test -n "$$list"; then \
+	  for tst in $$list; do \
+	    if test -f ./$$tst; then dir=./; \
+	    elif test -f $$tst; then dir=; \
+	    else dir="$(srcdir)/"; fi; \
+	    if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+	      all=`expr $$all + 1`; \
+	      case " $(XFAIL_TESTS) " in \
+	      *[\ \	]$$tst[\ \	]*) \
+		xpass=`expr $$xpass + 1`; \
+		failed=`expr $$failed + 1`; \
+		col=$$red; res=XPASS; \
+	      ;; \
+	      *) \
+		col=$$grn; res=PASS; \
+	      ;; \
+	      esac; \
+	    elif test $$? -ne 77; then \
+	      all=`expr $$all + 1`; \
+	      case " $(XFAIL_TESTS) " in \
+	      *[\ \	]$$tst[\ \	]*) \
+		xfail=`expr $$xfail + 1`; \
+		col=$$lgn; res=XFAIL; \
+	      ;; \
+	      *) \
+		failed=`expr $$failed + 1`; \
+		col=$$red; res=FAIL; \
+	      ;; \
+	      esac; \
+	    else \
+	      skip=`expr $$skip + 1`; \
+	      col=$$blu; res=SKIP; \
+	    fi; \
+	    echo "$${col}$$res$${std}: $$tst"; \
+	  done; \
+	  if test "$$all" -eq 1; then \
+	    tests="test"; \
+	    All=""; \
+	  else \
+	    tests="tests"; \
+	    All="All "; \
+	  fi; \
+	  if test "$$failed" -eq 0; then \
+	    if test "$$xfail" -eq 0; then \
+	      banner="$$All$$all $$tests passed"; \
+	    else \
+	      if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
+	      banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
+	    fi; \
+	  else \
+	    if test "$$xpass" -eq 0; then \
+	      banner="$$failed of $$all $$tests failed"; \
+	    else \
+	      if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
+	      banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+	    fi; \
+	  fi; \
+	  dashes="$$banner"; \
+	  skipped=""; \
+	  if test "$$skip" -ne 0; then \
+	    if test "$$skip" -eq 1; then \
+	      skipped="($$skip test was not run)"; \
+	    else \
+	      skipped="($$skip tests were not run)"; \
+	    fi; \
+	    test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+	      dashes="$$skipped"; \
+	  fi; \
+	  report=""; \
+	  if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+	    report="Please report to $(PACKAGE_BUGREPORT)"; \
+	    test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+	      dashes="$$report"; \
+	  fi; \
+	  dashes=`echo "$$dashes" | sed s/./=/g`; \
+	  if test "$$failed" -eq 0; then \
+	    col="$$grn"; \
+	  else \
+	    col="$$red"; \
+	  fi; \
+	  echo "$${col}$$dashes$${std}"; \
+	  echo "$${col}$$banner$${std}"; \
+	  test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \
+	  test -z "$$report" || echo "$${col}$$report$${std}"; \
+	  echo "$${col}$$dashes$${std}"; \
+	  test "$$failed" -eq 0; \
+	else :; fi
+check-am: all-am
+	$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile $(LTLIBRARIES) all-multi config.h
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am clean-multi
+
+clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
+	clean-noinstLTLIBRARIES mostlyclean-am
+
+distclean: distclean-am distclean-multi
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-hdr distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-multi
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am maintainer-clean-multi
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -rf $(top_srcdir)/autom4te.cache
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am mostlyclean-multi
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: all all-multi check-am clean-multi distclean-multi install-am \
+	install-multi install-strip maintainer-clean-multi \
+	mostlyclean-multi
+
+.PHONY: CTAGS GTAGS all all-am all-multi am--refresh check check-TESTS \
+	check-am clean clean-checkPROGRAMS clean-generic clean-libtool \
+	clean-multi clean-noinstLTLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-hdr \
+	distclean-libtool distclean-multi distclean-tags dvi dvi-am \
+	html html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-multi install-pdf \
+	install-pdf-am install-ps install-ps-am install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic maintainer-clean-multi mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	mostlyclean-multi pdf pdf-am ps ps-am tags uninstall \
+	uninstall-am
+
+alloc.lo: config.h backtrace.h internal.h
+backtrace.lo: config.h backtrace.h internal.h
+btest.lo: (INCDIR)/filenames.h backtrace.h backtrace-supported.h
+dwarf.lo: config.h $(INCDIR)/dwarf2.h $(INCDIR)/dwarf2.def \
+	$(INCDIR)/filenames.h backtrace.h internal.h
+elf.lo: config.h backtrace.h internal.h
+fileline.lo: config.h backtrace.h internal.h
+mmap.lo: config.h backtrace.h internal.h
+mmapio.lo: config.h backtrace.h internal.h
+nounwind.lo: config.h internal.h
+pecoff.lo: config.h backtrace.h internal.h
+posix.lo: config.h backtrace.h internal.h
+print.lo: config.h backtrace.h internal.h
+read.lo: config.h backtrace.h internal.h
+simple.lo: config.h backtrace.h internal.h
+sort.lo: config.h backtrace.h internal.h
+stest.lo: config.h backtrace.h internal.h
+state.lo: config.h backtrace.h backtrace-supported.h internal.h
+unknown.lo: config.h backtrace.h internal.h
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
new file mode 100644
--- /dev/null
+++ b/third_party/rust/backtrace-sys/src/libbacktrace/README
@@ -0,0 +1,23 @@
+The libbacktrace library
+Initially written by Ian Lance Taylor <iant@google.com>
+
+The libbacktrace library may be linked into a program or library and
+used to produce symbolic backtraces.  Sample uses would be to print a
+detailed backtrace when an error occurs or to gather detailed
+profiling information.
+
+The libbacktrace library is provided under a BSD license.  See the
+source files for the exact license text.
+
+The public functions are declared and documented in the header file
+backtrace.h, which should be #include'd by a user of the library.
+
+Building libbacktrace will generate a file backtrace-supported.h,
+which a user of the library may use to determine whether backtraces
+will work.  See the source file backtrace-supported.h.in for the
+macros that it defines.
+
+As of September 2012, libbacktrace only supports ELF executables with
+DWARF debugging information.  The library is written to make it
+straightforward to add support for other object file and debugging
+formats.
new file mode 100644
--- /dev/null
+++ b/third_party/rust/backtrace-sys/src/libbacktrace/aclocal.m4
@@ -0,0 +1,683 @@
+# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
+# Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_AUTOCONF_VERSION],
+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.64],,
+[m4_warning([this file was generated for autoconf 2.64.
+You have another version of autoconf.  It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically `autoreconf'.])])
+
+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software
+# Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 1
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+# (This private macro should not be called outside this file.)
+AC_DEFUN([AM_AUTOMAKE_VERSION],
+[am__api_version='1.11'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version.  Point them to the right macro.
+m4_if([$1], [1.11.6], [],
+      [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too.  Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+[AM_AUTOMAKE_VERSION([1.11.6])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+
+# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
+
+# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 1
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory.  The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run.  This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+#    fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+#    fails if $ac_aux_dir is absolute,
+#    fails when called from a subdirectory in a VPATH build with
+#          a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir.  In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
+#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+#   MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH.  The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_CONDITIONAL                                            -*- Autoconf -*-
+
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 9
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ(2.52)dnl
+ ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+	[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+  $1_TRUE=
+  $1_FALSE='#'
+else
+  $1_TRUE='#'
+  $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+  AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Do all the work for Automake.                             -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 16
+
+# This macro actually does too much.  Some checks are only needed if
+# your package does certain things.  But this isn't really a big deal.
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out.  PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition.  After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.62])dnl
+dnl Autoconf wants to disallow AM_ names.  We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+  # is not polluted with repeated "-I."
+  AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+  # test to see if srcdir already configured
+  if test -f $srcdir/config.status; then
+    AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+  fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+  if (cygpath --version) >/dev/null 2>/dev/null; then
+    CYGPATH_W='cygpath -w'
+  else
+    CYGPATH_W=echo
+  fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+  [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+# We need awk for the "check" target.  The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+	      [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+			     [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+		  [_AM_DEPENDENCIES(CC)],
+		  [define([AC_PROG_CC],
+			  defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+		  [_AM_DEPENDENCIES(CXX)],
+		  [define([AC_PROG_CXX],
+			  defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+		  [_AM_DEPENDENCIES(OBJC)],
+		  [define([AC_PROG_OBJC],
+			  defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+])
+_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
+dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
+dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This macro
+dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+  [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+])
+
+dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
+dnl mangled by Autoconf and run in a shell conditional statement.
+m4_define([_AC_COMPILER_EXEEXT],
+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
+
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated.  The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+  case $_am_header in
+    $_am_arg | $_am_arg:* )
+      break ;;
+    * )
+      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+  esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation,
+# Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 1
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+  *)
+    install_sh="\${SHELL} $am_aux_dir/install-sh"
+  esac
+fi
+AC_SUBST(install_sh)])
+
+# Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008,
+# 2011 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 5
+
+# AM_MAINTAINER_MODE([DEFAULT-MODE])
+# ----------------------------------
+# Control maintainer-specific portions of Makefiles.
+# Default is to disable them, unless `enable' is passed literally.
+# For symmetry, `disable' may be passed as well.  Anyway, the user
+# can override the default with the --enable/--disable switch.
+AC_DEFUN([AM_MAINTAINER_MODE],
+[m4_case(m4_default([$1], [disable]),
+       [enable], [m4_define([am_maintainer_other], [disable])],
+       [disable], [m4_define([am_maintainer_other], [enable])],
+       [m4_define([am_maintainer_other], [enable])
+        m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
+AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+  dnl maintainer-mode's default is 'disable' unless 'enable' is passed
+  AC_ARG_ENABLE([maintainer-mode],
+[  --][am_maintainer_other][-maintainer-mode  am_maintainer_other make rules and dependencies not useful
+			  (and sometimes confusing) to the casual installer],
+      [USE_MAINTAINER_MODE=$enableval],
+      [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+  AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+  AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+  MAINT=$MAINTAINER_MODE_TRUE
+  AC_SUBST([MAINT])dnl
+]
+)
+
+AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
+
+# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
+
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 6
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+  *)
+    MISSING="\${SHELL} $am_aux_dir/missing" ;;
+  esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+  am_missing_run="$MISSING --run "
+else
+  am_missing_run=
+  AC_MSG_WARN([`missing' script is too old or missing])
+fi
+])
+
+# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation,
+# Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 1
+
+# AM_PROG_MKDIR_P
+# ---------------
+# Check for `mkdir -p'.
+AC_DEFUN([AM_PROG_MKDIR_P],
+[AC_PREREQ([2.60])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+dnl Automake 1.8 to 1.9.6 used to define mkdir_p.  We now use MKDIR_P,
+dnl while keeping a definition of mkdir_p for backward compatibility.
+dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
+dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
+dnl Makefile.ins that do not define MKDIR_P, so we do our own
+dnl adjustment using top_builddir (which is defined more often than
+dnl MKDIR_P).
+AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
+case $mkdir_p in
+  [[\\/$]]* | ?:[[\\/]]*) ;;
+  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+])
+
+# Helper functions for option handling.                     -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software
+# Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 5
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# --------------------
+# Set option NAME.  Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Check to make sure that the build environment is sane.    -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 5
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name.  Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+  *[[\\\"\#\$\&\'\`$am_lf]]*)
+    AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+  *[[\\\"\#\$\&\'\`$am_lf\ \	]]*)
+    AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
+esac
+
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+   if test "$[*]" = "X"; then
+      # -L didn't work.
+      set X `ls -t "$srcdir/configure" conftest.file`
+   fi
+   rm -f conftest.file
+   if test "$[*]" != "X $srcdir/configure conftest.file" \
+      && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+      # If neither matched, then we have a broken ls.  This can happen
+      # if, for instance, CONFIG_SHELL is bash and it inherits a
+      # broken ls alias from the environment.  This has actually
+      # happened.  Such a system could not be considered "sane".
+      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+alias in your environment])
+   fi
+
+   test "$[2]" = conftest.file
+   )
+then
+   # Ok.
+   :
+else
+   AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT(yes)])
+
+# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 1
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries.  This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'.  However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+if test "$cross_compiling" != no; then
+  AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 3
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# --------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
+# Check how to create a tarball.                            -*- Autoconf -*-
+
+# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of `v7', `ustar', or `pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+#     tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+#     $(am__untar) < result.tar
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.  Yes, it's still used
+# in the wild :-(  We should find a proper way to deprecate it ...
+AC_SUBST([AMTAR], ['$${TAR-tar}'])
+m4_if([$1], [v7],
+     [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+     [m4_case([$1], [ustar],, [pax],,
+              [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+  case $_am_tool in
+  gnutar)
+    for _am_tar in tar gnutar gtar;
+    do
+      AM_RUN_LOG([$_am_tar --version]) && break
+    done
+    am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+    am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+    am__untar="$_am_tar -xf -"
+    ;;
+  plaintar)
+    # Must skip GNU tar: if it does not support --format= it doesn't create
+    # ustar tarball either.
+    (tar --version) >/dev/null 2>&1 && continue
+    am__tar='tar chf - "$$tardir"'
+    am__tar_='tar chf - "$tardir"'
+    am__untar='tar xf -'
+    ;;
+  pax)
+    am__tar='pax -L -x $1 -w "$$tardir"'
+    am__tar_='pax -L -x $1 -w "$tardir"'
+    am__untar='pax -r'
+    ;;
+  cpio)
+    am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+    am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+    am__untar='cpio -i -H $1 -d'
+    ;;
+  none)
+    am__tar=false
+    am__tar_=false
+    am__untar=false
+    ;;
+  esac
+
+  # If the value was cached, stop now.  We just wanted to have am__tar
+  # and am__untar set.
+  test -n "${am_cv_prog_tar_$1}" && break
+
+  # tar/untar a dummy directory, and stop if the command works
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  echo GrepMe > conftest.dir/file
+  AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+  rm -rf conftest.dir
+  if test -s conftest.tar; then
+    AM_RUN_LOG([$am__untar <conftest.tar])
+    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+  fi
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+m4_include([../config/lead-dot.m4])
+m4_include([../config/multi.m4])
+m4_include([../config/override.m4])
+m4_include([../config/stdint.m4])
+m4_include([../config/unwind_ipinfo.m4])
+m4_include([../config/warnings.m4])
+m4_include([../libtool.m4])
+m4_include([../ltoptions.m4])
+m4_include([../ltsugar.m4])
+m4_include([../ltversion.m4])
+m4_include([../lt~obsolete.m4])
new file mode 100644
--- /dev/null
+++ b/third_party/rust/backtrace-sys/src/libbacktrace/alloc.c
@@ -0,0 +1,156 @@
+/* alloc.c -- Memory allocation without mmap.
+   Copyright (C) 2012-2016 Free Software Foundation, Inc.
+   Written by Ian Lance Taylor, Google.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+    (1) Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    (2) Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+
+    (3) The name of the author may not be used to
+    endorse or promote products derived from this software without
+    specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.  */
+
+#include "config.h"
+
+#include <errno.h>
+#include <stdlib.h>
+#include <sys/types.h>
+
+#include "backtrace.h"
+#include "internal.h"
+
+/* Allocation routines to use on systems that do not support anonymous
+   mmap.  This implementation just uses malloc, which means that the
+   backtrace functions may not be safely invoked from a signal
+   handler.  */
+
+/* Allocate memory like malloc.  If ERROR_CALLBACK is NULL, don't
+   report an error.  */
+
+void *
+backtrace_alloc (struct backtrace_state *state ATTRIBUTE_UNUSED,
+		 size_t size, backtrace_error_callback error_callback,
+		 void *data)
+{
+  void *ret;
+
+  ret = malloc (size);
+  if (ret == NULL)
+    {
+      if (error_callback)
+	error_callback (data, "malloc", errno);
+    }
+  return ret;
+}
+
+/* Free memory.  */
+
+void
+backtrace_free (struct backtrace_state *state ATTRIBUTE_UNUSED,
+		void *p, size_t size ATTRIBUTE_UNUSED,
+		backtrace_error_callback error_callback ATTRIBUTE_UNUSED,
+		void *data ATTRIBUTE_UNUSED)
+{
+  free (p);
+}
+
+/* Grow VEC by SIZE bytes.  */
+
+void *
+backtrace_vector_grow (struct backtrace_state *state ATTRIBUTE_UNUSED,
+		       size_t size, backtrace_error_callback error_callback,
+		       void *data, struct backtrace_vector *vec)
+{
+  void *ret;
+
+  if (size > vec->alc)
+    {
+      size_t alc;
+      void *base;
+
+      if (vec->size == 0)
+	alc = 32 * size;
+      else if (vec->size >= 4096)
+	alc = vec->size + 4096;
+      else
+	alc = 2 * vec->size;
+
+      if (alc < vec->size + size)
+	alc = vec->size + size;
+
+      base = realloc (vec->base, alc);
+      if (base == NULL)
+	{
+	  error_callback (data, "realloc", errno);
+	  return NULL;
+	}
+
+      vec->base = base;
+      vec->alc = alc - vec->size;
+    }
+
+  ret = (char *) vec->base + vec->size;
+  vec->size += size;
+  vec->alc -= size;
+  return ret;
+}
+
+/* Finish the current allocation on VEC.  */
+
+void *
+backtrace_vector_finish (struct backtrace_state *state,
+			 struct backtrace_vector *vec,
+			 backtrace_error_callback error_callback,
+			 void *data)
+{
+  void *ret;
+
+  /* With this allocator we call realloc in backtrace_vector_grow,
+     which means we can't easily reuse the memory here.  So just
+     release it.  */
+  if (!backtrace_vector_release (state, vec, error_callback, data))
+    return NULL;
+  ret = vec->base;
+  vec->base = NULL;
+  vec->size = 0;
+  vec->alc = 0;
+  return ret;
+}
+
+/* Release any extra space allocated for VEC.  */
+
+int
+backtrace_vector_release (struct backtrace_state *state ATTRIBUTE_UNUSED,
+			  struct backtrace_vector *vec,
+			  backtrace_error_callback error_callback,
+			  void *data)
+{
+  vec->base = realloc (vec->base, vec->size);
+  if (vec->base == NULL)
+    {
+      error_callback (data, "realloc", errno);
+      return 0;
+    }
+  vec->alc = 0;
+  return 1;
+}
new file mode 100644
--- /dev/null
+++ b/third_party/rust/backtrace-sys/src/libbacktrace/ansidecl.h
@@ -0,0 +1,355 @@
+/* ANSI and traditional C compatability macros
+   Copyright (C) 1991-2015 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* ANSI and traditional C compatibility macros
+
+   ANSI C is assumed if __STDC__ is #defined.
+
+   Macro		ANSI C definition	Traditional C definition
+   -----		---- - ----------	----------- - ----------
+   PTR			`void *'		`char *'
+   const		not defined		`'
+   volatile		not defined		`'
+   signed		not defined		`'
+
+   For ease of writing code which uses GCC extensions but needs to be
+   portable to other compilers, we provide the GCC_VERSION macro that
+   simplifies testing __GNUC__ and __GNUC_MINOR__ together, and various
+   wrappers around __attribute__.  Also, __extension__ will be #defined
+   to nothing if it doesn't work.  See below.  */
+
+#ifndef	_ANSIDECL_H
+#define _ANSIDECL_H	1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Every source file includes this file,
+   so they will all get the switch for lint.  */
+/* LINTLIBRARY */
+
+/* Using MACRO(x,y) in cpp #if conditionals does not work with some
+   older preprocessors.  Thus we can't define something like this:
+
+#define HAVE_GCC_VERSION(MAJOR, MINOR) \
+  (__GNUC__ > (MAJOR) || (__GNUC__ == (MAJOR) && __GNUC_MINOR__ >= (MINOR)))
+
+and then test "#if HAVE_GCC_VERSION(2,7)".
+
+So instead we use the macro below and test it against specific values.  */
+
+/* This macro simplifies testing whether we are using gcc, and if it
+   is of a particular minimum version. (Both major & minor numbers are
+   significant.)  This macro will evaluate to 0 if we are not using
+   gcc at all.  */
+#ifndef GCC_VERSION
+#define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
+#endif /* GCC_VERSION */
+
+#if defined (__STDC__) || defined(__cplusplus) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(_WIN32)
+/* All known AIX compilers implement these things (but don't always
+   define __STDC__).  The RISC/OS MIPS compiler defines these things
+   in SVR4 mode, but does not define __STDC__.  */
+/* eraxxon@alumni.rice.edu: The Compaq C++ compiler, unlike many other
+   C++ compilers, does not define __STDC__, though it acts as if this
+   was so. (Verified versions: 5.7, 6.2, 6.3, 6.5) */
+