threads.h: avoid defining gettid on glibc >= 2.32

Glibc >=2.32 exposes a gettid() which clashes with libcutils
thread.h, so add a check to not expose it if building against
newer glibc (ChromiumOS will still use glibc 2.27 besides 2.32).

Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1182060
Test: Builds without errors on both glibc 2.32 and 2.27.

Change-Id: Ib71fa1bc9fa185e3668002407dbed05a80c87740
This commit is contained in:
Adrian Ratiu 2021-03-01 20:04:37 +02:00 committed by Jim Pollock
parent 3aab337293
commit a742158667
2 changed files with 4 additions and 1 deletions

View file

@ -31,7 +31,9 @@ extern "C" {
//
// Deprecated: use android::base::GetThreadId instead, which doesn't truncate on Mac/Windows.
//
#if !defined(__GLIBC__) || __GLIBC__ >= 2 && __GLIBC_MINOR__ < 32
extern pid_t gettid();
#endif
#ifdef __cplusplus
}

View file

@ -25,8 +25,9 @@
#include <windows.h>
#endif
#if defined(__BIONIC__)
#if defined(__BIONIC__) || defined(__GLIBC__) && __GLIBC_MINOR__ >= 32
// No definition needed for Android because we'll just pick up bionic's copy.
// No definition needed for Glibc >= 2.32 because it exposes its own copy.
#else
pid_t gettid() {
#if defined(__APPLE__)