Switch x86 syscall stubs over to the ENTER/END style of the ARM stubs.
Also update the x86 asm.h to support this; we need it for libm assembler
anyway.
Also clean up the _FBSDID hack in <sys/cdefs.h>.
Change-Id: Iababd977b8110ec022bf7c93f4d62ece47630e7c
diff --git a/libc/tools/gensyscalls.py b/libc/tools/gensyscalls.py
index a4e5679..a39b63b 100755
--- a/libc/tools/gensyscalls.py
+++ b/libc/tools/gensyscalls.py
@@ -51,14 +51,10 @@
#
x86_header = """/* autogenerated by gensyscalls.py */
+#include <machine/asm.h>
#include <sys/linux-syscalls.h>
- .text
- .type %(fname)s, @function
- .globl %(fname)s
- .align 4
-
-%(fname)s:
+ENTRY(%(fname)s)
"""
x86_registers = [ "%ebx", "%ecx", "%edx", "%esi", "%edi", "%ebp" ]
@@ -76,6 +72,7 @@
"""
x86_return = """ ret
+END(%(fname)s)
"""
# ARM assembler templates for each syscall stub
@@ -288,7 +285,7 @@
for r in range(numparams):
result += " popl " + x86_registers[numparams-r-1] + "\n"
- result += x86_return
+ result += x86_return % t
return result
def x86_genstub_cid(self, fname, numparams, idname, cid):
@@ -326,7 +323,7 @@
result += " popl %ebx" + "\n"
# epilog
- result += x86_return
+ result += x86_return % t
return result
def arm_genstub(self,fname, flags, idname):