Merge "cdefs.h: add artificial attribute to FORTIFY_SOURCE functions"
diff --git a/libc/include/sys/cdefs.h b/libc/include/sys/cdefs.h
index 5082327..6f238a9 100644
--- a/libc/include/sys/cdefs.h
+++ b/libc/include/sys/cdefs.h
@@ -53,6 +53,9 @@
#ifndef __has_builtin
#define __has_builtin(x) 0
#endif
+#ifndef __has_attribute
+#define __has_attribute(x) 0
+#endif
/*
@@ -534,8 +537,12 @@
#endif
#define __bos0(s) __builtin_object_size((s), 0)
+#if __GNUC_PREREQ(4,3) || __has_attribute(__artificial__)
+#define __BIONIC_FORTIFY_INLINE extern __inline__ __always_inline __attribute__((gnu_inline)) __attribute__((__artificial__))
+#else
#define __BIONIC_FORTIFY_INLINE extern __inline__ __always_inline __attribute__((gnu_inline))
#endif
+#endif
#define __BIONIC_FORTIFY_UNKNOWN_SIZE ((size_t) -1)
/* Used to tag non-static symbols that are private and never exposed by the shared library. */
diff --git a/tests/Android.mk b/tests/Android.mk
index 1358800..9759c71 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -152,11 +152,10 @@
$(foreach test,1 2, \
$(eval fortify$(test)-tests-$(compiler)_cflags := \
$(test_cflags) \
+ -Wno-error \
-U_FORTIFY_SOURCE \
-D_FORTIFY_SOURCE=$(test) \
-DTEST_NAME=Fortify$(test)_$(compiler)); \
- $(eval fortify$(test)-tests-$(compiler)_cflags_host := \
- -Wno-error); \
$(eval fortify$(test)-tests-$(compiler)_src_files := \
fortify_test.cpp); \
$(eval fortify_libs += fortify$(test)-tests-$(compiler)); \