mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-26 19:55:39 +00:00
40e81c774e
Procedural macros for rust are compiled as dynamic libraries. The compiler subsequently loads those libraries at runtime when it compiles crates which make use of them. We pass the generic LDFLAGS to our linker wrapper which ensures cargo links static libraries with the correct flags. However this also means that any final system dependency libraries end up linked into the procedural macro dynamic libraries whether they use them or not. When building on macOS 10.7, this causes a SIGTRAP when dlopen calls CFInitialize for system libraries like Cocoa off the main thread. We believe this is a macOS bug, reported fixed in macOS 10.9. https://openradar.appspot.com/7209349 Work around the issue by stripping those libraries and Frameworks from the linker flags we pass to cargo. We could do a more careful job of parsing and removing all -framework and -lfoo arguments inside the linker script, but since this is a temporary issue while we're using older build machines, I thought just stripping them once in the build system was simpler. MozReview-Commit-ID: CGXD8ARvojj --HG-- extra : rebase_source : 33f28e8fbafb43dbdd257d9162a6e792fca79e51 |
||
---|---|---|
.. | ||
external | ||
faster | ||
makefiles | ||
Moz | ||
tests | ||
android-common.mk | ||
autoconf-js.mk.in | ||
autoconf.mk.in | ||
baseconfig.mk | ||
check_js_msg_encoding.py | ||
check_js_opcode.py | ||
check_macroassembler_style.py | ||
check_source_count.py | ||
check_spidermonkey_style.py | ||
check_vanilla_allocations.py | ||
config.mk | ||
createprecomplete.py | ||
doxygen.cfg.in | ||
emptyvars-js.mk.in | ||
emptyvars.mk.in | ||
expandlibs_config.py | ||
expandlibs_exec.py | ||
expandlibs_gen.py | ||
expandlibs.py | ||
find_OOM_errors.py | ||
gcc_hidden.h | ||
gcc-stl-wrapper.template.h | ||
install.bat | ||
link.py | ||
make-stl-wrappers.py | ||
Makefile.in | ||
milestone.txt | ||
moz.build | ||
mozunit.py | ||
MozZipFile.py | ||
msvc-stl-wrapper.template.h | ||
nsinstall.c | ||
nsinstall.py | ||
pathsub.c | ||
pathsub.h | ||
printconfigsetting.py | ||
printprereleasesuffix.py | ||
pythonpath.py | ||
rebuild_check.py | ||
recurse.mk | ||
rules.mk | ||
static-checking-config.mk | ||
stl-headers | ||
string-format.js | ||
system-headers | ||
version_win.pl | ||
version.mk |