cmake is invoked during build but not declared as dependency via configure or mach bootstrap

RESOLVED FIXED in Firefox 60

Status

()

defect
P3
normal
Rank:
25
RESOLVED FIXED
Last year
Last year

People

(Reporter: jbeich, Assigned: jbeich)

Tracking

({regression})

Trunk
mozilla60
Unspecified
FreeBSD
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox-esr52 unaffected, firefox58 unaffected, firefox59 unaffected, firefox60 fixed)

Details

Attachments

(1 attachment)

$ c++ -v
FreeBSD clang version 4.0.0 (tags/RELEASE_400/final 297347) (based on LLVM 4.0.0)
Target: x86_64-unknown-freebsd11.1
Thread model: posix
InstalledDir: /usr/bin

$ rustc -vV
rustc 1.24.0
binary: rustc
commit-hash: unknown
commit-date: unknown
host: x86_64-unknown-freebsd
release: 1.24.0
LLVM version: 4.0

$ ./mach bootstrap
$ echo 'ac_add_options --disable-webrtc # bug 1437670 workaround' >>.mozconfig
$ ./mach build
[...]
 0:15.33    Compiling cubeb-sys v0.4.1
 0:15.41 libparser_htmlparser.a.desc
 0:15.52 error: failed to run custom build command for `cubeb-sys v0.4.1`
 0:15.52 process didn't exit successfully: `objdir/toolkit/library/release/build/cubeb-sys-2bf5ced683770d5f/build-script-build` (exit code: 101)
 0:15.52 --- stdout
 0:15.52 running: "cmake" "third_party/rust/cubeb-sys/libcubeb" "-DBUILD_SHARED_LIBS=OFF" "-DBUILD_TESTS=OFF" "-DCMAKE_INSTALL_PREFIX=objdir/toolkit/library/x86_64-unknown-freebsd/release/build/cubeb-sys-2de4da81b9fad58b/out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_C_COMPILER=/usr/bin/cc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_CXX_COMPILER=/usr/bin/c++" "-DCMAKE_BUILD_TYPE=Release"
 0:15.52
 0:15.52 --- stderr
 0:15.52 thread 'main' panicked at '
 0:15.52 failed to execute command: No such file or directory (os error 2)
 0:15.52 is `cmake` not installed?
 0:15.52
 0:15.53 build script failed, must exit now', third_party/rust/cmake/src/lib.rs:632:5
 0:15.53 stack backtrace:
 0:15.53    0:          0x105138b - std::sys::unix::backtrace::tracing::imp::unwind_backtrace::h8a68556765699628
 0:15.53    1:          0x105559e - std::sys_common::backtrace::print::hd9cd2cd1216dc9cb
 0:15.53    2:          0x1050c10 - std::panicking::default_hook::{{closure}}::h1c4745b6dc9ac2fd
 0:15.53    3:          0x1050951 - std::panicking::default_hook::h343503bbea399679
 0:15.53    4:          0x1050f97 - std::panicking::rust_panic_with_hook::hcf6685586ca984c2
 0:15.53    5:          0x1050dee - std::panicking::begin_panic::h1cc35849ea44407b
 0:15.53    6:          0x1050d5a - std::panicking::begin_panic_fmt::hf9347143b9897b85
 0:15.53    7:          0x1035ff8 - cmake::fail::h01dc57813448b429
 0:15.53    8:          0x10359b7 - cmake::run::hc6a4fd6391a07f72
 0:15.53    9:          0x10338e4 - cmake::Config::build::h831f0a0889fa56be
 0:15.53   10:          0x102d577 - build_script_build::main::he9ad91e2734b3879
 0:15.53   11:          0x102b5a5 - std::rt::lang_start::{{closure}}::hb214828e44fe163a
 0:15.54   12:          0x1050cb7 - std::panicking::try::do_call::hde3e6eab4ea20b2a
 0:15.54   13:          0x106b02e - __rust_maybe_catch_panic
 0:15.54                                at src/libpanic_unwind/lib.rs:101
 0:15.54   14:          0x1051177 - std::rt::lang_start_internal::hf081483bf15700db
 0:15.54   15:          0x102dd4b - main
 0:15.54   16:          0x102b4af - _start
 0:15.54   17:        0x8012e3fff - <unknown>
 0:15.54
CMake build is fragile, failing to properly inherit CC/CXX from mozbuild.

