Add platform specific version tags.
Some functions were added at different times on different platforms.
This should hopefully get most of them.
Bug: http://b/28178111
Change-Id: I85fdf92779a2f3277e9b537c6bfc7216790c607a
diff --git a/libc/include/math.h b/libc/include/math.h
index 6d0db17..97539d7 100644
--- a/libc/include/math.h
+++ b/libc/include/math.h
@@ -127,6 +127,13 @@
#endif
#endif /* __BSD_VISIBLE */
+/* scalbln, scalbnf, and scalblnl were unavailable on x86 until API level 18 */
+#if defined(__i386__)
+#define __INTRODUCED_IN_X86 __INTRODUCED_IN
+#else
+#define __INTRODUCED_IN_X86(x)
+#endif
+
/*
* Most of these functions depend on the rounding mode and have the side
* effect of raising floating-point exceptions, so they are not declared
@@ -237,7 +244,7 @@
double nearbyint(double);
double round(double);
double scalbln(double, long);
-double scalbn(double, int);
+double scalbn(double, int) __INTRODUCED_IN_X86(18);
double tgamma(double);
double trunc(double);
#endif
@@ -322,7 +329,7 @@
float remquof(float, float, int *);
float rintf(float);
float scalblnf(float, long);
-float scalbnf(float, int);
+float scalbnf(float, int) __INTRODUCED_IN_X86(18);
float truncf(float);
float fdimf(float, float);
@@ -415,7 +422,7 @@
long double rintl(long double) __INTRODUCED_IN(21);
long double roundl(long double);
long double scalblnl(long double, long);
-long double scalbnl(long double, int);
+long double scalbnl(long double, int) __INTRODUCED_IN_X86(18);
long double sinhl(long double) __INTRODUCED_IN(21);
long double sinl(long double) __INTRODUCED_IN(21);
long double sqrtl(long double) __INTRODUCED_IN(21);