The presence of the android_get_device_api_level symbol is used to
detect Android Q or later. Use the suggestion by Ryan Prichard and
look for it in libc.so and not in the entire program where someone
else might have defined it.
Manually tested on an Android Q amd64 emulator and arm64 Pixel.
Updates #29674
Change-Id: Iaef35d8f8910037b3690aa21f319e216a05a9a73
Reviewed-on: https://go-review.googlesource.com/c/go/+/170127
Run-TryBot: Elias Naur <mail@eliasnaur.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
void *handle, *get_ver;
// Check for Android Q where we can use the free TLS_SLOT_APP slot.
- handle = dlopen(NULL, RTLD_LAZY);
+ handle = dlopen("libc.so", RTLD_LAZY);
if (handle == NULL) {
fatalf("inittls: failed to dlopen main program");
return;