From b48fb83936cb0ec6a8c4a90be63a594def05e3b7 Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Tue, 19 Mar 2024 20:19:23 +0000 Subject: [PATCH] Defer to clang for `--hash-style`. We fixed the clang driver to "do the right thing" based on target api level years ago, but these manual workarounds predate that (or were copy & pasted from places that predated that). We don't need them any more. See https://github.com/android/ndk/issues/2005 for more detail. Change-Id: I995741b8606e389e8de8272f1cc532624516245a --- cc/config/arm64_device.go | 1 - cc/config/arm64_linux_host.go | 1 - cc/config/arm_device.go | 1 - cc/config/riscv64_device.go | 5 ----- cc/config/x86_64_device.go | 1 - cc/config/x86_device.go | 4 +--- cc/config/x86_linux_bionic_host.go | 1 - cc/linker.go | 7 ------- 8 files changed, 1 insertion(+), 20 deletions(-) diff --git a/cc/config/arm64_device.go b/cc/config/arm64_device.go index 0de9e055f..10342a3ba 100644 --- a/cc/config/arm64_device.go +++ b/cc/config/arm64_device.go @@ -49,7 +49,6 @@ var ( } arm64Ldflags = []string{ - "-Wl,--hash-style=gnu", "-Wl,-z,separate-code", "-Wl,-z,separate-loadable-segments", } diff --git a/cc/config/arm64_linux_host.go b/cc/config/arm64_linux_host.go index 335ad5672..f7d190b0b 100644 --- a/cc/config/arm64_linux_host.go +++ b/cc/config/arm64_linux_host.go @@ -42,7 +42,6 @@ var ( "-Wl,-z,now", "-Wl,--build-id=md5", "-Wl,--fatal-warnings", - "-Wl,--hash-style=gnu", "-Wl,--no-undefined-version", } diff --git a/cc/config/arm_device.go b/cc/config/arm_device.go index 603bc6de7..3284e4b0a 100644 --- a/cc/config/arm_device.go +++ b/cc/config/arm_device.go @@ -38,7 +38,6 @@ var ( } armLdflags = []string{ - "-Wl,--hash-style=gnu", "-Wl,-m,armelf", // Revert this after b/322359235 is fixed "-Wl,-mllvm", "-Wl,-enable-shrink-wrap=false", diff --git a/cc/config/riscv64_device.go b/cc/config/riscv64_device.go index a5dea55bb..f1334703d 100644 --- a/cc/config/riscv64_device.go +++ b/cc/config/riscv64_device.go @@ -42,11 +42,6 @@ var ( riscv64ArchVariantCflags = map[string][]string{} riscv64Ldflags = []string{ - // TODO: sysv hashes are the default for other architectures because gnu - // hashes weren't supported until api level 23, but riscv64 didn't exist - // back then, and could move today... - // https://android.googlesource.com/platform/bionic/+/main/android-changes-for-ndk-developers.md#gnu-hashes-availible-in-api-level-23 - "-Wl,--hash-style=gnu", // This is already the driver's Android default, but duplicated here (and // above) for ease of experimentation with additional extensions. "-march=rv64gcv_zba_zbb_zbs", diff --git a/cc/config/x86_64_device.go b/cc/config/x86_64_device.go index 12119a712..ca2c2b7b6 100644 --- a/cc/config/x86_64_device.go +++ b/cc/config/x86_64_device.go @@ -30,7 +30,6 @@ var ( x86_64Cppflags = []string{} x86_64Ldflags = []string{ - "-Wl,--hash-style=gnu", "-Wl,-z,separate-loadable-segments", } diff --git a/cc/config/x86_device.go b/cc/config/x86_device.go index 2faa6709f..60b833906 100644 --- a/cc/config/x86_device.go +++ b/cc/config/x86_device.go @@ -33,9 +33,7 @@ var ( x86Cppflags = []string{} - x86Ldflags = []string{ - "-Wl,--hash-style=gnu", - } + x86Ldflags = []string{} x86ArchVariantCflags = map[string][]string{ "": []string{ diff --git a/cc/config/x86_linux_bionic_host.go b/cc/config/x86_linux_bionic_host.go index f80be9915..99d4ebb7f 100644 --- a/cc/config/x86_linux_bionic_host.go +++ b/cc/config/x86_linux_bionic_host.go @@ -46,7 +46,6 @@ var ( "-Wl,-z,now", "-Wl,--build-id=md5", "-Wl,--fatal-warnings", - "-Wl,--hash-style=gnu", "-Wl,--no-undefined-version", // Use the device gcc toolchain diff --git a/cc/linker.go b/cc/linker.go index 2c50db2d6..9686697c8 100644 --- a/cc/linker.go +++ b/cc/linker.go @@ -530,13 +530,6 @@ func (linker *baseLinker) linkerFlags(ctx ModuleContext, flags Flags) Flags { flags.Global.LdFlags = append(flags.Global.LdFlags, RpathFlags(ctx)...) } - if ctx.useSdk() { - // The bionic linker now has support gnu style hashes (which are much faster!), but shipping - // to older devices requires the old style hash. Fortunately, we can build with both and - // it'll work anywhere. - flags.Global.LdFlags = append(flags.Global.LdFlags, "-Wl,--hash-style=both") - } - flags.Global.LdFlags = append(flags.Global.LdFlags, toolchain.ToolchainLdflags()) // Version_script is not needed when linking stubs lib where the version