Add -lm to the default libs for Linux & Darwin

libm is a default library for device builds, so default it for host
builds as well.

Also removes duplicate additions of -ldl, -lpthread, -lm and -lrt.

Test: m host
Change-Id: I8f7e799d48a1f427e48dcfb1d0ccba93c5f9780b
This commit is contained in:
Dan Willemsen
2017-09-26 20:23:34 -07:00
parent 1596e6ee11
commit 27991b7652
4 changed files with 2 additions and 9 deletions

View File

@@ -211,11 +211,12 @@ func (linker *baseLinker) linkerFlags(ctx ModuleContext, flags Flags) Flags {
flags.LdFlags = append(flags.LdFlags, linker.Properties.Host_ldlibs...) flags.LdFlags = append(flags.LdFlags, linker.Properties.Host_ldlibs...)
if !ctx.Windows() { if !ctx.Windows() {
// Add -ldl, -lpthread and -lrt to host builds to match the default behavior of device // Add -ldl, -lpthread, -lm and -lrt to host builds to match the default behavior of device
// builds // builds
flags.LdFlags = append(flags.LdFlags, flags.LdFlags = append(flags.LdFlags,
"-ldl", "-ldl",
"-lpthread", "-lpthread",
"-lm",
) )
if !ctx.Darwin() { if !ctx.Darwin() {
flags.LdFlags = append(flags.LdFlags, "-lrt") flags.LdFlags = append(flags.LdFlags, "-lrt")

View File

@@ -330,7 +330,6 @@ func (sanitize *sanitize) flags(ctx ModuleContext, flags Flags) Flags {
if ctx.Host() { if ctx.Host() {
// -nodefaultlibs (provided with libc++) prevents the driver from linking // -nodefaultlibs (provided with libc++) prevents the driver from linking
// libraries needed with -fsanitize=address. http://b/18650275 (WAI) // libraries needed with -fsanitize=address. http://b/18650275 (WAI)
flags.LdFlags = append(flags.LdFlags, "-lm", "-lpthread")
flags.LdFlags = append(flags.LdFlags, "-Wl,--no-as-needed") flags.LdFlags = append(flags.LdFlags, "-Wl,--no-as-needed")
} else { } else {
flags.CFlags = append(flags.CFlags, "-mllvm", "-asan-globals=0") flags.CFlags = append(flags.CFlags, "-mllvm", "-asan-globals=0")
@@ -387,10 +386,6 @@ func (sanitize *sanitize) flags(ctx ModuleContext, flags Flags) Flags {
if ctx.Host() { if ctx.Host() {
flags.CFlags = append(flags.CFlags, "-fno-sanitize-recover=all") flags.CFlags = append(flags.CFlags, "-fno-sanitize-recover=all")
flags.LdFlags = append(flags.LdFlags, sanitizeArg) flags.LdFlags = append(flags.LdFlags, sanitizeArg)
if ctx.Os() == android.Linux {
flags.LdFlags = append(flags.LdFlags, "-lrt")
}
flags.LdFlags = append(flags.LdFlags, "-ldl")
// Host sanitizers only link symbols in the final executable, so // Host sanitizers only link symbols in the final executable, so
// there will always be undefined symbols in intermediate libraries. // there will always be undefined symbols in intermediate libraries.
_, flags.LdFlags = removeFromList("-Wl,--no-undefined", flags.LdFlags) _, flags.LdFlags = removeFromList("-Wl,--no-undefined", flags.LdFlags)

View File

@@ -134,7 +134,6 @@ func (stl *stl) flags(ctx ModuleContext, flags Flags) Flags {
if !ctx.toolchain().Bionic() { if !ctx.toolchain().Bionic() {
flags.CppFlags = append(flags.CppFlags, "-nostdinc++") flags.CppFlags = append(flags.CppFlags, "-nostdinc++")
flags.LdFlags = append(flags.LdFlags, "-nodefaultlibs") flags.LdFlags = append(flags.LdFlags, "-nodefaultlibs")
flags.LdFlags = append(flags.LdFlags, "-lpthread", "-lm")
if ctx.staticBinary() { if ctx.staticBinary() {
flags.LdFlags = append(flags.LdFlags, hostStaticGccLibs[ctx.Os()]...) flags.LdFlags = append(flags.LdFlags, hostStaticGccLibs[ctx.Os()]...)
} else { } else {

View File

@@ -145,10 +145,8 @@ func (test *testDecorator) linkerFlags(ctx ModuleContext, flags Flags) Flags {
flags.CFlags = append(flags.CFlags, "-DGTEST_OS_WINDOWS") flags.CFlags = append(flags.CFlags, "-DGTEST_OS_WINDOWS")
case android.Linux: case android.Linux:
flags.CFlags = append(flags.CFlags, "-DGTEST_OS_LINUX") flags.CFlags = append(flags.CFlags, "-DGTEST_OS_LINUX")
flags.LdFlags = append(flags.LdFlags, "-lpthread")
case android.Darwin: case android.Darwin:
flags.CFlags = append(flags.CFlags, "-DGTEST_OS_MAC") flags.CFlags = append(flags.CFlags, "-DGTEST_OS_MAC")
flags.LdFlags = append(flags.LdFlags, "-lpthread")
} }
} else { } else {
flags.CFlags = append(flags.CFlags, "-DGTEST_OS_LINUX_ANDROID") flags.CFlags = append(flags.CFlags, "-DGTEST_OS_LINUX_ANDROID")