Code Monkey home page Code Monkey logo

mozjs's Introduction

Mozjs (Rust bindings for SpiderMonkey)

This repository contains Rust bindings for SpiderMonkey that are battle-tested in Servo, split in two crates:

  • mozjs-sys: SpiderMonkey and low-level Rust bindings to its C++ API.
  • mozjs: Higher-level bindings to the SpiderMonkey API.

Mozjs is currently tracking SpiderMonkey on ESR-115 branch (currently version 115.3).

Building from Pre-built Archive

SpiderMonkey is very large and can take a long time to compile. If building with default features, mozjs provides a pre-built archive which can be linked against. You can also create your own archive and link to it. mozjs currently offers two environment variables to enable this feature:

  • MOZJS_CREATE_ARCHIVE=1 will create a SpiderMonkey binary archive for release usage. It will be created in the target directory.
  • MOZJS_ARCHIVE can be used to build against a pre-built archive. Using this flag, compiling SpiderMonkey and the bindgen wrappers is unnecessary. There are two ways to use it:
    • MOZJS_ARCHIVE=path/to/libmozjs.tar.gz: This option will look for the archive at the local path, extract it, and then link against the static libraries included in the archive.
    • MOZJS_ARCHIVE=https://url/to/release/page: This option will download the archive from the provided base URL, extract it, and then link against the static libraries included in the archive. The base URL should be similar to https://github.com/servo/mozjs/releases/. The build script will append the version and target accordingly. See the files at the example URL for more details.

Building from Source

If MOZJS_FROM_SOURCE=1 or MOZJS_CREATE_ARCHIVE are enabled or linking against a pre-built archive fails, mozjs will build SpiderMonkey from source.

Linux

Install Python, Clang and build-essential, for example on a Debian-based Linux:

sudo apt-get install build-essential python3 python3-distutils llvm libclang-dev clang curl

If you have more than one version of Clang installed, you can set the LIBCLANG_PATH environment variable, for example:

export LIBCLANG_PATH=/usr/lib/clang/4.0/lib

