index bb846b7fd74369e6bc950b91d3a5fea1ad04c50a..b5db13e644a9cc84d73f8fcc49f887a5c7fc5589 100644 (file)
#define __SECTIONSTRING(_sec, _str) \
__asm__(".section " #_sec "\n\t.asciz \"" _str "\"\n\t.previous")
-/* 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")))
+/* Used to tag non-static symbols that are private and never exposed by the shared library. */
+#define __LIBC_HIDDEN__ __attribute__((visibility ("hidden")))
+
+/* Like __LIBC_HIDDEN__, but preserves binary compatibility for LP32. */
+#ifdef __LP64__
+#define __LIBC64_HIDDEN__ __LIBC_HIDDEN__
+#else
+#define __LIBC64_HIDDEN__
+#endif
+
+/* Used to tag non-static symbols that are public and exposed by the shared library. */
+#define __LIBC_ABI_PUBLIC__ __attribute__((visibility ("default")))
#define __IDSTRING(_n,_s) __SECTIONSTRING(.ident,_s)