am a60ff6c5: Merge "libc: Define new symbol visibility macros"
				
					
				
			* commit 'a60ff6c5b2ca76181b387d8c10aee22a2cbcf840': libc: Define new symbol visibility macros
This commit is contained in:
		
				
					committed by
					
						
						Android Git Automerger
					
				
			
			
				
	
			
			
			
					commit
					cfff36df2b
				
			@@ -97,6 +97,12 @@
 | 
				
			|||||||
#define	ASENTRY_NP(y)	_ENTRY(_ASM_LABEL(y))
 | 
					#define	ASENTRY_NP(y)	_ENTRY(_ASM_LABEL(y))
 | 
				
			||||||
#define	ASEND(y)	_END(_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
 | 
					#define	ASMSTR		.asciz
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if defined(__ELF__) && defined(PIC)
 | 
					#if defined(__ELF__) && defined(PIC)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -103,6 +103,12 @@
 | 
				
			|||||||
#define _ENTRY(x) \
 | 
					#define _ENTRY(x) \
 | 
				
			||||||
	.text; _ALIGN_TEXT; .globl x; .type x,@function; 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
 | 
					#ifdef GPROF
 | 
				
			||||||
# define _PROF_PROLOGUE	\
 | 
					# define _PROF_PROLOGUE	\
 | 
				
			||||||
	pushl %ebp; movl %esp,%ebp; call PIC_PLT(mcount); popl %ebp
 | 
						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	ENTRY(y)	_ENTRY(_C_LABEL(y)); _PROF_PROLOGUE
 | 
				
			||||||
#define	NENTRY(y)	_ENTRY(_C_LABEL(y))
 | 
					#define	NENTRY(y)	_ENTRY(_C_LABEL(y))
 | 
				
			||||||
 | 
					#define	END(y)		_END(_C_LABEL(y))
 | 
				
			||||||
#define	ASENTRY(y)	_ENTRY(_ASM_LABEL(y)); _PROF_PROLOGUE
 | 
					#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	ALTENTRY(name)	.globl _C_LABEL(name); _C_LABEL(name):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define	ASMSTR		.asciz
 | 
					#define	ASMSTR		.asciz
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -96,9 +96,24 @@
 | 
				
			|||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* GCC visibility helper macro */
 | 
					/* 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__							\
 | 
					#define __LIBC_HIDDEN__							\
 | 
				
			||||||
	__attribute__ ((visibility ("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	__IDSTRING(_n,_s)		__SECTIONSTRING(.ident,_s)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define	__RCSID(_s)			__IDSTRING(rcsid,_s)
 | 
					#define	__RCSID(_s)			__IDSTRING(rcsid,_s)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user