Merge "libc: Define new symbol visibility macros"
This commit is contained in:
commit
a60ff6c5b2
3 changed files with 31 additions and 0 deletions
|
@ -97,6 +97,12 @@
|
|||
#define ASENTRY_NP(y) _ENTRY(_ASM_LABEL(y))
|
||||
#define ASEND(y) _END(_ASM_LABEL(y))
|
||||
|
||||
#ifdef __ELF__
|
||||
#define ENTRY_PRIVATE(y) ENTRY(y); .hidden _C_LABEL(y)
|
||||
#else
|
||||
#define ENTRY_PRIVATE(y) ENTRY(y)
|
||||
#endif
|
||||
|
||||
#define ASMSTR .asciz
|
||||
|
||||
#if defined(__ELF__) && defined(PIC)
|
||||
|
|
|
@ -103,6 +103,12 @@
|
|||
#define _ENTRY(x) \
|
||||
.text; _ALIGN_TEXT; .globl x; .type x,@function; x:
|
||||
|
||||
#define _ASM_SIZE(x) .size x, .-x;
|
||||
|
||||
#define _END(x) \
|
||||
.fnend; \
|
||||
_ASM_SIZE(x)
|
||||
|
||||
#ifdef GPROF
|
||||
# define _PROF_PROLOGUE \
|
||||
pushl %ebp; movl %esp,%ebp; call PIC_PLT(mcount); popl %ebp
|
||||
|
@ -112,8 +118,12 @@
|
|||
|
||||
#define ENTRY(y) _ENTRY(_C_LABEL(y)); _PROF_PROLOGUE
|
||||
#define NENTRY(y) _ENTRY(_C_LABEL(y))
|
||||
#define END(y) _END(_C_LABEL(y))
|
||||
#define ASENTRY(y) _ENTRY(_ASM_LABEL(y)); _PROF_PROLOGUE
|
||||
|
||||
#define ENTRY_PRIVATE(y) ENTRY(y); .hidden _C_LABEL(y)
|
||||
|
||||
|
||||
#define ALTENTRY(name) .globl _C_LABEL(name); _C_LABEL(name):
|
||||
|
||||
#define ASMSTR .asciz
|
||||
|
|
|
@ -96,9 +96,24 @@
|
|||
#endif
|
||||
|
||||
/* GCC visibility helper macro */
|
||||
/* This must be used to tag non-static functions that are private, i.e.
|
||||
* never exposed by the shared library. */
|
||||
#define __LIBC_HIDDEN__ \
|
||||
__attribute__ ((visibility ("hidden")))
|
||||
|
||||
/* This must be used to tag non-static functions that are public, i.e.
|
||||
* exposed by the shared library, and part of the stable NDK ABI */
|
||||
#define __LIBC_ABI_PUBLIC__ \
|
||||
__attribute__ ((visibility ("default")))
|
||||
|
||||
/* This must be used to tag non-static functions that must be exported
|
||||
* by the shared library, but whose implementation is private to the
|
||||
* platform. For now this is equivalent to __LIBC_ABI_PUBLIC__, but we
|
||||
* may want to change this later.
|
||||
*/
|
||||
#define __LIBC_ABI_PRIVATE__ \
|
||||
__attribute__ ((visibility ("default")))
|
||||
|
||||
#define __IDSTRING(_n,_s) __SECTIONSTRING(.ident,_s)
|
||||
|
||||
#define __RCSID(_s) __IDSTRING(rcsid,_s)
|
||||
|
|
Loading…
Reference in a new issue