Merge "Revert "Add C linkage for __open_2 and __openat_2.""
diff --git a/libc/arch-aarch64/bionic/futex_aarch64.S b/libc/arch-aarch64/bionic/futex_aarch64.S
index c25d2dd..bf7959b 100644
--- a/libc/arch-aarch64/bionic/futex_aarch64.S
+++ b/libc/arch-aarch64/bionic/futex_aarch64.S
@@ -26,9 +26,7 @@
  * SUCH DAMAGE.
  */
 
-#include <asm/unistd.h>
-#include <linux/err.h>
-#include <machine/asm.h>
+#include <private/bionic_asm.h>
 
 #define FUTEX_WAIT 0
 #define FUTEX_WAKE 1
diff --git a/libc/arch-aarch64/bionic/syscall.S b/libc/arch-aarch64/bionic/syscall.S
index f7ce010..863e369 100644
--- a/libc/arch-aarch64/bionic/syscall.S
+++ b/libc/arch-aarch64/bionic/syscall.S
@@ -26,8 +26,7 @@
  * SUCH DAMAGE.
  */
 
-#include <linux/err.h>
-#include <machine/asm.h>
+#include <private/bionic_asm.h>
 
 ENTRY(syscall)
     /* create AAPCS frame pointer */
diff --git a/libc/arch-aarch64/bionic/vfork.S b/libc/arch-aarch64/bionic/vfork.S
index 964f38d..7235283 100644
--- a/libc/arch-aarch64/bionic/vfork.S
+++ b/libc/arch-aarch64/bionic/vfork.S
@@ -26,9 +26,7 @@
  * SUCH DAMAGE.
  */
 
-#include <asm/unistd.h>
-#include <linux/err.h>
-#include <machine/asm.h>
+#include <private/bionic_asm.h>
 
 ENTRY(vfork)
     mov     x0, #0x4111     /* CLONE_VM | CLONE_VFORK | SIGCHLD */
diff --git a/libc/private/bionic_atomic_aarch64.h b/libc/private/bionic_atomic_aarch64.h
index c5a9e2e..568382e 100644
--- a/libc/private/bionic_atomic_aarch64.h
+++ b/libc/private/bionic_atomic_aarch64.h
@@ -17,7 +17,7 @@
 #define BIONIC_ATOMIC_AARCH64_H
 
 /* For ARMv8, we can use the 'dmb' instruction directly */
-__ATOMIC_INLINE__ void __bionic_memory_barrier(void) {
+__ATOMIC_INLINE__ void __bionic_memory_barrier() {
   __asm__ __volatile__ ( "dmb ish" : : : "memory" );
 }
 
diff --git a/libc/private/bionic_atomic_arm.h b/libc/private/bionic_atomic_arm.h
index 023d662..2156e6a 100644
--- a/libc/private/bionic_atomic_arm.h
+++ b/libc/private/bionic_atomic_arm.h
@@ -16,9 +16,9 @@
 #ifndef BIONIC_ATOMIC_ARM_H
 #define BIONIC_ATOMIC_ARM_H
 
-__ATOMIC_INLINE__ void __bionic_memory_barrier(void) {
+__ATOMIC_INLINE__ void __bionic_memory_barrier() {
 #if defined(ANDROID_SMP) && ANDROID_SMP == 1
-  __asm__ __volatile__ ( "dmb" : : : "memory" );
+  __asm__ __volatile__ ( "dmb ish" : : : "memory" );
 #else
   /* A simple compiler barrier. */
   __asm__ __volatile__ ( "" : : : "memory" );
diff --git a/libc/private/bionic_atomic_gcc_builtin.h b/libc/private/bionic_atomic_gcc_builtin.h
index 9e5e5aa..70eb861 100644
--- a/libc/private/bionic_atomic_gcc_builtin.h
+++ b/libc/private/bionic_atomic_gcc_builtin.h
@@ -25,7 +25,7 @@
  * the architecture-specific assembler versions.
  */
 
-__ATOMIC_INLINE__ void __bionic_memory_barrier(void) {
+__ATOMIC_INLINE__ void __bionic_memory_barrier() {
   __sync_synchronize();
 }
 
diff --git a/libc/private/bionic_atomic_inline.h b/libc/private/bionic_atomic_inline.h
index 2bb1128..c887e5a 100644
--- a/libc/private/bionic_atomic_inline.h
+++ b/libc/private/bionic_atomic_inline.h
@@ -25,7 +25,7 @@
  *
  * Macros defined in this header:
  *
- * void ANDROID_MEMBAR_FULL(void)
+ * void ANDROID_MEMBAR_FULL()
  *   Full memory barrier.  Provides a compiler reordering barrier, and
  *   on SMP systems emits an appropriate instruction.
  */
diff --git a/libm/Android.mk b/libm/Android.mk
index abe0722..1c3d393 100644
--- a/libm/Android.mk
+++ b/libm/Android.mk
@@ -177,7 +177,9 @@
     upstream-freebsd/lib/msun/src/w_drem.c \
     upstream-freebsd/lib/msun/src/w_dremf.c \
 
-libm_common_src_files += fake_long_double.c
+libm_common_src_files += \
+    fake_long_double.c \
+    upstream-freebsd/lib/msun/src/s_modfl.c \
 
 # TODO: on Android, "long double" is "double".
 #    upstream-freebsd/lib/msun/src/e_acosl.c \
@@ -204,7 +206,6 @@
 #    upstream-freebsd/lib/msun/src/s_logbl.c \
 #    upstream-freebsd/lib/msun/src/s_lrintl.c \
 #    upstream-freebsd/lib/msun/src/s_lroundl.c \
-#    upstream-freebsd/lib/msun/src/s_modfl.c \
 #    upstream-freebsd/lib/msun/src/s_nextafterl.c \
 #    upstream-freebsd/lib/msun/src/s_nexttoward.c \
 #    upstream-freebsd/lib/msun/src/s_remquol.c \
diff --git a/libm/fake_long_double.c b/libm/fake_long_double.c
index 2a3e420..751911a 100644
--- a/libm/fake_long_double.c
+++ b/libm/fake_long_double.c
@@ -72,7 +72,6 @@
 long lrintl(long double a1) { return lrint(a1); }
 long long llroundl(long double a1) { return llround(a1); }
 long lroundl(long double a1) { return lround(a1); }
-long double modfl(long double a1, long double* a2) { return modf(a1, (double*) a2); }
 long double nanl(const char* a1) { return nan(a1); }
 long double nextafterl(long double a1, long double a2) { return nextafter(a1, a2); }
 long double powl(long double a1, long double a2) { return pow(a1, a2); }