Closed Bug 1364458 Opened 7 years ago Closed 7 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: 7 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.