mirror of
https://github.com/zebrajr/node.git
synced 2025-12-06 00:20:08 +01:00
build: remove explicit linker call to libm on macOS
/usr/lib/libm.tbd is available via libSystem.*.dylib and
reexports sanitizer symbols. When building for asan
this becomes an issue as the linker will resolve the symbols
from the system library rather from libclang_rt.*
For V8 that rely on specific version of these symbols
that get bundled as part of clang, for ex:
https://source.chromium.org/chromium/chromium/src/+/main:v8/src/heap/cppgc/platform.cc;l=93-97
accepting nullptr for shadow_offset in `asan_get_shadow_mapping`,
linking to system version that doesn't support this will lead to
a crash.
Clang driver eventually links with `-lSystem`
e82f93890d/clang/lib/Driver/ToolChains/Darwin.cpp (L1628-L1631),
this is done after linking the sanitizer libraries which
ensures right order of resolution for the symbols.
PR-URL: https://github.com/nodejs/node/pull/56901
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Shelley Vohr <shelley.vohr@gmail.com>
This commit is contained in:
parent
c0953d9de7
commit
756a24242e
2
deps/brotli/unofficial.gni
vendored
2
deps/brotli/unofficial.gni
vendored
|
|
@ -25,7 +25,7 @@ template("brotli_gn_build") {
|
|||
} else if (target_os == "freebsd") {
|
||||
defines = [ "OS_FREEBSD" ]
|
||||
}
|
||||
if (!is_win) {
|
||||
if (is_linux) {
|
||||
libs = [ "m" ]
|
||||
}
|
||||
if (is_clang || !is_win) {
|
||||
|
|
|
|||
2
deps/uv/unofficial.gni
vendored
2
deps/uv/unofficial.gni
vendored
|
|
@ -87,11 +87,11 @@ template("uv_gn_build") {
|
|||
]
|
||||
}
|
||||
if (is_posix) {
|
||||
libs = [ "m" ]
|
||||
ldflags = [ "-pthread" ]
|
||||
}
|
||||
if (is_linux) {
|
||||
libs += [
|
||||
"m",
|
||||
"dl",
|
||||
"rt",
|
||||
]
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user