Build bionic unit tests for musl

Modify bionic unit tests that are built for glibc so that they also
build against musl.  They don't all pass though:

With glibc:
 2 SLOW TESTS
 4 TIMEOUT TESTS
313 FAILED TESTS
  YOU HAVE 2 DISABLED TESTS

With musl:
11 SLOW TESTS
11 TIMEOUT TESTS
363 FAILED TESTS
  YOU HAVE 2 DISABLED TESTS

Bug: 190084016
Test: m bionic-unit-tests-glibc with musl
Test: atest bionic-unit-tests-static
Test: atest --host bionic-unit-tests-glibc with glibc
Change-Id: I79b6eab04fed3cc4392450df5eef2579412edfe1
diff --git a/tests/math_test.cpp b/tests/math_test.cpp
index 9f7e65b..c53741c 100644
--- a/tests/math_test.cpp
+++ b/tests/math_test.cpp
@@ -201,7 +201,7 @@
 }
 
 TEST(MATH_TEST, __fpclassifyd) {
-#if defined(__GLIBC__)
+#if defined(__GLIBC__) || defined(MUSL)
 #define __fpclassifyd __fpclassify
 #endif
   ASSERT_EQ(FP_INFINITE, __fpclassifyd(HUGE_VAL));
@@ -246,6 +246,8 @@
 TEST(MATH_TEST, __isfinite) {
 #if defined(__GLIBC__)
 #define __isfinite __finite
+#elif defined(MUSL)
+#define __isfinite isfinite
 #endif
   ASSERT_TRUE(__isfinite(123.0));
   ASSERT_FALSE(__isfinite(HUGE_VAL));
@@ -255,6 +257,8 @@
 TEST(MATH_TEST, __isfinitef) {
 #if defined(__GLIBC__)
 #define __isfinitef __finitef
+#elif defined(MUSL)
+#define __isfinitef isfinite
 #endif
   ASSERT_TRUE(__isfinitef(123.0f));
   ASSERT_FALSE(__isfinitef(HUGE_VALF));
@@ -264,6 +268,8 @@
 TEST(MATH_TEST, isfinitef) {
 #if defined(__GLIBC__)
 #define isfinitef __finitef
+#elif defined(MUSL)
+#define isfinitef isfinite
 #endif
   ASSERT_TRUE(isfinitef(123.0f));
   ASSERT_FALSE(isfinitef(HUGE_VALF));
@@ -273,6 +279,8 @@
 TEST(MATH_TEST, __isfinitel) {
 #if defined(__GLIBC__)
 #define __isfinitel __finitel
+#elif defined(MUSL)
+#define __isfinitel isfinite
 #endif
   ASSERT_TRUE(__isfinitel(123.0L));
   ASSERT_FALSE(__isfinitel(HUGE_VALL));
@@ -282,6 +290,8 @@
 TEST(MATH_TEST, isfinitel) {
 #if defined(__GLIBC__)
 #define isfinitel __finitel
+#elif defined(MUSL)
+#define isfinitel isfinite
 #endif
   ASSERT_TRUE(isfinitel(123.0L));
   ASSERT_FALSE(isfinitel(HUGE_VALL));
@@ -309,30 +319,45 @@
 extern "C" int isinfl(long double);
 
 TEST(MATH_TEST, __isinf) {
+#if defined(MUSL)
+#define __isinf isinf
+#endif
   ASSERT_FALSE(__isinf(123.0));
   ASSERT_TRUE(__isinf(HUGE_VAL));
   ASSERT_TRUE(__isinf(-HUGE_VAL));
 }
 
 TEST(MATH_TEST, __isinff) {
+#if defined(MUSL)
+#define __isinff isinf
+#endif
   ASSERT_FALSE(__isinff(123.0f));
   ASSERT_TRUE(__isinff(HUGE_VALF));
   ASSERT_TRUE(__isinff(-HUGE_VALF));
 }
 
 TEST(MATH_TEST, isinff) {
+#if defined(MUSL)
+#define isinff isinf
+#endif
   ASSERT_FALSE(isinff(123.0f));
   ASSERT_TRUE(isinff(HUGE_VALF));
   ASSERT_TRUE(isinff(-HUGE_VALF));
 }
 
 TEST(MATH_TEST, __isinfl) {
+#if defined(MUSL)
+#define __isinfl isinf
+#endif
   ASSERT_FALSE(__isinfl(123.0L));
   ASSERT_TRUE(__isinfl(HUGE_VALL));
   ASSERT_TRUE(__isinfl(-HUGE_VALL));
 }
 
 TEST(MATH_TEST, isinfl) {
+#if defined(MUSL)
+#define isinfl isinf
+#endif
   ASSERT_FALSE(isinfl(123.0L));
   ASSERT_TRUE(isinfl(HUGE_VALL));
   ASSERT_TRUE(isinfl(-HUGE_VALL));
@@ -352,26 +377,41 @@
 extern "C" int isnanl(long double);
 
 TEST(MATH_TEST, __isnan) {
+#if defined(MUSL)
+#define __isnan isnan
+#endif
   ASSERT_FALSE(__isnan(123.0));
   ASSERT_TRUE(__isnan(nan("")));
 }
 
 TEST(MATH_TEST, __isnanf) {
+#if defined(MUSL)
+#define __isnanf isnan
+#endif
   ASSERT_FALSE(__isnanf(123.0f));
   ASSERT_TRUE(__isnanf(nanf("")));
 }
 
 TEST(MATH_TEST, isnanf) {
+#if defined(MUSL)
+#define isnanf isnan
+#endif
   ASSERT_FALSE(isnanf(123.0f));
   ASSERT_TRUE(isnanf(nanf("")));
 }
 
 TEST(MATH_TEST, __isnanl) {
+#if defined(MUSL)
+#define __isnanl isnan
+#endif
   ASSERT_FALSE(__isnanl(123.0L));
   ASSERT_TRUE(__isnanl(nanl("")));
 }
 
 TEST(MATH_TEST, isnanl) {
+#if defined(MUSL)
+#define isnanl isnan
+#endif
   ASSERT_FALSE(isnanl(123.0L));
   ASSERT_TRUE(isnanl(nanl("")));
 }
@@ -1345,11 +1385,16 @@
 }
 
 TEST(MATH_TEST, significandl) {
+#if !defined(MUSL)
   ASSERT_DOUBLE_EQ(0.0L, significandl(0.0L));
   ASSERT_DOUBLE_EQ(1.2L, significandl(1.2L));
   ASSERT_DOUBLE_EQ(1.53125L, significandl(12.25L));
+#else
+  GTEST_SKIP() << "musl doesn't have significandl";
+#endif
 }
 
+
 TEST(MATH_TEST, scalb) {
   ASSERT_DOUBLE_EQ(12.0, scalb(3.0, 2.0));
 }
@@ -1383,11 +1428,19 @@
 }
 
 TEST(MATH_TEST, gamma) {
+#if !defined(MUSL)
   ASSERT_DOUBLE_EQ(log(24.0), gamma(5.0));
+#else
+  GTEST_SKIP() << "musl doesn't have gamma";
+#endif
 }
 
 TEST(MATH_TEST, gammaf) {
+#if !defined(MUSL)
   ASSERT_FLOAT_EQ(logf(24.0f), gammaf(5.0f));
+#else
+  GTEST_SKIP() << "musl doesn't have gammaf";
+#endif
 }
 
 TEST(MATH_TEST, gamma_r) {