$ pkg install gcc7 cmake
$ export CC=gcc7 CXX=g++7
$ ./mach build
[...]
 0:02.73    Compiling cubeb-sys v0.4.1
 0:02.96 error: failed to run custom build command for `cubeb-sys v0.4.1`
 0:02.96 process didn't exit successfully: `objdir/toolkit/library/release/build/cubeb-sys-2bf5ced683770d5f/build-script-build` (exit code: 101)
 0:02.96 --- stdout
 0:02.96 running: "cmake" "third_party/rust/cubeb-sys/libcubeb" "-DBUILD_SHARED_LIBS=OFF" "-DBUILD_TESTS=OFF" "-DCMAKE_INSTALL_PREFIX=objdir/toolkit/library/x86_64-unknown-freebsd/release/build/cubeb-sys-2de4da81b9fad58b/out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_C_COMPILER= /usr/local/bin/gcc7 -std=gnu99" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_CXX_COMPILER= /usr/local/bin/g++7" "-DCMAKE_BUILD_TYPE=Release"
 0:02.96 -- The C compiler identification is unknown
 0:02.96 -- The CXX compiler identification is unknown
 0:02.96 -- Configuring incomplete, errors occurred!
 0:02.96 See also "objdir/toolkit/library/x86_64-unknown-freebsd/release/build/cubeb-sys-2de4da81b9fad58b/out/build/CMakeFiles/CMakeOutput.log".
 0:02.96 See also "objdir/toolkit/library/x86_64-unknown-freebsd/release/build/cubeb-sys-2de4da81b9fad58b/out/build/CMakeFiles/CMakeError.log".
 0:02.96
 0:02.97 --- stderr
 0:02.97 CMake Error at CMakeLists.txt:5 (project):
 0:02.97   The CMAKE_C_COMPILER:
 0:02.97
 0:02.97      /usr/local/bin/gcc7 -std=gnu99
 0:02.97
 0:02.98   is not a full path and was not found in the PATH.
 0:02.98
 0:02.98   Tell CMake where to find the compiler by setting either the environment
 0:02.99   variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
 0:02.99   the compiler, or to the compiler name if it is in the PATH.
 0:02.99
 0:02.99
 0:02.99 CMake Error at CMakeLists.txt:5 (project):
 0:02.99   The CMAKE_CXX_COMPILER:
 0:02.99
 0:03.00      /usr/local/bin/g++7
 0:03.00
 0:03.00   is not a full path and was not found in the PATH.
 0:03.00
 0:03.00   Tell CMake where to find the compiler by setting either the environment
 0:03.00   variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
 0:03.00   to the compiler, or to the compiler name if it is in the PATH.
[...]

$ egrep '^C(C|XX) ' objdir/config/autoconf.mk
CC = /usr/local/bin/gcc7 -std=gnu99
CXX = /usr/local/bin/g++7
cubeb-remoting isn't useful without sandboxing, so this mainly affects PulseAudio platforms other than Linux e.g., DragonFly, FreeBSD, NetBSD, Solaris.
OS: Unspecified → FreeBSD
Comment on attachment 8955973 [details]
Bug 1442753 - Use in-tree copy of cubeb-sys even when cubeb-remoting is disabled.

https://reviewboard.mozilla.org/r/224916/#review230882

::: toolkit/library/rust/shared/Cargo.toml:35
(Diff revision 2)
>  [features]
>  default = []
>  bindgen = ["geckoservo/bindgen"]
>  servo = ["geckoservo"]
>  quantum_render = ["webrender_bindings"]
>  cubeb-remoting = ["cubeb-sys", "audioipc-client", "audioipc-server"]

Aha! cubeb-remoting wasn't broken because it explicitly pulls cubeb-sys built with gecko-in-tree. Adding the same dependency to cubeb_pulse_rust would avoid propagating gecko-in-tree feature.
Comment on attachment 8955973 [details]
Bug 1442753 - Use in-tree copy of cubeb-sys even when cubeb-remoting is disabled.

https://reviewboard.mozilla.org/r/224916/#review230886

LGTM
Attachment #8955973 - Flags: review?(dglastonbury) → review+
Keywords: checkin-needed
Pushed by ebalazs@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/b1431462ceaf
Use in-tree copy of cubeb-sys even when cubeb-remoting is disabled. r=kamidphish
Keywords: checkin-needed
Rank: 25
Priority: -- → P3
https://hg.mozilla.org/mozilla-central/rev/b1431462ceaf
Status: NEW → RESOLVED
Closed: Last year
Resolution: --- → FIXED
Target Milestone: --- → mozilla60
Assignee: nobody → jbeich
You need to log in before you can comment on or make changes to this bug.