diff --git a/libc/tools/gensyscalls.py b/libc/tools/gensyscalls.py
index a3c8450..386a8db 100755
--- a/libc/tools/gensyscalls.py
+++ b/libc/tools/gensyscalls.py
@@ -37,6 +37,10 @@
 ENTRY(%(fname)s)
 """
 
+function_alias = """
+    .globl _C_LABEL(%(alias)s)
+    .equ _C_LABEL(%(alias)s), _C_LABEL(%(fname)s)
+"""
 
 #
 # x86 assembler templates for each syscall stub
@@ -210,7 +214,7 @@
         self.other_files = []
         self.syscalls = []
 
-    def x86_64_genstub(self, fname, numparams, idname):
+    def x86_64_genstub(self, fname, numparams, idname, aliases):
         t = { "fname"  : fname, "idname" : idname }
 
         result = syscall_stub_header % t
@@ -219,6 +223,10 @@
             result += "    movq    %rcx, %r10\n"
 
         result += x86_64_call % t
+        for alias in aliases:
+            t = { "fname" : fname, "alias" : alias }
+            result += function_alias % t
+
         return result
 
     def x86_genstub(self, fname, numparams, idname):
@@ -301,6 +309,7 @@
 
         for t in self.syscalls:
             syscall_func   = t["func"]
+            syscall_aliases = t["aliases"]
             syscall_params = t["params"]
             syscall_name   = t["name"]
             __NR_name = make__NR_name(t["name"])
@@ -324,7 +333,7 @@
 
             if t.has_key("x86_64"):
                 num_regs = count_generic_param_registers64(syscall_params)
-                t["asm-x86_64"] = self.x86_64_genstub(syscall_func, num_regs, __NR_name)
+                t["asm-x86_64"] = self.x86_64_genstub(syscall_func, num_regs, __NR_name, syscall_aliases)
 
     # Scan a Linux kernel asm/unistd.h file containing __NR_* constants
     # and write out equivalent SYS_* constants for glibc source compatibility.
