Closed Bug 1364458 Opened 8 years ago Closed 8 years ago

mach bootstrap installs a 32-bit LLVM even if a 64-bit version is required

Categories

(Firefox Build System :: General, defect)

50 Branch
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: emk, Unassigned)

References

Details

37:06.33 --- stderr 37:06.33 thread '<unnamed>' panicked at 'Unable to find libclang: "the `libclang` shared library could not be opened: c:/Users/kimu/.mozbuild/clang\\bin\\libclang.dll"', C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libcore\result.rs:837 37:06.33 stack backtrace: 37:06.34 0: 0x7ff6e6a5ae4a - std::panicking::default_hook::{{closure}} 37:06.35 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\panicking.rs:354 37:06.35 1: 0x7ff6e6a5a356 - std::panicking::default_hook 37:06.35 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\panicking.rs:365 37:06.35 2: 0x7ff6e6a5dd2d - std::panicking::rust_panic_with_hook 37:06.35 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\panicking.rs:553 37:06.35 3: 0x7ff6e6a5dbc8 - std::panicking::begin_panic<collections::string::String> 37:06.35 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\panicking.rs:515 37:06.35 4: 0x7ff6e6a5dae4 - std::panicking::begin_panic_fmt 37:06.35 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\panicking.rs:499 37:06.36 5: 0x7ff6e6a5da79 - std::panicking::rust_begin_panic 37:06.36 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\panicking.rs:475 37:06.37 6: 0x7ff6e6a67227 - core::panicking::panic_fmt 37:06.37 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libcore\panicking.rs:69 37:06.37 7: 0x7ff6e678d24d - core::result::unwrap_failed<collections::string::String> 37:06.37 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libcore\macros.rs:29 37:06.37 8: 0x7ff6e67868ec - std::sync::once::{{impl}}::call_once::{{closure}}<closure> 37:06.37 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\sync\once.rs:210 37:06.37 9: 0x7ff6e6a518a2 - std::sync::once::Once::call_inner 37:06.38 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\sync\once.rs:286 37:06.38 10: 0x7ff6e67ed2d9 - bindgen::Bindings::generate 37:06.38 at F:\m\mozilla-unified\third_party\rust\bindgen\src\lib.rs:1031 37:06.38 11: 0x7ff6e67ece32 - bindgen::Builder::generate 37:06.39 at F:\m\mozilla-unified\third_party\rust\bindgen\src\lib.rs:777 37:06.39 12: 0x7ff6e677079c - build_script_build::build_gecko::bindings::write_binding_file 37:06.40 at F:\m\mozilla-unified\servo\components\style\build_gecko.rs:244 37:06.40 13: 0x7ff6e677856d - build_script_build::build_gecko::bindings::generate_bindings 37:06.41 at F:\m\mozilla-unified\servo\components\style\build_gecko.rs:830 37:06.42 14: 0x7ff6e6a5f081 - panic_unwind::__rust_maybe_catch_panic 37:06.42 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libpanic_unwind\lib.rs:98 37:06.43 15: 0x7ff6e6768ce4 - alloc::boxed::{{impl}}::call_box<(),closure> 37:06.43 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\liballoc\boxed.rs:605 37:06.43 16: 0x7ff6e6a5903e - std::sys::imp::thread::{{impl}}::new::thread_start 37:06.43 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\sys\windows\thread.rs:50 37:06.44 17: 0x7ff937cd2773 - BaseThreadInitThunk 37:06.44 thread '<unnamed>thread '' panicked at 'Once instance has previously been poisoned<unnamed>' panicked at 'Once instance has previously been poisoned', C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\sync\once.rs', C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\sync\once.rs::261 37:06.45 261 37:06.45 stack backtrace: 37:06.45 0: 0x7ff6e6a5ae4a - std::panicking::default_hook::{{closure}} 37:06.46 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\panicking.rs:354 37:06.47 1: 0x7ff6e6a5a356 - std::panicking::default_hook 37:06.47 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\panicking.rs:365 37:06.48 2: 0x7ff6e6a5dd2d - std::panicking::rust_panic_with_hook 37:06.48 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\panicking.rs:553 37:06.48 3: 0x7ff6e6a5db69 - std::panicking::begin_panic<&str> 37:06.48 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\panicking.rs:515 37:06.48 4: 0x7ff6e6a5190a - std::sync::once::Once::call_inner 37:06.49 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\sync\once.rs:261 37:06.49 5: 0x7ff6e67ed2d9 - bindgen::Bindings::generate 37:06.50 at F:\m\mozilla-unified\third_party\rust\bindgen\src\lib.rs:1031 37:06.51 6: 0x7ff6e67ece32 - bindgen::Builder::generate 37:06.51 at F:\m\mozilla-unified\third_party\rust\bindgen\src\lib.rs:777 37:06.51 7: 0x7ff6e677079c - build_script_build::build_gecko::bindings::write_binding_file 37:06.52 at F:\m\mozilla-unified\servo\components\style\build_gecko.rs:244 37:06.52 8: 0x7ff6e6773da5 - build_script_build::build_gecko::bindings::generate_structs 37:06.53 at F:\m\mozilla-unified\servo\components\style\build_gecko.rs:578 37:06.53 9: 0x7ff6e6a5f081 - panic_unwind::__rust_maybe_catch_panic 37:06.54 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libpanic_unwind\lib.rs:98 37:06.55 10: 0x7ff6e6768824 - alloc::boxed::{{impl}}::call_box<(),closure> 37:06.55 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\liballoc\boxed.rs:605 37:06.55 11: 0x7ff6e6a5903e - std::sys::imp::thread::{{impl}}::new::thread_start 37:06.55 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\sys\windows\thread.rs:50 37:06.55 12: 0x7ff937cd2773 - BaseThreadInitThunk 37:06.56 thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Any', C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libcore\result.rs:837 37:06.56 stack backtrace: 37:06.57 0: 0x7ff6e6a5ae4a - std::panicking::default_hook::{{closure}} 37:06.57 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\panicking.rs:354 37:06.58 1: 0x7ff6e6a5a356 - std::panicking::default_hook 37:06.58 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\panicking.rs:365 37:06.58 2: 0x7ff6e6a5dd2d - std::panicking::rust_panic_with_hook 37:06.58 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\panicking.rs:553 37:06.59 3: 0x7ff6e6a5db69 - std::panicking::begin_panic<&str> 37:06.60 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\panicking.rs:515 37:06.60 4: 0x7ff6e6a5190a - std::sync::once::Once::call_inner 37:06.60 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\sync\once.rs:261 37:06.60 5: 0x7ff6e67ed2d9 - bindgen::Bindings::generate 37:06.60 at F:\m\mozilla-unified\third_party\rust\bindgen\src\lib.rs:1031 37:06.60 6: 0x7ff6e67ece32 - bindgen::Builder::generate 37:06.61 at F:\m\mozilla-unified\third_party\rust\bindgen\src\lib.rs:777 37:06.62 7: 0x7ff6e677079c - build_script_build::build_gecko::bindings::write_binding_file 37:06.62 at F:\m\mozilla-unified\servo\components\style\build_gecko.rs:244 37:06.62 8: 0x7ff6e6773da5 - build_script_build::build_gecko::bindings::generate_structs 37:06.62 at F:\m\mozilla-unified\servo\components\style\build_gecko.rs:578 37:06.62 9: 0x7ff6e6a5f081 - panic_unwind::__rust_maybe_catch_panic 37:06.62 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libpanic_unwind\lib.rs:98 37:06.63 10: 0x7ff6e6768a84 - alloc::boxed::{{impl}}::call_box<(),closure> 37:06.64 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\liballoc\boxed.rs:605 37:06.64 11: 0x7ff6e6a5903e - std::sys::imp::thread::{{impl}}::new::thread_start 37:06.64 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\sys\windows\thread.rs:50 37:06.65 12: 0x7ff937cd2773 - BaseThreadInitThunk 37:06.65 stack backtrace: 37:06.65 0: 0x7ff6e6a5ae4a - std::panicking::default_hook::{{closure}} 37:06.65 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\panicking.rs:354 37:06.65 1: 0x7ff6e6a5a356 - std::panicking::default_hook 37:06.65 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\panicking.rs:365 37:06.66 2: 0x7ff6e6a5dd2d - std::panicking::rust_panic_with_hook 37:06.67 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\panicking.rs:553 37:06.67 3: 0x7ff6e6a5dbc8 - std::panicking::begin_panic<collections::string::String> 37:06.67 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\panicking.rs:515 37:06.67 4: 0x7ff6e6a5dae4 - std::panicking::begin_panic_fmt 37:06.68 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\panicking.rs:499 37:06.69 5: 0x7ff6e6a5da79 - std::panicking::rust_begin_panic 37:06.69 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\panicking.rs:475 37:06.69 6: 0x7ff6e6a67227 - core::panicking::panic_fmt 37:06.69 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libcore\panicking.rs:69 37:06.70 7: 0x7ff6e6762ea7 - core::result::unwrap_failed<Box<Any>> 37:06.70 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libcore\macros.rs:29 37:06.70 8: 0x7ff6e677b8ce - build_script_build::main 37:06.70 at F:\m\mozilla-unified\servo\components\style\build.rs:88 37:06.70 9: 0x7ff6e6a5f081 - panic_unwind::__rust_maybe_catch_panic 37:06.70 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libpanic_unwind\lib.rs:98 37:06.70 10: 0x7ff6e6a5e31a - std::rt::lang_start 37:06.72 at C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libstd\rt.rs:51 37:06.72 11: 0x7ff6e6a6d738 - __scrt_common_main_seh 37:06.72 at f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253 37:06.72 12: 0x7ff937cd2773 - BaseThreadInitThunk 37:06.72 37:06.73 f:/m/mozilla-unified/config/rules.mk:1020: recipe for target 'force-cargo-library-build' failed 37:06.73 mozmake.EXE[5]: *** [force-cargo-library-build] Error 101 37:06.73 f:/m/mozilla-unified/config/recurse.mk:73: recipe for target 'toolkit/library/rust/target' failed 37:06.73 mozmake.EXE[4]: *** [toolkit/library/rust/target] Error 2 37:06.73 mozmake.EXE[4]: *** Waiting for unfinished jobs....
On Windows, you currently still need to specify the path of libclang and clang.exe manually in mozconfig IIRC. This is one thing we need to solve before we can switch stylo to build by default.
Blocks: 1310852
I added ac_add_options --enable-stylo ac_add_options --with-libclang-path=c:/Users/kimu/.mozbuild/clang/lib ac_add_options --with-clang-path=c:/Users/kimu/.mozbuild/clang/bin/clang.exe as |mach bootstrap| indicated when I got the error in comment #0. I also tried ac_add_options --with-libclang-path=/c/Users/kimu/.mozbuild/clang/lib ac_add_options --with-clang-path=/c/Users/kimu/.mozbuild/clang/bin/clang.exe and ac_add_options --with-libclang-path=C:\Users\kimu\.mozbuild\clang\lib ac_add_options --with-clang-path=C:\Users\kimu\.mozbuild\clang\bin\clang.exe , still no luck. I confirmed that I have C:\Users\kimu\.mozbuild\clang\bin\libclang.dll, but the build tool does not detect the DLL for some reasons according to the following message: > 37:06.33 thread '<unnamed>' panicked at 'Unable to find libclang: "the `libclang` shared library could not be opened: c:/Users/kimu/.mozbuild/clang\\bin\\libclang.dll"', C:\bot\slave\stable-dist-rustc-win-msvc-64\build\src\libcore\result.rs:837 > 37:06.33 stack backtrace: Do you have any other suggestions?
I use: ac_add_options --with-libclang-path="C:/Program\ Files/LLVM/lib" ac_add_options --with-clang-path="C:/Program\ Files/LLVM/bin/clang.exe" Which seems to work for me. Not sure if it helps.
(In reply to Xidorn Quan [:xidorn] UTC+10 from comment #3) > I use: > ac_add_options --with-libclang-path="C:/Program\ Files/LLVM/lib" > ac_add_options --with-clang-path="C:/Program\ Files/LLVM/bin/clang.exe" > > Which seems to work for me. Not sure if it helps. Oh, build passed if I install and use a 64-bit version from <http://llvm.org/builds/>. Thanks for the hint. |mach bootstrap| is really footgunish.
Summary: Can't build with stylo eabled on Windows → mach bootstrap installs a 32-bit LLVM even if a 64-bit version is required
Also I had to use a local patch to install LLVM using |mach bootstrap|.
Depends on: 1364406
Blocks: 1314355
Component: CSS Parsing and Computation → Build Config
Depends on: 1364588
Fixed by bug 1364588.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.