Merge "Move __libc_int0x80 to an assembly file"
diff --git a/libc/Android.bp b/libc/Android.bp
index 9427960..2db2edf 100644
--- a/libc/Android.bp
+++ b/libc/Android.bp
@@ -170,6 +170,7 @@
         x86: {
             srcs: [
                 "arch-x86/bionic/__libc_init_sysinfo.cpp",
+                "arch-x86/bionic/__libc_int0x80.S",
                 "arch-x86/bionic/__set_tls.cpp",
             ],
         },
diff --git a/libc/arch-x86/bionic/__libc_init_sysinfo.cpp b/libc/arch-x86/bionic/__libc_init_sysinfo.cpp
index db931d1..de099b8 100644
--- a/libc/arch-x86/bionic/__libc_init_sysinfo.cpp
+++ b/libc/arch-x86/bionic/__libc_init_sysinfo.cpp
@@ -32,10 +32,6 @@
 // This file is compiled without stack protection, because it runs before TLS
 // has been set up.
 
-__LIBC_HIDDEN__ __attribute__((__naked__)) void __libc_int0x80() {
-  __asm__ volatile("int $0x80; ret");
-}
-
 __LIBC_HIDDEN__ void __libc_init_sysinfo() {
   bool unused;
   __libc_sysinfo = reinterpret_cast<void*>(__bionic_getauxval(AT_SYSINFO, &unused));
diff --git a/libc/arch-x86/bionic/__libc_int0x80.S b/libc/arch-x86/bionic/__libc_int0x80.S
new file mode 100644
index 0000000..66f0a1a
--- /dev/null
+++ b/libc/arch-x86/bionic/__libc_int0x80.S
@@ -0,0 +1,7 @@
+#include <private/bionic_asm.h>
+
+// void __libc_int0x80();
+ENTRY_PRIVATE(__libc_int0x80)
+  int $0x80
+  ret
+END(__libc_int0x80)
diff --git a/libc/private/bionic_globals.h b/libc/private/bionic_globals.h
index 8132261..16f89bf 100644
--- a/libc/private/bionic_globals.h
+++ b/libc/private/bionic_globals.h
@@ -123,7 +123,7 @@
 
 #if defined(__i386__)
 __LIBC_HIDDEN__ extern void* __libc_sysinfo;
-__LIBC_HIDDEN__ void __libc_int0x80();
+extern "C" __LIBC_HIDDEN__ void __libc_int0x80();
 __LIBC_HIDDEN__ void __libc_init_sysinfo();
 #endif