diff --git a/libc/Android.mk b/libc/Android.mk
index 7d438f4..3e37ca7 100644
--- a/libc/Android.mk
+++ b/libc/Android.mk
@@ -548,13 +548,6 @@
   libc_common_cflags += -DMALLOC_ALIGNMENT=$(BOARD_MALLOC_ALIGNMENT)
 endif
 
-# Define ANDROID_SMP appropriately.
-ifeq ($(TARGET_CPU_SMP),true)
-    libc_common_cflags += -DANDROID_SMP=1
-else
-    libc_common_cflags += -DANDROID_SMP=0
-endif
-
 # Define some common conlyflags
 libc_common_conlyflags := \
     -std=gnu99
diff --git a/libc/private/bionic_atomic_arm.h b/libc/private/bionic_atomic_arm.h
index 2156e6a..0cb832f 100644
--- a/libc/private/bionic_atomic_arm.h
+++ b/libc/private/bionic_atomic_arm.h
@@ -17,12 +17,7 @@
 #define BIONIC_ATOMIC_ARM_H
 
 __ATOMIC_INLINE__ void __bionic_memory_barrier() {
-#if defined(ANDROID_SMP) && ANDROID_SMP == 1
   __asm__ __volatile__ ( "dmb ish" : : : "memory" );
-#else
-  /* A simple compiler barrier. */
-  __asm__ __volatile__ ( "" : : : "memory" );
-#endif
 }
 
 /* Compare-and-swap, without any explicit barriers. Note that this function
diff --git a/libc/private/bionic_atomic_inline.h b/libc/private/bionic_atomic_inline.h
index b834a27..f8032c3 100644
--- a/libc/private/bionic_atomic_inline.h
+++ b/libc/private/bionic_atomic_inline.h
@@ -30,10 +30,6 @@
  *   on SMP systems emits an appropriate instruction.
  */
 
