diff options
author | Halton Huo <halton.huo@intel.com> | 2014-02-21 18:05:29 +0800 |
---|---|---|
committer | Halton Huo <halton.huo@intel.com> | 2014-03-05 16:34:20 +0800 |
commit | f0870c3bfeba99482392fafe6d5f49615393c2b1 (patch) | |
tree | 1890250f9c08baa19ddd7b0a6fccaab1f95dc3d4 | |
parent | bef5016491eed41521f514d5c5528e2274689948 (diff) | |
download | bionic-f0870c3bfeba99482392fafe6d5f49615393c2b1.zip bionic-f0870c3bfeba99482392fafe6d5f49615393c2b1.tar.gz bionic-f0870c3bfeba99482392fafe6d5f49615393c2b1.tar.bz2 |
Fix some pthread symbols build as C++ symbol under x64 lunch.
Functions protected with !defined(__LP64__) will be get build as C++
symbols for X64 build. This is not the desired work. So protect the
implementation with !defined(__LP64__) as well.
Change-Id: I4ef50ec36e46289ab308063e24f6c5ac61a6ca8d
-rw-r--r-- | libc/bionic/pthread_attr.cpp | 7 | ||||
-rw-r--r-- | libc/bionic/pthread_cond.cpp | 6 |
2 files changed, 8 insertions, 5 deletions
diff --git a/libc/bionic/pthread_attr.cpp b/libc/bionic/pthread_attr.cpp index fdf2965..d597c7e 100644 --- a/libc/bionic/pthread_attr.cpp +++ b/libc/bionic/pthread_attr.cpp @@ -94,18 +94,21 @@ int pthread_attr_getstacksize(const pthread_attr_t* attr, size_t* stack_size) { return 0; } -int pthread_attr_setstackaddr(pthread_attr_t*, void*) { +#if !defined(__LP64__) +// TODO: this exists only for backward binary compatibility on 32 bit platforms. +extern "C" int pthread_attr_setstackaddr(pthread_attr_t*, void*) { // This was removed from POSIX.1-2008, and is not implemented on bionic. // Needed for ABI compatibility with the NDK. return ENOSYS; } -int pthread_attr_getstackaddr(const pthread_attr_t* attr, void** stack_addr) { +extern "C" int pthread_attr_getstackaddr(const pthread_attr_t* attr, void** stack_addr) { // This was removed from POSIX.1-2008. // Needed for ABI compatibility with the NDK. *stack_addr = (char*)attr->stack_base + attr->stack_size; return 0; } +#endif // !defined(__LP64__) int pthread_attr_setstack(pthread_attr_t* attr, void* stack_base, size_t stack_size) { if ((stack_size & (PAGE_SIZE - 1) || stack_size < PTHREAD_STACK_MIN)) { diff --git a/libc/bionic/pthread_cond.cpp b/libc/bionic/pthread_cond.cpp index 213bcd7..c09e972 100644 --- a/libc/bionic/pthread_cond.cpp +++ b/libc/bionic/pthread_cond.cpp @@ -206,14 +206,14 @@ extern "C" int pthread_cond_timedwait_monotonic(pthread_cond_t* cond, pthread_mu extern "C" int pthread_cond_timedwait_monotonic_np(pthread_cond_t* cond, pthread_mutex_t* mutex, const timespec* abstime) { return __pthread_cond_timedwait(cond, mutex, abstime, CLOCK_MONOTONIC); } -#endif // !defined(__LP64__) -int pthread_cond_timedwait_relative_np(pthread_cond_t* cond, pthread_mutex_t* mutex, const timespec* reltime) { +extern "C" int pthread_cond_timedwait_relative_np(pthread_cond_t* cond, pthread_mutex_t* mutex, const timespec* reltime) { return __pthread_cond_timedwait_relative(cond, mutex, reltime); } -int pthread_cond_timeout_np(pthread_cond_t* cond, pthread_mutex_t* mutex, unsigned ms) { +extern "C" int pthread_cond_timeout_np(pthread_cond_t* cond, pthread_mutex_t* mutex, unsigned ms) { timespec ts; timespec_from_ms(ts, ms); return __pthread_cond_timedwait_relative(cond, mutex, &ts); } +#endif // !defined(__LP64__) |