Ignore all __weak_alias in OpenBSD libC.
GCC assembler allows xyz to be redeclared as weak, by __weak_alias(xyz, _xyz), while _xyz is undefined. Clang does not like that but silently generates no code. It will reject its own .s file if the assembly code is saved first. Since we have no reason to define xyz or _xyz as weak symbol now, and _xyz is a macro to xyz, we simplify libC to have only xyz defined as global. BUG: 17186746 Change-Id: I24b154425838683cae69248cc750c59e26fd5467
This commit is contained in:
parent
fbe9d3dfeb
commit
b6b5cb5389
libc
include/sys
upstream-netbsd/android/include
upstream-openbsd/android/include
@ -34,10 +34,6 @@
|
||||
__asm__(".global " #alias "\n" \
|
||||
#alias " = " #sym);
|
||||
|
||||
#define __weak_alias(alias,sym) \
|
||||
__asm__(".weak " #alias "\n" \
|
||||
#alias " = " #sym);
|
||||
|
||||
/* We use __warnattr instead of __warn_references.
|
||||
* TODO: remove this and put an empty definition in one of the upstream-* compatibility headers.
|
||||
*/
|
||||
|
@ -17,11 +17,6 @@
|
||||
#ifndef _BIONIC_NETBSD_NAMESPACE_H_included
|
||||
#define _BIONIC_NETBSD_NAMESPACE_H_included
|
||||
|
||||
// NetBSD uses __weak_alias on a lot of functions. We don't want that.
|
||||
#if defined(__weak_alias)
|
||||
#undef __weak_alias
|
||||
#endif
|
||||
|
||||
__LIBC_HIDDEN__ int __res_enable_mt(void);
|
||||
__LIBC_HIDDEN__ int __res_disable_mt(void);
|
||||
|
||||
|
@ -32,6 +32,9 @@
|
||||
#define _warn warn
|
||||
#define _warnx warnx
|
||||
|
||||
/* Ignore all __weak_alias in OpenBSD. */
|
||||
#define __weak_alias(alias,sym)
|
||||
|
||||
/* OpenBSD's <ctype.h> uses these names, which conflicted with stlport.
|
||||
* Additionally, we changed the numeric/digit type from N to D for libcxx.
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user