-#if !defined(ANDROID_SMP)
-# error "Must define ANDROID_SMP before including atomic-inline.h"
-#endif
-
 #ifdef __cplusplus
 extern "C" {
 #endif
diff --git a/libc/private/bionic_atomic_mips.h b/libc/private/bionic_atomic_mips.h
index 5e08116..83f75fe 100644
--- a/libc/private/bionic_atomic_mips.h
+++ b/libc/private/bionic_atomic_mips.h
@@ -21,12 +21,7 @@
  */
 
 __ATOMIC_INLINE__ void __bionic_memory_barrier() {
-#if defined(ANDROID_SMP) && ANDROID_SMP == 1
   __asm__ __volatile__ ( "sync" : : : "memory" );
-#else
-  /* A simple compiler barrier. */
-  __asm__ __volatile__ ( "" : : : "memory" );
-#endif
 }
 
 /* Compare-and-swap, without any explicit barriers. Note that this function
diff --git a/libc/private/bionic_atomic_x86.h b/libc/private/bionic_atomic_x86.h
index 89639c8..e63df93 100644
--- a/libc/private/bionic_atomic_x86.h
+++ b/libc/private/bionic_atomic_x86.h
@@ -20,12 +20,7 @@
  * platform for a multi-core device.
  */
 __ATOMIC_INLINE__ void __bionic_memory_barrier() {
-#if defined(ANDROID_SMP) && ANDROID_SMP == 1
   __asm__ __volatile__ ( "mfence" : : : "memory" );
-#else
-  /* A simple compiler barrier. */
-  __asm__ __volatile__ ( "" : : : "memory" );
-#endif
 }
 
 /* Compare-and-swap, without any explicit barriers. Note that this function
diff --git a/tests/Android.build.mk b/tests/Android.build.mk
index 9c5df0e..0754a7b 100644
--- a/tests/Android.build.mk
+++ b/tests/Android.build.mk
@@ -35,7 +35,10 @@
 endif
 
 LOCAL_CLANG := $($(module)_clang_$(build_type))
+
+ifneq ($($(module)_allow_asan),true)
 LOCAL_ADDRESS_SANITIZER := false
+endif
 
 LOCAL_FORCE_STATIC_EXECUTABLE := $($(module)_force_static_executable)
 
diff --git a/tests/Android.mk b/tests/Android.mk
index 967ddbd..92d7976 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -317,6 +317,8 @@
 bionic-unit-tests-glibc_cppflags := $(test_cppflags)
 bionic-unit-tests-glibc_ldflags := -Wl,--export-dynamic
 
+bionic-unit-tests-glibc_allow_asan := true
+
 module := bionic-unit-tests-glibc
 module_tag := optional
 build_type := host
diff --git a/tests/netdb_test.cpp b/tests/netdb_test.cpp
index ef2c8da..0cebe4e 100644
--- a/tests/netdb_test.cpp
+++ b/tests/netdb_test.cpp
@@ -21,6 +21,23 @@
 #include <netdb.h>
 #include <netinet/in.h>
 
+TEST(netdb, getaddrinfo_NULL_host) {
+  // It's okay for the host argument to be NULL, as long as service isn't.
+  addrinfo* ai = NULL;
+  ASSERT_EQ(0, getaddrinfo(NULL, "smtp", NULL, &ai));
+  // (sockaddr_in::sin_port and sockaddr_in6::sin6_port overlap.)
+  ASSERT_EQ(25U, ntohs(reinterpret_cast<sockaddr_in*>(ai->ai_addr)->sin_port));
+  freeaddrinfo(ai);
+}
+
+TEST(netdb, getaddrinfo_NULL_service) {
+  // It's okay for the service argument to be NULL, as long as host isn't.
+  addrinfo* ai = NULL;
+  ASSERT_EQ(0, getaddrinfo("localhost", NULL, NULL, &ai));
+  ASSERT_TRUE(ai != NULL);
+  freeaddrinfo(ai);
+}
+
 TEST(netdb, getaddrinfo_NULL_hints) {
   addrinfo* ai = NULL;
   ASSERT_EQ(0, getaddrinfo("localhost", "9999", NULL, &ai));
diff --git a/tests/unistd_test.cpp b/tests/unistd_test.cpp
index b5fcf26..50afd05 100644
--- a/tests/unistd_test.cpp
+++ b/tests/unistd_test.cpp
@@ -30,10 +30,6 @@
 #include <sys/wait.h>
 #include <unistd.h>
 
-TEST(unistd, sysconf_SC_MONOTONIC_CLOCK) {
-  ASSERT_GT(sysconf(_SC_MONOTONIC_CLOCK), 0);
-}
-
 static void* get_brk() {
   return sbrk(0);
 }
@@ -520,3 +516,138 @@
   rc = fpathconf(tf.fd, _PC_REC_XFER_ALIGN);
   ASSERT_TRUE(rc > 0 && powerof2(rc));
 }
+
+#define verifySysconf(name, ret) \
+{\
+  errno = 0;\
+  ret = sysconf(name);\
+  ASSERT_TRUE((0 == errno) && (-1 != ret)) << "name=" << #name << ", ret=" << ret << ", Error Message: " << strerror(errno);\
+}\
+
+TEST(unistd, sysconf) {
+  long ret;
+
+  verifySysconf(_SC_MONOTONIC_CLOCK, ret);
+  ASSERT_GT(ret, 0);
+  verifySysconf(_SC_ARG_MAX, ret);
+  ASSERT_GT(ret, 0);
+  verifySysconf(_SC_CHILD_MAX, ret);
+  ASSERT_GT(ret, 0);
+  verifySysconf(_SC_CLK_TCK, ret);
+  ASSERT_GT(ret, 0);
+  verifySysconf(_SC_LINE_MAX, ret);
+  ASSERT_GT(ret, 1);
+  verifySysconf(_SC_NGROUPS_MAX, ret);
+  ASSERT_GT(ret, 0);
+  verifySysconf(_SC_OPEN_MAX, ret);
+  ASSERT_GT(ret, 1);
+  verifySysconf(_SC_2_C_BIND, ret);
+  ASSERT_GT(ret, 0);
+  verifySysconf(_SC_2_C_VERSION, ret);
+  verifySysconf(_SC_JOB_CONTROL, ret);
+  ASSERT_EQ(1, ret);
+  verifySysconf(_SC_SAVED_IDS, ret);
+  ASSERT_EQ(1, ret);
+  verifySysconf(_SC_VERSION, ret);
+  verifySysconf(_SC_RE_DUP_MAX, ret);
+  verifySysconf(_SC_STREAM_MAX, ret);
+  ASSERT_GT(ret, 0);
+  verifySysconf(_SC_TZNAME_MAX, ret);
+  verifySysconf(_SC_XOPEN_VERSION, ret);
+  verifySysconf(_SC_ATEXIT_MAX, ret);
+  ASSERT_GT(ret, 1);
+  verifySysconf(_SC_IOV_MAX, ret);
+  ASSERT_GT(ret, 0);
+  verifySysconf(_SC_PAGESIZE, ret);
+  ASSERT_GE(ret, 1);
+  verifySysconf(_SC_PAGE_SIZE, ret);
+  ASSERT_GE(ret, 1);
+  verifySysconf(_SC_XOPEN_UNIX, ret);
+  verifySysconf(_SC_DELAYTIMER_MAX, ret);
+  ASSERT_GT(ret, 0);
+  verifySysconf(_SC_MQ_OPEN_MAX, ret);
+  verifySysconf(_SC_MQ_PRIO_MAX, ret);
+  ASSERT_GT(ret ,0);
+  verifySysconf(_SC_RTSIG_MAX, ret);
+  verifySysconf(_SC_SEM_NSEMS_MAX, ret);
+  verifySysconf(_SC_SEM_VALUE_MAX, ret);
+  verifySysconf(_SC_SIGQUEUE_MAX, ret);
+  ASSERT_GT(ret, 0);
+  verifySysconf(_SC_TIMER_MAX, ret);
+  verifySysconf(_SC_FSYNC, ret);
+  verifySysconf(_SC_MAPPED_FILES, ret);
+  verifySysconf(_SC_PRIORITY_SCHEDULING, ret);
+  verifySysconf(_SC_SEMAPHORES, ret);
+  verifySysconf(_SC_SYNCHRONIZED_IO, ret);
+  verifySysconf(_SC_TIMERS, ret);
+  verifySysconf(_SC_GETGR_R_SIZE_MAX, ret);
+  verifySysconf(_SC_GETPW_R_SIZE_MAX, ret);
+  verifySysconf(_SC_LOGIN_NAME_MAX, ret);
+  verifySysconf(_SC_THREAD_DESTRUCTOR_ITERATIONS, ret);
+  verifySysconf(_SC_THREAD_KEYS_MAX, ret);
+  verifySysconf(_SC_THREAD_STACK_MIN, ret);
+  verifySysconf(_SC_THREAD_THREADS_MAX, ret);
+  verifySysconf(_SC_TTY_NAME_MAX, ret);
+  ASSERT_GT(ret, 0);
+  verifySysconf(_SC_THREADS, ret);
+  verifySysconf(_SC_THREAD_PRIO_INHERIT, ret);
+  verifySysconf(_SC_THREAD_PRIO_PROTECT, ret);
+  verifySysconf(_SC_NPROCESSORS_CONF, ret);
+  verifySysconf(_SC_NPROCESSORS_ONLN, ret);
+  verifySysconf(_SC_PHYS_PAGES, ret);
+  verifySysconf(_SC_AVPHYS_PAGES, ret);
+
+  //  TODO: keep following names check here
+  //  so that we can enable them when the error fixed
+
+  /* when call sysconf with following name,
+     the system call will report error "Function not implemented"
+
+  verifySysconf(_SC_BC_BASE_MAX, ret);
+  verifySysconf(_SC_BC_DIM_MAX, ret);
+  verifySysconf(_SC_BC_SCALE_MAX, ret);
+  verifySysconf(_SC_BC_STRING_MAX, ret);
+  verifySysconf(_SC_COLL_WEIGHTS_MAX, ret);
+  verifySysconf(_SC_EXPR_NEST_MAX, ret);
+  verifySysconf(_SC_XOPEN_SHM, ret);
+  verifySysconf(_SC_XBS5_ILP32_OFF32, ret);
+  verifySysconf(_SC_XBS5_ILP32_OFFBIG, ret);
+  verifySysconf(_SC_XBS5_LP64_OFF64, ret);
+  verifySysconf(_SC_XBS5_LPBIG_OFFBIG, ret);
+  verifySysconf(_SC_AIO_LISTIO_MAX, ret);
+  verifySysconf(_SC_AIO_MAX, ret);
+  verifySysconf(_SC_AIO_PRIO_DELTA_MAX, ret);
+  verifySysconf(_SC_ASYNCHRONOUS_IO, ret);
+  verifySysconf(_SC_MEMLOCK, ret);
+  verifySysconf(_SC_MEMLOCK_RANGE, ret);
+  verifySysconf(_SC_MEMORY_PROTECTION, ret);
+  verifySysconf(_SC_MESSAGE_PASSING, ret);
+  verifySysconf(_SC_PRIORITIZED_IO, ret);
+  verifySysconf(_SC_SHARED_MEMORY_OBJECTS, ret);
+  verifySysconf(_SC_THREAD_SAFE_FUNCTIONS, ret);
+
+  */
+
+  /* when following names are checked,
+     the return value of sysconf is -1,
+     which means following name are invalid.
+
+  verifySysconf(_SC_2_C_DEV, ret);
+  verifySysconf(_SC_2_FORT_DEV, ret);
+  verifySysconf(_SC_2_FORT_RUN, ret);
+  verifySysconf(_SC_2_LOCALEDEF, ret);
+  verifySysconf(_SC_2_SW_DEV, ret);
+  verifySysconf(_SC_2_UPE, ret);
+  verifySysconf(_SC_2_VERSION, ret);
+  verifySysconf(_SC_XOPEN_CRYPT, ret);
+  verifySysconf(_SC_XOPEN_ENH_I18N, ret);
+  verifySysconf(_SC_XOPEN_XCU_VERSION, ret);
+  verifySysconf(_SC_XOPEN_REALTIME, ret);
+  verifySysconf(_SC_XOPEN_REALTIME_THREADS, ret);
+  verifySysconf(_SC_XOPEN_LEGACY, ret);
+  verifySysconf(_SC_THREAD_ATTR_STACKADDR, ret);
+  verifySysconf(_SC_THREAD_ATTR_STACKSIZE, ret);
+  verifySysconf(_SC_REALTIME_SIGNALS, ret);
+
+  */
+}