Windows

  1. Download and unzip MozTools 4.0.

  2. Download and install Clang (LLVM version 14 or greater) for Windows (64 bit) from https://releases.llvm.org/download.html.

  3. Download and install Visual Studio 2019 or Visual Studio 2022 with the C++ desktop development component and the following features:

    • Windows 10 SDK
    • ATL
    • MFC

    To install these dependencies from the command line, you can download vs_buildtools.exe and run the following command:

    vs_BuildTools.exe^
       --add Microsoft.Component.MSBuild^
       --add Microsoft.VisualStudio.Component.CoreBuildTools^
       --add Microsoft.VisualStudio.Workload.MSBuildTools^
       --add Microsoft.VisualStudio.Component.Windows11SDK^
       --add Microsoft.VisualStudio.Component.VC.CoreBuildTools^
       --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64^
       --add Microsoft.VisualStudio.Component.VC.Redist.14.Latest^
       --add Microsoft.VisualStudio.Component.VC.ATL^
       --add Microsoft.VisualStudio.Component.VC.ATLMFC^
       --add Microsoft.VisualStudio.Component.VC.CoreIde^
       --add Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core^
       --add Microsoft.VisualStudio.Workload.VCTools
    
  4. Install Python 3.11.

  • Ensure that Python is added to the system PATH
  • Ensure that a PYTHON and PYTHON3 environment variable point to the Python binary (ie C:\Python311\python.exe
  1. Set the following environment variables according to where you installed the dependencies above:

     $env:LIBCLANG_PATH="C:\Program Files\LLVM\lib"
     $env:MOZTOOLS_PATH="C:\path\to\moztools-4.0"
     $env:CC="clang-cl"
     $env:CXX="clang-cl"
     $env:LD="lld-link"

Run Cargo

You can now build and test the crate using cargo:

cargo build
cargo test
cargo build --features debugmozjs
cargo test --features debugmozjs

Usage for downstream consumers

Mozjs is currently not published to crates.io, but it can be used from git (binaries should use lockfile instead of rev):

mozjs = { git = "https://github.com/servo/mozjs", rev = "latest-commit-hash" }

Building servo against your local mozjs

Assuming your local servo and mozjs directories are siblings, you can build servo against mozjs by adding the following to servo/Cargo.toml:

[patch."https://github.com/servo/mozjs"]
mozjs = { path = "../mozjs/mozjs" }

Upgrading

In order to upgrade to a new version of SpiderMonkey:

  1. Find the mozilla-esr115 commit for the desired version of SpiderMonkey, at https://treeherder.mozilla.org/#/jobs?repo=mozilla-esr115&filter-searchStr=spidermonkey%20pkg. You are looking for an SM(pkg) tagged with FIREFOX_RELEASE. Take a note of the commit number to the left (a hex number such as ac4fbb7aaca0).

  2. Click on the SM(pkg) link, which will open a panel with details of the commit, including an artefact uploaded link, with a name of the form mozjs-version.tar.xz. Download it and save it locally.

  3. Look at the patches in mozjs-sys/etc/patches/*.patch, and remove any that no longer apply (with a bit of luck this will be all of them).

  4. Run python3 ./mozjs-sys/etc/update.py path/to/tarball.

  5. Update mozjs-sys/etc/COMMIT with the commit number and mozjs-sys version with SpiderMonkey version.

  6. Run ./mozjs/src/generate_wrappers.sh to regenerate wrappers.

  7. Build and test the bindings as above, then submit a PR!

  8. Send companion PR to servo, as SpiderMonkey bump PR will not be merged until it's tested against servo.

NixOS users

To get a dev environment with shell.nix:

nix-shell

To configure rust-analyzer in Visual Studio Code:

{
    "rust-analyzer.check.overrideCommand": ["nix-shell", "--run", "cargo check --message-format=json"],
    "rust-analyzer.cargo.buildScripts.overrideCommand": ["nix-shell", "--run", "cargo check --message-format=json"],
    "rust-analyzer.rustfmt.overrideCommand": ["nix-shell", "--run", "cargo fmt"],
}

Editor support

If you are working on the Rust code only, rust-analyzer should work perfectly out of the box, though NixOS users will need to configure rust-analyzer to wrap cargo invocations (see above).

But if you are working on the C++ code, editor support is only really possible in upstream SpiderMonkey (aka “mozilla-central”), but once you’ve set up your editor in your upstream checkout, you can work on your changes there, then import them here as needed for local testing.

This guide assumes that your code is checked out at:

  • ~/code/mozjs for this repo
  • ~/code/mozilla-unified for upstream SpiderMonkey
  • (NixOS users only) ~/code/nixpkgs-mozilla for mozilla/nixpkgs-mozilla

NixOS users: some steps have a note in [brackets] saying they need to be wrapped in nix-shell. Those commands should be wrapped as follows:

nix-shell ~/code/nixpkgs-mozilla/release.nix -A gecko.x86_64-linux.clang --run '...'

C++ editor setup

Start by checking out mozilla-unified (Building Firefox on Linux §§ 1 and 2).

NixOS users: it’s ok if the bootstrap command fails with a NotImplementedError due to NixOS not being a supported distro.

Now create your MOZCONFIG file (Building and testing SpiderMonkey). I recommend (and this guide assumes) that the file is named debug.mozconfig, because simple names like debug can cause MozconfigFindException problems. The file should look like this:

# Build only the JS shell
ac_add_options --enable-project=js

# Enable the debugging tools: Assertions, debug only code etc.
ac_add_options --enable-debug

# Enable optimizations as well so that the test suite runs much faster. If
# you are having trouble using a debugger, you should disable optimization.
ac_add_options --enable-optimize

# Use a dedicated objdir for SpiderMonkey debug builds to avoid
# conflicting with Firefox build with default configuration.
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-debug-@CONFIG_GUESS@

If you are a NixOS user, clone mozilla/nixpkgs-mozilla next to your mozilla-unified checkout, and add the following line to the start of your debug.mozconfig:

. ./.mozconfig.nix-shell

You will need to generate your Visual Studio Code config and compilation database against central at least once, before you can do so against the commit we forked from (mozjs/etc/COMMIT).

~/code/mozilla-unified $ MOZCONFIG=debug.mozconfig ./mach ide vscode

[NixOS users: wrap the command above in nix-shell]

Otherwise you might get an error with lots of exclamation marks:

~/code/mozilla-unified $ MOZCONFIG=debug.mozconfig ./mach ide vscode
[snip]
 0:05.80 Unable to locate clangd in /home/delan/code/mozilla-unified/.mozbuild/clang-tools/clang-tidy/bin.
[snip]
 0:07.78 ERROR!!!!!! Could not find artifacts for a toolchain build named `linux64-clang-tidy`. Local commits, dirty/stale files, and other changes in your checkout may cause this error. Make sure you are on a fresh, current checkout of mozilla-central. Beware that commands like `mach bootstrap` and `mach artifact` are unlikely to work on any versions of the code besides recent revisions of mozilla-central.

[NixOS users: wrap the command above in nix-shell]

Now switch to the commit we forked from, and generate them again.

~/code/mozilla-unified $ hg update -r $(cat ../mozjs/mozjs/etc/COMMIT)
~/code/mozilla-unified $ MOZCONFIG=debug.mozconfig ./mach ide vscode

[NixOS users: wrap the mach command above in nix-shell]

At this point, you should be able to open Visual Studio Code, install the clangd extension, and open a file like js/src/vm/ArrayBufferObject.cpp without seeing any problems in the margin.

If there are no problems in the margin, and you can Go To Definition, you’re done!

Troubleshooting

If you are a NixOS user and see this in the clangd output panel:

[Error - 7:38:13 pm] Clang Language Server client: couldn't create connection to server.
Launching server using command /home/delan/code/mozilla-unified/.mozbuild/clang-tools/clang-tidy/bin/clangd failed. Error: spawn /home/delan/code/mozilla-unified/.mozbuild/clang-tools/clang-tidy/bin/clangd ENOENT

Then you need to replace the mozbuild toolchain’s clangd with one that has been patchelf’d:

~/code/mozilla-unified $ ln -sf ~/.nix-profile/bin/clangd .mozbuild/clang-tools/clang-tidy/bin/clangd

If you see this in the clangd output panel:

I[19:20:28.001] Indexed /home/delan/code/mozilla-unified/js/src/jit/LIR.cpp (61040 symbols, 244267 refs, 738 files)
I[19:20:28.001] Failed to compile /home/delan/code/mozilla-unified/js/src/jit/LIR.cpp, index may be incomplete
I[19:20:28.087] --> $/progress

Then the commands in your compilation database might be incorrect. You can try running one of the commands in a terminal to see what happens:

~/code/mozilla-unified $ ( f=$PWD/obj-debug-x86_64-pc-linux-gnu/clangd/compile_commands.json; set -x; cd $(< $f jq -r '.[0].directory'); $(< $f jq -r '.[0].command') )
+/run/current-system/sw/bin/zsh:252> jq -r '.[0].directory'
+/run/current-system/sw/bin/zsh:252> cd /home/delan/code/mozilla-unified/obj-debug-x86_64-pc-linux-gnu/js/src
+/run/current-system/sw/bin/zsh:252> jq -r '.[0].command'
+/run/current-system/sw/bin/zsh:252> /nix/store/dkw46jgi8i0bq64cag95v4ywz6g9bnga-gcc-wrapper-11.3.0/bin/cc '-std=gnu99' -o /dev/null -c -I/home/delan/code/mozilla-unified/obj-debug-x86_64-pc-linux-gnu/dist/system_wrappers -include /home/delan/code/mozilla-unified/config/gcc_hidden.h -U_FORTIFY_SOURCE '-D_FORTIFY_SOURCE=2' -fstack-protector-strong '-DDEBUG=1' -DWASM_SUPPORTS_HUGE_MEMORY -DJS_CACHEIR_SPEW -DJS_STRUCTURED_SPEW -DEXPORT_JS_API -DMOZ_HAS_MOZGLUE -I/home/delan/code/mozilla-unified/js/src -I/home/delan/code/mozilla-unified/obj-debug-x86_64-pc-linux-gnu/js/src -I/home/delan/code/mozilla-unified/obj-debug-x86_64-pc-linux-gnu/dist/include -I/nix/store/bsslcbcnrfcv6nl0jfha444nxjky7zxa-zlib-1.2.13-dev/include -include /home/delan/code/mozilla-unified/obj-debug-x86_64-pc-linux-gnu/js/src/js-confdefs.h -DMOZILLA_CLIENT -fPIC -fno-math-errno -pthread -pipe -gdwarf-4 -freorder-blocks -O3 -fno-omit-frame-pointer -funwind-tables -Wall -Wempty-body -Wignored-qualifiers -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wduplicated-cond -Wlogical-op '-Wno-error=maybe-uninitialized' '-Wno-error=deprecated-declarations' '-Wno-error=array-bounds' '-Wno-error=free-nonheap-object' -Wno-multistatement-macros '-Wno-error=class-memaccess' -Wformat '-Wformat-overflow=2' '-Werror=implicit-function-declaration' -Wno-psabi -fno-strict-aliasing '-ffp-contract=off' '-ferror-limit=0' /home/delan/code/mozilla-unified/js/src/vtune/ittnotify_static.c -Wno-varargs -Wno-sign-compare -Wno-unknown-pragmas -Wno-stringop-overflow -Wno-stringop-truncation
gcc: error: unrecognized command-line option ‘-ferror-limit=0’

In this case, it was because your compiler was gcc (which supports -fmax-errors but not -ferror-limit), but it should always be clang (which supports both) when working with clangd. If you are a NixOS user, make sure you use the clang derivation, not the gcc derivation, when generating your compilation database:

~/code/mozilla-unified $ nix-shell ~/code/nixpkgs-mozilla/release.nix -A gecko.x86_64-linux.clang --run 'MOZCONFIG=debug.mozconfig ./mach ide vscode'
                                                                                            ^^^^^

Importing changes for local testing

Start by making a source tarball from your local upstream SpiderMonkey checkout. [TODO(@delan) the default xz compression is very slow here, we should add an option upstream to make it faster]

~/code/mozilla-unified $ AUTOMATION=1 DIST=$PWD/../mozjs/mozjs/etc js/src/make-source-package.py

[NixOS users: wrap the command above in nix-shell]

Now update your vendored copy of SpiderMonkey from that tarball. This creates a commit replacing mozjs/mozjs with the unpatched contents of the tarball, leaving the changes made by reapplying our patches in your working directory diff (git diff).

~/code/mozjs $ python3 mozjs/etc/update.py mozjs/etc/mozjs-107.0.0.tar.xz

Then do a (mixed) reset to remove the commit and unstage its changes.

~/code/mozjs $ git reset @~

Your working directory diff (git diff) should now contain (and only contain) the changes you’ve made to your upstream SpiderMonkey checkout. If you see changes to mozjs/mozjs/js/src/old-configure [TODO(@delan) why does this happen?], you may need to undo them:

~/code/mozjs $ git restore -W mozjs/mozjs/js/src/old-configure

Otherwise you might get the build failure below:

~/code/mozjs $ cargo build
[snip]
  configure: error: can not find sources in /home/delan/code/mozjs/mozjs/mozjs/js/src or ..

  --- stderr
  WARNING: The value of LD is not used by this build system.
  ERROR: old-configure failed
  make: *** [/home/delan/code/mozjs/mozjs/makefile.cargo:195: maybe-configure] Error 1
  thread 'main' panicked at 'assertion failed: result.success()', mozjs/build.rs:178:5
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Now you can build the Rust crates against your modified version of SpiderMonkey!

~/code/mozjs $ cargo build

mozjs's People

Contributors

akosthekiss avatar atouchet avatar bors-servo avatar brson avatar cybai avatar delan avatar eijebong avatar emilio avatar fitzgen avatar glennw avatar jdm avatar kmcallister avatar larsbergstrom avatar mbrubeck avatar metajack avatar michaelwu avatar mmatyas avatar mrobinson avatar ms2ger avatar mukilan avatar nox avatar pcwalton avatar redfire75369 avatar sagudev avatar saschanaz avatar simonsapin avatar teapotd avatar tetsuharuohzeki avatar vvuk avatar wusyong avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mozjs's Issues

Math functions fail to link

When I compile d5bebcd with cargo build, it completes successfully and produces libmozjs_sys.rlib in target/debug. But when I run cargo test, I am greeted with a waterfall of linker errors, attached at the end of this issue. Building Servo with ./mach build --release fails due to similar linker errors. If I had to guess, I would say that something is not linking libm properly.

I’ve had problems compiling mozjs for quite some time, but sometimes manually running configure and make with various combinations of flags and environment variables made it work for me. I tried to build 74e202b from September 2015. Hidden between a lot of Clang warnings it sports similar linker errors:

make[5]: warning: -jN forced in submake: disabling jobserver mode.
ar: creating libicudata.a
Executing: clang++ -Qunused-arguments -Qunused-arguments -Wall -Wsign-compare -Wtype-limits -Wno-invalid-offsetof -Wno-c++0x-extensions -Wno-extended-offsetof -Wno-unknown-warning-option -Wno-return-type-c-linkage -fno-rtti -fno-exceptions -fno-math-errno -std=gnu++0x -pthread -pipe -DNDEBUG -DTRIMMED -g -O3 -fomit-frame-pointer -o TestArrayUtils /home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/mfbt/tests/tmplHPk9Q.list -lpthread -Wl,-z,noexecstack -Wl,-z,text -Wl,--build-id -B ../../build/unix/gold -Wl,-rpath-link,../../dist/bin -Wl,-rpath-link,/usr/local/lib -lm -ldl
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/mfbt/tests/tmplHPk9Q.list:
    INPUT("TestArrayUtils.o")
    INPUT("../Compression.o")
    INPUT("../Decimal.o")
    INPUT("../Unified_cpp_mfbt0.o")

../../build/unix/gold/ld: error: hidden symbol 'ceil' is not defined locally
../../build/unix/gold/ld: error: hidden symbol 'ceil' is not defined locally
../../build/unix/gold/ld: error: hidden symbol 'ceil' is not defined locally
../../build/unix/gold/ld: error: hidden symbol 'ceil' is not defined locally
clang-3.8: error: linker command failed with exit code 1 (use -v to see invocation)
make[4]: *** [/home/ruud/repos/mozjs/mozjs/config/rules.mk:729: TestArrayUtils] Error 1
make[4]: *** Waiting for unfinished jobs....
Executing: clang++ -Qunused-arguments -Qunused-arguments -Wall -Wsign-compare -Wtype-limits -Wno-invalid-offsetof -Wno-c++0x-extensions -Wno-extended-offsetof -Wno-unknown-warning-option -Wno-return-type-c-linkage -fno-rtti -fno-exceptions -fno-math-errno -std=gnu++0x -pthread -pipe -DNDEBUG -DTRIMMED -g -O3 -fomit-frame-pointer -o TestBinarySearch /home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/mfbt/tests/tmptkWDKs.list -lpthread -Wl,-z,noexecstack -Wl,-z,text -Wl,--build-id -B ../../build/unix/gold -Wl,-rpath-link,../../dist/bin -Wl,-rpath-link,/usr/local/lib -lm -ldl
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/mfbt/tests/tmptkWDKs.list:
    INPUT("TestBinarySearch.o")
    INPUT("../Compression.o")
    INPUT("../Decimal.o")
    INPUT("../Unified_cpp_mfbt0.o")

../../build/unix/gold/ld: error: hidden symbol 'ceil' is not defined locally
../../build/unix/gold/ld: error: hidden symbol 'ceil' is not defined locally
../../build/unix/gold/ld: error: hidden symbol 'ceil' is not defined locally
../../build/unix/gold/ld: error: hidden symbol 'ceil' is not defined locally
clang-3.8: error: linker command failed with exit code 1 (use -v to see invocation)
make[4]: *** [/home/ruud/repos/mozjs/mozjs/config/rules.mk:729: TestBinarySearch] Error 1

I am using an up-to-date version of Arch Linux on an x64 machine. My environment contains CC=clang, CXX=clang++, CPP=clang -E.

Build output:

[beginning missing due to my limited terminal scrollback]
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:163: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `DayFromYear(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:144: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:145: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:146: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `_ZSt4fmodIdiEN9__gnu_cxx11__promote_2IT_T0_NS0_9__promoteIS2_Xsr3std12__is_integerIS2_EE7__valueEE6__typeENS4_IS3_Xsr3std12__is_integerIS3_EE7__valueEE6__typeEE6__typeES2_S3_':
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o):/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: more undefined references to `fmod' follow
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `HourFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:456: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:456: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `MinFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:465: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:465: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `SecFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:474: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:474: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `msFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:483: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `HourFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:456: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:456: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `MinFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:465: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:465: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `SecFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:474: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:474: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `msFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:483: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `AdjustTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `YearFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:163: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `DayFromYear(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:144: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:145: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:146: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `_ZSt4fmodIdiEN9__gnu_cxx11__promote_2IT_T0_NS0_9__promoteIS2_Xsr3std12__is_integerIS2_EE7__valueEE6__typeENS4_IS3_Xsr3std12__is_integerIS3_EE7__valueEE6__typeEE6__typeES2_S3_':
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `YearFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:163: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `DayFromYear(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:144: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:145: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:146: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `_ZSt4fmodIdiEN9__gnu_cxx11__promote_2IT_T0_NS0_9__promoteIS2_Xsr3std12__is_integerIS2_EE7__valueEE6__typeENS4_IS3_Xsr3std12__is_integerIS3_EE7__valueEE6__typeEE6__typeES2_S3_':
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `Day(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:112: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `HourFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:456: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:456: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `MinFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:465: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:465: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `msFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:483: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `AdjustTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `TimeWithinDay(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:118: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `AdjustTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `AdjustTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `TimeWithinDay(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:118: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `AdjustTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `TimeWithinDay(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:118: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `AdjustTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `YearFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:163: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `DayFromYear(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:144: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:145: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:146: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `_ZSt4fmodIdiEN9__gnu_cxx11__promote_2IT_T0_NS0_9__promoteIS2_Xsr3std12__is_integerIS2_EE7__valueEE6__typeENS4_IS3_Xsr3std12__is_integerIS3_EE7__valueEE6__typeEE6__typeES2_S3_':
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `TimeWithinDay(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:118: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `AdjustTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o):/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: more undefined references to `fmod' follow
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `YearFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:163: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `DayFromYear(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:144: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:145: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:146: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `_ZSt4fmodIdiEN9__gnu_cxx11__promote_2IT_T0_NS0_9__promoteIS2_Xsr3std12__is_integerIS2_EE7__valueEE6__typeENS4_IS3_Xsr3std12__is_integerIS3_EE7__valueEE6__typeEE6__typeES2_S3_':
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `TimeWithinDay(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:118: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `AdjustTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `YearFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:163: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `DayFromYear(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:144: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:145: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:146: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `_ZSt4fmodIdiEN9__gnu_cxx11__promote_2IT_T0_NS0_9__promoteIS2_Xsr3std12__is_integerIS2_EE7__valueEE6__typeENS4_IS3_Xsr3std12__is_integerIS3_EE7__valueEE6__typeEE6__typeES2_S3_':
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `TimeWithinDay(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:118: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `AdjustTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o):/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: more undefined references to `fmod' follow
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `YearFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:163: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `DayFromYear(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:144: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:145: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:146: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `_ZSt4fmodIdiEN9__gnu_cxx11__promote_2IT_T0_NS0_9__promoteIS2_Xsr3std12__is_integerIS2_EE7__valueEE6__typeENS4_IS3_Xsr3std12__is_integerIS3_EE7__valueEE6__typeEE6__typeES2_S3_':
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `TimeWithinDay(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:118: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `AdjustTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `MinFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:465: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:465: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `SecFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:474: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:474: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `msFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:483: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `Day(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:112: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `AdjustTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `MinFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:465: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:465: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `SecFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:474: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:474: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `msFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:483: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `Day(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:112: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `AdjustTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `SecFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:474: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:474: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `msFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:483: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `Day(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:112: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `HourFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:456: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:456: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `AdjustTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `SecFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:474: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:474: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `msFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:483: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `Day(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:112: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `HourFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:456: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:456: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `AdjustTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `msFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:483: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `Day(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:112: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `HourFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:456: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:456: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `MinFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:465: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:465: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `AdjustTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `msFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:483: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `Day(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:112: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `HourFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:456: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:456: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `MinFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:465: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:465: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `AdjustTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `HourFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:456: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:456: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `MinFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:465: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:465: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `SecFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:474: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:474: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `Day(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:112: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `AdjustTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:435: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `HourFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:456: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:456: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `MinFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:465: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:465: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `SecFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:474: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:474: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `Day(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:112: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `Day(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:112: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `YearFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:163: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `DayFromYear(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:144: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:145: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o):/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:146: more undefined references to `floor' follow
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `_ZSt4fmodIdiEN9__gnu_cxx11__promote_2IT_T0_NS0_9__promoteIS2_Xsr3std12__is_integerIS2_EE7__valueEE6__typeENS4_IS3_Xsr3std12__is_integerIS3_EE7__valueEE6__typeEE6__typeES2_S3_':
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `HourFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:456: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:456: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `MinFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:465: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:465: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `SecFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:474: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:474: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `YearFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:163: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `DayFromYear(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:144: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:145: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:146: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `_ZSt4fmodIdiEN9__gnu_cxx11__promote_2IT_T0_NS0_9__promoteIS2_Xsr3std12__is_integerIS2_EE7__valueEE6__typeENS4_IS3_Xsr3std12__is_integerIS3_EE7__valueEE6__typeEE6__typeES2_S3_':
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o):/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/cmath:316: more undefined references to `fmod' follow
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `HourFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:456: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:456: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `MinFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:465: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:465: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `SecFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:474: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:474: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `msFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:483: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `HourFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:456: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:456: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `MinFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:465: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:465: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `SecFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:474: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:474: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src23.o): In function `msFromTime(double)':
/home/ruud/repos/mozjs/mozjs/js/src/jsdate.cpp:483: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src25.o): In function `js::num_parseInt(JSContext*, unsigned int, JS::Value*)':
/home/ruud/repos/mozjs/mozjs/js/src/jsnum.cpp:402: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsnum.cpp:406: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src25.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src25.o): In function `js::ToUint16Slow(JSContext*, JS::Handle<JS::Value>, unsigned short*)':
/home/ruud/repos/mozjs/mozjs/js/src/jsnum.cpp:1705: undefined reference to `floor'
/home/ruud/repos/mozjs/mozjs/js/src/jsnum.cpp:1708: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src25.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src26.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src3.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src35.o): In function `JS::ToInteger(double)':
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/dist/include/js/Conversions.h:154: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src4.o): In function `GCParameter(JSContext*, unsigned int, JS::Value*)':
/home/ruud/repos/mozjs/mozjs/js/src/builtin/TestingFunctions.cpp:431: undefined reference to `floor'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_js_src5.o): In function `js_fmod(double, double)':
/home/ruud/repos/mozjs/mozjs/js/src/jslibmath.h:43: undefined reference to `fmod'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_mfbt0.o): In function `double_conversion::EstimatePower(int)':
/home/ruud/repos/mozjs/mozjs/mfbt/double-conversion/bignum-dtoa.cc:410: undefined reference to `ceil'
/home/ruud/repos/mozjs/target/debug/build/mozjs_sys-efa258e104260c78/out/js/src/libjs_static.a(Unified_cpp_mfbt0.o): In function `double_conversion::PowersOfTenCache::GetCachedPowerForBinaryExponentRange(int, int, double_conversion::DiyFp*, int*)':
/home/ruud/repos/mozjs/mozjs/mfbt/double-conversion/cached-powers.cc:148: undefined reference to `ceil'
/home/ruud/repos/mozjs/mozjs/mfbt/double-conversion/cached-powers.cc:148: undefined reference to `ceil'
/home/ruud/repos/mozjs/mozjs/mfbt/double-conversion/cached-powers.cc:148: undefined reference to `ceil'
/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-8102e29f.rlib(test-8102e29f.0.o): In function `_$LT$$u5b$f64$u5d$$u20$as$u20$test..stats..Stats$GT$::quartiles::h75a0d2d43cfa6bc4':
test.0.rs:(.text._ZN52_$LT$$u5b$f64$u5d$$u20$as$u20$test..stats..Stats$GT$9quartiles17h75a0d2d43cfa6bc4E+0xff): undefined reference to `floor'
test.0.rs:(.text._ZN52_$LT$$u5b$f64$u5d$$u20$as$u20$test..stats..Stats$GT$9quartiles17h75a0d2d43cfa6bc4E+0x17c): undefined reference to `floor'
test.0.rs:(.text._ZN52_$LT$$u5b$f64$u5d$$u20$as$u20$test..stats..Stats$GT$9quartiles17h75a0d2d43cfa6bc4E+0x1ee): undefined reference to `floor'
/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-8102e29f.rlib(test-8102e29f.0.o): In function `test::stats::percentile_of_sorted::h5b7fdb3f01439d0f':
test.0.rs:(.text._ZN4test5stats20percentile_of_sorted17h5b7fdb3f01439d0fE+0x8e): undefined reference to `floor'
/usr/bin/ld generated: undefined reference to `cos'
/usr/bin/ld: /home/ruud/repos/mozjs/target/debug/mozjs_sys-c8985250591619be: hidden symbol `cos' isn't defined
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status

error: aborting due to previous error
error: Could not compile `mozjs_sys`.

Build Issues on Windows 10

When attempting to build mosjs v0.10.1 + mozjs_sys v0.61.13 within the following environment as per documentation:

  • Windows 10 Enterprise v1809 build 17763.379
  • Visual Studio 2019 Community v16.0.3
  • Mozilla Build "latest" version (3.2, installed in default location)
  • 64-bit LLVM v8.0.0 (installed in default location)

I've executed vcvars64.bat and have the following other environment variables set:

MOZTOOLS_PATH=C:\mozilla-build\msys\bin;C:\mozilla-build\bin
LIBCLANG_PATH=C:\Program Files\LLVM\lib
AUTOCONF=C:\mozilla-build\msys\local\bin\autoconf-2.13
set NATIVE_WIN32_PYTHON=C:\mozilla-build\python\python2.7.exe

I'm building via cargo build. Once I was able to make it through the configure process and into what looks like some actual C++ compilation, I'm seeing these errors (directory names have been sanitized):

mozmake[4]: Entering directory 'c:/dev/project/directory/target/debug/build/mozjs_sys-f31e2791c576af9f/out/js/src'
c:/dev/project/directory/target/debug/build/mozjs_sys-f31e2791c576af9f/out/_virtualenv/Scripts/python.exe -m mozbuild.action.cl  cl.exe -FoRegExp.obj -c -DNDEBUG=1 -DTRIMMED=1 -DENABLE_WASM_GLOBAL -DWASM_HUGE_MEMORY -DENABLE_SHARED_ARRAY_BUFFER -DEXPORT_JS_API
 -Ic:/Users/Username/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.13/mozjs/js/src -Ic:/dev/project/directory/target/debug/build/mozjs_sys-f31e2791c576af9f/out/js/src -Ic:/dev/project/directory/target/debug/build/mozjs_sys-f31e2791c576af
9f/out/dist/include -Ic:/dev/project/directory/target/debug/build/mozjs_sys-f31e2791c576af9f/out/dist/include/nspr -MD -FI c:/dev/project/directory/target/debug/build/mozjs_sys-f31e2791c576af9f/out/js/src/js-confdefs.h -DMOZILLA_CLIENT -utf-8 -TP -nologo -wd
4800 -wd4595 -D_CRT_SECURE_NO_WARNINGS -w15038 -wd5026 -wd5027 -Zc:sizedDealloc- -D_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -Gw -wd4244 -wd4267 -wd4251 -we4553 -GR- -Zi -O2 -Oy -wd4805 -wd4661 -we4067 -we4258 -we4275 -wd4146 -wd4577 -wd4312    -Fdgenerated.pdb -FS
c:/Users/Username/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.13/mozjs/js/src/builtin/RegExp.cpp
RegExp.cpp
c:\dev\project\directory\target\debug\build\mozjs_sys-f31e2791c576af9f\out\dist\include\mozilla/Variant.h(246): error C2988: unrecognizable template declaration/definition
c:\dev\project\directory\target\debug\build\mozjs_sys-f31e2791c576af9f\out\dist\include\mozilla/Variant.h(721): note: see reference to class template instantiation 'mozilla::detail::VariantImplementation<bool,0,const char *,JS::UniqueChars>' being compiled
c:\Users\Username\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.13\mozjs\js\src\jsapi.h(5970): note: see reference to class template instantiation 'mozilla::Variant<const char *,JS::UniqueChars>' being compiled
c:\dev\project\directory\target\debug\build\mozjs_sys-f31e2791c576af9f\out\dist\include\mozilla/Variant.h(246): error C2059: syntax error: 'template'
c:\dev\project\directory\target\debug\build\mozjs_sys-f31e2791c576af9f\out\dist\include\mozilla/Variant.h(246): error C3553: decltype expects an expression not a type
c:\dev\project\directory\target\debug\build\mozjs_sys-f31e2791c576af9f\out\dist\include\mozilla/Variant.h(246): error C3646: 'as': unknown override specifier
c:\dev\project\directory\target\debug\build\mozjs_sys-f31e2791c576af9f\out\dist\include\mozilla/Variant.h(246): error C2059: syntax error: '<'
c:\dev\project\directory\target\debug\build\mozjs_sys-f31e2791c576af9f\out\dist\include\mozilla/Variant.h(246): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
c:\Users\Username\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.13\mozjs\js\src\vm/JSScript.h(569): error C2672: 'mozilla::Variant<js::ScriptSource::Missing,js::ScriptSource::Uncompressed,js::ScriptSource::Compressed>::match': no matching ov
erloaded function found
c:\Users\Username\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.13\mozjs\js\src\vm/JSScript.h(569): error C2893: Failed to specialize function template 'unknown-type mozilla::Variant<js::ScriptSource::Missing,js::ScriptSource::Uncompressed,j
s::ScriptSource::Compressed>::match(Matcher &&) const'
c:\Users\Username\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.13\mozjs\js\src\vm/JSScript.h(569): note: With the following template arguments:
c:\Users\Username\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.13\mozjs\js\src\vm/JSScript.h(569): note: 'Matcher=js::ScriptSource::length::LengthMatcher'
c:\Users\Username\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.13\mozjs\js\src\vm/JSCompartment.h(215): error C2672: 'mozilla::Variant<JSObject *,JSString *,js::CrossCompartmentKey::DebuggerAndScript,js::CrossCompartmentKey::DebuggerAndObje
ct>::match': no matching overloaded function found
c:\Users\Username\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.13\mozjs\js\src\vm/JSCompartment.h(215): error C2893: Failed to specialize function template 'unknown-type mozilla::Variant<JSObject *,JSString *,js::CrossCompartmentKey::Debugg
erAndScript,js::CrossCompartmentKey::DebuggerAndObject>::match(Matcher &&) const'
c:\Users\Username\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.13\mozjs\js\src\vm/JSCompartment.h(215): note: With the following template arguments:
c:\Users\Username\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.13\mozjs\js\src\vm/JSCompartment.h(215): note: 'Matcher=js::CrossCompartmentKey::Hasher::HashFunctor'
mozmake[4]: Leaving directory 'c:/dev/project/directory/target/debug/build/mozjs_sys-f31e2791c576af9f/out/js/src'
mozmake[3]: Leaving directory 'c:/dev/project/directory/target/debug/build/mozjs_sys-f31e2791c576af9f/out'
mozmake[2]: Leaving directory 'c:/dev/project/directory/target/debug/build/mozjs_sys-f31e2791c576af9f/out'
mozmake[1]: Leaving directory 'c:/dev/project/directory/target/debug/build/mozjs_sys-f31e2791c576af9f/out'

There are a few tiny issues as well, not sure if these should be separated out:

Firstly, the scripts require python.exe to be availabe within the user's PATH and this dependency isn't really made clear anywhere. Even if NATIVE_WIN32_PYTHON is set, the following line from the configure script:

which python2.7 > /dev/null && exec python2.7 "$TOPSRCDIR/configure.py" "$@" || exec python "$TOPSRCDIR/configure.py" "$@"

tries to just exec python which will break if the python runtime is not available in your path - and will also use whatever Python is in your path OVER the NATIVE_WIN32_PYTHON you might have specified. I don't think this is a major issue in the majority of cases but it's a small unexpected quirk and it'd probably save users a lot of trouble if they were told they needed Python in their path (or if this were fixed to respect the environment-fed Python)

Secondly, the make utility included with the Mozilla build tools and invoked by build.rs doesn't like this particular section of makefile.cargo and will break if it ever reaches this line:

$(message You must either have the Native Win32 python installed in C:/python27, or set NATIVE_WIN32_PYTHON to point to the appropriate python.exe.)

with a kind of unhelpful error message:

makefile.cargo:161: *** recipe commences before first target.  Stop.

This is not the hugest problem as it rarely happens and it looks like the intent is to bomb out anyways, but it'd be nice if the error provided was shown so users could see what was happening.

Please let me know if there are any additional bits of information that would be helpful in diagnosing this!

Tweak the _LIBCPP_INLINE_VISIBILITY patch so we can upstream it

(@asajeffrey added this patch in #149.)

The configure code that sets this env variable in the moz.build stuff checks that the compiler is clang and the OS target is Android, as Alan said in the PR description.

I'm curious if the code could be tweaked to check the standard library rather than the compiler, which would allow us to upstream the patch more easily.

ForOfIterator padding is not always generated by bindgen

As reported by @paulrouget in servo/servo#21773:

error[E0063]: missing field `__bindgen_padding_0` in initializer of `mozjs_sys::root::JS::ForOfIterator`
   --> /Users/paul/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs-0.9.1/src/conversions.rs:604:28
    |
604 |         let mut iterator = ForOfIterator {
    |                            ^^^^^^^^^^^^^ missing `__bindgen_padding_0`
error: aborting due to previous error

Ubuntu 18.04 build fails: check_spidermonkey_style.py

Included mozjs_sys as a dependency in a rust project which caused cargo build to fail on check_spidermonkey_style.py, full log below.

After lots of debugging on my dev system I decided to try to isolate the issue,

  1. Spun up a shiny new Ubuntu 18.04 VPS
  2. Hail Mary the MozJS + Servodependencies
sudo apt update
# mozjs deps
sudo apt install clang-6.0 autoconf2.13
# servo deps
sudo apt install git curl autoconf libx11-dev \
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \
    gperf g++ build-essential cmake virtualenv python-pip \
    libssl-dev libbz2-dev liblzma-dev libosmesa6-dev libxmu6 libxmu-dev \
    libglu1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev libdbus-1-dev \
    libharfbuzz-dev ccache clang libunwind-dev \
    libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev autoconf2.13
  1. Install rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
  1. Create new project named rerpo: cargo new repro --vcs none && cd repro
  2. Add mozjs_sys as dependency: echo 'mozjs_sys = "0.67.1"' >> Cargo.toml
  3. Build w/ backtrace enabled: RUST_BACKTRACE=1 cargo build

Here is the output from the build:

   Compiling mozjs_sys v0.67.1
error: failed to run custom build command for `mozjs_sys v0.67.1`

Caused by:
  process didn't exit successfully: `/home/net/workspace/repro/target/debug/build/mozjs_sys-4eb212082c5f0f61/build-script-build` (exit code: 101)
--- stdout
[[ /home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/mozjs/js/src/configure -ot /home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/mozjs/js/src/configure.in ]] && touch /home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/mozjs/js/src/configure || true
[[ /home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/mozjs/js/src/old-configure -ot /home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/mozjs/js/src/old-configure.in ]] && touch /home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/mozjs/js/src/old-configure || true
! [[ /home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/mozjs/js/src/configure.in -ot /home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/mozjs/js/src/configure ]] && touch /home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/mozjs/js/src/configure || true
! [[ /home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/mozjs/js/src/old-configure.in -ot /home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/mozjs/js/src/old-configure ]] && touch /home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/mozjs/js/src/old-configure || true
if [[ /home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/mozjs/js/src/configure -nt /home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/config.status ]] ; then \
  cd /home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out && \
  PYTHON="python2" MOZ_TOOLS="" \
  CC="gcc" CFLAGS="" \
  CPP="gcc -E" CPPFLAGS="" \
  CXX="g++" CXXFLAGS="" \
  AS="" AR="ar" \
  STLPORT_LIBS="" \
  RUST_TARGET="x86_64-unknown-linux-gnu" RUST_HOST="x86_64-unknown-linux-gnu" \
  /home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/mozjs/js/src/configure --disable-jemalloc --disable-js-shell --disable-tests --disable-shared-js --build-backends=RecursiveMake --enable-posix-nspr-emulation --disable-shared-js || (cat config.log && exit 1) ; \
fi
cd /home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out && make -f Makefile
make[1]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out'
make[2]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out'
make recurse_pre-export
make[3]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out'
/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/_virtualenvs/init/bin/python -m mozbuild.action.process_install_manifest --track install_dist_include.track dist/include _build_manifests/install/dist_include
/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/_virtualenvs/init/bin/python -m mozbuild.action.process_install_manifest --track install_dist_public.track dist/public _build_manifests/install/dist_public
Elapsed: 0.00s; From dist/public: Kept 0 existing; Added/updated 0; Removed 0 files and 0 directories.
/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/_virtualenvs/init/bin/python -m mozbuild.action.process_install_manifest --track install_dist_private.track dist/private _build_manifests/install/dist_private
Elapsed: 0.02s; From dist/include: Kept 382 existing; Added/updated 0; Removed 0 files and 0 directories.
/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/_virtualenvs/init/bin/python -m mozbuild.action.process_install_manifest --track install__tests.track _tests _build_manifests/install/_tests
Elapsed: 0.00s; From dist/private: Kept 0 existing; Added/updated 0; Removed 0 files and 0 directories.
/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/_virtualenvs/init/bin/python -m mozbuild.action.process_install_manifest --track install_dist_bin.track dist/bin _build_manifests/install/dist_bin
Elapsed: 0.04s; From _tests: Kept 356 existing; Added/updated 0; Removed 0 files and 0 directories.
Elapsed: 0.00s; From dist/bin: Kept 1 existing; Added/updated 0; Removed 0 files and 0 directories.
make[3]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out'
make[2]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out'
make[2]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out'
make recurse_export
make[3]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/config'
make[4]: Nothing to be done for 'host'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/config'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/config'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/config'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/mozglue/build'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/mozglue/build'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/memory/build'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/memory/build'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src/build'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src/build'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src/gc'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src/gc'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src/frontend'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src/frontend'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src/jit'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src/jit'
make[3]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out'
make[2]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out'
make[2]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out'
make recurse_compile
make[3]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/mfbt'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/mfbt'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src/editline'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src/editline'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/modules/fdlibm/src'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/modules/fdlibm/src'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/memory/mozalloc'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/memory/mozalloc'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/mozglue/misc'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/mozglue/misc'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/memory/build'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/memory/build'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src/gc'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src/gc'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/config/external/nspr'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/config/external/nspr'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/config/external/zlib'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/config/external/zlib'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src/frontend'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src/frontend'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/config/external/icu/data'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/config/external/icu/data'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src/jit'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src/jit'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/config/external/icu/common'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/config/external/icu/common'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src/wasm'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src/wasm'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/config'
make[4]: Nothing to be done for 'host'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/config'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/mozglue/build'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/mozglue/build'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/config/external/icu/i18n'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/config/external/icu/i18n'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/config/external/icu'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/config/external/icu'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src/build'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src/build'
make[3]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out'
make[2]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out'
make[2]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out'
make recurse_misc
make[3]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out'
make[4]: Entering directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src/build'
js/src/build/spidermonkey_checks.stub
/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/_virtualenvs/init/bin/python -m mozbuild.action.file_generate /home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/mozjs/config/run_spidermonkey_checks.py main spidermonkey_checks .deps/spidermonkey_checks.pp .deps/spidermonkey_checks.stub libjs_static.a /home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/mozjs/config/check_spidermonkey_style.py /home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/mozjs/config/check_macroassembler_style.py /home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/mozjs/config/check_js_opcode.py
--- check_spidermonkey_style.py expected output
+++ check_spidermonkey_style.py actual output
@@ -1,56 +0,0 @@
-js/src/tests/style/BadIncludes.h:3: error:
-    the file includes itself
-
-js/src/tests/style/BadIncludes.h:6: error:
-    "BadIncludes2.h" is included using the wrong path;
-    did you forget a prefix, or is the file not yet committed?
-
-js/src/tests/style/BadIncludes.h:8: error:
-    <tests/style/BadIncludes2.h> should be included using
-    the #include "..." form
-
-js/src/tests/style/BadIncludes.h:10: error:
-    "stdio.h" is included using the wrong path;
-    did you forget a prefix, or is the file not yet committed?
-
-js/src/tests/style/BadIncludes2.h:1: error:
-    vanilla header includes an inline-header file "tests/style/BadIncludes2-inl.h"
-
-js/src/tests/style/BadIncludesOrder-inl.h:5:6: error:
-    "vm/JSScript-inl.h" should be included after "vm/Interpreter-inl.h"
-
-js/src/tests/style/BadIncludesOrder-inl.h:6:7: error:
-    "vm/Interpreter-inl.h" should be included after "js/Value.h"
-
-js/src/tests/style/BadIncludesOrder-inl.h:7:8: error:
-    "js/Value.h" should be included after "ds/LifoAlloc.h"
-
-js/src/tests/style/BadIncludesOrder-inl.h:8:9: error:
-    "ds/LifoAlloc.h" should be included after "jsapi.h"
-
-js/src/tests/style/BadIncludesOrder-inl.h:9:10: error:
-    "jsapi.h" should be included after <stdio.h>
-
-js/src/tests/style/BadIncludesOrder-inl.h:10:11: error:
-    <stdio.h> should be included after "mozilla/HashFunctions.h"
-
-js/src/tests/style/BadIncludesOrder-inl.h:28:29: error:
-    "vm/JSScript.h" should be included after "vm/JSFunction.h"
-
-(multiple files): error:
-    header files form one or more cycles
-
-   tests/style/HeaderCycleA1.h
-   -> tests/style/HeaderCycleA2.h
-      -> tests/style/HeaderCycleA3.h
-         -> tests/style/HeaderCycleA1.h
-
-   tests/style/HeaderCycleB1-inl.h
-   -> tests/style/HeaderCycleB2-inl.h
-      -> tests/style/HeaderCycleB3-inl.h
-         -> tests/style/HeaderCycleB4-inl.h
-            -> tests/style/HeaderCycleB1-inl.h
-            -> tests/style/jsheadercycleB5inlines.h
-               -> tests/style/HeaderCycleB1-inl.h
-      -> tests/style/HeaderCycleB4-inl.h
-
TEST-UNEXPECTED-FAIL | check_spidermonkey_style.py | actual output does not match expected output;  diff is above.
TEST-UNEXPECTED-FAIL | check_spidermonkey_style.py | Hint: If the problem is that you renamed a header, and many #includes are no longer in alphabetical order, commit your work and then try `check_spidermonkey_style.py --fixup`. You need to commit first because --fixup modifies your files in place.
backend.mk:10: recipe for target '.deps/spidermonkey_checks.stub' failed
make[4]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out/js/src/build'
/home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/mozjs/config/recurse.mk:101: recipe for target 'js/src/build/misc' failed
make[3]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out'
/home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/mozjs/config/recurse.mk:32: recipe for target 'misc' failed
make[2]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out'
/home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/mozjs/config/rules.mk:400: recipe for target 'default' failed
make[1]: Leaving directory '/home/net/workspace/repro/target/debug/build/mozjs_sys-bdee6ade2083da50/out'
makefile.cargo:184: recipe for target 'all' failed

--- stderr
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/mozjs/python/mozbuild/mozbuild/action/file_generate.py", line 120, in <module>
    sys.exit(main(sys.argv[1:]))
  File "/home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/mozjs/python/mozbuild/mozbuild/action/file_generate.py", line 71, in main
    ret = module.__dict__[method](output, *args.additional_arguments, **kwargs)
  File "/home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/mozjs/config/run_spidermonkey_checks.py", line 15, in main
    raise Exception(script + " failed")
Exception: /home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/mozjs/config/check_spidermonkey_style.py failed
make[4]: *** [.deps/spidermonkey_checks.stub] Error 1
make[3]: *** [js/src/build/misc] Error 2
make[2]: *** [misc] Error 2
make[1]: *** [default] Error 2
make: *** [all] Error 2
thread 'main' panicked at 'assertion failed: result.success()', /home/net/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.67.1/build.rs:111:5
stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.34/src/backtrace/libunwind.rs:88
   1: backtrace::backtrace::trace_unsynchronized
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.34/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:47
   3: std::sys_common::backtrace::print
             at src/libstd/sys_common/backtrace.rs:36
   4: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:200
   5: std::panicking::default_hook
             at src/libstd/panicking.rs:214
   6: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:477
   7: std::panicking::begin_panic
             at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libstd/panicking.rs:411
   8: build_script_build::build_jsapi
             at ./build.rs:111
   9: build_script_build::main
             at ./build.rs:16
  10: std::rt::lang_start::{{closure}}
             at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libstd/rt.rs:64
  11: std::rt::lang_start_internal::{{closure}}
             at src/libstd/rt.rs:49
  12: std::panicking::try::do_call
             at src/libstd/panicking.rs:296
  13: __rust_maybe_catch_panic
             at src/libpanic_unwind/lib.rs:80
  14: std::panicking::try
             at src/libstd/panicking.rs:275
  15: std::panic::catch_unwind
             at src/libstd/panic.rs:394
  16: std::rt::lang_start_internal
             at src/libstd/rt.rs:48
  17: std::rt::lang_start
             at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libstd/rt.rs:64
  18: main
  19: __libc_start_main
  20: _start
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

couldn't understand kern.osversion `14.0.0'

Building on Yosemite errors out:

Failed to run custom build command for `mozjs-sys v0.0.0 (https://github.com/servo/mozjs#47cd6a4e)`
Process didn't exit successfully: `make -f makefile.cargo` (status=2)
--- stdout
cd /Users/tvi/temp/servo/target/native/mozjs-sys-c58a7d09513f4944 && /Users/tvi/.cargo/git/checkouts/mozjs-2284529523a8d467/master/js/src/configure --enable-gczeal
creating cache ./config.cache
checking host system type... x86_64-apple-darwin14.0.0
checking target system type... x86_64-apple-darwin14.0.0
checking build system type... x86_64-apple-darwin14.0.0
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking for gcc-4.2... /usr/local/bin/gcc-4.2
checking for g++-4.2... /usr/local/bin/g++-4.2
checking for perl5... no
checking for perl... /usr/bin/perl
checking for gcc... /usr/local/bin/gcc-4.2
checking whether the C compiler (/usr/local/bin/gcc-4.2  ) works... yes
checking whether the C compiler (/usr/local/bin/gcc-4.2  ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether /usr/local/bin/gcc-4.2 accepts -g... no
checking for c++... /usr/local/bin/g++-4.2
checking whether the C++ compiler (/usr/local/bin/g++-4.2  ) works... yes
checking whether the C++ compiler (/usr/local/bin/g++-4.2  ) is a cross-compiler... no
checking whether we are using GNU C++... yes
checking whether /usr/local/bin/g++-4.2 accepts -g... no
checking for ranlib... ranlib
checking for as... /usr/bin/as
checking for ar... ar
checking for ld... ld
checking for strip... strip
checking for windres... no
checking how to run the C preprocessor... /lib/cpp
checking how to run the C++ preprocessor... /lib/cpp
checking for sb-conf... no
checking for ve... no
checking for a BSD compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking for minimum required perl version >= 5.006... 5.018002
checking for full perl installation... yes
checking for python2.7... /usr/bin/python2.7
checking for doxygen... :
checking for autoconf... /usr/local/bin/autoconf
checking for makedepend... /opt/X11/bin/makedepend
checking for xargs... /usr/bin/xargs
checking for pbbuild... no
checking for xcodebuild... /usr/bin/xcodebuild
checking for sdp... /usr/bin/sdp
checking for gmake... no
checking for make... /usr/bin/make
checking for X... no
checking that static assertion macros used in autoconf tests work... yes
checking whether the C compiler supports -Werror=return-type... yes
checking whether the C compiler supports -Wtype-limits... no
checking whether the C compiler supports -Wempty-body... yes
checking whether the C compiler supports -Wno-overlength-strings... yes
checking whether the C compiler supports -Wno-variadic-macros... yes
checking whether the C++ compiler supports -Werror=return-type... yes
checking whether the C++ compiler supports -Wtype-limits... no
checking whether the C++ compiler supports -Wempty-body... yes
checking whether the C++ compiler supports -Wno-unused-local-typedefs... no
checking whether the C++ compiler supports -Wno-overlength-strings... yes
checking whether the C++ compiler supports -Wno-invalid-offsetof... yes
checking whether the C++ compiler supports -Wno-variadic-macros... yes
checking whether the C++ compiler supports -Wno-unused-but-set-variable... no
checking whether the C++ compiler supports -Wno-unused-variable... yes
checking whether the C++ compiler supports -Wno-uninitialized... no
checking whether the C++ compiler supports -Wno-undefined-inline... no
checking whether the C++ compiler supports -Wno-parentheses-equality... no
checking whether the C++ compiler supports -Wno-unused-function... yes
checking whether the C++ compiler supports -Wno-null-conversion... no
checking whether the C++ compiler supports -Wno-unused-private-field... no
checking whether ld has archive extraction flags... no
checking for 64-bit OS... yes
checking for Python version >= 2.5 but not 3.x... yes
checking for custom <stdint.h> implementation... none specified
checking for -framework ExceptionHandling... yes
checking for -dead_strip option to ld... yes
checking for ANSI C header files... no
checking for working const... yes
checking for mode_t... no
checking for off_t... no
checking for pid_t... no
checking for size_t... no
checking for __stdcall... no
checking for ssize_t... no
checking for st_blksize in struct stat... no
checking for siginfo_t... no
checking for the size of void*... 8
checking for the alignment of void*...
--- stderr
couldn't understand kern.osversion `14.0.0'
configure: error: No alignment found for void*
make: *** [all] Error 1

Avoid full rebuilds with nightly updates?

Hi,

When updating nightlies, it triggers a full rebuild of mozjs-sys, which takes 20+ mins on my machine.

It would be nice if it checked for the presence of the .lib files in the output directory, and only build the c++ libraries if not found.

Building on Ubuntu 14.04.3 errors out

Failed to run custom build command for `mozjs_sys v0.0.0 (https://github.com/servo/mozjs#10796a16)`
Process didn't exit successfully: `/home/brian/git/servo/servo/target/debug/build/mozjs_sys-e411d274df144795/build-script-build` (exit code: 101)
--- stdout
cd /home/brian/git/servo/servo/target/debug/build/mozjs_sys-e411d274df144795/out && \
        MOZ_TOOLS="" CC="gcc" CPP="gcc -E" CXX="g++" AR="ar" \
        /home/brian/git/servo/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure --enable-gczeal --disable-jemalloc
creating cache ./config.cache
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking build system type... x86_64-unknown-linux-gnu
checking for gawk... no
checking for mawk... mawk
checking for perl5... no
checking for perl... /usr/bin/perl
checking for gcc... gcc
checking whether the C compiler (gcc  ) works... yes
checking whether the C compiler (gcc  ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking for c++... g++
checking whether the C++ compiler (g++  ) works... yes
checking whether the C++ compiler (g++  ) is a cross-compiler... no
checking whether we are using GNU C++... yes
checking whether g++ accepts -g... yes
checking for ranlib... ranlib
checking for as... /usr/bin/as
checking for ar... ar
checking for ld... ld
checking for strip... strip
checking for windres... no
checking how to run the C preprocessor... gcc -E
checking how to run the C++ preprocessor... g++ -E
checking for sb-conf... no
checking for ve... no
checking for a BSD compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking for tar archiver... checking for gnutar... no
checking for gtar... no
checking for tar... tar
tar
checking for minimum required perl version >= 5.006... 5.018002
checking for full perl installation... yes
checking for python2.7... /home/brian/git/servo/servo/python/_virtualenv/bin/python2.7
Creating Python environment
Using real prefix '/usr'
  Cannot find file /home/brian/git/servo/servo/python/_virtualenv/lib/python2.7/config (bad symlink)
  Cannot find file /home/brian/git/servo/servo/python/_virtualenv/lib/python2.7/lib-dynload (bad symlink)
New python executable in /home/brian/git/servo/servo/target/debug/build/mozjs_sys-e411d274df144795/out/_virtualenv/bin/python2.7
Also creating executable in /home/brian/git/servo/servo/target/debug/build/mozjs_sys-e411d274df144795/out/_virtualenv/bin/python
Installing setuptools, pip...
  Complete output from command /home/brian/git/serv...ualenv/bin/python2.7 -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip:
  Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/brian/git/servo/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/python/virtualenv/virtualenv_support/pip-6.0.6-py2.py3-none-any.whl/pip/__init__.py", line 13, in <module>
  File "/home/brian/git/servo/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/python/virtualenv/virtualenv_support/pip-6.0.6-py2.py3-none-any.whl/pip/utils/__init__.py", line 22, in <module>
  File "/home/brian/git/servo/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/python/virtualenv/virtualenv_support/pip-6.0.6-py2.py3-none-any.whl/pip/_vendor/__init__.py", line 81, in load_module
ImportError: No module named 'pip._vendor.pkg_resources'
----------------------------------------
...Installing setuptools, pip...done.
Traceback (most recent call last):
  File "/home/brian/git/servo/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/python/virtualenv/virtualenv.py", line 2352, in <module>
    main()
  File "/home/brian/git/servo/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/python/virtualenv/virtualenv.py", line 825, in main
    symlink=options.symlink)
  File "/home/brian/git/servo/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/python/virtualenv/virtualenv.py", line 993, in create_environment
    install_wheel(to_install, py_executable, search_dirs)
  File "/home/brian/git/servo/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/python/virtualenv/virtualenv.py", line 961, in install_wheel
    'PIP_NO_INDEX': '1'
  File "/home/brian/git/servo/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/python/virtualenv/virtualenv.py", line 903, in call_subprocess
    % (cmd_desc, proc.returncode))
OSError: Command /home/brian/git/serv...ualenv/bin/python2.7 -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip failed with error code 1
------ config.log ------
configure:3049: checking whether g++ accepts -g
configure:3098: gcc -c   conftest.c 1>&5
configure:3115: gcc -c   conftest.c 1>&5
configure: In function 'main':
configure:3111:1: warning: incompatible implicit declaration of built-in function 'exit' [enabled by default]
configure:3134: checking for ranlib
configure:3166: checking for as
configure:3220: checking for ar
configure:3255: checking for ld
configure:3290: checking for strip
configure:3325: checking for windres
configure:3941: checking how to run the C preprocessor
configure:4021: checking how to run the C++ preprocessor
configure:4039: g++ -E  conftest.C >/dev/null 2>conftest.out
configure:4161: checking for sb-conf
configure:4161: checking for ve
configure:4223: checking for a BSD compatible install
configure:4276: checking whether ln -s works
configure:4298: checking for tar archiver
configure:4304: checking for gnutar
configure:4304: checking for gtar
configure:4304: checking for tar
configure:4341: checking for minimum required perl version >= 5.006
configure:4351: checking for full perl installation
configure:4369: checking for python2.7

--- stderr
makefile.cargo:58: Extraneous text after `else' directive
/home/brian/git/servo/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure: 1: /home/brian/git/servo/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure: /home/brian/git/servo/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/../../python/mozbuild/mozbuild/milestone.py: Permission denied
/home/brian/git/servo/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure: 1: /home/brian/git/servo/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure: /home/brian/git/servo/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/../../python/mozbuild/mozbuild/milestone.py: Permission denied
/home/brian/git/servo/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure: 1: /home/brian/git/servo/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure: /home/brian/git/servo/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/../../python/mozbuild/mozbuild/milestone.py: Permission denied
Traceback (most recent call last):
  File "/home/brian/git/servo/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/python/mozbuild/mozbuild/virtualenv.py", line 475, in <module>
    manager.ensure()
  File "/home/brian/git/servo/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/python/mozbuild/mozbuild/virtualenv.py", line 128, in ensure
    return self.build()
  File "/home/brian/git/servo/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/python/mozbuild/mozbuild/virtualenv.py", line 371, in build
    self.create()
  File "/home/brian/git/servo/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/python/mozbuild/mozbuild/virtualenv.py", line 147, in create
    raise Exception('Error creating virtualenv.')
Exception: Error creating virtualenv.
make: *** [all] Error 1
thread '<main>' panicked at 'assertion failed: result.success()', /home/brian/git/servo/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/build.rs:17

[Warning] Could not generate notification! Optional Python module 'dbus' is not installed.
Build completed in 1064.30s

Fresh build fails 'cstddef' file not found

Following the README.md, I just cloned servo, installed rustup, and ran ./mach bootstrap.

However, the build seems to fail for me.

$ ./mach bootstrap
Dependencies were already installed!

   Compiling mozjs_sys v0.61.6
error: failed to run custom build command for `mozjs_sys v0.61.6`
process didn't exit successfully: `/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-5486491c32fb60a6/build-script-build` (exit code: 101)
--- stdout
[[ /usr/local/google/home/richardfung/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/configure -ot /usr/local/google/home/richardfung/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/configure.in ]] && touch /usr/local/google/home/richardfung/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/configure || true
[[ /usr/local/google/home/richardfung/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/old-configure -ot /usr/local/google/home/richardfung/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/old-configure.in ]] && touch /usr/local/google/home/richardfung/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/old-configure || true
! [[ /usr/local/google/home/richardfung/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/configure.in -ot /usr/local/google/home/richardfung/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/configure ]] && touch /usr/local/google/home/richardfung/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/configure || true
! [[ /usr/local/google/home/richardfung/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/old-configure.in -ot /usr/local/google/home/richardfung/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/old-configure ]] && touch /usr/local/google/home/richardfung/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/old-configure || true
if [[ /usr/local/google/home/richardfung/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/configure -nt /usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/config.status ]] ; then \
  cd /usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out && \
  PYTHON="python2" MOZ_TOOLS="" \
  CC="gcc" CFLAGS="" \
  CPP="gcc -E" CPPFLAGS="" \
  CXX="g++" CXXFLAGS="" \
  AS="" AR="ar" \
  STLPORT_LIBS="" \
  /usr/local/google/home/richardfung/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/configure --disable-jemalloc --disable-js-shell --disable-tests --build-backends=RecursiveMake --disable-shared-js || (cat config.log && exit 1) ; \
fi
cd /usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out && make -f Makefile
make[1]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
make[2]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
make recurse_pre-export
make[3]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/_virtualenv/bin/python -m mozbuild.action.process_install_manifest --track install_dist_include.track dist/include _build_manifests/install/dist_include
/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/_virtualenv/bin/python -m mozbuild.action.process_install_manifest --track install_dist_public.track dist/public _build_manifests/install/dist_public
/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/_virtualenv/bin/python -m mozbuild.action.process_install_manifest --track install_dist_private.track dist/private _build_manifests/install/dist_private
/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/_virtualenv/bin/python -m mozbuild.action.process_install_manifest --track install__tests.track _tests _build_manifests/install/_tests
/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/_virtualenv/bin/python -m mozbuild.action.process_install_manifest --track install_dist_bin.track dist/bin _build_manifests/install/dist_bin
Elapsed: 0.00s; From dist/private: Kept 0 existing; Added/updated 0; Removed 0 files and 0 directories.
Elapsed: 0.00s; From dist/public: Kept 0 existing; Added/updated 0; Removed 0 files and 0 directories.
Elapsed: 0.00s; From dist/bin: Kept 1 existing; Added/updated 0; Removed 0 files and 0 directories.
Elapsed: 0.02s; From dist/include: Kept 344 existing; Added/updated 0; Removed 0 files and 0 directories.
Elapsed: 0.04s; From _tests: Kept 312 existing; Added/updated 0; Removed 0 files and 0 directories.
make[3]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
make[2]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
make[2]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
make recurse_export
make[3]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/config'
make[4]: Nothing to be done for 'host'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/config'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/config'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/config'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/memory/build'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/memory/build'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/mozglue/build'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/mozglue/build'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/js/src'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/js/src'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/js/src/build'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/js/src/build'
make[3]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
make[2]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
make[2]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
make recurse_compile
make[3]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/js/src/editline'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/js/src/editline'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/config/external/nspr'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/config/external/nspr'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/config/external/icu/data'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/config/external/icu/data'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/config/external/zlib'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/config/external/zlib'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/memory/build'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/memory/build'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/memory/mozalloc'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/memory/mozalloc'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/mfbt'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/mfbt'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/config'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/mozglue/misc'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/mozglue/misc'
make[4]: Nothing to be done for 'host'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/config'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/mozglue/build'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/mozglue/build'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/modules/fdlibm/src'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/modules/fdlibm/src'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/config/external/icu/common'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/config/external/icu/common'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/js/src'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/js/src'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/config/external/icu/i18n'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/config/external/icu/i18n'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/config/external/icu'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/config/external/icu'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/js/src/build'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/js/src/build'
make[3]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
make[2]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
make[2]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
make recurse_misc
make[3]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
make[3]: Nothing to be done for 'recurse_misc'.
make[3]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
make[2]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
make[2]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
make recurse_libs
make[3]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/config'
make[4]: Nothing to be done for 'libs'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/config'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/js/src'
make[4]: Nothing to be done for 'libs'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/js/src'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/js/src/build'
make[4]: Nothing to be done for 'libs'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/js/src/build'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/memory/build'
make[4]: Nothing to be done for 'libs'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/memory/build'
make[4]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/mozglue/build'
make[4]: Nothing to be done for 'libs'.
make[4]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/mozglue/build'
make[3]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
make[2]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
make[2]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
make recurse_tools
make[3]: Entering directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
make[3]: Nothing to be done for 'recurse_tools'.
make[3]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
make[2]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
make[1]: Leaving directory '/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out'
cargo:rustc-link-search=native=/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/js/src/build
cargo:rustc-link-lib=static=js_static
cargo:rustc-link-search=native=/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/mozglue/build
cargo:rustc-link-lib=static=mozglue
cargo:rustc-link-lib=stdc++
cargo:outdir=/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
DEBUG = Some("true")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-I" "/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/dist/include" "-I" "/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/js/src" "-Wall" "-Wextra" "-include" "/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/js/src/js-confdefs.h" "-DRUST_BINDGEN" "-DSTATIC_JS_API" "-std=gnu++14" "-fno-sized-deallocation" "-Wno-unused-parameter" "-Wno-invalid-offsetof" "-o" "/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/src/jsglue.o" "-c" "src/jsglue.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
AR_x86_64-unknown-linux-gnu = None
AR_x86_64_unknown_linux_gnu = None
HOST_AR = None
AR = None
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
running: "ar" "crs" "/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/libjsglue.a" "/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/src/jsglue.o"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
cargo:rustc-link-lib=static=jsglue
cargo:rustc-link-search=native=/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXSTDLIB_x86_64-unknown-linux-gnu = None
CXXSTDLIB_x86_64_unknown_linux_gnu = None
HOST_CXXSTDLIB = None
CXXSTDLIB = None
TARGET = Some("x86_64-unknown-linux-gnu")
cargo:rustc-link-lib=stdc++
Generting bindings ["./src/jsglue.hpp", "--rust-target", "1.25", "--rustified-enum", ".*", "--no-derive-default", "--enable-cxx-namespaces", "--generate", "functions,types,vars", "--ignore-methods", "--", "-I", "/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/dist/include", "-I", "/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/js/src", "-x", "c++", "-DRUST_BINDGEN", "-DSTATIC_JS_API", "-std=gnu++14", "-fno-sized-deallocation", "-Wno-unused-parameter", "-Wno-invalid-offsetof", "-include", "/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/js/src/js-confdefs.h", "--rustfmt-configuration-file", "rustfmt.toml"] clang version 4.0.1-10 (tags/RELEASE_401/final).

--- stderr
backend.mk:2160: warning: overriding recipe for target '../dist/system_wrappers/pixman.h'
backend.mk:1278: warning: ignoring old recipe for target '../dist/system_wrappers/pixman.h'
backend.mk:2160: warning: overriding recipe for target '../dist/system_wrappers/pixman.h'
backend.mk:1278: warning: ignoring old recipe for target '../dist/system_wrappers/pixman.h'
backend.mk:2160: warning: overriding recipe for target '../dist/system_wrappers/pixman.h'
backend.mk:1278: warning: ignoring old recipe for target '../dist/system_wrappers/pixman.h'
backend.mk:2160: warning: overriding recipe for target '../dist/system_wrappers/pixman.h'
backend.mk:1278: warning: ignoring old recipe for target '../dist/system_wrappers/pixman.h'
/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/dist/include/mozilla/Compiler.h:49:12: fatal error: 'cstddef' file not found
/usr/local/google/home/richardfung/dev/servo/target/debug/build/mozjs_sys-2daeb5256ca7ab76/out/dist/include/mozilla/Compiler.h:49:12: fatal error: 'cstddef' file not found, err: true
thread 'main' panicked at 'Should generate JSAPI bindings OK: ()', src/libcore/result.rs:997:5
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

Build FAILED in 0:00:04

Problem with clang build

I've been all day trying to build servo but I'm blocked from building it and apparently it all lead me here, I read other issues (like #73 as an example) but I couldn't find a solution. (EDIT: Thinking about it, maybe was a bad idea to make a new issue, and probably should go and explain this issue in #73, if that would be the best idea tell me and I close this issue and move to the other one, sorry!)

I'm using WSL in Windows so it's like I'm doing this on a Ubuntu machine, I followed the instructions in the readme, and when I try to build I get this error:

totiimon@DESKTOP-4UMK442:/mnt/d/code/mozjs$ CC=clang CXX=g++ cargo build
   Compiling mozjs_sys v0.67.0 (/mnt/d/code/mozjs)
error: failed to run custom build command for `mozjs_sys v0.67.0 (/mnt/d/code/mozjs)`

Caused by:
  process didn't exit successfully: `/mnt/d/code/mozjs/target/debug/build/mozjs_sys-4120a17e10f4f3fc/build-script-build` (exit code: 101)
--- stdout
[[ /mnt/d/code/mozjs/mozjs/js/src/configure -ot /mnt/d/code/mozjs/mozjs/js/src/configure.in ]] && touch /mnt/d/code/mozjs/mozjs/js/src/configure || true
[[ /mnt/d/code/mozjs/mozjs/js/src/old-configure -ot /mnt/d/code/mozjs/mozjs/js/src/old-configure.in ]] && touch /mnt/d/code/mozjs/mozjs/js/src/old-configure || true
! [[ /mnt/d/code/mozjs/mozjs/js/src/configure.in -ot /mnt/d/code/mozjs/mozjs/js/src/configure ]] && touch /mnt/d/code/mozjs/mozjs/js/src/configure || true
! [[ /mnt/d/code/mozjs/mozjs/js/src/old-configure.in -ot /mnt/d/code/mozjs/mozjs/js/src/old-configure ]] && touch /mnt/d/code/mozjs/mozjs/js/src/old-configure || true
if [[ /mnt/d/code/mozjs/mozjs/js/src/configure -nt /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/config.status ]] ; then \
  cd /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out && \
  PYTHON="python2" MOZ_TOOLS="" \
  CC="clang" CFLAGS="" \
  CPP="clang -E" CPPFLAGS="" \
  CXX="g++" CXXFLAGS="" \
  AS="" AR="ar" \
  STLPORT_LIBS="" \
  /mnt/d/code/mozjs/mozjs/js/src/configure --disable-jemalloc --disable-js-shell --disable-tests --disable-shared-js --build-backends=RecursiveMake --enable-posix-nspr-emulation --disable-shared-js || (cat config.log && exit 1) ; \
fi
cd /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out && make -f Makefile
make[1]: Entering directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out'
make[2]: Entering directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out'
make recurse_pre-export
make[3]: Entering directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out'
/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/_virtualenvs/init/bin/python -m mozbuild.action.process_install_manifest --track install_dist_include.track dist/include _build_manifests/install/dist_include
/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/_virtualenvs/init/bin/python -m mozbuild.action.process_install_manifest --track install_dist_public.track dist/public _build_manifests/install/dist_public
/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/_virtualenvs/init/bin/python -m mozbuild.action.process_install_manifest --track install_dist_private.track dist/private _build_manifests/install/dist_private
/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/_virtualenvs/init/bin/python -m mozbuild.action.process_install_manifest --track install__tests.track _tests _build_manifests/install/_tests
/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/_virtualenvs/init/bin/python -m mozbuild.action.process_install_manifest --track install_dist_bin.track dist/bin _build_manifests/install/dist_bin
Elapsed: 0.00s; From dist/private: Kept 0 existing; Added/updated 0; Removed 0 files and 0 directories.
Elapsed: 0.00s; From dist/public: Kept 0 existing; Added/updated 0; Removed 0 files and 0 directories.
Elapsed: 0.00s; From dist/bin: Kept 1 existing; Added/updated 0; Removed 0 files and 0 directories.
Elapsed: 0.21s; From dist/include: Kept 382 existing; Added/updated 0; Removed 0 files and 0 directories.
Elapsed: 0.38s; From _tests: Kept 356 existing; Added/updated 0; Removed 0 files and 0 directories.
make[3]: Leaving directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out'
make[2]: Leaving directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out'
make[2]: Entering directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out'
make recurse_export
make[3]: Entering directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out'
make[4]: Entering directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/config'
make[4]: Nothing to be done for 'host'.
make[4]: Leaving directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/config'
make[4]: Entering directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/config'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/config'
make[4]: Entering directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/memory/build'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/memory/build'
make[4]: Entering directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/mozglue/build'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/mozglue/build'
make[4]: Entering directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src'
make[4]: Entering directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/build'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/build'
make[4]: Entering directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/frontend'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/frontend'
make[4]: Entering directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/gc'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/gc'
make[4]: Entering directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/jit'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/jit'
make[3]: Leaving directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out'
make[2]: Leaving directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out'
make[2]: Entering directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out'
make recurse_compile
make[3]: Entering directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out'
make[4]: Entering directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/mfbt'
/usr/bin/gcc -std=gnu99 -o lz4.o -c  -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers -include /mnt/d/code/mozjs/mozjs/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DIMPL_MFBT -DLZ4LIB_VISIBILITY= -I/mnt/d/code/mozjs/mozjs/mfbt -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/mfbt -I/mnt/d/code/mozjs/mozjs/mfbt/double-conversion -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include -fPIC -include /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/js-confdefs.h -DMOZILLA_CLIENT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -ffunction-sections -fdata-sections -fno-math-errno -pthread -fPIC -pipe -g -freorder-blocks -O3 -fomit-frame-pointer -funwind-tables -Wall -Wempty-body -Wignored-qualifiers -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wduplicated-cond -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -Wformat-security -Wformat-overflow=2  -MD -MP -MF .deps/lz4.o.pp   /mnt/d/code/mozjs/mozjs/mfbt/lz4.c
make[4]: Entering directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/editline'
/usr/bin/gcc -std=gnu99 -o Unified_c_js_src_editline0.o -c  -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers -include /mnt/d/code/mozjs/mozjs/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DANSI_ARROWS -DHAVE_TCGETATTR -DHIDE -DUSE_DIRENT -DSYS_UNIX -DHAVE_STDLIB -DUNIQUE_HISTORY -I/mnt/d/code/mozjs/mozjs/js/src/editline -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/editline -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include -fPIC -include /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/js-confdefs.h -DMOZILLA_CLIENT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -ffunction-sections -fdata-sections -fno-math-errno -pthread -fPIC -pipe -g -freorder-blocks -O3 -fomit-frame-pointer -funwind-tables -Wall -Wempty-body -Wignored-qualifiers -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wduplicated-cond -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -Wformat-security -Wformat-overflow=2  -MD -MP -MF .deps/Unified_c_js_src_editline0.o.pp   /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/editline/Unified_c_js_src_editline0.c
make[4]: Entering directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src'
/usr/bin/g++ -o RegExp.o -c  -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers -include /mnt/d/code/mozjs/mozjs/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DWASM_HUGE_MEMORY -DEXPORT_JS_API -I/mnt/d/code/mozjs/mozjs/js/src -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include -fPIC -DMOZILLA_CLIENT -include /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/js-confdefs.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++1z-compat -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -Wformat-security -Wformat-overflow=2 -Wno-noexcept-type -fno-sized-deallocation -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -O3 -fomit-frame-pointer -funwind-tables -fno-strict-aliasing -Werror=format -Wno-shadow  -MD -MP -MF .deps/RegExp.o.pp   /mnt/d/code/mozjs/mozjs/js/src/builtin/RegExp.cpp
make[4]: Entering directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/modules/fdlibm/src'
/usr/bin/g++ -o e_acos.o -c  -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers -include /mnt/d/code/mozjs/mozjs/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DEXPORT_JS_API -I/mnt/d/code/mozjs/mozjs/modules/fdlibm/src -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/modules/fdlibm/src -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include -fPIC -DMOZILLA_CLIENT -include /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/js-confdefs.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++1z-compat -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -Wformat-security -Wformat-overflow=2 -Wno-noexcept-type -fno-sized-deallocation -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -O3 -fomit-frame-pointer -funwind-tables -Wno-parentheses -Wno-sign-compare  -MD -MP -MF .deps/e_acos.o.pp   /mnt/d/code/mozjs/mozjs/modules/fdlibm/src/e_acos.cpp
make[4]: Entering directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/memory/mozalloc'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/memory/mozalloc'
/usr/bin/g++ -o e_acosh.o -c  -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers -include /mnt/d/code/mozjs/mozjs/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DEXPORT_JS_API -I/mnt/d/code/mozjs/mozjs/modules/fdlibm/src -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/modules/fdlibm/src -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include -fPIC -DMOZILLA_CLIENT -include /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/js-confdefs.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++1z-compat -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -Wformat-security -Wformat-overflow=2 -Wno-noexcept-type -fno-sized-deallocation -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -O3 -fomit-frame-pointer -funwind-tables -Wno-parentheses -Wno-sign-compare  -MD -MP -MF .deps/e_acosh.o.pp   /mnt/d/code/mozjs/mozjs/modules/fdlibm/src/e_acosh.cpp
make[4]: Entering directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/memory/build'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/memory/build'
/usr/bin/g++ -o e_asin.o -c  -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers -include /mnt/d/code/mozjs/mozjs/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DEXPORT_JS_API -I/mnt/d/code/mozjs/mozjs/modules/fdlibm/src -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/modules/fdlibm/src -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include -fPIC -DMOZILLA_CLIENT -include /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/js-confdefs.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++1z-compat -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -Wformat-security -Wformat-overflow=2 -Wno-noexcept-type -fno-sized-deallocation -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -O3 -fomit-frame-pointer -funwind-tables -Wno-parentheses -Wno-sign-compare  -MD -MP -MF .deps/e_asin.o.pp   /mnt/d/code/mozjs/mozjs/modules/fdlibm/src/e_asin.cpp
make[4]: Entering directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/mozglue/misc'
/usr/bin/g++ -o ConditionVariable_posix.o -c  -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers -include /mnt/d/code/mozjs/mozjs/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DIMPL_MFBT -DMOZ_HAS_MOZGLUE -I/mnt/d/code/mozjs/mozjs/mozglue/misc -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/mozglue/misc -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include -fPIC -DMOZILLA_CLIENT -include /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/js-confdefs.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++1z-compat -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -Wformat-security -Wformat-overflow=2 -Wno-noexcept-type -fno-sized-deallocation -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -O3 -fomit-frame-pointer -funwind-tables  -MD -MP -MF .deps/ConditionVariable_posix.o.pp   /mnt/d/code/mozjs/mozjs/mozglue/misc/ConditionVariable_posix.cpp
make[4]: Entering directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/gc'
/usr/bin/g++ -o StoreBuffer.o -c  -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers -include /mnt/d/code/mozjs/mozjs/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DWASM_HUGE_MEMORY -DEXPORT_JS_API -I/mnt/d/code/mozjs/mozjs/js/src/gc -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/gc -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src -I/mnt/d/code/mozjs/mozjs/js/src -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include -fPIC -DMOZILLA_CLIENT -include /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/js-confdefs.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++1z-compat -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -Wformat-security -Wformat-overflow=2 -Wno-noexcept-type -fno-sized-deallocation -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -O3 -fomit-frame-pointer -funwind-tables -fno-strict-aliasing -Werror=format -Wno-shadow  -MD -MP -MF .deps/StoreBuffer.o.pp   /mnt/d/code/mozjs/mozjs/js/src/gc/StoreBuffer.cpp
/mnt/d/code/mozjs/mozjs/config/rules.mk:741: recipe for target 'lz4.o' failed
make[4]: Leaving directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/mfbt'
/mnt/d/code/mozjs/mozjs/config/recurse.mk:74: recipe for target 'mfbt/target' failed
/usr/bin/g++ -o Unified_cpp_js_src_gc0.o -c  -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers -include /mnt/d/code/mozjs/mozjs/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DWASM_HUGE_MEMORY -DEXPORT_JS_API -I/mnt/d/code/mozjs/mozjs/js/src/gc -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/gc -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src -I/mnt/d/code/mozjs/mozjs/js/src -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include -fPIC -DMOZILLA_CLIENT -include /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/js-confdefs.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++1z-compat -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -Wformat-security -Wformat-overflow=2 -Wno-noexcept-type -fno-sized-deallocation -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -O3 -fomit-frame-pointer -funwind-tables -fno-strict-aliasing -Werror=format -Wno-shadow  -MD -MP -MF .deps/Unified_cpp_js_src_gc0.o.pp   /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/gc/Unified_cpp_js_src_gc0.cpp
/mnt/d/code/mozjs/mozjs/config/rules.mk:741: recipe for target 'Unified_c_js_src_editline0.o' failed
make[4]: Leaving directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/editline'
/mnt/d/code/mozjs/mozjs/config/recurse.mk:74: recipe for target 'js/src/editline/target' failed
/usr/bin/g++ -o Unified_cpp_js_src_gc1.o -c  -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers -include /mnt/d/code/mozjs/mozjs/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DWASM_HUGE_MEMORY -DEXPORT_JS_API -I/mnt/d/code/mozjs/mozjs/js/src/gc -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/gc -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src -I/mnt/d/code/mozjs/mozjs/js/src -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include -fPIC -DMOZILLA_CLIENT -include /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/js-confdefs.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++1z-compat -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -Wformat-security -Wformat-overflow=2 -Wno-noexcept-type -fno-sized-deallocation -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -O3 -fomit-frame-pointer -funwind-tables -fno-strict-aliasing -Werror=format -Wno-shadow  -MD -MP -MF .deps/Unified_cpp_js_src_gc1.o.pp   /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/gc/Unified_cpp_js_src_gc1.cpp
/mnt/d/code/mozjs/mozjs/config/rules.mk:805: recipe for target 'e_acos.o' failed
/usr/bin/g++ -o Unified_cpp_js_src_gc2.o -c  -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers -include /mnt/d/code/mozjs/mozjs/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DWASM_HUGE_MEMORY -DEXPORT_JS_API -I/mnt/d/code/mozjs/mozjs/js/src/gc -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/gc -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src -I/mnt/d/code/mozjs/mozjs/js/src -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include -fPIC -DMOZILLA_CLIENT -include /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/js-confdefs.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++1z-compat -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -Wformat-security -Wformat-overflow=2 -Wno-noexcept-type -fno-sized-deallocation -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -O3 -fomit-frame-pointer -funwind-tables -fno-strict-aliasing -Werror=format -Wno-shadow  -MD -MP -MF .deps/Unified_cpp_js_src_gc2.o.pp   /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/gc/Unified_cpp_js_src_gc2.cpp
/mnt/d/code/mozjs/mozjs/config/rules.mk:805: recipe for target 'e_acosh.o' failed
/mnt/d/code/mozjs/mozjs/config/rules.mk:805: recipe for target 'e_asin.o' failed
make[4]: Leaving directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/modules/fdlibm/src'
/usr/bin/g++ -o jsmath.o -c  -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers -include /mnt/d/code/mozjs/mozjs/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DWASM_HUGE_MEMORY -DEXPORT_JS_API -I/mnt/d/code/mozjs/mozjs/js/src -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include -fPIC -DMOZILLA_CLIENT -include /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/js-confdefs.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++1z-compat -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -Wformat-security -Wformat-overflow=2 -Wno-noexcept-type -fno-sized-deallocation -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -O3 -fomit-frame-pointer -funwind-tables -fno-strict-aliasing -Werror=format -Wno-shadow  -MD -MP -MF .deps/jsmath.o.pp   /mnt/d/code/mozjs/mozjs/js/src/jsmath.cpp
/mnt/d/code/mozjs/mozjs/config/recurse.mk:74: recipe for target 'modules/fdlibm/src/target' failed
/usr/bin/g++ -o Mutex_posix.o -c  -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers -include /mnt/d/code/mozjs/mozjs/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DIMPL_MFBT -DMOZ_HAS_MOZGLUE -I/mnt/d/code/mozjs/mozjs/mozglue/misc -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/mozglue/misc -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include -fPIC -DMOZILLA_CLIENT -include /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/js-confdefs.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++1z-compat -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -Wformat-security -Wformat-overflow=2 -Wno-noexcept-type -fno-sized-deallocation -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -O3 -fomit-frame-pointer -funwind-tables  -MD -MP -MF .deps/Mutex_posix.o.pp   /mnt/d/code/mozjs/mozjs/mozglue/misc/Mutex_posix.cpp
/mnt/d/code/mozjs/mozjs/config/rules.mk:805: recipe for target 'RegExp.o' failed
/usr/bin/g++ -o Printf.o -c  -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers -include /mnt/d/code/mozjs/mozjs/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DIMPL_MFBT -DMOZ_HAS_MOZGLUE -I/mnt/d/code/mozjs/mozjs/mozglue/misc -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/mozglue/misc -I/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include -fPIC -DMOZILLA_CLIENT -include /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/js-confdefs.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++1z-compat -Wduplicated-cond -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -Wformat-security -Wformat-overflow=2 -Wno-noexcept-type -fno-sized-deallocation -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -O3 -fomit-frame-pointer -funwind-tables  -MD -MP -MF .deps/Printf.o.pp   /mnt/d/code/mozjs/mozjs/mozglue/misc/Printf.cpp
/mnt/d/code/mozjs/mozjs/config/rules.mk:805: recipe for target 'ConditionVariable_posix.o' failed
/mnt/d/code/mozjs/mozjs/config/rules.mk:805: recipe for target 'StoreBuffer.o' failed
/mnt/d/code/mozjs/mozjs/config/rules.mk:805: recipe for target 'Unified_cpp_js_src_gc0.o' failed
/mnt/d/code/mozjs/mozjs/config/rules.mk:805: recipe for target 'Unified_cpp_js_src_gc1.o' failed
/mnt/d/code/mozjs/mozjs/config/rules.mk:805: recipe for target 'jsmath.o' failed
make[4]: Leaving directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src'
/mnt/d/code/mozjs/mozjs/config/recurse.mk:74: recipe for target 'js/src/target' failed
/mnt/d/code/mozjs/mozjs/config/rules.mk:805: recipe for target 'Mutex_posix.o' failed
/mnt/d/code/mozjs/mozjs/config/rules.mk:805: recipe for target 'Unified_cpp_js_src_gc2.o' failed
make[4]: Leaving directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/gc'
/mnt/d/code/mozjs/mozjs/config/recurse.mk:74: recipe for target 'js/src/gc/target' failed
/mnt/d/code/mozjs/mozjs/config/rules.mk:805: recipe for target 'Printf.o' failed
make[4]: Leaving directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/mozglue/misc'
/mnt/d/code/mozjs/mozjs/config/recurse.mk:74: recipe for target 'mozglue/misc/target' failed
make[3]: Leaving directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out'
/mnt/d/code/mozjs/mozjs/config/recurse.mk:32: recipe for target 'compile' failed
make[2]: Leaving directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out'
/mnt/d/code/mozjs/mozjs/config/rules.mk:400: recipe for target 'default' failed
make[1]: Leaving directory '/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out'
makefile.cargo:178: recipe for target 'all' failed

--- stderr
In file included from /mnt/d/code/mozjs/mozjs/mfbt/lz4.c:168:0:
/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers/string.h:3:15: fatal error: String.h: No such file or directory
 #include_next <String.h>
               ^~~~~~~~~~
compilation terminated.
make[4]: *** [lz4.o] Error 1
make[3]: *** [mfbt/target] Error 2
make[3]: *** Waiting for unfinished jobs....
In file included from /mnt/d/code/mozjs/mozjs/js/src/editline/editline.h:35:0,
                 from /mnt/d/code/mozjs/mozjs/js/src/editline/editline.c:30,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/editline/Unified_c_js_src_editline0.c:2:
/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers/string.h:3:15: fatal error: String.h: No such file or directory
 #include_next <String.h>
               ^~~~~~~~~~
compilation terminated.
make[4]: *** [Unified_c_js_src_editline0.o] Error 1
make[3]: *** [js/src/editline/target] Error 2
In file included from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/mozilla/EndianUtils.h:76:0,
                 from /mnt/d/code/mozjs/mozjs/modules/fdlibm/src/math_private.h:26,
                 from /mnt/d/code/mozjs/mozjs/modules/fdlibm/src/e_acos.cpp:43:
/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers/string.h:3:15: fatal error: String.h: No such file or directory
 #include_next <String.h>
               ^~~~~~~~~~
compilation terminated.
make[4]: *** [e_acos.o] Error 1
make[4]: *** Waiting for unfinished jobs....
In file included from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/mozilla/EndianUtils.h:76:0,
                 from /mnt/d/code/mozjs/mozjs/modules/fdlibm/src/math_private.h:26,
                 from /mnt/d/code/mozjs/mozjs/modules/fdlibm/src/e_acosh.cpp:34:
/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers/string.h:3:15: fatal error: String.h: No such file or directory
 #include_next <String.h>
               ^~~~~~~~~~
compilation terminated.
In file included from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/mozilla/EndianUtils.h:76:0,
                 from /mnt/d/code/mozjs/mozjs/modules/fdlibm/src/math_private.h:26,
                 from /mnt/d/code/mozjs/mozjs/modules/fdlibm/src/e_asin.cpp:49:
/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers/string.h:3:15: fatal error: String.h: No such file or directory
 #include_next <String.h>
               ^~~~~~~~~~
compilation terminated.
make[4]: *** [e_acosh.o] Error 1
make[4]: *** [e_asin.o] Error 1
make[3]: *** [modules/fdlibm/src/target] Error 2
In file included from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/mozilla/Poison.h:19:0,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/mozilla/Maybe.h:18,
                 from /mnt/d/code/mozjs/mozjs/js/src/vm/TaggedProto.h:10,
                 from /mnt/d/code/mozjs/mozjs/js/src/gc/Marking.h:16,
                 from /mnt/d/code/mozjs/mozjs/js/src/vm/RegExpObject.h:16,
                 from /mnt/d/code/mozjs/mozjs/js/src/builtin/RegExp.h:10,
                 from /mnt/d/code/mozjs/mozjs/js/src/builtin/RegExp.cpp:7:
/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers/string.h:3:15: fatal error: String.h: No such file or directory
 #include_next <String.h>
               ^~~~~~~~~~
compilation terminated.
make[4]: *** [RegExp.o] Error 1
make[4]: *** Waiting for unfinished jobs....
In file included from /usr/include/c++/7/cstring:42:0,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers/cstring:3,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/mozilla/Casting.h:15,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/mozilla/Utf8.h:15,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/mozilla/RecordReplay.h:16,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/mozilla/Atomics.h:22,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/mozilla/PlatformMutex.h:10,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/mozilla/PlatformConditionVariable.h:12,
                 from /mnt/d/code/mozjs/mozjs/mozglue/misc/ConditionVariable_posix.cpp:16:
/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers/string.h:3:15: fatal error: String.h: No such file or directory
 #include_next <String.h>
               ^~~~~~~~~~
compilation terminated.
make[4]: *** [ConditionVariable_posix.o] Error 1
make[4]: *** Waiting for unfinished jobs....
In file included from /mnt/d/code/mozjs/mozjs/js/src/ds/BitArray.h:13:0,
                 from /mnt/d/code/mozjs/mozjs/js/src/gc/StoreBuffer.h:16,
                 from /mnt/d/code/mozjs/mozjs/js/src/gc/StoreBuffer-inl.h:10,
                 from /mnt/d/code/mozjs/mozjs/js/src/gc/StoreBuffer.cpp:7:
/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers/string.h:3:15: fatal error: String.h: No such file or directory
 #include_next <String.h>
               ^~~~~~~~~~
compilation terminated.
In file included from /usr/include/c++/7/cstring:42:0,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers/cstring:3,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/mozilla/Casting.h:15,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/mozilla/Utf8.h:15,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/mozilla/RecordReplay.h:16,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/mozilla/Atomics.h:22,
                 from /mnt/d/code/mozjs/mozjs/js/src/vm/Runtime.h:10,
                 from /mnt/d/code/mozjs/mozjs/js/src/gc/GCLock.h:14,
                 from /mnt/d/code/mozjs/mozjs/js/src/gc/Allocator.h:10,
                 from /mnt/d/code/mozjs/mozjs/js/src/gc/Allocator.cpp:7,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/gc/Unified_cpp_js_src_gc0.cpp:2:
/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers/string.h:3:15: fatal error: String.h: No such file or directory
 #include_next <String.h>
               ^~~~~~~~~~
compilation terminated.
make[4]: *** [StoreBuffer.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[4]: *** [Unified_cpp_js_src_gc0.o] Error 1
In file included from /usr/include/c++/7/cstring:42:0,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers/cstring:3,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/mozilla/Casting.h:15,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/mozilla/Utf8.h:15,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/mozilla/RecordReplay.h:16,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/mozilla/Atomics.h:22,
                 from /mnt/d/code/mozjs/mozjs/js/src/gc/Memory.cpp:9,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/gc/Unified_cpp_js_src_gc1.cpp:2:
/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers/string.h:3:15: fatal error: String.h: No such file or directory
 #include_next <String.h>
               ^~~~~~~~~~
compilation terminated.
make[4]: *** [Unified_cpp_js_src_gc1.o] Error 1
In file included from /usr/include/c++/7/cstring:42:0,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers/cstring:3,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/mozilla/Casting.h:15,
                 from /mnt/d/code/mozjs/mozjs/js/src/jstypes.h:25,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/js/CallNonGenericMethod.h:10,
                 from /mnt/d/code/mozjs/mozjs/js/src/NamespaceImports.h:15,
                 from /mnt/d/code/mozjs/mozjs/js/src/jsmath.h:14,
                 from /mnt/d/code/mozjs/mozjs/js/src/jsmath.cpp:11:
/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers/string.h:3:15: fatal error: String.h: No such file or directory
 #include_next <String.h>
               ^~~~~~~~~~
compilation terminated.
In file included from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/mozilla/Poison.h:19:0,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/mozilla/Maybe.h:18,
                 from /mnt/d/code/mozjs/mozjs/mozglue/misc/Mutex_posix.cpp:8:
/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers/string.h:3:15: fatal error: String.h: No such file or directory
 #include_next <String.h>
               ^~~~~~~~~~
compilation terminated.
make[4]: *** [jsmath.o] Error 1
make[3]: *** [js/src/target] Error 2
make[4]: *** [Mutex_posix.o] Error 1
In file included from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/mozilla/Poison.h:19:0,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/mozilla/Maybe.h:18,
                 from /mnt/d/code/mozjs/mozjs/js/src/gc/GCInternals.h:15,
                 from /mnt/d/code/mozjs/mozjs/js/src/gc/Verifier.cpp:15,
                 from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/js/src/gc/Unified_cpp_js_src_gc2.cpp:2:
/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers/string.h:3:15: fatal error: String.h: No such file or directory
 #include_next <String.h>
               ^~~~~~~~~~
compilation terminated.
make[4]: *** [Unified_cpp_js_src_gc2.o] Error 1
make[3]: *** [js/src/gc/target] Error 2
In file included from /mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/include/mozilla/Printf.h:63:0,
                 from /mnt/d/code/mozjs/mozjs/mozglue/misc/Printf.cpp:15:
/mnt/d/code/mozjs/target/debug/build/mozjs_sys-ef8b4ab19ddd2c2c/out/dist/system_wrappers/string.h:3:15: fatal error: String.h: No such file or directory
 #include_next <String.h>
               ^~~~~~~~~~
compilation terminated.
make[4]: *** [Printf.o] Error 1
make[3]: *** [mozglue/misc/target] Error 2
make[2]: *** [compile] Error 2
make[1]: *** [default] Error 2
make: *** [all] Error 2
thread 'main' panicked at 'assertion failed: result.success()', build.rs:111:5
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

I tried changing CC CPP and CXX variables to use clang and g++ but I had no luck. Tried reading the error slowly but it's kind of hard because I'm not that used to program in C++, in fact the building system is something that kinda get me off to want to learn more about it.

I had just another error when trying to build Servo with another library, but I'm thinking it's related to this one. I don't know if giving too much attention to the String.h header issues because sometimes it throw me this and while trying other thing for other post I got a similar error.

Cannot build in Arch Linux

Decided to just drop this here as building SpiderMonkey + generating bindings goes quite deep for me to debug without prior knowledge, thus hoping that someone has pointers how to get started.

warning: In file included from /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/jspubtd.h:17,
warning:                  from /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/jsapi.h:26,
warning:                  from /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/jsfriendapi.h:16,
warning:                  from src/jsglue.hpp:19,
warning:                  from src/jsglue.cpp:7:
warning: /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/mozilla/PodOperations.h: In instantiation of ‘void mozilla::PodZero(T*) [with T = JS::TabSizes]’:
warning: /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/js/MemoryMetrics.h:40:39:   required from here
warning: /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/mozilla/PodOperations.h:32:9: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct JS::TabSizes’; use assignment or value-initialization instead [-Wclass-memaccess]
warning:    memset(aT, 0, sizeof(T));
warning:    ~~~~~~^~~~~~~~~~~~~~~~~~
warning: In file included from src/jsglue.hpp:22,
warning:                  from src/jsglue.cpp:7:
warning: /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/js/MemoryMetrics.h:31:8: note: ‘struct JS::TabSizes’ declared here
warning:  struct TabSizes
warning:         ^~~~~~~~
warning: In file included from /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/jspubtd.h:17,
warning:                  from /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/jsapi.h:26,
warning:                  from /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/jsfriendapi.h:16,
warning:                  from src/jsglue.hpp:19,
warning:                  from src/jsglue.cpp:7:
warning: /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/mozilla/PodOperations.h: In instantiation of ‘void mozilla::PodZero(T*) [with T = JS::ServoSizes]’:
warning: /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/js/MemoryMetrics.h:71:41:   required from here
warning: /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/mozilla/PodOperations.h:32:9: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct JS::ServoSizes’; use assignment or value-initialization instead [-Wclass-memaccess]
warning:    memset(aT, 0, sizeof(T));
warning:    ~~~~~~^~~~~~~~~~~~~~~~~~
warning: In file included from src/jsglue.hpp:22,
warning:                  from src/jsglue.cpp:7:
warning: /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/js/MemoryMetrics.h:59:8: note: ‘struct JS::ServoSizes’ declared here
warning:  struct ServoSizes
warning:         ^~~~~~~~~~
     Running `rustc --crate-name mozjs_sys src/lib.rs --crate-type lib --emit=dep-info,link -C debuginfo=2 -C metadata=87f0fefae1673555 -C extra-filename=-87f0fefae1673555 --out-dir /home/orva/src/mozjs_sys/target/debug/deps -C incremental=/home/orva/src/mozjs_sys/target/debug/incremental -L dependency=/home/orva/src/mozjs_sys/target/debug/deps --extern libc=/home/orva/src/mozjs_sys/target/debug/deps/liblibc-b9bc701d27ba70bc.rlib --extern libz_sys=/home/orva/src/mozjs_sys/target/debug/deps/liblibz_sys-6eb116a0692fc4ac.rlib -L native=/home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/js/src -L native=/home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out -l static=js_static -l stdc++ -l static=jsglue -l stdc++ -L native=/usr/lib`
error: incorrect close delimiter: `]`
     --> /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/jsapi.rs:10942:43
      |
10942 |             # [ derive ( Copy ) ]; 1usize ] , _bindgen_union_align : u64 , }            # [ test ]
      |                                           ^
      |
note: unclosed delimiter
     --> /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/jsapi.rs:10685:24
      |
10685 |         pub mod shadow {
      |                        ^

error: unexpected close delimiter: `}`
     --> /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/jsapi.rs:12126:5
      |
12126 |     }
      |     ^

error: aborting due to 2 previous errors

The following warnings were emitted during compilation:

warning: In file included from /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/jspubtd.h:17,
warning:                  from /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/jsapi.h:26,
warning:                  from /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/jsfriendapi.h:16,
warning:                  from src/jsglue.hpp:19,
warning:                  from src/jsglue.cpp:7:
warning: /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/mozilla/PodOperations.h: In instantiation of ‘void mozilla::PodZero(T*) [with T = JS::TabSizes]’:
warning: /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/js/MemoryMetrics.h:40:39:   required from here
warning: /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/mozilla/PodOperations.h:32:9: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct JS::TabSizes’; use assignment or value-initialization instead [-Wclass-memaccess]
warning:    memset(aT, 0, sizeof(T));
warning:    ~~~~~~^~~~~~~~~~~~~~~~~~
warning: In file included from src/jsglue.hpp:22,
warning:                  from src/jsglue.cpp:7:
warning: /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/js/MemoryMetrics.h:31:8: note: ‘struct JS::TabSizes’ declared here
warning:  struct TabSizes
warning:         ^~~~~~~~
warning: In file included from /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/jspubtd.h:17,
warning:                  from /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/jsapi.h:26,
warning:                  from /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/jsfriendapi.h:16,
warning:                  from src/jsglue.hpp:19,
warning:                  from src/jsglue.cpp:7:
warning: /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/mozilla/PodOperations.h: In instantiation of ‘void mozilla::PodZero(T*) [with T = JS::ServoSizes]’:
warning: /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/js/MemoryMetrics.h:71:41:   required from here
warning: /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/mozilla/PodOperations.h:32:9: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct JS::ServoSizes’; use assignment or value-initialization instead [-Wclass-memaccess]
warning:    memset(aT, 0, sizeof(T));
warning:    ~~~~~~^~~~~~~~~~~~~~~~~~
warning: In file included from src/jsglue.hpp:22,
warning:                  from src/jsglue.cpp:7:
warning: /home/orva/src/mozjs_sys/target/debug/build/mozjs_sys-c681b92be05de950/out/dist/include/js/MemoryMetrics.h:59:8: note: ‘struct JS::ServoSizes’ declared here
warning:  struct ServoSizes
warning:         ^~~~~~~~~~

error: Could not compile `mozjs_sys`.

Build fails on Arch Linux unless PYTHON env. variable is set

cargo build bails out with

--- stderr
  File "/home/marcin/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.50.0/mozjs/js/src/../../configure.py", line 83
    os.chmod('config.status', 0755)
                                 ^
SyntaxError: invalid token
cat: config.log: No such file or directory
make: *** [makefile.cargo:140: maybe-configure] Error 1
thread 'main' panicked at 'assertion failed: result.success()', /home/marcin/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.50.0/build.rs:53
note: Run with `RUST_BACKTRACE=1` for a backtrace.

No such error occurs if the invocation is PYTHON=python2 cargo build.

Mozjs doesn't build on the latest version of OSX

configure:2149: /usr/bin/g++ -std=gnu++14 -o conftest    conftest.C  1>&5
clang: warning: libstdc++ is deprecated; move to libc++ with a minimum deployment target of OS X 10.9 [-Wdeprecated]
ld: library not found for -lstdc++
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Using an older version of Xcode doesn't solve the problem.

Add-missing-MOZ_ANDROID_CPU_ARCH-call-in-SpiderMonke.patch no longer applies on latest m-c

On m-c commit a70835fe9f55, the patch no longer applies.

$ python3 ./etc/update.py ~/scratch/mozjs-51.0a1.0.tar.bz2
python3 ./etc/update.py ~/scratch/mozjs-51.0a1.0.tar.bz2
Extracting tarball.
Applying patches.
  Applying patch: /Users/fitzgen/src/mozjs/etc/patches/Add-WinNSPR.cpp-implementation.patch.
  Applying patch: /Users/fitzgen/src/mozjs/etc/patches/Add-missing-MOZ_ANDROID_CPU_ARCH-call-in-SpiderMonke.patch.
error: patch failed: mozjs/js/src/old-configure.in:584
error: mozjs/js/src/old-configure.in: patch does not apply
Traceback (most recent call last):
  File "./etc/update.py", line 70, in <module>
    main(sys.argv[1:])
  File "./etc/update.py", line 65, in main
    apply_patches()
  File "./etc/update.py", line 47, in apply_patches
    subprocess.check_call(["git", "am", p], stdout=subprocess.DEVNULL)
  File "/usr/local/Cellar/python3/3.5.2_1/Frameworks/Python.framework/Versions/3.5/lib/python3.5/subprocess.py", line 581, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['git', 'am', '/Users/fitzgen/src/mozjs/etc/patches/Add-missing-MOZ_ANDROID_CPU_ARCH-call-in-SpiderMonke.patch']' returned non-zero exit status 128

mozjs cannot build under RLS

Apparently, SpiderMonkey's build system itself invokes Cargo, except that it's the RLS executable and it fails to extract Cargo's version for obvious reasons.

mozjs should be able to build with system-installed MSYS2 on Windows

I've been trying to find someone to talk to about the moz-buildtools using extremely outdated MSYS1. MSYS1 won't work (at all) on machines with ALSR enabled, while MSYS2 can work with some PE flags (which I've also asked MSYS2 people to use by default since it's worked reasonably ever since MSYS2 came out).

This hard dependency on moz_buildtools and MSYS1 (among other things) makes building on Windows next to impossible if you have an existing environment setup, especially if you have ALSR on.

Since nobody has responded on mozilla IRC channels about this in months, let's just cut to the chase and let mozjs work with a system installation of MSYS2!

Like with servo, there doesn't seem to be any particular reason to explicitly depend on MOZ_BUILDTOOLS, a special python setup, and a special environment if the user can reasonably provide a working one themselves. All it does is make it more difficult for third parties (like myself) to get a working servo embedding.

All it would take is a little cooperation with users able to provide their own (full) build system and command-line environment cleanly. This isn't that hard on Windows, although Microsoft doesn't provide effective documentation on this, even though they provide resources like vcpkg.

python 2.7 only?

hi all,

does this work only with python 2.7?
I only want to run mozwebidlcodegen

thanks,

ImportError: No module named urllib3

I'm setting up a new Windows computer, and I'm running into this issue:

error: failed to run custom build command for `mozjs_sys v0.61.12`
process didn't exit successfully: `C:\Users\paul.DESKTOP-525R3BF\git\servo\target\debug\build\mozjs_sys-96ffa37950db32a9\build-script-build` (exit code: 101)
--- stdout
[[ /c/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs/js/src/configure -ot /c/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs/js/src/configure.in ]] && touch /c/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs/js/src/configure || true
[[ /c/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs/js/src/old-configure -ot /c/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs/js/src/old-configure.in ]] && touch /c/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs/js/src/old-configure || true
! [[ /c/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs/js/src/configure.in -ot /c/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs/js/src/configure ]] && touch /c/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs/js/src/configure || true
! [[ /c/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs/js/src/old-configure.in -ot /c/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs/js/src/old-configure ]] && touch /c/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs/js/src/old-configure || true
if [[ /c/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs/js/src/configure -nt C:/Users/paul.DESKTOP-525R3BF/git/servo/target/debug/build/mozjs_sys-b084d8c01a39aee7/out/config.status ]] ; then \
  cd C:/Users/paul.DESKTOP-525R3BF/git/servo/target/debug/build/mozjs_sys-b084d8c01a39aee7/out && \
  PYTHON="C:\Python27\python.exe" MOZ_TOOLS="/" \
  CC="clang-cl.exe" CFLAGS="" \
  CPP="" CPPFLAGS="" \
  CXX="clang-cl.exe" CXXFLAGS="" \
  AS="" AR="" \
  STLPORT_LIBS="" \
  /c/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs/js/src/configure --disable-jemalloc --disable-js-shell --disable-tests --disable-shared-js --build-backends=RecursiveMake --target=x86_64-pc-mingw32 --host=x86_64-pc-mingw32 --without-pthreads || (cat config.log && exit 1) ; \
fi
Creating Python environment
New python executable in c:\Users\paul.DESKTOP-525R3BF\git\servo\target\debug\build\mozjs_sys-b084d8c01a39aee7\out\_virtualenv\Scripts\python.exe
Installing setuptools, pip, wheel...
  Complete output from command c:\Users\paul.DESKTO...v\Scripts\python.exe - setuptools pip wheel:
  Traceback (most recent call last):
  File "<stdin>", line 7, in <module>
  File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\third_party\python\virtualenv\virtualenv_support\pip-8.1.2-py2.py3-none-any.whl\pip\__init__.py", line 16, in <module>
  File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\third_party\python\virtualenv\virtualenv_support\pip-8.1.2-py2.py3-none-any.whl\pip\vcs\mercurial.py", line 9, in <module>
  File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\third_party\python\virtualenv\virtualenv_support\pip-8.1.2-py2.py3-none-any.whl\pip\download.py", line 39, in <module>
  File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\third_party\python\virtualenv\virtualenv_support\pip-8.1.2-py2.py3-none-any.whl\pip\_vendor\requests\__init__.py", line 61, in <module>
  File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\third_party\python\virtualenv\virtualenv_support\pip-8.1.2-py2.py3-none-any.whl\pip\_vendor\requests\packages\__init__.py", line 29, in <module>
ImportError: No module named urllib3
----------------------------------------
...Installing setuptools, pip, wheel...done.
Traceback (most recent call last):
  File "c:/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs\third_party\python\virtualenv\virtualenv.py", line 2325, in <module>
    main()
  File "c:/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs\third_party\python\virtualenv\virtualenv.py", line 711, in main
    symlink=options.symlink and hasattr(os, 'symlink')) # MOZ: Make sure we don't use symlink when we don't have it
  File "c:/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs\third_party\python\virtualenv\virtualenv.py", line 944, in create_environment
    download=download,
  File "c:/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs\third_party\python\virtualenv\virtualenv.py", line 900, in install_wheel
    call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=SCRIPT)
  File "c:/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs\third_party\python\virtualenv\virtualenv.py", line 795, in call_subprocess
    % (cmd_desc, proc.returncode))
OSError: Command c:\Users\paul.DESKTO...v\Scripts\python.exe - setuptools pip wheel failed with error code 1
INFO: Creating Python environment
INFO: New python executable in c:\Users\paul.DESKTOP-525R3BF\git\servo\target\debug\build\mozjs_sys-b084d8c01a39aee7\out\_virtualenv\Scripts\python.exe
INFO: Installing setuptools, pip, wheel...
INFO:   Complete output from command c:\Users\paul.DESKTO...v\Scripts\python.exe - setuptools pip wheel:
INFO:   Traceback (most recent call last):
INFO:   File "<stdin>", line 7, in <module>
INFO:   File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\third_party\python\virtualenv\virtualenv_support\pip-8.1.2-py2.py3-none-any.whl\pip\__init__.py", line 16, in <module>
INFO:   File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\third_party\python\virtualenv\virtualenv_support\pip-8.1.2-py2.py3-none-any.whl\pip\vcs\mercurial.py", line 9, in <module>
INFO:   File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\third_party\python\virtualenv\virtualenv_support\pip-8.1.2-py2.py3-none-any.whl\pip\download.py", line 39, in <module>
INFO:   File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\third_party\python\virtualenv\virtualenv_support\pip-8.1.2-py2.py3-none-any.whl\pip\_vendor\requests\__init__.py", line 61, in <module>
INFO:   File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\third_party\python\virtualenv\virtualenv_support\pip-8.1.2-py2.py3-none-any.whl\pip\_vendor\requests\packages\__init__.py", line 29, in <module>
INFO: ImportError: No module named urllib3
INFO: ----------------------------------------
INFO: ...Installing setuptools, pip, wheel...done.
INFO: Traceback (most recent call last):
INFO:   File "c:/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs\third_party\python\virtualenv\virtualenv.py", line 2325, in <module>
INFO:     main()
INFO:   File "c:/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs\third_party\python\virtualenv\virtualenv.py", line 711, in main
INFO:     symlink=options.symlink and hasattr(os, 'symlink')) # MOZ: Make sure we don't use symlink when we don't have it
INFO:   File "c:/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs\third_party\python\virtualenv\virtualenv.py", line 944, in create_environment
INFO:     download=download,
INFO:   File "c:/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs\third_party\python\virtualenv\virtualenv.py", line 900, in install_wheel
INFO:     call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=SCRIPT)
INFO:   File "c:/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs\third_party\python\virtualenv\virtualenv.py", line 795, in call_subprocess
INFO:     % (cmd_desc, proc.returncode))
INFO: OSError: Command c:\Users\paul.DESKTO...v\Scripts\python.exe - setuptools pip wheel failed with error code 1

--- stderr
which: python2.7: unknown command
Traceback (most recent call last):
  File "c:/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs/js/src/../../configure.py", line 127, in <module>
    sys.exit(main(sys.argv))
  File "c:/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs/js/src/../../configure.py", line 29, in main
    sandbox.run(os.path.join(os.path.dirname(__file__), 'moz.configure'))
  File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\python\mozbuild\mozbuild\configure\__init__.py", line 399, in run
    self.include_file(path)
  File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\python\mozbuild\mozbuild\configure\__init__.py", line 390, in include_file
    exec_(code, self)
  File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\python\mozbuild\mozbuild\util.py", line 59, in exec_
    exec(object, globals, locals)
  File "c:/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs/moz.configure", line 7, in <module>
    include('build/moz.configure/init.configure')
  File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\python\mozbuild\mozbuild\configure\__init__.py", line 694, in include_impl
    self.include_file(what)
  File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\python\mozbuild\mozbuild\configure\__init__.py", line 390, in include_file
    exec_(code, self)
  File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\python\mozbuild\mozbuild\util.py", line 59, in exec_
    exec(object, globals, locals)
  File "c:/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs/build/moz.configure/init.configure", line 207, in <module>
    @imports('distutils.sysconfig')
  File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\python\mozbuild\mozbuild\configure\__init__.py", line 677, in decorator
    depends = DependsFunction(self, func, dependencies, when=when)
  File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\python\mozbuild\mozbuild\configure\__init__.py", line 96, in __init__
    sandbox._value_for(self)
  File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\python\mozbuild\mozbuild\configure\__init__.py", line 474, in _value_for
    return self._value_for_depends(obj, need_help_dependency)
  File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\python\mozbuild\mozbuild\util.py", line 944, in method_call
    cache[args] = self.func(instance, *args)
  File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\python\mozbuild\mozbuild\configure\__init__.py", line 483, in _value_for_depends
    return obj.result(need_help_dependency)
  File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\python\mozbuild\mozbuild\util.py", line 944, in method_call
    cache[args] = self.func(instance, *args)
  File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\python\mozbuild\mozbuild\configure\__init__.py", line 123, in result
    return self._func(*resolved_args)
  File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\python\mozbuild\mozbuild\configure\__init__.py", line 1003, in wrapped
    return new_func(*args, **kwargs)
  File "c:/Users/paul.DESKTOP-525R3BF/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.12/mozjs/build/moz.configure/init.configure", line 255, in virtualenv_python
    manager.build(python)
  File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\python\mozbuild\mozbuild\virtualenv.py", line 439, in build
    self.create(python)
  File "c:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\mozjs\python\mozbuild\mozbuild\virtualenv.py", line 203, in create
    'Failed to create virtualenv: %s' % self.virtualenv_root)
Exception: Failed to create virtualenv: c:/Users/paul.DESKTOP-525R3BF/git/servo/target/debug/build/mozjs_sys-b084d8c01a39aee7/out\_virtualenv
mozmake: *** [makefile.cargo:183: maybe-configure] Error 1
thread 'main' panicked at 'assertion failed: result.success()', C:\Users\paul.DESKTOP-525R3BF\.cargo\registry\src\github.com-1ecc6299db9ec823\mozjs_sys-0.61.12\build.rs:142:5
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

Spurious rebuilds because of writes to the source directory

This also affects servo with Rust 1.40 nightly-2019-09-27.

Steps to reproduce with commit 3cfd5e7 of this repository, Rust 1.38.0:

cargo clean
cargo build
CARGO_LOG=cargo::core::compiler::fingerprint=info cargo build
cargo build

Expected result: the second and third build do nothing, because everything is up to date.

Actual result: in the second build, Cargo runs the build script for mozjs_sys again because it considers the previous output to be stale. The third build does nothing as expected. It seems a stable state was reached.

Part of the output that seems most relevant:

stale: changed "/home/simon/projects/mozjs/mozjs/third_party/python/psutil/tmp"
          (vs) "/home/simon/projects/mozjs/target/debug/build/mozjs_sys-cb3e736023717280/output"
               FileTime { seconds: 1569670020, nanos: 460660576 } != FileTime { seconds: 1569670021, nanos: 808663540 }
Full output:
   Compiling memchr v2.2.1
   Compiling version_check v0.1.5
   Compiling libc v0.2.62
   Compiling cc v1.0.45
   Compiling byteorder v1.3.2
   Compiling glob v0.3.0
   Compiling bitflags v1.2.0
   Compiling proc-macro2 v1.0.4
   Compiling log v0.4.8
   Compiling lazy_static v1.4.0
   Compiling unicode-width v0.1.6
   Compiling cfg-if v0.1.10
   Compiling regex-syntax v0.6.12
   Compiling quick-error v1.2.2
   Compiling unicode-xid v0.2.0
   Compiling termcolor v1.0.5
   Compiling vec_map v0.8.1
   Compiling bindgen v0.51.1
   Compiling ansi_term v0.11.0
   Compiling strsim v0.8.0
   Compiling pkg-config v0.3.16
   Compiling same-file v1.0.5
   Compiling shlex v0.1.1
   Compiling peeking_take_while v0.1.2
   Compiling thread_local v0.3.6
   Compiling textwrap v0.11.0
   Compiling humantime v1.3.0
   Compiling walkdir v2.2.9
   Compiling nom v4.2.3
   Compiling clang-sys v0.28.1
   Compiling rustc-hash v1.0.1
   Compiling quote v1.0.2
   Compiling aho-corasick v0.7.6
   Compiling atty v0.2.13
   Compiling which v3.0.0
   Compiling clap v2.33.0
   Compiling libloading v0.5.2
   Compiling libz-sys v1.0.25
   Compiling cexpr v0.3.5
   Compiling regex v1.3.1
   Compiling env_logger v0.6.2
   Compiling mozjs_sys v0.67.1 (/home/simon/projects/mozjs)
    Finished dev [unoptimized + debuginfo] target(s) in 1m 32s
[2019-09-28T11:28:23Z INFO  cargo::core::compiler::fingerprint] stale: changed "/home/simon/projects/mozjs/mozjs/third_party/python/psutil/tmp"
[2019-09-28T11:28:23Z INFO  cargo::core::compiler::fingerprint]           (vs) "/home/simon/projects/mozjs/target/debug/build/mozjs_sys-cb3e736023717280/output"
[2019-09-28T11:28:23Z INFO  cargo::core::compiler::fingerprint]                FileTime { seconds: 1569670020, nanos: 460660576 } != FileTime { seconds: 1569670021, nanos: 808663540 }
[2019-09-28T11:28:23Z INFO  cargo::core::compiler::fingerprint] fingerprint error for mozjs_sys v0.67.1 (/home/simon/projects/mozjs)/Build/Target { doctest: false, ..: lib_target("mozjs_sys", ["lib"], "/home/simon/projects/mozjs/src/lib.rs", Edition2015) }
[2019-09-28T11:28:23Z INFO  cargo::core::compiler::fingerprint]     err: current filesystem status shows we're outdated
[2019-09-28T11:28:23Z INFO  cargo::core::compiler::fingerprint] fingerprint error for mozjs_sys v0.67.1 (/home/simon/projects/mozjs)/RunCustomBuild/Target { ..: custom_build_target("build-script-build", "/home/simon/projects/mozjs/build.rs", Edition2015) }
[2019-09-28T11:28:23Z INFO  cargo::core::compiler::fingerprint]     err: current filesystem status shows we're outdated
   Compiling mozjs_sys v0.67.1 (/home/simon/projects/mozjs)
    Finished dev [unoptimized + debuginfo] target(s) in 17.78s
    Finished dev [unoptimized + debuginfo] target(s) in 0.32s

Cannot build

--- stderr
/home/bcuza/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure: 1: /home/bcuza/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure: /home/bcuza/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/../../python/mozbuild/mozbuild/milestone.py: Permission denied
/home/bcuza/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure: 1: /home/bcuza/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure: /home/bcuza/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/../../python/mozbuild/mozbuild/milestone.py: Permission denied
/home/bcuza/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure: 1: /home/bcuza/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure: /home/bcuza/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/../../python/mozbuild/mozbuild/milestone.py: Permission denied
Reticulating splines...
Finished reading 34 moz.build files in 0.05s
Processed into 109 build config descriptors in 0.04s
Backend executed in 0.13s
80 total backend files; 0 created; 0 updated; 80 unchanged; 0 deleted; 10 -> 20 Makefile
Total wall time: 0.26s; CPU time: 0.25s; Efficiency: 95%; Untracked: 0.04s
make[5]: warning: -jN forced in submake: disabling jobserver mode.
g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See file:///usr/share/doc/gcc-4.8/README.Bugs for instructions.
make[4]: *** [Unified_cpp_js_src12.o] Error 4
make[4]: *** Deleting file 'Unified_cpp_js_src12.o'
make[4]: *** Waiting for unfinished jobs....
g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See file:///usr/share/doc/gcc-4.8/README.Bugs for instructions.
make[4]: *** [Unified_cpp_js_src10.o] Error 4
make[4]: *** Deleting file `Unified_cpp_js_src10.o'
make[3]: *** [js/src/target] Error 2
make[2]: *** [compile] Error 2
make[1]: *** [default] Error 2
make: *** [all] Error 2
thread 'main' panicked at 'assertion failed: result.success()', /home/bcuza/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/build.rs:16

Add opt-in way to build on VS2019

From servo/servo#24331

Since VS2019 supports VC++ 2017, forcing VS2017 makes me install another full copy of VC++ (and MSBuild etc.) because of the single line added by #197. Could we add an opt-in way to use VS2019?

image

Figure 1 - VS Build Tools 2019 provides VC++ 2017

Clang issues

Building servo errors with a mozjs build error pertaining to mode_t and pid_t definitions colliding.

I could track the issue down to out/confdefs.h which seems to be generated by mozjs/js/src/js-confdefs.h.in, which includes @ALLDEFINES@ which introduces those defines.

$ ./mach build --dev             
   Compiling script v0.0.1 (file:///home/cpt/src/servo/components/servo)
   Compiling mozjs_sys v0.0.0 (https://github.com/servo/mozjs#5ac99916)
   Compiling selectors v0.5.1
failed to run custom build command for `mozjs_sys v0.0.0 (https://github.com/servo/mozjs#5ac99916)`
Process didn't exit successfully: `/home/cpt/src/servo/target/debug/build/mozjs_sys-e411d274df144795/build-script-build` (exit code: 101)
--- stdout
cd /home/cpt/src/servo/target/debug/build/mozjs_sys-e411d274df144795/out && \
MOZ_TOOLS="" CC="clang" CPP="gcc -E" CXX="clang++" AR="ar" \
/home/cpt/src/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure --disable-jemalloc
loading cache ./config.cache
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking build system type... x86_64-unknown-linux-gnu
checking for mawk... mawk
checking for perl5... no
checking for perl... /usr/bin/perl
checking for gcc... clang
checking whether the C compiler (clang  ) works... yes
checking whether the C compiler (clang  ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether clang accepts -g... yes
checking for c++... clang++
checking whether the C++ compiler (clang++  ) works... yes
checking whether the C++ compiler (clang++  ) is a cross-compiler... no
checking whether we are using GNU C++... yes
checking whether clang++ accepts -g... yes
checking for ranlib... ranlib
checking for as... /usr/bin/as
checking for ar... ar
checking for ld... ld
checking for strip... strip
checking for windres... no
checking how to run the C preprocessor... gcc -E
checking how to run the C++ preprocessor... clang++ -E
checking for sb-conf... no
checking for ve... no
checking for a BSD compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking for tar archiver... checking for gnutar... no
checking for gtar... no
checking for tar... tar
tar
checking for minimum required perl version >= 5.006... 5.020002
checking for full perl installation... yes
checking for python2.7... /home/cpt/src/servo/python/_virtualenv/bin/python2.7
Creating Python environment
checking Python environment is Mozilla virtualenv... yes
checking for doxygen... :
checking for autoconf... /usr/bin/autoconf
checking for xargs... /usr/bin/xargs
checking for gmake... no
checking for make... /usr/bin/make
checking for X... libraries , headers 
checking for dnet_ntoa in -ldnet... no
checking for dnet_ntoa in -ldnet_stub... no
checking for gethostbyname... no
checking for connect... no
checking for remove... no
checking for shmat... no
checking for IceConnectionNumber in -lICE... yes
checking that static assertion macros used in autoconf tests work... yes
checking for --noexecstack option to as... yes
checking for -z noexecstack option to ld... yes
checking for -z text option to ld... yes
checking for --build-id option to ld... yes
checking whether the C++ compiler supports -Wno-extended-offsetof... yes
checking whether ld has archive extraction flags... yes
checking for 64-bit OS... yes
checking whether the C++ compiler (clang++  -fno-rtti  -Wl,-z,noexecstack -Wl,-z,text -Wl,--build-id) actually is a C++ compiler... yes
checking for ANSI C header files... no
checking for working const... yes
checking for mode_t... no
checking for off_t... no
checking for pid_t... no
checking for size_t... no
checking for ssize_t... no
checking for endian.h... yes
checking for machine/endian.h... no
checking for sys/isa_defs.h... no
checking for gcc c++0x headers bug without rtti... yes
checking whether workaround for gcc c++0x headers conflict with clang works... no
checking for gcc PR49911... no
checking for llvm pr8927... no
checking for dirent.h that defines DIR... no
checking for sys/ndir.h that defines DIR... no
checking for sys/dir.h that defines DIR... no
checking for ndir.h that defines DIR... no
checking for opendir in -lx... no
checking for sys/byteorder.h... no
checking for compat.h... no
checking for getopt.h... yes
checking for sys/bitypes.h... no
checking for memory.h... yes
checking for unistd.h... no
checking for gnu/libc-version.h... yes
checking for nl_types.h... yes
checking for malloc.h... no
checking for X11/XKBlib.h... no
checking for io.h... no
checking for cpuid.h... yes
checking for sys/statvfs.h... yes
checking for sys/statfs.h... yes
checking for sys/vfs.h... yes
checking for sys/mount.h... yes
checking for sys/quota.h... no
checking for linux/quota.h... yes
checking for sys/cdefs.h... yes
checking for linux/perf_event.h... yes
checking for perf_event_open system call... yes
checking for gethostbyname_r in -lc_r... no
checking for library containing dlopen... -ldl
checking for dlfcn.h... yes
checking for socket in -lsocket... no
checking for pthread_create in -lpthreads... no
checking for pthread_create in -lpthread... yes
checking whether clang accepts -pthread... yes
checking whether clang needs -traditional... no
checking for 8-bit clean memcmp... yes
checking for getc_unlocked... yes
checking for _getc_nolock... no
checking for gmtime_r... yes
checking for localtime_r... yes
checking for sin in -lm... yes
checking for log2... yes
checking for log1p... yes
checking for expm1... yes
checking for sqrt1pm1... no
checking for acosh... yes
checking for asinh... yes
checking for atanh... yes
checking for trunc... yes
checking for cbrt... yes
checking for wcrtomb... yes
checking for mbrtowc... yes
checking for res_ninit()... no
checking for nl_langinfo and CODESET... yes
checking for an implementation of va_copy()... no
checking whether va_list can be copied by value... no
checking whether the C++ "using" keyword resolves ambiguity... yes
checking for C++ dynamic_cast to void*... yes
checking for __thread keyword for TLS variables... yes
checking for __attribute__((always_inline))... yes
checking for __attribute__((malloc))... yes
checking for __attribute__((warn_unused_result))... yes
checking for LC_MESSAGES... yes
checking for localeconv... yes
checking NSPR selection... posix-wrapper
checking for gzread in -lz... yes
------ config.log ------
./confdefs.h:13:16: note: expanded from macro 'mode_t'
#define mode_t int
               ^
In file included from configure:12472:
In file included from /usr/include/zlib.h:34:
In file included from /usr/include/x86_64-linux-gnu/zconf.h:421:
/usr/include/x86_64-linux-gnu/sys/types.h:98:17: error: cannot combine with previous 'type-name' declaration specifier
typedef __pid_t pid_t;
                ^
./confdefs.h:15:15: note: expanded from macro 'pid_t'
#define pid_t int
              ^
3 errors generated.
configure: failed program was:
#line 12469 "configure"
#include "confdefs.h"
 #include <stdio.h>
                             #include <string.h>
                             #include <zlib.h> 
int main() {
 #if ZLIB_VERNUM < 0x1230
                             #error "Insufficient zlib version (0x1230 required)."
                             #endif 
; return 0; }
configure: error: Insufficient zlib version for --with-system-zlib (1.2.3 required)
makefile.cargo:82: recipe for target 'all' failed

--- stderr
makefile.cargo:58: extraneous text after 'else' directive
/home/cpt/src/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure: 1: /home/cpt/src/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure: /home/cpt/src/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/../../python/mozbuild/mozbuild/milestone.py: not found
/home/cpt/src/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure: 1: /home/cpt/src/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure: /home/cpt/src/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/../../python/mozbuild/mozbuild/milestone.py: not found
/home/cpt/src/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure: 1: /home/cpt/src/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure: /home/cpt/src/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/../../python/mozbuild/mozbuild/milestone.py: not found
configure: error: Insufficient zlib version for --with-system-zlib (1.2.3 required)
make: *** [all] Error 1
thread '<main>' panicked at 'assertion failed: result.success()', /home/cpt/src/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/build.rs:17
note: Run with `RUST_BACKTRACE=1` for a backtrace.

Build completed in 7.17s

mozjs fails during servo build

The error I got

--- stderr
which: python2.7: unknown command
ERROR: Visual Studio 2017 could not be found!
mozmake: *** [makefile.cargo:197: maybe-configure] Error 1
thread 'main' panicked at 'assertion failed: result.success()', C:\Users\aw14s.cargo\git\checkouts\mozjs-fa11ffc7d4f1cc2d\5906588\build.rs:133:5
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace.

I have VS2019 installed and have v141 toolset (VS 2017)

Build failure on OS X El Capitan

When I try to build on OS X El Capitan I get an error as shown below :
Any help would be welcomed.

arondele-hz-0:servo AntoineRondelet$ ./mach build -d
   Compiling mozjs_sys v0.0.0 (https://github.com/servo/mozjs#5ac99916)
error: failed to run custom build command for `mozjs_sys v0.0.0 (https://github.com/servo/mozjs#5ac99916)`
Process didn't exit successfully: `/Users/AntoineRondelet/Documents/Servo_project/servo/target/debug/build/mozjs_sys-736cac28b49f9dab/build-script-build` (exit code: 101)
--- stdout
cd /Users/AntoineRondelet/Documents/Servo_project/servo/target/debug/build/mozjs_sys-736cac28b49f9dab/out && \
    MOZ_TOOLS="" CC="gcc" CPP="gcc -E" CXX="g++" AR="ar" \
    /Users/AntoineRondelet/Documents/Servo_project/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure --disable-jemalloc
loading cache ./config.cache
checking host system type... x86_64-apple-darwin15.3.0
checking target system type... x86_64-apple-darwin15.3.0
checking build system type... x86_64-apple-darwin15.3.0
checking for mawk... (cached) awk
checking for perl5... (cached) /usr/bin/perl
checking for gcc... (cached) gcc
checking whether the C compiler (gcc  ) works... yes
checking whether the C compiler (gcc  ) is a cross-compiler... no
checking whether we are using GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for c++... (cached) g++
checking whether the C++ compiler (g++  ) works... yes
checking whether the C++ compiler (g++  ) is a cross-compiler... no
checking whether we are using GNU C++... (cached) yes
checking whether g++ accepts -g... (cached) yes
checking for ranlib... (cached) ranlib
checking for as... (cached) /usr/bin/as
checking for ar... (cached) ar
checking for ld... (cached) ld
checking for strip... (cached) strip
checking for windres... no
checking how to run the C preprocessor... gcc -E
checking how to run the C++ preprocessor... (cached) g++ -E
checking for sb-conf... no
checking for ve... no
checking for a BSD compatible install... (cached) /usr/bin/install -c
checking whether ln -s works... (cached) yes
checking for tar archiver... checking for gnutar... (cached) tar
tar
checking for minimum required perl version >= 5.006... 5.018002
checking for full perl installation... yes
checking for python2.7... (cached) /Users/AntoineRondelet/Documents/Servo_project/servo/python/_virtualenv/bin/python2.7
Creating Python environment
checking Python environment is Mozilla virtualenv... yes
checking for doxygen... (cached) :
checking for autoconf... (cached) /usr/local/bin/autoconf
checking for xargs... (cached) /usr/bin/xargs
checking for gmake... (cached) /usr/bin/make
checking for X... (cached) no
checking that static assertion macros used in autoconf tests work... (cached) yes
checking for --noexecstack option to as... yes
checking for -z noexecstack option to ld... no
checking for -z text option to ld... no
checking for --build-id option to ld... no
checking whether the C++ compiler supports -Wno-extended-offsetof... yes
checking whether ld has archive extraction flags... (cached) no
checking for 64-bit OS... yes
checking for -framework ExceptionHandling... yes
checking for -dead_strip option to ld... yes
checking whether the C++ compiler (g++  -fno-common -fno-rtti  -lobjc) actually is a C++ compiler... yes
checking for ANSI C header files... (cached) yes
checking for working const... (cached) yes
checking for mode_t... (cached) yes
checking for off_t... (cached) yes
checking for pid_t... (cached) yes
checking for size_t... (cached) yes
checking for ssize_t... (cached) yes
checking for endian.h... (cached) no
checking for machine/endian.h... (cached) yes
checking for sys/isa_defs.h... (cached) no
checking for gcc c++0x headers bug without rtti... (cached) no
checking for gcc PR49911... no
checking for llvm pr8927... no
checking for dirent.h that defines DIR... (cached) yes
checking for opendir in -ldir... (cached) no
checking for sys/byteorder.h... (cached) no
checking for compat.h... (cached) no
checking for getopt.h... (cached) yes
checking for sys/bitypes.h... (cached) no
checking for memory.h... (cached) yes
checking for unistd.h... (cached) yes
checking for gnu/libc-version.h... (cached) no
checking for nl_types.h... (cached) yes
checking for malloc.h... (cached) no
checking for X11/XKBlib.h... (cached) no
checking for io.h... (cached) no
checking for cpuid.h... (cached) yes
checking for sys/statvfs.h... (cached) yes
checking for sys/statfs.h... (cached) no
checking for sys/vfs.h... (cached) no
checking for sys/mount.h... (cached) yes
checking for sys/quota.h... (cached) no
checking for linux/quota.h... (cached) no
checking for sys/cdefs.h... (cached) yes
checking for linux/perf_event.h... (cached) no
checking for gethostbyname_r in -lc_r... (cached) no
checking for socket in -lsocket... (cached) no
checking whether gcc accepts -pthread... yes
checking whether gcc needs -traditional... (cached) no
checking for 8-bit clean memcmp... (cached) yes
checking for getc_unlocked... (cached) yes
checking for _getc_nolock... (cached) no
checking for gmtime_r... (cached) yes
checking for localtime_r... (cached) yes
checking for sin in -lm... (cached) yes
checking for log2... (cached) yes
checking for log1p... (cached) yes
checking for expm1... (cached) yes
checking for sqrt1pm1... (cached) no
checking for acosh... (cached) yes
checking for asinh... (cached) yes
checking for atanh... (cached) yes
checking for trunc... (cached) yes
checking for cbrt... (cached) yes
checking for wcrtomb... (cached) yes
checking for mbrtowc... (cached) yes
checking for res_ninit()... (cached) no
checking for nl_langinfo and CODESET... (cached) yes
checking for an implementation of va_copy()... (cached) yes
checking whether va_list can be copied by value... (cached) no
checking whether the C++ "using" keyword resolves ambiguity... (cached) yes
checking for C++ dynamic_cast to void*... (cached) yes
checking for __thread keyword for TLS variables... (cached) no
checking for __attribute__((always_inline))... (cached) yes
checking for __attribute__((malloc))... (cached) yes
checking for __attribute__((warn_unused_result))... (cached) yes
checking for LC_MESSAGES... (cached) yes
checking for localeconv... (cached) yes
checking NSPR selection... posix-wrapper
checking for gzread in -lz... (cached) yes
checking for valid optimization flags... yes
checking for __cxa_demangle... (cached) yes
checking for -pipe support... yes
checking whether C compiler supports -fprofile-generate... yes
checking for tm_zone tm_gmtoff in struct tm... (cached) yes
checking what kind of list files are supported by the linker... filelist
checking for posix_fadvise... (cached) no
checking for posix_fallocate... (cached) no
checking for malloc.h... (cached) no
checking for malloc_np.h... (cached) no
checking for malloc/malloc.h... (cached) yes
checking for setlocale... (cached) yes
checking for localeconv... (cached) yes
checking for malloc_size... (cached) yes
checking for malloc_usable_size... (cached) no
creating ./config.status

--- stderr
makefile.cargo:58: Extraneous text after `else' directive
/Users/AntoineRondelet/Documents/Servo_project/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure: line 1665: /Users/AntoineRondelet/Documents/Servo_project/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/../../python/mozbuild/mozbuild/milestone.py: Permission denied
/Users/AntoineRondelet/Documents/Servo_project/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure: line 1666: /Users/AntoineRondelet/Documents/Servo_project/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/../../python/mozbuild/mozbuild/milestone.py: Permission denied
/Users/AntoineRondelet/Documents/Servo_project/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure: line 1667: /Users/AntoineRondelet/Documents/Servo_project/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/../../python/mozbuild/mozbuild/milestone.py: Permission denied
Traceback (most recent call last):
  File "/Users/AntoineRondelet/Documents/Servo_project/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/build/subconfigure.py", line 422, in <module>
    sys.exit(main(sys.argv[1:]))
  File "/Users/AntoineRondelet/Documents/Servo_project/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/build/subconfigure.py", line 406, in main
    return subconfigure(args)
  File "/Users/AntoineRondelet/Documents/Servo_project/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/build/subconfigure.py", line 393, in subconfigure
    pool.imap_unordered(run, subconfigures):
  File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/pool.py", line 668, in next
    raise value
IOError: [Errno 2] No such file or directory: 'intl/icu/target/tools/tzcode/Makefile'
make: *** [all] Error 1
thread '<main>' panicked at 'assertion failed: result.success()', /Users/AntoineRondelet/Documents/Servo_project/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/build.rs:17
note: Run with `RUST_BACKTRACE=1` for a backtrace.

Build completed in 7.75s

AssertionError in virtualenv.py

I'm currently using the Nix Package manager where the assertion in

assert False, "Filename %s does not start with any of these prefixes: %s" % \
won't be valid.

The output I get while trying to build servo contains the following:

failed to run custom build command for `mozjs_sys v0.0.0 (https://github.com/servo/mozjs#2c918d1f)`
Process didn't exit successfully: `/home/siddhu/Documents/servo/servo/target/release/build/mozjs_sys-e411d274df144795/build-script-build` (exit code: 101)
--- stdout
cd /home/siddhu/Documents/servo/servo/target/release/build/mozjs_sys-e411d274df144795/out && \
.
.
.
File "/home/siddhu/Documents/servo/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/python/virtualenv/virtualenv.py", line 1084, in change_prefix
    (filename, prefixes)
AssertionError: Filename /nix/store/8n4gpvl5z49ncpj0fisyr4ry8j6hy7qx-python-readline-2.7.10/lib/python2.7/site-packages/readline.so does not start with any of these prefixes: ['/nix/store/z6vp5aix4ks1zdjdry7v7dahg8dd02sy-python-2.7.10']

This isn't a big deal, since NixOS can patch this on their end. I just wanted to point out that this assertion won't be valid in a few corner cases.

Exception: Failed to create virtualenv: /workspace/servo/target/debug/build/mozjs_sys-1352731da3144e78/out/_virtualenv

Hello!

I tried creating 8 Servo workspaces on gitpod.io, and ran ./mach build -d in all of them (for a stress test).

Most of these builds succeeded, but one of these (identical) builds failed with:

   Compiling mozjs_sys v0.61.6
   Compiling script v0.0.1 (/workspace/servo/components/script)
   Compiling compositing v0.0.1 (/workspace/servo/components/compositing)
   Compiling glutin v0.19.0
error: failed to run custom build command for `mozjs_sys v0.61.6`
process didn't exit successfully: `/workspace/servo/target/debug/build/mozjs_sys-c7ce3ec219d28561/build-script-build` (exit code: 101)
--- stdout
[[ /home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/configure -ot /home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/configure.in ]] && touch /home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/configure || true
[[ /home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/old-configure -ot /home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/old-configure.in ]] && touch /home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/old-configure || true
! [[ /home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/configure.in -ot /home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/configure ]] && touch /home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/configure || true
! [[ /home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/old-configure.in -ot /home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/old-configure ]] && touch /home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/old-configure || true
if [[ /home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/configure -nt /workspace/servo/target/debug/build/mozjs_sys-1352731da3144e78/out/config.status ]] ; then \
  cd /workspace/servo/target/debug/build/mozjs_sys-1352731da3144e78/out && \
  PYTHON="python2" MOZ_TOOLS="" \
  CC="gcc" CFLAGS="" \
  CPP="gcc -E" CPPFLAGS="" \
  CXX="g++" CXXFLAGS="" \
  AS="" AR="ar" \
  STLPORT_LIBS="" \
  /home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/configure --disable-jemalloc --disable-js-shell --disable-tests --build-backends=RecursiveMake --disable-shared-js || (cat config.log && exit 1) ; \
fi
Reexecuting in the virtualenv
Creating Python environment
Please use the *system* python to run this script
Traceback (most recent call last):
  File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/third_party/python/virtualenv/virtualenv.py", line 2325,in <module>
    main()
  File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/third_party/python/virtualenv/virtualenv.py", line 711, in main
    symlink=options.symlink and hasattr(os, 'symlink')) # MOZ: Make sure we don't use symlink when we don't have it
  File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/third_party/python/virtualenv/virtualenv.py", line 924, in create_environment
    site_packages=site_packages, clear=clear, symlink=symlink))
  File "/workspace/servo/target/debug/build/mozjs_sys-1352731da3144e78/out/_virtualenv/lib/python2.7/posixpath.py", line 360, in abspath
    if not isabs(path):
  File "/workspace/servo/target/debug/build/mozjs_sys-1352731da3144e78/out/_virtualenv/lib/python2.7/posixpath.py", line 54, in isabs
    return s.startswith('/')
AttributeError: 'NoneType' object has no attribute 'startswith'
INFO: Creating Python environment
INFO: Please use the *system* python to run this script
INFO: Traceback (most recent call last):
INFO:   File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/third_party/python/virtualenv/virtualenv.py", line2325, in <module>
INFO:     main()
INFO:   File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/third_party/python/virtualenv/virtualenv.py", line711, in main
INFO:     symlink=options.symlink and hasattr(os, 'symlink')) # MOZ: Make sure we don't use symlink when we don't have it
INFO:   File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/third_party/python/virtualenv/virtualenv.py", line924, in create_environment
INFO:     site_packages=site_packages, clear=clear, symlink=symlink))
INFO:   File "/workspace/servo/target/debug/build/mozjs_sys-1352731da3144e78/out/_virtualenv/lib/python2.7/posixpath.py", line 360, in abspath
INFO:     if not isabs(path):
INFO:   File "/workspace/servo/target/debug/build/mozjs_sys-1352731da3144e78/out/_virtualenv/lib/python2.7/posixpath.py", line 54, in isabs
INFO:     return s.startswith('/')
INFO: AttributeError: 'NoneType' object has no attribute 'startswith'

--- stderr
Traceback (most recent call last):
  File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/../../configure.py", line 127, in <module>
    sys.exit(main(sys.argv))
  File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/../../configure.py", line 29, in main
    sandbox.run(os.path.join(os.path.dirname(__file__), 'moz.configure'))
  File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/python/mozbuild/mozbuild/configure/__init__.py", line 399, in run
    self.include_file(path)
  File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/python/mozbuild/mozbuild/configure/__init__.py", line 390, in include_file
    exec_(code, self)
  File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/python/mozbuild/mozbuild/util.py", line 59, in exec_
    exec(object, globals, locals)
  File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/moz.configure", line 7, in <module>
    include('build/moz.configure/init.configure')
  File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/python/mozbuild/mozbuild/configure/__init__.py", line 694, in include_impl
    self.include_file(what)
  File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/python/mozbuild/mozbuild/configure/__init__.py", line 390, in include_file
    exec_(code, self)
  File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/python/mozbuild/mozbuild/util.py", line 59, in exec_
    exec(object, globals, locals)
  File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/build/moz.configure/init.configure", line 207, in <module>
    @imports('distutils.sysconfig')
  File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/python/mozbuild/mozbuild/configure/__init__.py", line 677, in decorator
    depends = DependsFunction(self, func, dependencies, when=when)
  File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/python/mozbuild/mozbuild/configure/__init__.py", line 96, in __init__
    sandbox._value_for(self)
  File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/python/mozbuild/mozbuild/configure/__init__.py", line 474, in _value_for
    return self._value_for_depends(obj, need_help_dependency)
  File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/python/mozbuild/mozbuild/util.py", line 944, in method_call
    cache[args] = self.func(instance, *args)
  File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/python/mozbuild/mozbuild/configure/__init__.py", line 483, in _value_for_depends
    return obj.result(need_help_dependency)
  File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/python/mozbuild/mozbuild/util.py", line 944, in method_call
    cache[args] = self.func(instance, *args)
  File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/python/mozbuild/mozbuild/configure/__init__.py", line 123, in result
    return self._func(*resolved_args)
  File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/python/mozbuild/mozbuild/configure/__init__.py", line 1003, in wrapped
    return new_func(*args, **kwargs)
  File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/build/moz.configure/init.configure", line 255, in virtualenv_python
    manager.build(python)
  File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/python/mozbuild/mozbuild/virtualenv.py", line 439, in build
    self.create(python)
  File "/home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/python/mozbuild/mozbuild/virtualenv.py", line 203, in create
    'Failed to create virtualenv: %s' % self.virtualenv_root)
Exception: Failed to create virtualenv: /workspace/servo/target/debug/build/mozjs_sys-1352731da3144e78/out/_virtualenv
make: *** [makefile.cargo:168: maybe-configure] Error 1
thread 'main' panicked at 'assertion failed: result.success()', /home/gitpod/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/build.rs:114:5
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

warning: build failed, waiting for other jobs to finish...
    Building [=================================================>     ] 530/576: mozangle(build)
error: build failed
[Warning] Could not generate notification! Optional Python module 'dbus' is not installed.
Build FAILED in 0:21:36

It's probably me (or gitpod.io's environment) doing something wrong, but I just thought I'd open an issue anyway in case it's useful.

Please feel free to close it if not.

Build error on OS X 10.9

   Compiling mozjs_sys v0.0.0 (https://github.com/servo/mozjs#2af5849a)
Build failed, waiting for other jobs to finish...
error: failed to run custom build command for `mozjs_sys v0.0.0 (https://github.com/servo/mozjs#2af5849a)`
Process didn't exit successfully: `/Users/jdm/src/servo/target/release/build/mozjs_sys-736cac28b49f9dab/build-script-build` (exit code: 101)
--- stdout
touch /Users/jdm/src/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure
cd /Users/jdm/src/servo/target/release/build/mozjs_sys-736cac28b49f9dab/out && \
MOZ_TOOLS="" CC="gcc" CPP="gcc -E" CXX="g++" AR="ar" \
/Users/jdm/src/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure --disable-jemalloc --disable-js-shell --disable-tests --disable-shared-js --without-intl-api || (cat config.log && exit 1)
makefile.cargo:90: recipe for target 'all' failed

--- stderr
makefile.cargo:65: extraneous text after 'else' directive
Traceback (most recent call last):
  File "/Users/jdm/src/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/../../configure.py", line 16, in <module>
    from mozbuild.configure import ConfigureSandbox
ImportError: cannot import name ConfigureSandbox
cat: config.log: No such file or directory
make: *** [all] Error 1
thread '<main>' panicked at 'assertion failed: result.success()', /Users/jdm/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/build.rs:17
note: Run with `RUST_BACKTRACE=1` for a backtrace.

Build completed in 190.72s

This is after running ./mach clean.

Make mozjs not check MOZCONFIG environment

When Gecko developers try to build Servo, they may meet a problem that the configure script of mozjs complains about it failing to find the mozconfig file specified by MOZCONFIG environment. (e.g. me and dbaron). This issue may take lots of time before a Gecko developer can start working on Servo.

Since mozjs doesn't really need mozconfig, it should just ignore MOZCONFIG environment.

clang version / unknown argument: '-fno-sized-deallocation'

Hi,

I can't compile mozjs_sys (via Servo's mach script) because of this error:

Generting bindings ["./src/jsglue.hpp", "--rust-target", "1.25", "--rustified-enum", ".*", "--no-derive-default", "--enable-cxx-namespaces", "--generate", "functions,types,vars", "--ignore-methods", "--", "-I", "/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/dist/include", "-I", "/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/js/src", "-x", "c++", "-DRUST_BINDGEN", "-DSTATIC_JS_API", "-std=gnu++14", "-fno-sized-deallocation", "-Wno-unused-parameter", "-Wno-invalid-offsetof", "-include", "/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/js/src/js-confdefs.h", "--rustfmt-configuration-file", "rustfmt.toml"] Debian clang version 3.5.2-5 (tags/RELEASE_352/final) (based on LLVM 3.5.2).
[...]
error: unknown argument: '-fno-sized-deallocation', err: true
thread 'main' panicked at 'Should generate JSAPI bindings OK: ()', src/libcore/result.rs:999:5

Here is the full output:

~/servo $ RUST_BACKTRACE=1 LANG=C ./mach build --release
   Compiling mozjs_sys v0.61.6
error: failed to run custom build command for `mozjs_sys v0.61.6`
process didn't exit successfully: `/home/dev-rust/servo/target/release/build/mozjs_sys-659f0ee87f7baaca/build-script-build` (exit code: 101)
--- stdout
[[ /home/dev-rust/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/configure -ot /home/dev-rust/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/configure.in ]] && touch /home/dev-rust/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/configure || true
[[ /home/dev-rust/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/old-configure -ot /home/dev-rust/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/old-configure.in ]] && touch /home/dev-rust/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/old-configure || true
! [[ /home/dev-rust/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/configure.in -ot /home/dev-rust/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/configure ]] && touch /home/dev-rust/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/configure || true
! [[ /home/dev-rust/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/old-configure.in -ot /home/dev-rust/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/old-configure ]] && touch /home/dev-rust/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/old-configure || true
if [[ /home/dev-rust/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/configure -nt /home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/config.status ]] ; then \
  cd /home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out && \
  PYTHON="python2" MOZ_TOOLS="" \
  CC="gcc" CFLAGS="" \
  CPP="gcc -E" CPPFLAGS="" \
  CXX="g++" CXXFLAGS="" \
  AS="" AR="ar" \
  STLPORT_LIBS="" \
  /home/dev-rust/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.6/mozjs/js/src/configure --disable-jemalloc --disable-js-shell --disable-tests --build-backends=RecursiveMake --disable-shared-js || (cat config.log && exit 1) ; \
fi
cd /home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out && make -f Makefile
make[1]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
make[2]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
make recurse_pre-export
make[3]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/_virtualenv/bin/python -m mozbuild.action.process_install_manifest --track install_dist_include.track dist/include _build_manifests/install/dist_include
/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/_virtualenv/bin/python -m mozbuild.action.process_install_manifest --track install_dist_public.track dist/public _build_manifests/install/dist_public
/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/_virtualenv/bin/python -m mozbuild.action.process_install_manifest --track install_dist_private.track dist/private _build_manifests/install/dist_private
/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/_virtualenv/bin/python -m mozbuild.action.process_install_manifest --track install__tests.track _tests _build_manifests/install/_tests
Elapsed: 0.00s; From dist/public: Kept 0 existing; Added/updated 0; Removed 0 files and 0 directories.
/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/_virtualenv/bin/python -m mozbuild.action.process_install_manifest --track install_dist_bin.track dist/bin _build_manifests/install/dist_bin
Elapsed: 0.00s; From dist/private: Kept 0 existing; Added/updated 0; Removed 0 files and 0 directories.
Elapsed: 0.06s; From dist/include: Kept 344 existing; Added/updated 0; Removed 0 files and 0 directories.
Elapsed: 0.00s; From dist/bin: Kept 1 existing; Added/updated 0; Removed 0 files and 0 directories.
Elapsed: 0.09s; From _tests: Kept 312 existing; Added/updated 0; Removed 0 files and 0 directories.
make[3]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
make[2]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
make[2]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
make recurse_export
make[3]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/config'
make[4]: Nothing to be done for 'host'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/config'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/config'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/config'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/memory/build'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/memory/build'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/mozglue/build'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/mozglue/build'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/js/src'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/js/src'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/js/src/build'
make[4]: Nothing to be done for 'export'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/js/src/build'
make[3]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
make[2]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
make[2]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
make recurse_compile
make[3]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/js/src/editline'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/js/src/editline'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/mfbt'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/config/external/nspr'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/config/external/nspr'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/mfbt'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/config/external/icu/data'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/config/external/icu/data'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/modules/fdlibm/src'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/modules/fdlibm/src'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/config/external/zlib'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/config/external/zlib'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/memory/build'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/memory/build'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/memory/mozalloc'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/memory/mozalloc'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/mozglue/misc'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/mozglue/misc'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/config'
make[4]: Nothing to be done for 'host'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/config'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/mozglue/build'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/mozglue/build'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/config/external/icu/common'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/config/external/icu/common'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/js/src'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/js/src'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/config/external/icu/i18n'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/config/external/icu/i18n'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/config/external/icu'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/config/external/icu'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/js/src/build'
make[4]: Nothing to be done for 'target'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/js/src/build'
make[3]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
make[2]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
make[2]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
make recurse_misc
make[3]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
make[3]: Nothing to be done for 'recurse_misc'.
make[3]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
make[2]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
make[2]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
make recurse_libs
make[3]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/config'
make[4]: Nothing to be done for 'libs'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/config'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/js/src'
make[4]: Nothing to be done for 'libs'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/js/src'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/js/src/build'
make[4]: Nothing to be done for 'libs'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/js/src/build'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/memory/build'
make[4]: Nothing to be done for 'libs'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/memory/build'
make[4]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/mozglue/build'
make[4]: Nothing to be done for 'libs'.
make[4]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/mozglue/build'
make[3]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
make[2]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
make[2]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
make recurse_tools
make[3]: Entering directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
make[3]: Nothing to be done for 'recurse_tools'.
make[3]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
make[2]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
make[1]: Leaving directory '/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out'
cargo:rustc-link-search=native=/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/js/src/build
cargo:rustc-link-lib=static=js_static
cargo:rustc-link-search=native=/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/mozglue/build
cargo:rustc-link-lib=static=mozglue
cargo:rustc-link-lib=stdc++
cargo:outdir=/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("3")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
DEBUG = Some("false")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/dist/include" "-I" "/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/js/src" "-Wall" "-Wextra" "-include" "/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/js/src/js-confdefs.h" "-DRUST_BINDGEN" "-DSTATIC_JS_API" "-std=gnu++14" "-fno-sized-deallocation" "-Wno-unused-parameter" "-Wno-invalid-offsetof" "-o" "/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/src/jsglue.o" "-c" "src/jsglue.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
AR_x86_64-unknown-linux-gnu = None
AR_x86_64_unknown_linux_gnu = None
HOST_AR = None
AR = None
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
running: "ar" "crs" "/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/libjsglue.a" "/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/src/jsglue.o"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
cargo:rustc-link-lib=static=jsglue
cargo:rustc-link-search=native=/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXSTDLIB_x86_64-unknown-linux-gnu = None
CXXSTDLIB_x86_64_unknown_linux_gnu = None
HOST_CXXSTDLIB = None
CXXSTDLIB = None
TARGET = Some("x86_64-unknown-linux-gnu")
cargo:rustc-link-lib=stdc++
Generting bindings ["./src/jsglue.hpp", "--rust-target", "1.25", "--rustified-enum", ".*", "--no-derive-default", "--enable-cxx-namespaces", "--generate", "functions,types,vars", "--ignore-methods", "--", "-I", "/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/dist/include", "-I", "/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/js/src", "-x", "c++", "-DRUST_BINDGEN", "-DSTATIC_JS_API", "-std=gnu++14", "-fno-sized-deallocation", "-Wno-unused-parameter", "-Wno-invalid-offsetof", "-include", "/home/dev-rust/servo/target/release/build/mozjs_sys-052ae43af23c49f8/out/js/src/js-confdefs.h", "--rustfmt-configuration-file", "rustfmt.toml"] Debian clang version 3.5.2-5 (tags/RELEASE_352/final) (based on LLVM 3.5.2).

--- stderr
backend.mk:2160: warning: overriding recipe for target '../dist/system_wrappers/pixman.h'
backend.mk:1278: warning: ignoring old recipe for target '../dist/system_wrappers/pixman.h'
backend.mk:2160: warning: overriding recipe for target '../dist/system_wrappers/pixman.h'
backend.mk:1278: warning: ignoring old recipe for target '../dist/system_wrappers/pixman.h'
backend.mk:2160: warning: overriding recipe for target '../dist/system_wrappers/pixman.h'
backend.mk:1278: warning: ignoring old recipe for target '../dist/system_wrappers/pixman.h'
backend.mk:2160: warning: overriding recipe for target '../dist/system_wrappers/pixman.h'
backend.mk:1278: warning: ignoring old recipe for target '../dist/system_wrappers/pixman.h'
error: unknown argument: '-fno-sized-deallocation', err: true
thread 'main' panicked at 'Should generate JSAPI bindings OK: ()', src/libcore/result.rs:999:5
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
             at src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:39
   1: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:70
   2: std::panicking::default_hook::{{closure}}
             at src/libstd/sys_common/backtrace.rs:58
             at src/libstd/panicking.rs:200
   3: std::panicking::default_hook
             at src/libstd/panicking.rs:215
   4: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:478
   5: std::panicking::continue_panic_fmt
             at src/libstd/panicking.rs:385
   6: rust_begin_unwind
             at src/libstd/panicking.rs:312
   7: core::panicking::panic_fmt
             at src/libcore/panicking.rs:85
   8: core::result::unwrap_failed
   9: build_script_build::main
  10: std::rt::lang_start::{{closure}}
  11: std::panicking::try::do_call
             at src/libstd/rt.rs:49
             at src/libstd/panicking.rs:297
  12: __rust_maybe_catch_panic
             at src/libpanic_unwind/lib.rs:92
  13: std::rt::lang_start_internal
             at src/libstd/panicking.rs:276
             at src/libstd/panic.rs:388
             at src/libstd/rt.rs:48
  14: main
  15: __libc_start_main
  16: _start

Build FAILED in 0:00:05

It looks like the build uses "Debian clang version 3.5.2-5", which I don't understand because clang 3.8 is installed (it's the default on Debian 9) while clang 3.5 isn't. And clang 3.8 would support -fno-sized-deallocation.

Undefined symbols - Servo build (Mac OS X 10.11.1)

Attempting to build Servo on Mac OS X 10.11.1. Mach fails to build when it reaches the mozjs_sys crate.

Possibly similar to the second part of this document: issue?

Mach output:

--- stderr
makefile.cargo:58: Extraneous text after `else' directive
/Users/harrisongould/Documents/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure: line 1665: /Users/harrisongould/Documents/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/../../python/mozbuild/mozbuild/milestone.py: Permission denied
/Users/harrisongould/Documents/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure: line 1666: /Users/harrisongould/Documents/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/../../python/mozbuild/mozbuild/milestone.py: Permission denied
/Users/harrisongould/Documents/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/configure: line 1667: /Users/harrisongould/Documents/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/mozjs/js/src/../../python/mozbuild/mozbuild/milestone.py: Permission denied
Reticulating splines...
Finished reading 34 moz.build files in 0.05s
Processed into 108 build config descriptors in 0.03s
Backend executed in 0.18s
80 total backend files; 0 created; 0 updated; 80 unchanged; 0 deleted; 10 -> 20 Makefile
Total wall time: 0.30s; CPU time: 0.18s; Efficiency: 59%; Untracked: 0.05s
make[5]: warning: -jN forced in submake: disabling jobserver mode.
ld: warning: ld: warning: ld: warning: ld: warning: ignoring file ../../lib/libicutu.a, file was built for archive which is not the architecture being linked (x86_64): ../../lib/libicutu.aignoring file ../../lib/libicuuc.a, file was built for archive which is not the architecture being linked (x86_64): ../../lib/libicuuc.aignoring file ../../lib/libicui18n.a, file was built for archive which is not the architecture being linked (x86_64): ../../lib/libicui18n.aignoring file ../../stubdata/libicudata.a, file was built for archive which is not the architecture being linked (x86_64): ../../stubdata/libicudata.a



Undefined symbols for architecture x86_64:
  "_T_FileStream_close", referenced from:
      _readFile in makeconv.o
  "_T_FileStream_open", referenced from:
      _readFile in makeconv.o
  "_T_FileStream_readLine", referenced from:
      _readFile in makeconv.o
  "_findBasename", referenced from:
      _main in makeconv.o
  "_getLongPathname", referenced from:
      _main in makeconv.o
  "_u_errorName_52", referenced from:
      _main in makeconv.o
  "_u_getDataDirectory_52", referenced from:
      _main in makeconv.o
  "_u_getVersion_52", referenced from:
      _main in makeconv.o
  "_u_parseArgs", referenced from:
      _main in makeconv.o
  "_u_skipWhitespace", referenced from:
      _readFile in makeconv.o
  "_u_strFromUTF32_52", referenced from:
      _generateToUTable in gencnvex.o
  "_ucm_checkBaseExt", referenced from:
      _main in makeconv.o
  "_ucm_checkValidity", referenced from:
      _main in makeconv.o
  "_ucm_close", referenced from:
      _main in makeconv.o
  "_ucm_countChars", referenced from:
      _main in makeconv.o
      MBCSIsValid(NewConverter*, unsigned char const*, int) in genmbcs.o
  "_ucm_findFallback", referenced from:
      MBCSAddToUnicode(MBCSData*, unsigned char const*, int, int, signed char) in genmbcs.o
  "_ucm_moveMappings", referenced from:
      _main in makeconv.o
  "_ucm_open", referenced from:
      _readFile in makeconv.o
  "_ucm_optimizeStates", referenced from:
      MBCSAddTable(NewConverter*, UCMTable*, UConverterStaticData*) in genmbcs.o
  "_ucm_parseBytes", referenced from:
      _readFile in makeconv.o
  "_ucm_parseHeaderLine", referenced from:
      _readFile in makeconv.o
  "_ucm_printMapping", referenced from:
      _CnvExtAddTable in gencnvex.o
      _generateToUTable in gencnvex.o
      _generateFromUTable in gencnvex.o
  "_ucm_processStates", referenced from:
      _readFile in makeconv.o
  "_ucm_readTable", referenced from:
      _readFile in makeconv.o
  "_ucm_sortTable", referenced from:
      _main in makeconv.o
  "_udata_create", referenced from:
      _main in makeconv.o
  "_udata_finish", referenced from:
      _main in makeconv.o
  "_udata_writeBlock", referenced from:
      _main in makeconv.o
      MBCSWrite(NewConverter*, UConverterStaticData const*, UNewDataMemory*, int) in genmbcs.o
      _CnvExtWrite in gencnvex.o
  "_uprv_free_52", referenced from:
      MBCSClose(NewConverter*) in genmbcs.o
      _CnvExtClose in gencnvex.o
  "_uprv_isInvariantString_52", referenced from:
      _main in makeconv.o
  "_uprv_malloc_52", referenced from:
      _MBCSOpen in genmbcs.o
      MBCSAddTable(NewConverter*, UCMTable*, UConverterStaticData*) in genmbcs.o
      _CnvExtOpen in gencnvex.o
  "_uprv_stricmp_52", referenced from:
      _main in makeconv.o
  "_utm_alloc", referenced from:
      _CnvExtAddTable in gencnvex.o
      _CnvExtWrite in gencnvex.o
  "_utm_allocN", referenced from:
      _generateToUTable in gencnvex.o
      _getFromUBytesValue in gencnvex.o
      _generateFromUTable in gencnvex.o
  "_utm_close", referenced from:
      _CnvExtClose in gencnvex.o
  "_utm_countItems", referenced from:
      _CnvExtAddTable in gencnvex.o
      _CnvExtWrite in gencnvex.o
      _generateToUTable in gencnvex.o
      _getFromUBytesValue in gencnvex.o
      _generateFromUTable in gencnvex.o
  "_utm_getStart", referenced from:
      _CnvExtWrite in gencnvex.o
  "_utm_open", referenced from:
      _CnvExtAddTable in gencnvex.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[7]: *** [../../bin/makeconv] Error 1
make[6]: *** [all-recursive] Error 2
make[5]: *** [all-recursive] Error 2
make[4]: *** [buildicu] Error 2
make[3]: *** [config/external/icu/target] Error 2
make[2]: *** [compile] Error 2
make[1]: *** [default] Error 2
make: *** [all] Error 2
thread '<main>' panicked at 'assertion failed: result.success()', /Users/harrisongould/Documents/servo/.cargo/git/checkouts/mozjs-06d7f04b6dbb8a8e/master/build.rs:17

I failed to build mozjs on Lubuntu 18.04.

When I ran cargo build I got this error message:

/home/vee/Develop/free/mozjs/target/debug/build/mozjs_sys-ec031bee7e5f078f/out/dist/include/mozilla/Compiler.h:49:12: fatal error: 'cstddef' file not found

So I try to set these environment variables as follows:

export HOST_CC=clang
export HOST_CXX=clang++
export LIBCLANG_PATH=/usr/lib/clang/6.0/lib

Then I got this error message instead:

Internal error occurred: Command "clang++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "--target=x86_64-unknown-linux-gnu" "-I" "/home/vee/Develop/free/mozjs/target/debug/build/mozjs_sys-ec031bee7e5f078f/out/dist/include" "-I" "/home/vee/Develop/free/mozjs/target/debug/build/mozjs_sys-ec031bee7e5f078f/out/js/src" "-Wall" "-Wextra" "-include" "/home/vee/Develop/free/mozjs/target/debug/build/mozjs_sys-ec031bee7e5f078f/out/js/src/js-confdefs.h" "-o" "/home/vee/Develop/free/mozjs/target/debug/build/mozjs_sys-ec031bee7e5f078f/out/src/jsglue.o" "-c" "src/jsglue.cpp" with args "clang++" did not execute successfully (status code exit code: 1).

Python failure during build - `setuptools pip wheel failed with error code 1`

When trying to ./mach check a fresh clone of Servo, I encountered the below failure:

error: failed to run custom build command for `mozjs_sys v0.67.1 (https://github.com/servo/mozjs?rev=59065889ec7726b767d70b8702b43b4e4776cbfe#59065889)`

Caused by:
  process didn't exit successfully: `/home/twilco/projects/servo/target/debug/build/mozjs_sys-2afaddc10560323e/build-script-build` (exit code: 101)
--- stdout
cargo:rerun-if-env-changed=MAKE
cargo:rerun-if-env-changed=MOZTOOLS_PATH
[[ /home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/js/src/configure -ot /home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/js/src/configure.in ]] && touch /home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/js/src/configure || true
[[ /home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/js/src/old-configure -ot /home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/js/src/old-configure.in ]] && touch /home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/js/src/old-configure || true
! [[ /home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/js/src/configure.in -ot /home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/js/src/configure ]] && touch /home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/js/src/configure || true
! [[ /home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/js/src/old-configure.in -ot /home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/js/src/old-configure ]] && touch /home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/js/src/old-configure || true
if [[ /home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/js/src/configure -nt /home/twilco/projects/servo/target/debug/build/mozjs_sys-a2af02b693aea2e3/out/config.status ]] ; then \
  cd /home/twilco/projects/servo/target/debug/build/mozjs_sys-a2af02b693aea2e3/out && \
  PYTHON="python2" MOZ_TOOLS="" \
  CC="gcc" CFLAGS="" \
  CPP="gcc -E" CPPFLAGS="" \
  CXX="g++" CXXFLAGS="" \
  AS="" AR="ar" \
  STLPORT_LIBS="" \
  RUST_TARGET="x86_64-unknown-linux-gnu" RUST_HOST="x86_64-unknown-linux-gnu" \
  RUST_SYSROOT="" \
  /home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/js/src/configure --disable-jemalloc --disable-js-shell --disable-tests --disable-shared-js --build-backends=RecursiveMake --enable-posix-nspr-emulation --disable-shared-js || (cat config.log && exit 1) ; \
fi
Creating Python environment
Using real prefix '/usr'
New python executable in /home/twilco/projects/servo/target/debug/build/mozjs_sys-a2af02b693aea2e3/out/_virtualenvs/init/bin/python2
Not overwriting existing python script /home/twilco/projects/servo/target/debug/build/mozjs_sys-a2af02b693aea2e3/out/_virtualenvs/init/bin/python (you must use /home/twilco/projects/servo/target/debug/build/mozjs_sys-a2af02b693aea2e3/out/_virtualenvs/init/bin/python2)
Installing setuptools, pip, wheel...
  Complete output from command /home/twilco/project...nvs/init/bin/python2 - setuptools pip wheel:
  Collecting setuptools
  Could not find a version that satisfies the requirement setuptools (from versions: )
No matching distribution found for setuptools
----------------------------------------
...Installing setuptools, pip, wheel...done.
Traceback (most recent call last):
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/third_party/python/virtualenv/virtualenv.py", line 2349, in <module>
    main()
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/third_party/python/virtualenv/virtualenv.py", line 712, in main
    symlink=options.symlink)
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/third_party/python/virtualenv/virtualenv.py", line 953, in create_environment
    download=download,
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/third_party/python/virtualenv/virtualenv.py", line 904, in install_wheel
    call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=SCRIPT)
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/third_party/python/virtualenv/virtualenv.py", line 796, in call_subprocess
    % (cmd_desc, proc.returncode))
OSError: Command /home/twilco/project...nvs/init/bin/python2 - setuptools pip wheel failed with error code 1
INFO: Creating Python environment
INFO: Using real prefix '/usr'
INFO: New python executable in /home/twilco/projects/servo/target/debug/build/mozjs_sys-a2af02b693aea2e3/out/_virtualenvs/init/bin/python2
INFO: Not overwriting existing python script /home/twilco/projects/servo/target/debug/build/mozjs_sys-a2af02b693aea2e3/out/_virtualenvs/init/bin/python (you must use /home/twilco/projects/servo/target/debug/build/mozjs_sys-a2af02b693aea2e3/out/_virtualenvs/init/bin/python2)
INFO: Installing setuptools, pip, wheel...
INFO:   Complete output from command /home/twilco/project...nvs/init/bin/python2 - setuptools pip wheel:
INFO:   Collecting setuptools
INFO:   Could not find a version that satisfies the requirement setuptools (from versions: )
INFO: No matching distribution found for setuptools
INFO: ----------------------------------------
INFO: ...Installing setuptools, pip, wheel...done.
INFO: Traceback (most recent call last):
INFO:   File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/third_party/python/virtualenv/virtualenv.py", line 2349, in <module>
INFO:     main()
INFO:   File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/third_party/python/virtualenv/virtualenv.py", line 712, in main
INFO:     symlink=options.symlink)
INFO:   File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/third_party/python/virtualenv/virtualenv.py", line 953, in create_environment
INFO:     download=download,
INFO:   File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/third_party/python/virtualenv/virtualenv.py", line 904, in install_wheel
INFO:     call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=SCRIPT)
INFO:   File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/third_party/python/virtualenv/virtualenv.py", line 796, in call_subprocess
INFO:     % (cmd_desc, proc.returncode))
INFO: OSError: Command /home/twilco/project...nvs/init/bin/python2 - setuptools pip wheel failed with error code 1

--- stderr
Traceback (most recent call last):
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/js/src/../../configure.py", line 132, in <module>
    sys.exit(main(sys.argv))
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/js/src/../../configure.py", line 38, in main
    sandbox.run(os.path.join(os.path.dirname(__file__), 'moz.configure'))
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/python/mozbuild/mozbuild/configure/__init__.py", line 431, in run
    self.include_file(path)
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/python/mozbuild/mozbuild/configure/__init__.py", line 422, in include_file
    exec_(code, self)
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/python/mozbuild/mozbuild/util.py", line 59, in exec_
    exec(object, globals, locals)
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/moz.configure", line 7, in <module>
    include('build/moz.configure/init.configure')
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/python/mozbuild/mozbuild/configure/__init__.py", line 745, in include_impl
    self.include_file(what)
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/python/mozbuild/mozbuild/configure/__init__.py", line 422, in include_file
    exec_(code, self)
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/python/mozbuild/mozbuild/util.py", line 59, in exec_
    exec(object, globals, locals)
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/build/moz.configure/init.configure", line 212, in <module>
    @imports('distutils.sysconfig')
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/python/mozbuild/mozbuild/configure/__init__.py", line 728, in decorator
    depends = DependsFunction(self, func, dependencies, when=when)
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/python/mozbuild/mozbuild/configure/__init__.py", line 125, in __init__
    sandbox._value_for(self)
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/python/mozbuild/mozbuild/configure/__init__.py", line 525, in _value_for
    return self._value_for_depends(obj)
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/python/mozbuild/mozbuild/util.py", line 947, in method_call
    cache[args] = self.func(instance, *args)
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/python/mozbuild/mozbuild/configure/__init__.py", line 534, in _value_for_depends
    value = obj.result()
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/python/mozbuild/mozbuild/util.py", line 947, in method_call
    cache[args] = self.func(instance, *args)
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/python/mozbuild/mozbuild/configure/__init__.py", line 151, in result
    return self._func(*resolved_args)
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/python/mozbuild/mozbuild/configure/__init__.py", line 1097, in wrapped
    return new_func(*args, **kwargs)
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/build/moz.configure/init.configure", line 261, in virtualenv_python
    manager.build(python)
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/python/mozbuild/mozbuild/virtualenv.py", line 473, in build
    self.create(python)
  File "/home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/python/mozbuild/mozbuild/virtualenv.py", line 212, in create
    'Failed to create virtualenv: %s' % self.virtualenv_root)
Exception: Failed to create virtualenv: /home/twilco/projects/servo/target/debug/build/mozjs_sys-a2af02b693aea2e3/out/_virtualenvs/init
make: *** [makefile.cargo:197: maybe-configure] Error 1
thread 'main' panicked at 'assertion failed: result.success()', /home/twilco/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/build.rs:133:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

warning: build failed, waiting for other jobs to finish...
error: build failed

The actual error that seems to be causing this is: INFO: OSError: Command /home/twilco/project...nvs/init/bin/python2 - setuptools pip wheel failed with error code 1. I tried some of the things in this thread, such as downgrading my Python 2 version to 2.7.9 and downgrading to virtualenv 15.1.0 via conda, but had no luck.

Anyone know how to resolve this? I'm running Manjaro Linux.

mozjs_sys build failed with gcc v4.9

I'm building Servo on Mac OS X using MacPorts. I usually build using the gcc49 package from MacPorts, but wound up with the following errors when running ./mach build. It's happily building again with Xcode by running sudo port select gcc none.

failed to run custom build command for `mozjs_sys v0.0.0 (https://github.com/servo/mozjs#19edb950)`
Process didn't exit successfully: `servo/components/servo/target/debug/build/mozjs_sys-476fe81cd282b5dc/build-script-build` (exit code: 101)
--- stdout
cd servo/components/servo/target/debug/build/mozjs_sys-476fe81cd282b5dc/out && \
    MOZ_TOOLS="" CC="cc" CPP="cc -E" CXX="c++" AR="ar" \
    servo/.cargo/git/checkouts/mozjs-2284529523a8d467/master/js/src/configure --enable-gczeal 

...

checking for modern C++ template specialization syntax support... no

--- stderr
configure: error: The C++ compiler does not support template specialization
make: *** [all] Error 1
thread '<main>' panicked at 'assertion failed: result.success()', servo/.cargo/git/checkouts/mozjs-2284529523a8d467/master/build.rs:16

[Warning] : Darwin System! Notifications not supported currently!
Build completed in 2725.38s

Compile everything in a subdirectory of $OUTDIR

We should compile things in a different subdirectory of $OUTDIR depending on whether we want the debug-mozjs feature or not, to avoid build issues within SM itself when changing the configuration in the same objdir.

Build fails on Windows 10

It says "makefile.cargo:65: extraneous text after 'else' directive"

Build mode (i.e. release or dev) doesn't affect on error. Also I tried to reinstall python as well as _virtualenv, and .cargo and .servo folders.

$ sh --version
GNU bash, version 4.3.42(5)-release (x86_64-pc-msys)

Fix build on windows when servo is located on a different drive than C:\

See https://bugzilla.mozilla.org/show_bug.cgi?id=1604667 for the background on this.
Short form:

Traceback (most recent call last):
  File "c:/Users/Marc/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/js/src/../../configure.py", line 132, in <module>
    sys.exit(main(sys.argv))
  File "c:/Users/Marc/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/js/src/../../configure.py", line 43, in main
    return config_status(config)
  File "c:/Users/Marc/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/5906588/mozjs/js/src/../../configure.py", line 127, in config_status
    return config_status(args=[], **encode(sanitized_config, encoding))
  File "c:\Users\Marc\.cargo\git\checkouts\mozjs-fa11ffc7d4f1cc2d\5906588\mozjs\python\mozbuild\mozbuild\config_status.py", line 146, in config_status
    the_backend.consume(definitions)
  File "c:\Users\Marc\.cargo\git\checkouts\mozjs-fa11ffc7d4f1cc2d\5906588\mozjs\python\mozbuild\mozbuild\backend\base.py", line 128, in consume
    if (not self.consume_object(obj) and
  File "c:\Users\Marc\.cargo\git\checkouts\mozjs-fa11ffc7d4f1cc2d\5906588\mozjs\python\mozbuild\mozbuild\backend\recursivemake.py", line 438, in consume_object
    consumed = CommonBackend.consume_object(self, obj)
  File "c:\Users\Marc\.cargo\git\checkouts\mozjs-fa11ffc7d4f1cc2d\5906588\mozjs\python\mozbuild\mozbuild\backend\common.py", line 134, in consume_object
    with self._get_preprocessor(obj) as pp:
  File "e:\mozilla-build\python\Lib\contextlib.py", line 17, in __enter__
    return self.gen.next()
  File "c:\Users\Marc\.cargo\git\checkouts\mozjs-fa11ffc7d4f1cc2d\5906588\mozjs\python\mozbuild\mozbuild\backend\base.py", line 320, in _get_preprocessor
    srcdir_rel=mozpath.relpath(srcdir, mozpath.dirname(obj.output_path)),
  File "c:\Users\Marc\.cargo\git\checkouts\mozjs-fa11ffc7d4f1cc2d\5906588\mozjs\python\mozbuild\mozpack\path.py", line 33, in relpath
    rel = normsep(os.path.relpath(path, start))
  File "e:\Marc\Documents\Coding\servo\target\debug\build\mozjs_sys-88004c1deb65babf\out\_virtualenvs\init\lib\ntpath.py", line 529, in relpath
    % (path_prefix, start_prefix))
ValueError: path is on drive c:, start on drive e:

I think we could detect this case (if os == "windows" && getdrive(cargo) != getdrive(this)) and either symlink or copy the sources into a subfolder of the current servo folder (topsrcdir).

I wonder if OUT_DIR isn't already enough for that?
I tried to specify it on the command line, but I'm 99% sure it got swallowed by mach.

Apart from that, it would be great if this would automatically work in those cases as technically speaking there is no real reason the code has to be in CARGO_HOME, I assume, as long as we manage to keep the local copy in sync.

For now I'm going to live with the workaround, freeing space on the SSD, which has the nice side effect of a much better build speed and git performance, but ultimatively this is something that could be fixed.

Fail to build with MSVC

I tried to build Servo with MSVC, but it fails from this crate.

The compiler complains that it cannot find "kernel32.lib", "user32.lib", etc. And after some investigation, it seems that the reason is that the configure script adds -TC to the compiler flag when doing the detection, which makes the compiler treat all these lib files as C source, and try looking for them only in the current directory rather than also searching in system paths.

I checked the config.log of Gecko when building with MSVC, and it seems there is no -TC flag there.

The complete log is:

$ cargo build
    Updating registry `https://github.com/rust-lang/crates.io-index`
 Downloading libz-sys v1.0.12
 Downloading pkg-config v0.3.9
 Downloading gcc v0.3.42
   Compiling libc v0.2.20
   Compiling mozjs_sys v0.0.0 (file:///C:/mozilla-source/mozjs)
   Compiling gcc v0.3.42
   Compiling pkg-config v0.3.9
   Compiling libz-sys v1.0.12
error: failed to run custom build command for `mozjs_sys v0.0.0 (file:///C:/mozilla-source/mozjs)`
process didn't exit successfully: `c:\mozilla-source\mozjs\target\debug\build\mozjs_sys-566feb6a71daf1b1\build-script-build` (exit code: 101)
--- stdout
[[ c:/mozilla-source/mozjs/mozjs/js/src/configure -ot c:/mozilla-source/mozjs/mozjs/js/src/configure.in ]] && touch c:/mozilla-source/mozjs/mozjs/js/src/configure || true
[[ c:/mozilla-source/mozjs/mozjs/js/src/old-configure -ot c:/mozilla-source/mozjs/mozjs/js/src/old-configure.in ]] && touch c:/mozilla-source/mozjs/mozjs/js/src/old-configure || true
! [[ c:/mozilla-source/mozjs/mozjs/js/src/configure.in -ot c:/mozilla-source/mozjs/mozjs/js/src/configure ]] && touch c:/mozilla-source/mozjs/mozjs/js/src/configure || true
! [[ c:/mozilla-source/mozjs/mozjs/js/src/old-configure.in -ot c:/mozilla-source/mozjs/mozjs/js/src/old-configure ]] && touch c:/mozilla-source/mozjs/mozjs/js/src/old-configure || true
if [[ c:/mozilla-source/mozjs/mozjs/js/src/configure -nt c:/mozilla-source/mozjs/target/debug/build/mozjs_sys-566feb6a71daf1b1/out/config.status ]] ; then \
          cd c:/mozilla-source/mozjs/target/debug/build/mozjs_sys-566feb6a71daf1b1/out && \
          PYTHON="c:/python27/python.exe" MOZ_TOOLS="/" \
          CC="" CPP="" CXX="" AR="" \
          c:/mozilla-source/mozjs/mozjs/js/src/configure --disable-jemalloc --disable-js-shell --disable-tests --build-backends=RecursiveMake --target=x86_64-pc-mingw32 --host=x86_64-pc-mingw32 --without-pthreads || (cat config.log && exit 1) ; \
        fi
Creating Python environment
New python executable in c:\mozilla-source\mozjs\target\debug\build\mozjs_sys-566feb6a71daf1b1\out\_virtualenv\Scripts\python.exe
Installing setuptools, pip, wheel...done.
running build_ext

building 'psutil._psutil_windows' extension

creating build

creating build\temp.win32-2.7

creating build\temp.win32-2.7\Release

creating build\temp.win32-2.7\Release\psutil

creating build\temp.win32-2.7\Release\psutil\arch

creating build\temp.win32-2.7\Release\psutil\arch\windows

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DPSUTIL_VERSION=311 -D_WIN32_WINNT=0x0602 -D_AVAIL_WINVER_=0x0602 -D_CRT_SECURE_NO_WARNINGS -DPSAPI_VERSION=1 -Ic:\python27\include -Ic:\mozilla-source\mozjs\target\debug\build\mozjs_sys-566feb6a71daf1b1\out\_virtualenv\PC /Tcpsutil/_psutil_windows.c /Fobuild\temp.win32-2.7\Release\psutil/_psutil_windows.obj

_psutil_windows.c

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DPSUTIL_VERSION=311 -D_WIN32_WINNT=0x0602 -D_AVAIL_WINVER_=0x0602 -D_CRT_SECURE_NO_WARNINGS -DPSAPI_VERSION=1 -Ic:\python27\include -Ic:\mozilla-source\mozjs\target\debug\build\mozjs_sys-566feb6a71daf1b1\out\_virtualenv\PC /Tcpsutil/_psutil_common.c /Fobuild\temp.win32-2.7\Release\psutil/_psutil_common.obj

_psutil_common.c

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DPSUTIL_VERSION=311 -D_WIN32_WINNT=0x0602 -D_AVAIL_WINVER_=0x0602 -D_CRT_SECURE_NO_WARNINGS -DPSAPI_VERSION=1 -Ic:\python27\include -Ic:\mozilla-source\mozjs\target\debug\build\mozjs_sys-566feb6a71daf1b1\out\_virtualenv\PC /Tcpsutil/arch/windows/process_info.c /Fobuild\temp.win32-2.7\Release\psutil/arch/windows/process_info.obj

process_info.c

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DPSUTIL_VERSION=311 -D_WIN32_WINNT=0x0602 -D_AVAIL_WINVER_=0x0602 -D_CRT_SECURE_NO_WARNINGS -DPSAPI_VERSION=1 -Ic:\python27\include -Ic:\mozilla-source\mozjs\target\debug\build\mozjs_sys-566feb6a71daf1b1\out\_virtualenv\PC /Tcpsutil/arch/windows/process_handles.c /Fobuild\temp.win32-2.7\Release\psutil/arch/windows/process_handles.obj

process_handles.c

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DPSUTIL_VERSION=311 -D_WIN32_WINNT=0x0602 -D_AVAIL_WINVER_=0x0602 -D_CRT_SECURE_NO_WARNINGS -DPSAPI_VERSION=1 -Ic:\python27\include -Ic:\mozilla-source\mozjs\target\debug\build\mozjs_sys-566feb6a71daf1b1\out\_virtualenv\PC /Tcpsutil/arch/windows/security.c /Fobuild\temp.win32-2.7\Release\psutil/arch/windows/security.obj

security.c

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DPSUTIL_VERSION=311 -D_WIN32_WINNT=0x0602 -D_AVAIL_WINVER_=0x0602 -D_CRT_SECURE_NO_WARNINGS -DPSAPI_VERSION=1 -Ic:\python27\include -Ic:\mozilla-source\mozjs\target\debug\build\mozjs_sys-566feb6a71daf1b1\out\_virtualenv\PC /Tcpsutil/arch/windows/inet_ntop.c /Fobuild\temp.win32-2.7\Release\psutil/arch/windows/inet_ntop.obj

inet_ntop.c

creating build\lib.win32-2.7

creating build\lib.win32-2.7\psutil

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:c:\python27\Libs /LIBPATH:c:\mozilla-source\mozjs\target\debug\build\mozjs_sys-566feb6a71daf1b1\out\_virtualenv\libs /LIBPATH:c:\mozilla-source\mozjs\target\debug\build\mozjs_sys-566feb6a71daf1b1\out\_virtualenv\PCbuild /LIBPATH:c:\mozilla-source\mozjs\target\debug\build\mozjs_sys-566feb6a71daf1b1\out\_virtualenv\PC\VS9.0 psapi.lib kernel32.lib advapi32.lib shell32.lib netapi32.lib iphlpapi.lib wtsapi32.lib ws2_32.lib /EXPORT:init_psutil_windows build\temp.win32-2.7\Release\psutil/_psutil_windows.obj build\temp.win32-2.7\Release\psutil/_psutil_common.obj build\temp.win32-2.7\Release\psutil/arch/windows/process_info.obj build\temp.win32-2.7\Release\psutil/arch/windows/process_handles.obj build\temp.win32-2.7\Release\psutil/arch/windows/security.obj build\temp.win32-2.7\Release\psutil/arch/windows/inet_ntop.obj /OUT:build\lib.win32-2.7\psutil\_psutil_windows.pyd /IMPLIB:build\temp.win32-2.7\Release\psutil\_psutil_windows.lib /MANIFESTFILE:build\temp.win32-2.7\Release\psutil\_psutil_windows.pyd.manifest

   Creating library build\temp.win32-2.7\Release\psutil\_psutil_windows.lib and object build\temp.win32-2.7\Release\psutil\_psutil_windows.exp

copying build\lib.win32-2.7\psutil\_psutil_windows.pyd -> psutil


Reexecuting in the virtualenv
checking for a shell... C:/mozilla-build/msys/bin/sh.exe
checking for host system type... x86_64-pc-mingw32
checking for target system type... x86_64-pc-mingw32
checking for the Android toolchain directory... not found
checking whether cross compiling... no
checking for pkg_config... not found
checking for yasm... c:/mozilla-build/yasm/yasm.EXE
checking yasm version... 1.3.0
checking for the target C compiler... 'c:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/BIN/amd64/cl.EXE'
checking whether the target C compiler can be used... yes
checking the target C compiler version... 19.00.24215
checking for the target C++ compiler... 'c:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/BIN/amd64/cl.EXE'
checking whether the target C++ compiler can be used... yes
checking the target C++ compiler version... 19.00.24215
checking for the host C compiler... 'c:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/BIN/amd64/cl.EXE'
checking whether the host C compiler can be used... yes
checking the host C compiler version... 19.00.24215
checking for the host C++ compiler... 'c:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/BIN/amd64/cl.EXE'
checking whether the host C++ compiler can be used... yes
checking the host C++ compiler version... 19.00.24215
checking for rustc... c:/Users/upsuper/.cargo/bin/rustc.EXE
checking rustc version... 1.14.0
checking for awk... C:/mozilla-build/msys/bin/gawk.EXE
checking for perl... C:/mozilla-build/msys/bin/perl.EXE
checking for minimum required perl version >= 5.006... 5.008008
checking for full perl installation... yes
checking for doxygen... not found
checking for xargs... C:/mozilla-build/msys/bin/xargs.EXE
checking for autoconf... C:/mozilla-build/msys/local/bin/autoconf-2.13
creating cache ./config.cache
checking host system type... x86_64-pc-mingw32
checking target system type... x86_64-pc-mingw32
checking build system type... x86_64-pc-mingw32
checking for gcc... cl.EXE
checking whether the C compiler (cl.EXE  ) works... yes
checking whether the C compiler (cl.EXE  ) is a cross-compiler... no
checking whether we are using GNU C... no
checking whether cl.EXE accepts -g... no
checking for c++... cl.EXE
checking whether the C++ compiler (cl.EXE  ) works... yes
checking whether the C++ compiler (cl.EXE  ) is a cross-compiler... no
checking whether we are using GNU C++... no
checking whether cl.EXE accepts -g... no
checking for ranlib... :
checking for ml64... /c/Program Files (x86)/Microsoft Visual Studio 14.0/VC/BIN/amd64/ml64
checking for ar... no
checking for ld... link
checking for strip... no
checking for windres... no
checking how to run the C preprocessor... cl.EXE -E -nologo
checking how to run the C++ preprocessor... cl.EXE -TP -E -nologo
checking for highest Windows version supported by this SDK... 0x0A00
checking for Windows SDK being recent enough... yes
checking for _getc_nolock... yes
checking for sb-conf... no
checking for ve... no
checking for make... /usr/local/bin/make
checking for X... no
checking that static assertion macros used in autoconf tests work... yes
checking for 64-bit OS... yes
checking whether the C++ compiler (cl.EXE  -TP -nologo -wd4345 -wd4351 -wd4800 -wd4819 -wd4595 -D_CRT_SECURE_NO_WARNINGS -wd5026 -wd5027 -Zc:sizedDealloc- -Zc:threadSafeInit- -D_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -FS -wd4244 -wd4267 -wd4251 -we4553 -GR-  -LARGEADDRESSAWARE -NXCOMPAT -DYNAMICBASE) actually is a C++ compiler... yes
checking NSPR selection... posix-wrapper
checking for valid optimization flags... yes
checking what kind of list files are supported by the linker... list
checking for posix_fadvise... no
checking for posix_fallocate... no
checking for malloc.h... yes
checking for alloca.h... no
checking for strndup... no
checking for posix_memalign... no
checking for memalign... no
checking for malloc_usable_size... no
checking for malloc.h... (cached) yes
checking whether malloc_usable_size definition can use const argument... yes
checking for valloc in malloc.h... no
checking for valloc in unistd.h... no
checking for setlocale... no
checking for localeconv... no
updating cache ./config.cache
creating ./config.data
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

configure:841: checking host system type
configure:862: checking target system type
configure:880: checking build system type
configure:2216: checking for gcc
configure:2329: checking whether the C compiler (cl.EXE  ) works
configure:2345: cl.EXE -o conftest    conftest.c  1>&5
Microsoft (R) C/C++ Optimizing Compiler Version 19.00.24215.1 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
conftest.c
Microsoft (R) Incremental Linker Version 14.00.24215.1
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:conftest.exe
/out:conftest.exe
conftest.obj
configure:2371: checking whether the C compiler (cl.EXE  ) is a cross-compiler
configure:2376: checking whether we are using GNU C
configure:2385: cl.EXE -E conftest.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.00.24215.1 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

conftest.c
configure:2404: checking whether cl.EXE accepts -g
configure:2440: checking for c++
configure:2472: checking whether the C++ compiler (cl.EXE  ) works
configure:2488: cl.EXE -o conftest    conftest.C  1>&5
Microsoft (R) C/C++ Optimizing Compiler Version 19.00.24215.1 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
conftest.C
Microsoft (R) Incremental Linker Version 14.00.24215.1
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:conftest.exe
/out:conftest.exe
conftest.obj
configure:2514: checking whether the C++ compiler (cl.EXE  ) is a cross-compiler
configure:2519: checking whether we are using GNU C++
configure:2528: cl.EXE -E conftest.C
Microsoft (R) C/C++ Optimizing Compiler Version 19.00.24215.1 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

conftest.C
configure:2547: checking whether cl.EXE accepts -g
configure:2581: checking for ranlib
configure:2613: checking for ml64
configure:2667: checking for ar
configure:2702: checking for ld
configure:2737: checking for strip
configure:2772: checking for windres
configure:2862: checking how to run the C preprocessor
configure:2942: checking how to run the C++ preprocessor
configure:3047: cl.EXE -c  -TC -nologo -wd4819  conftest.c 1>&5
conftest.c
configure:3072: cl.EXE -c  -TP -nologo -wd4345 -wd4351 -wd4800 -wd4819 -wd4595 -D_CRT_SECURE_NO_WARNINGS  conftest.C 1>&5
conftest.C
configure:3234: checking for highest Windows version supported by this SDK
configure:3277: checking for Windows SDK being recent enough
configure:3322: checking for _getc_nolock
configure:3354: cl.EXE -o conftest  -TC -nologo -wd4819 -D_HAS_EXCEPTIONS=0   conftest.c  1>&5
cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
conftest.c
configure:3392: checking for sb-conf
configure:3392: checking for ve
configure:3532: checking for make
configure:3655: checking for X
configure:3722: cl.EXE -E -nologo  conftest.c >/dev/null 2>conftest.out
configure(3718): fatal error C1083: Cannot open include file: 'X11/Intrinsic.h': No such file or directory
configure: failed program was:
#line 3717 "configure"
#include "confdefs.h"
#include <X11/Intrinsic.h>
configure:3798: cl.EXE -o conftest  -TC -nologo -wd4819 -D_HAS_EXCEPTIONS=0   conftest.c -lXt  1>&5
cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
cl : Command line warning D9002 : ignoring unknown option '-lXt'
conftest.c
conftest.obj : error LNK2019: unresolved external symbol XtMalloc referenced in function main
conftest.exe : fatal error LNK1120: 1 unresolved externals
configure: failed program was:
#line 3791 "configure"
#include "confdefs.h"

int main() {
XtMalloc()
; return 0; }
configure:4710: cl.EXE -c   conftest.c 1>&5
Microsoft (R) C/C++ Optimizing Compiler Version 19.00.24215.1 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

conftest.c
configure(4706): error C2065: '__thumb2__': undeclared identifier
configure: failed program was:
#line 4703 "configure"
#include "confdefs.h"

int main() {
return sizeof(__thumb2__);
; return 0; }
configure:4955: checking that static assertion macros used in autoconf tests work
configure:4976: cl.EXE -c  -TC -nologo -wd4819 -D_HAS_EXCEPTIONS=0  conftest.c 1>&5
conftest.c
configure:4993: cl.EXE -c  -TC -nologo -wd4819 -D_HAS_EXCEPTIONS=0  conftest.c 1>&5
conftest.c
configure(4993): error C2118: negative subscript
configure: failed program was:
#line 4986 "configure"
#include "confdefs.h"

#define CONFIGURE_STATIC_ASSERT(condition) CONFIGURE_STATIC_ASSERT_IMPL(condition, __LINE__)
#define CONFIGURE_STATIC_ASSERT_IMPL(condition, line) CONFIGURE_STATIC_ASSERT_IMPL2(condition, line)
#define CONFIGURE_STATIC_ASSERT_IMPL2(condition, line) typedef int static_assert_line_##line[(condition) ? 1 : -1]

int main() {
CONFIGURE_STATIC_ASSERT(0)
; return 0; }
configure:5016: cl.EXE -c  -TP -nologo -wd4345 -wd4351 -wd4800 -wd4819 -wd4595 -D_CRT_SECURE_NO_WARNINGS -wd5026 -wd5027 -Zc:sizedDealloc- -Zc:threadSafeInit- -D_HAS_EXCEPTIONS=0  conftest.C 1>&5
conftest.C
configure:5033: cl.EXE -c  -TP -nologo -wd4345 -wd4351 -wd4800 -wd4819 -wd4595 -D_CRT_SECURE_NO_WARNINGS -wd5026 -wd5027 -Zc:sizedDealloc- -Zc:threadSafeInit- -D_HAS_EXCEPTIONS=0  conftest.C 1>&5
conftest.C
configure(5034): error C2118: negative subscript
configure: failed program was:
#line 5026 "configure"
#include "confdefs.h"

#define CONFIGURE_STATIC_ASSERT(condition) CONFIGURE_STATIC_ASSERT_IMPL(condition, __LINE__)
#define CONFIGURE_STATIC_ASSERT_IMPL(condition, line) CONFIGURE_STATIC_ASSERT_IMPL2(condition, line)
#define CONFIGURE_STATIC_ASSERT_IMPL2(condition, line) typedef int static_assert_line_##line[(condition) ? 1 : -1]

int main() {
CONFIGURE_STATIC_ASSERT(0)
; return 0; }
configure:6993: checking for 64-bit OS
configure:7002: cl.EXE -c  -TC -nologo -wd4819 -D_HAS_EXCEPTIONS=0  conftest.c 1>&5
conftest.c
configure:7777: checking whether the C++ compiler (cl.EXE  -TP -nologo -wd4345 -wd4351 -wd4800 -wd4819 -wd4595 -D_CRT_SECURE_NO_WARNINGS -wd5026 -wd5027 -Zc:sizedDealloc- -Zc:threadSafeInit- -D_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -FS -wd4244 -wd4267 -wd4251 -we4553 -GR-  -LARGEADDRESSAWARE -NXCOMPAT -DYNAMICBASE) actually is a C++ compiler
configure:7796: cl.EXE -o conftest  -TP -nologo -wd4345 -wd4351 -wd4800 -wd4819 -wd4595 -D_CRT_SECURE_NO_WARNINGS -wd5026 -wd5027 -Zc:sizedDealloc- -Zc:threadSafeInit- -D_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -FS -wd4244 -wd4267 -wd4251 -we4553 -GR-   -LARGEADDRESSAWARE -NXCOMPAT -DYNAMICBASE conftest.C  1>&5
cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
cl : Command line warning D9002 : ignoring unknown option '-LARGEADDRESSAWARE'
cl : Command line warning D9002 : ignoring unknown option '-NXCOMPAT'
conftest.C
configure:10819: checking NSPR selection
configure:11448: checking for valid optimization flags
configure:11459: cl.EXE -c  -TC -nologo -wd4819 -D_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -FS -wd4244 -wd4267 -we4553 -O2  conftest.c 1>&5
conftest.c
configure:12444: checking what kind of list files are supported by the linker
configure:12449: cl.EXE -o conftest.obj -c  -TC -nologo -wd4819 -D_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -FS -wd4244 -wd4267 -we4553  conftest.c 1>&5
cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
conftest.c
configure:12451: cl.EXE -o conftest  -LARGEADDRESSAWARE -NXCOMPAT -DYNAMICBASE conftest.list  kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib psapi.lib 1>&5
Microsoft (R) C/C++ Optimizing Compiler Version 19.00.24215.1 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
cl : Command line warning D9002 : ignoring unknown option '-LARGEADDRESSAWARE'
cl : Command line warning D9002 : ignoring unknown option '-NXCOMPAT'
cl : Command line warning D9024 : unrecognized source file type 'conftest.list', object file assumed
Microsoft (R) Incremental Linker Version 14.00.24215.1
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:conftest.exe
/out:conftest.exe
conftest.list
kernel32.lib
user32.lib
gdi32.lib
winmm.lib
wsock32.lib
advapi32.lib
psapi.lib
conftest.list : fatal error LNK1107: invalid or corrupt file: cannot read at 0x14
configure:12455: cl.EXE -o conftest  -LARGEADDRESSAWARE -NXCOMPAT -DYNAMICBASE -Wl,-filelist,conftest.list  kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib psapi.lib 1>&5
Microsoft (R) C/C++ Optimizing Compiler Version 19.00.24215.1 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
cl : Command line error D8021 : invalid numeric argument '/Wl,-filelist,conftest.list'
configure:12457: cl.EXE -o conftest  -LARGEADDRESSAWARE -NXCOMPAT -DYNAMICBASE @conftest.list  kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib psapi.lib 1>&5
Microsoft (R) C/C++ Optimizing Compiler Version 19.00.24215.1 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
cl conftest.obj

cl : Command line warning D9002 : ignoring unknown option '-LARGEADDRESSAWARE'
cl : Command line warning D9002 : ignoring unknown option '-NXCOMPAT'
Microsoft (R) Incremental Linker Version 14.00.24215.1
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:conftest.exe
/out:conftest.exe
conftest.obj
kernel32.lib
user32.lib
gdi32.lib
winmm.lib
wsock32.lib
advapi32.lib
psapi.lib
configure:12808: checking for posix_fadvise
configure:12840: cl.EXE -o conftest -TC -nologo -wd4819 -D_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -FS -wd4244 -wd4267 -we4553   -LARGEADDRESSAWARE -NXCOMPAT -DYNAMICBASE conftest.c  kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib psapi.lib 1>&5
cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
cl : Command line warning D9002 : ignoring unknown option '-LARGEADDRESSAWARE'
cl : Command line warning D9002 : ignoring unknown option '-NXCOMPAT'
conftest.c
kernel32.lib
c1: fatal error C1083: Cannot open source file: 'kernel32.lib': No such file or directory
user32.lib
c1: fatal error C1083: Cannot open source file: 'user32.lib': No such file or directory
gdi32.lib
c1: fatal error C1083: Cannot open source file: 'gdi32.lib': No such file or directory
winmm.lib
c1: fatal error C1083: Cannot open source file: 'winmm.lib': No such file or directory
wsock32.lib
c1: fatal error C1083: Cannot open source file: 'wsock32.lib': No such file or directory
advapi32.lib
c1: fatal error C1083: Cannot open source file: 'advapi32.lib': No such file or directory
psapi.lib
c1: fatal error C1083: Cannot open source file: 'psapi.lib': No such file or directory
Generating Code...
configure: failed program was:
#line 12813 "configure"
#define posix_fadvise innocuous_posix_fadvise
#include "confdefs.h"
#undef posix_fadvise
/* System header to define __stub macros and hopefully few prototypes,
    which can conflict with char posix_fadvise(); below.  */
#define posix_fadvise innocuous_posix_fadvise
#include <assert.h>
#undef posix_fadvise
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char posix_fadvise();

int main() {

/* The GNU C library defines this for functions which it implements
    to always fail with ENOSYS.  Some functions are actually named
    something starting with __ and the normal name is an alias.  */
#if defined (__stub_posix_fadvise) || defined (__stub___posix_fadvise)
choke me
#else
posix_fadvise();
#endif

; return 0; }
configure:12808: checking for posix_fallocate
configure:12840: cl.EXE -o conftest -TC -nologo -wd4819 -D_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -FS -wd4244 -wd4267 -we4553   -LARGEADDRESSAWARE -NXCOMPAT -DYNAMICBASE conftest.c  kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib psapi.lib 1>&5
cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
cl : Command line warning D9002 : ignoring unknown option '-LARGEADDRESSAWARE'
cl : Command line warning D9002 : ignoring unknown option '-NXCOMPAT'
conftest.c
kernel32.lib
c1: fatal error C1083: Cannot open source file: 'kernel32.lib': No such file or directory
user32.lib
c1: fatal error C1083: Cannot open source file: 'user32.lib': No such file or directory
gdi32.lib
c1: fatal error C1083: Cannot open source file: 'gdi32.lib': No such file or directory
winmm.lib
c1: fatal error C1083: Cannot open source file: 'winmm.lib': No such file or directory
wsock32.lib
c1: fatal error C1083: Cannot open source file: 'wsock32.lib': No such file or directory
advapi32.lib
c1: fatal error C1083: Cannot open source file: 'advapi32.lib': No such file or directory
psapi.lib
c1: fatal error C1083: Cannot open source file: 'psapi.lib': No such file or directory
Generating Code...
configure: failed program was:
#line 12813 "configure"
#define posix_fallocate innocuous_posix_fallocate
#include "confdefs.h"
#undef posix_fallocate
/* System header to define __stub macros and hopefully few prototypes,
    which can conflict with char posix_fallocate(); below.  */
#define posix_fallocate innocuous_posix_fallocate
#include <assert.h>
#undef posix_fallocate
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char posix_fallocate();

int main() {

/* The GNU C library defines this for functions which it implements
    to always fail with ENOSYS.  Some functions are actually named
    something starting with __ and the normal name is an alias.  */
#if defined (__stub_posix_fallocate) || defined (__stub___posix_fallocate)
choke me
#else
posix_fallocate();
#endif

; return 0; }
configure:13086: checking for malloc.h
configure:13099: cl.EXE -c -TC -nologo -wd4819 -D_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -FS -wd4244 -wd4267 -we4553  conftest.c 1>&5
conftest.c
configure:13135: checking for alloca.h
configure:13148: cl.EXE -c -TC -nologo -wd4819 -D_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -FS -wd4244 -wd4267 -we4553  conftest.c 1>&5
conftest.c
configure(13142): fatal error C1083: Cannot open include file: 'alloca.h': No such file or directory
configure: failed program was:
#line 13140 "configure"
#include "confdefs.h"

#include <alloca.h>
int main() {

; return 0; }
configure:13181: checking for strndup
configure:13213: cl.EXE -o conftest -TC -nologo -wd4819 -D_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -FS -wd4244 -wd4267 -we4553   -LARGEADDRESSAWARE -NXCOMPAT -DYNAMICBASE conftest.c  kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib psapi.lib 1>&5
cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
cl : Command line warning D9002 : ignoring unknown option '-LARGEADDRESSAWARE'
cl : Command line warning D9002 : ignoring unknown option '-NXCOMPAT'
conftest.c
kernel32.lib
c1: fatal error C1083: Cannot open source file: 'kernel32.lib': No such file or directory
user32.lib
c1: fatal error C1083: Cannot open source file: 'user32.lib': No such file or directory
gdi32.lib
c1: fatal error C1083: Cannot open source file: 'gdi32.lib': No such file or directory
winmm.lib
c1: fatal error C1083: Cannot open source file: 'winmm.lib': No such file or directory
wsock32.lib
c1: fatal error C1083: Cannot open source file: 'wsock32.lib': No such file or directory
advapi32.lib
c1: fatal error C1083: Cannot open source file: 'advapi32.lib': No such file or directory
psapi.lib
c1: fatal error C1083: Cannot open source file: 'psapi.lib': No such file or directory
Generating Code...
configure: failed program was:
#line 13186 "configure"
#define strndup innocuous_strndup
#include "confdefs.h"
#undef strndup
/* System header to define __stub macros and hopefully few prototypes,
    which can conflict with char strndup(); below.  */
#define strndup innocuous_strndup
#include <assert.h>
#undef strndup
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char strndup();

int main() {

/* The GNU C library defines this for functions which it implements
    to always fail with ENOSYS.  Some functions are actually named
    something starting with __ and the normal name is an alias.  */
#if defined (__stub_strndup) || defined (__stub___strndup)
choke me
#else
strndup();
#endif

; return 0; }
configure:13181: checking for posix_memalign
configure:13213: cl.EXE -o conftest -TC -nologo -wd4819 -D_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -FS -wd4244 -wd4267 -we4553   -LARGEADDRESSAWARE -NXCOMPAT -DYNAMICBASE conftest.c  kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib psapi.lib 1>&5
cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
cl : Command line warning D9002 : ignoring unknown option '-LARGEADDRESSAWARE'
cl : Command line warning D9002 : ignoring unknown option '-NXCOMPAT'
conftest.c
kernel32.lib
c1: fatal error C1083: Cannot open source file: 'kernel32.lib': No such file or directory
user32.lib
c1: fatal error C1083: Cannot open source file: 'user32.lib': No such file or directory
gdi32.lib
c1: fatal error C1083: Cannot open source file: 'gdi32.lib': No such file or directory
winmm.lib
c1: fatal error C1083: Cannot open source file: 'winmm.lib': No such file or directory
wsock32.lib
c1: fatal error C1083: Cannot open source file: 'wsock32.lib': No such file or directory
advapi32.lib
c1: fatal error C1083: Cannot open source file: 'advapi32.lib': No such file or directory
psapi.lib
c1: fatal error C1083: Cannot open source file: 'psapi.lib': No such file or directory
Generating Code...
configure: failed program was:
#line 13186 "configure"
#define posix_memalign innocuous_posix_memalign
#include "confdefs.h"
#undef posix_memalign
/* System header to define __stub macros and hopefully few prototypes,
    which can conflict with char posix_memalign(); below.  */
#define posix_memalign innocuous_posix_memalign
#include <assert.h>
#undef posix_memalign
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char posix_memalign();

int main() {

/* The GNU C library defines this for functions which it implements
    to always fail with ENOSYS.  Some functions are actually named
    something starting with __ and the normal name is an alias.  */
#if defined (__stub_posix_memalign) || defined (__stub___posix_memalign)
choke me
#else
posix_memalign();
#endif

; return 0; }
configure:13181: checking for memalign
configure:13213: cl.EXE -o conftest -TC -nologo -wd4819 -D_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -FS -wd4244 -wd4267 -we4553   -LARGEADDRESSAWARE -NXCOMPAT -DYNAMICBASE conftest.c  kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib psapi.lib 1>&5
cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
cl : Command line warning D9002 : ignoring unknown option '-LARGEADDRESSAWARE'
cl : Command line warning D9002 : ignoring unknown option '-NXCOMPAT'
conftest.c
kernel32.lib
c1: fatal error C1083: Cannot open source file: 'kernel32.lib': No such file or directory
user32.lib
c1: fatal error C1083: Cannot open source file: 'user32.lib': No such file or directory
gdi32.lib
c1: fatal error C1083: Cannot open source file: 'gdi32.lib': No such file or directory
winmm.lib
c1: fatal error C1083: Cannot open source file: 'winmm.lib': No such file or directory
wsock32.lib
c1: fatal error C1083: Cannot open source file: 'wsock32.lib': No such file or directory
advapi32.lib
c1: fatal error C1083: Cannot open source file: 'advapi32.lib': No such file or directory
psapi.lib
c1: fatal error C1083: Cannot open source file: 'psapi.lib': No such file or directory
Generating Code...
configure: failed program was:
#line 13186 "configure"
#define memalign innocuous_memalign
#include "confdefs.h"
#undef memalign
/* System header to define __stub macros and hopefully few prototypes,
    which can conflict with char memalign(); below.  */
#define memalign innocuous_memalign
#include <assert.h>
#undef memalign
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char memalign();

int main() {

/* The GNU C library defines this for functions which it implements
    to always fail with ENOSYS.  Some functions are actually named
    something starting with __ and the normal name is an alias.  */
#if defined (__stub_memalign) || defined (__stub___memalign)
choke me
#else
memalign();
#endif

; return 0; }
configure:13244: checking for malloc_usable_size
configure:13276: cl.EXE -o conftest -TC -nologo -wd4819 -D_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -FS -wd4244 -wd4267 -we4553   -LARGEADDRESSAWARE -NXCOMPAT -DYNAMICBASE conftest.c  kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib psapi.lib 1>&5
cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
cl : Command line warning D9002 : ignoring unknown option '-LARGEADDRESSAWARE'
cl : Command line warning D9002 : ignoring unknown option '-NXCOMPAT'
conftest.c
kernel32.lib
c1: fatal error C1083: Cannot open source file: 'kernel32.lib': No such file or directory
user32.lib
c1: fatal error C1083: Cannot open source file: 'user32.lib': No such file or directory
gdi32.lib
c1: fatal error C1083: Cannot open source file: 'gdi32.lib': No such file or directory
winmm.lib
c1: fatal error C1083: Cannot open source file: 'winmm.lib': No such file or directory
wsock32.lib
c1: fatal error C1083: Cannot open source file: 'wsock32.lib': No such file or directory
advapi32.lib
c1: fatal error C1083: Cannot open source file: 'advapi32.lib': No such file or directory
psapi.lib
c1: fatal error C1083: Cannot open source file: 'psapi.lib': No such file or directory
Generating Code...
configure: failed program was:
#line 13249 "configure"
#define malloc_usable_size innocuous_malloc_usable_size
#include "confdefs.h"
#undef malloc_usable_size
/* System header to define __stub macros and hopefully few prototypes,
    which can conflict with char malloc_usable_size(); below.  */
#define malloc_usable_size innocuous_malloc_usable_size
#include <assert.h>
#undef malloc_usable_size
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char malloc_usable_size();

int main() {

/* The GNU C library defines this for functions which it implements
    to always fail with ENOSYS.  Some functions are actually named
    something starting with __ and the normal name is an alias.  */
#if defined (__stub_malloc_usable_size) || defined (__stub___malloc_usable_size)
choke me
#else
malloc_usable_size();
#endif

; return 0; }
configure:13308: checking for malloc.h
configure:13344: checking whether malloc_usable_size definition can use const argument
configure:13355: cl.EXE -c -TC -nologo -wd4819 -D_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -FS -wd4244 -wd4267 -we4553  conftest.c 1>&5
conftest.c
configure:13384: checking for valloc in malloc.h
conftest.c
configure:13409: checking for valloc in unistd.h
conftest.c
configure(13412): fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory
configure:13439: checking for setlocale
configure:13471: cl.EXE -o conftest -TC -nologo -wd4819 -D_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -FS -wd4244 -wd4267 -we4553   -LARGEADDRESSAWARE -NXCOMPAT -DYNAMICBASE conftest.c  kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib psapi.lib 1>&5
cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
cl : Command line warning D9002 : ignoring unknown option '-LARGEADDRESSAWARE'
cl : Command line warning D9002 : ignoring unknown option '-NXCOMPAT'
conftest.c
kernel32.lib
c1: fatal error C1083: Cannot open source file: 'kernel32.lib': No such file or directory
user32.lib
c1: fatal error C1083: Cannot open source file: 'user32.lib': No such file or directory
gdi32.lib
c1: fatal error C1083: Cannot open source file: 'gdi32.lib': No such file or directory
winmm.lib
c1: fatal error C1083: Cannot open source file: 'winmm.lib': No such file or directory
wsock32.lib
c1: fatal error C1083: Cannot open source file: 'wsock32.lib': No such file or directory
advapi32.lib
c1: fatal error C1083: Cannot open source file: 'advapi32.lib': No such file or directory
psapi.lib
c1: fatal error C1083: Cannot open source file: 'psapi.lib': No such file or directory
Generating Code...
configure: failed program was:
#line 13444 "configure"
#define setlocale innocuous_setlocale
#include "confdefs.h"
#undef setlocale
/* System header to define __stub macros and hopefully few prototypes,
    which can conflict with char setlocale(); below.  */
#define setlocale innocuous_setlocale
#include <assert.h>
#undef setlocale
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char setlocale();

int main() {

/* The GNU C library defines this for functions which it implements
    to always fail with ENOSYS.  Some functions are actually named
    something starting with __ and the normal name is an alias.  */
#if defined (__stub_setlocale) || defined (__stub___setlocale)
choke me
#else
setlocale();
#endif

; return 0; }
configure:13439: checking for localeconv
configure:13471: cl.EXE -o conftest -TC -nologo -wd4819 -D_HAS_EXCEPTIONS=0 -W3 -Gy -Zc:inline -FS -wd4244 -wd4267 -we4553   -LARGEADDRESSAWARE -NXCOMPAT -DYNAMICBASE conftest.c  kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib psapi.lib 1>&5
cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
cl : Command line warning D9002 : ignoring unknown option '-LARGEADDRESSAWARE'
cl : Command line warning D9002 : ignoring unknown option '-NXCOMPAT'
conftest.c
kernel32.lib
c1: fatal error C1083: Cannot open source file: 'kernel32.lib': No such file or directory
user32.lib
c1: fatal error C1083: Cannot open source file: 'user32.lib': No such file or directory
gdi32.lib
c1: fatal error C1083: Cannot open source file: 'gdi32.lib': No such file or directory
winmm.lib
c1: fatal error C1083: Cannot open source file: 'winmm.lib': No such file or directory
wsock32.lib
c1: fatal error C1083: Cannot open source file: 'wsock32.lib': No such file or directory
advapi32.lib
c1: fatal error C1083: Cannot open source file: 'advapi32.lib': No such file or directory
psapi.lib
c1: fatal error C1083: Cannot open source file: 'psapi.lib': No such file or directory
Generating Code...
configure: failed program was:
#line 13444 "configure"
#define localeconv innocuous_localeconv
#include "confdefs.h"
#undef localeconv
/* System header to define __stub macros and hopefully few prototypes,
    which can conflict with char localeconv(); below.  */
#define localeconv innocuous_localeconv
#include <assert.h>
#undef localeconv
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char localeconv();

int main() {

/* The GNU C library defines this for functions which it implements
    to always fail with ENOSYS.  Some functions are actually named
    something starting with __ and the normal name is an alias.  */
#if defined (__stub_localeconv) || defined (__stub___localeconv)
choke me
#else
localeconv();
#endif

; return 0; }

--- stderr
configure: warning: Unknown version of the Microsoft (R) Manifest Tool.
Traceback (most recent call last):
  File "config.status", line 359, in <module>
    config_status(**args)
  File "c:\mozilla-source\mozjs\mozjs\python\mozbuild\mozbuild\config_status.py", line 121, in config_status
    write_mozinfo(os.path.join(topobjdir, 'mozinfo.json'), env, os.environ)
  File "c:\mozilla-source\mozjs\mozjs\python\mozbuild\mozbuild\mozinfo.py", line 154, in write_mozinfo
    build_conf = build_dict(config, env)
  File "c:\mozilla-source\mozjs\mozjs\python\mozbuild\mozbuild\mozinfo.py", line 32, in build_dict
    the_mozconfig = mozconfig.MozconfigLoader(config.topsrcdir).find_mozconfig(env)
  File "c:\mozilla-source\mozjs\mozjs\python\mozbuild\mozbuild\mozconfig.py", line 143, in find_mozconfig
    'does not exist in any of ' + ', '.join(potential_roots))
