Closed Bug 1339033 Opened 3 years ago Closed 3 years ago

stylo: fails to build on Tier3 platforms

Categories

(Core :: CSS Parsing and Computation, defect)

Unspecified
FreeBSD
defect
Not set

Tracking

()

RESOLVED FIXED
mozilla54
Tracking Status
firefox51 --- unaffected
firefox52 --- unaffected
firefox53 --- unaffected
firefox54 --- fixed

People

(Reporter: jbeich, Assigned: jbeich)

References

Details

$ pkg install llvm40 python27
$ echo "export LLVM_CONFIG=$(which llvm-config40)" >>.mozconfig
$ echo "ac_add_options --enable-stylo" >>.mozconfig
$ ./mach bootstrap
$ ./mach build
[...]
force-cargo-library-build
   Compiling style v0.0.1 (file://servo/components/style)
error: failed to run custom build command for `style v0.0.1 (file://servo/components/style)`
process didn't exit successfully: `obj-x86_64-unknown-freebsd12.0/toolkit/library/gtest/rust/./release/build/style-2f09a98c1583a348/build-script-build` (exit code: 101)
--- stderr
thread '<unnamed>' panicked at 'Unknown platform', servo/components/style/build_gecko.rs:164
note: Run with `RUST_BACKTRACE=1` for a backtrace.
thread '<unnamed>' panicked at 'Unknown platform', servo/components/style/build_gecko.rs:164
thread '<unnamed>' panicked at 'Unknown platform', servo/components/style/build_gecko.rs:164
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Any', /buildslave/rust-buildbot/slave/stable-dist-rustc-cross-host-linux/build/src/libcore/result.rs:837

gmake[5]: *** [config/rules.mk:977: force-cargo-library-build] Error 10
<sarcasm>oh wow i'm super surprised!!</sarcasm>

Seems https://dxr.mozilla.org/mozilla-central/source/servo/components/style/build_gecko.rs#134 could reuse what was in rust.configure, no ?
Bug 1330412 may bust BSD buildbot in near future but when --disable-stylo is going to be removed remains unclear.

(In reply to Landry Breuil (:gaston) from comment #1)
> Seems servo/components/style/build_gecko.rs:134 could reuse what was in rust.configure, no ?

OS_* defines are part of IPC based on Chromium. Adding the following

  } else if cfg!(target_os = "freebsd") {
      builder = builder.clang_arg("-DOS_BSD=1").clang_arg("-DOS_FREEBSD=1")

still leads to

  $ ./mach
  [...]
  force-cargo-library-build
     Compiling style v0.0.1 (file://servo/components/style)
  error: failed to run custom build command for `style v0.0.1 (file://servo/components/style)`
  process didn't exit successfully: `obj-x86_64-unknown-freebsd12.0/toolkit/library/gtest/rust/./release/build/style-2f09a98c1583a348/build-script-build` (exit code: 101)
  --- stderr
  thread '<unnamed>' panicked at 'C'mon: Continue', src/libcore/result.rs:837
  note: Run with `RUST_BACKTRACE=1` for a backtrace.
  thread '<unnamed>' panicked at 'C'mon: Continue', src/libcore/result.rs:837
  thread '<unnamed>' panicked at 'C'mon: Continue', src/libcore/result.rs:837
  thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Any', src/libcore/result.rs:837
Blocks: stylo
That seems like a bindgen bug to me. I'll take a look, since I have a FreeBSD machine around (though I don't usually use it for Gecko development). I assumed it wouldn't build for other reasons, since the last time I tried I had to --disable-rust.
Also, probably worth trying with the latest version of bindgen, which isn't still in m-c, since I fixed a few OSX bugs there.

But yes, in general we should reuse what is in rust.configure, but take into account that this was not in m-c until _very_ recently (so it had to be maintained separately to have CI in servo/servo).
Hmm, builds fine with llvm39 but not llvm40.

https://github.com/servo/servo/pull/15529
https://hg.mozilla.org/mozilla-central/rev/33bd44c0e8db
https://hg.mozilla.org/mozilla-central/rev/765539a9bec1
Assignee: nobody → jbeich
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla54
You need to log in before you can comment on or make changes to this bug.