mozbuild.mozconfig.MozconfigFindException: MOZCONFIG environment variable refers to a path that does not exist in any of c:\mozilla-source\mozjs\mozjs, c:\mozilla-source\mozjs\target\debug\build\mozjs_sys-566feb6a71daf1b1\out
Creating config.status
make: *** [maybe-configure] Error 1
thread 'main' panicked at 'assertion failed: result.success()', build.rs:43
note: Run with `RUST_BACKTRACE=1` for a backtrace.

Debug build failure on debian

@anholt over in servo/servo#13629:

I haven't marked ./mach build -d as passing because it's failing for me in mozjs:

/home/anholt/src/servo/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/old-configure: 72: ./config.cache: Syntax error: Unterminated quoted string

However, it's also failing without this patch. ./mach build -r is succeeding.

@anholt: Does it work if you remove the build directory to do a clean build (rm -rf target/debug/)?

I had mozjs issues today too (servo/servo#13619). Doesn't seem like it but...

Cross compiling from Linux to Windows doesn't work

I would like to be able to cross compile mozjs from Linux to Windows, but cargo build --target x86_64-pc-windows-gnu fails with this error:

error: failed to run custom build command for `mozjs_sys v0.61.13`

Caused by:
  process didn't exit successfully: `/home/sophie/temp/minimal-mozjs/target/debug/build/mozjs_sys-fff148f5ad053bb7/build-script-build` (exit code: 101)
--- stderr
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `"x86_64-unknown-linux-gnu"`,
 right: `"x86_64-pc-windows-msvc"`: Only cross-compiling from x64 is supported', /home/sophie/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.61.13/build.rs:23:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

warning: build failed, waiting for other jobs to finish...
error: build failed

This was tried in a minimal project containing only a dependency on mozjs v0.10.1. I have a toolchain set up for cross-compiling and didn't have any problems with cross compiling other -sys libraries.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.