Use hidden visibility for generated stubs whose names begin with underscores.
Change-Id: Idb39fd04b7a14114801624e744e76e0e7913d951
diff --git a/libc/arch-x86_64/syscalls/__arch_prctl.S b/libc/arch-x86_64/syscalls/__arch_prctl.S
index 70f284a..0adcfd2 100644
--- a/libc/arch-x86_64/syscalls/__arch_prctl.S
+++ b/libc/arch-x86_64/syscalls/__arch_prctl.S
@@ -16,3 +16,4 @@
1:
ret
END(__arch_prctl)
+.hidden _C_LABEL(__arch_prctl)
diff --git a/libc/arch-x86_64/syscalls/__brk.S b/libc/arch-x86_64/syscalls/__brk.S
index a50d6ca..6227f9d 100644
--- a/libc/arch-x86_64/syscalls/__brk.S
+++ b/libc/arch-x86_64/syscalls/__brk.S
@@ -16,3 +16,4 @@
1:
ret
END(__brk)
+.hidden _C_LABEL(__brk)
diff --git a/libc/arch-x86_64/syscalls/__clone.S b/libc/arch-x86_64/syscalls/__clone.S
index c10402a..9de9a68 100644
--- a/libc/arch-x86_64/syscalls/__clone.S
+++ b/libc/arch-x86_64/syscalls/__clone.S
@@ -17,3 +17,4 @@
1:
ret
END(__clone)
+.hidden _C_LABEL(__clone)
diff --git a/libc/arch-x86_64/syscalls/__epoll_pwait.S b/libc/arch-x86_64/syscalls/__epoll_pwait.S
index 98f3465..5be1f2a 100644
--- a/libc/arch-x86_64/syscalls/__epoll_pwait.S
+++ b/libc/arch-x86_64/syscalls/__epoll_pwait.S
@@ -17,3 +17,4 @@
1:
ret
END(__epoll_pwait)
+.hidden _C_LABEL(__epoll_pwait)
diff --git a/libc/arch-x86_64/syscalls/__getcpu.S b/libc/arch-x86_64/syscalls/__getcpu.S
index becdead..c669ea6 100644
--- a/libc/arch-x86_64/syscalls/__getcpu.S
+++ b/libc/arch-x86_64/syscalls/__getcpu.S
@@ -16,3 +16,4 @@
1:
ret
END(__getcpu)
+.hidden _C_LABEL(__getcpu)
diff --git a/libc/arch-x86_64/syscalls/__getcwd.S b/libc/arch-x86_64/syscalls/__getcwd.S
index aed2293..dd34d19 100644
--- a/libc/arch-x86_64/syscalls/__getcwd.S
+++ b/libc/arch-x86_64/syscalls/__getcwd.S
@@ -16,3 +16,4 @@
1:
ret
END(__getcwd)
+.hidden _C_LABEL(__getcwd)
diff --git a/libc/arch-x86_64/syscalls/__getpriority.S b/libc/arch-x86_64/syscalls/__getpriority.S
index 4e7cdc7..588f7fe 100644
--- a/libc/arch-x86_64/syscalls/__getpriority.S
+++ b/libc/arch-x86_64/syscalls/__getpriority.S
@@ -16,3 +16,4 @@
1:
ret
END(__getpriority)
+.hidden _C_LABEL(__getpriority)
diff --git a/libc/arch-x86_64/syscalls/__ioctl.S b/libc/arch-x86_64/syscalls/__ioctl.S
index 384cb44..264ffa4 100644
--- a/libc/arch-x86_64/syscalls/__ioctl.S
+++ b/libc/arch-x86_64/syscalls/__ioctl.S
@@ -16,3 +16,4 @@
1:
ret
END(__ioctl)
+.hidden _C_LABEL(__ioctl)
diff --git a/libc/arch-x86_64/syscalls/__openat.S b/libc/arch-x86_64/syscalls/__openat.S
index 022bf7f..36f7ddc 100644
--- a/libc/arch-x86_64/syscalls/__openat.S
+++ b/libc/arch-x86_64/syscalls/__openat.S
@@ -17,3 +17,4 @@
1:
ret
END(__openat)
+.hidden _C_LABEL(__openat)
diff --git a/libc/arch-x86_64/syscalls/__ppoll.S b/libc/arch-x86_64/syscalls/__ppoll.S
index c6c055b..a92dfe5 100644
--- a/libc/arch-x86_64/syscalls/__ppoll.S
+++ b/libc/arch-x86_64/syscalls/__ppoll.S
@@ -17,3 +17,4 @@
1:
ret
END(__ppoll)
+.hidden _C_LABEL(__ppoll)
diff --git a/libc/arch-x86_64/syscalls/__pselect6.S b/libc/arch-x86_64/syscalls/__pselect6.S
index b0bb8ba..44d5c8d 100644
--- a/libc/arch-x86_64/syscalls/__pselect6.S
+++ b/libc/arch-x86_64/syscalls/__pselect6.S
@@ -17,3 +17,4 @@
1:
ret
END(__pselect6)
+.hidden _C_LABEL(__pselect6)
diff --git a/libc/arch-x86_64/syscalls/__ptrace.S b/libc/arch-x86_64/syscalls/__ptrace.S
index 6c45144..f032f3e 100644
--- a/libc/arch-x86_64/syscalls/__ptrace.S
+++ b/libc/arch-x86_64/syscalls/__ptrace.S
@@ -17,3 +17,4 @@
1:
ret
END(__ptrace)
+.hidden _C_LABEL(__ptrace)
diff --git a/libc/arch-x86_64/syscalls/__reboot.S b/libc/arch-x86_64/syscalls/__reboot.S
index f4d9245..d62ebcd 100644
--- a/libc/arch-x86_64/syscalls/__reboot.S
+++ b/libc/arch-x86_64/syscalls/__reboot.S
@@ -17,3 +17,4 @@
1:
ret
END(__reboot)
+.hidden _C_LABEL(__reboot)
diff --git a/libc/arch-x86_64/syscalls/__rt_sigaction.S b/libc/arch-x86_64/syscalls/__rt_sigaction.S
index ee50972..e2892bf 100644
--- a/libc/arch-x86_64/syscalls/__rt_sigaction.S
+++ b/libc/arch-x86_64/syscalls/__rt_sigaction.S
@@ -17,3 +17,4 @@
1:
ret
END(__rt_sigaction)
+.hidden _C_LABEL(__rt_sigaction)
diff --git a/libc/arch-x86_64/syscalls/__rt_sigpending.S b/libc/arch-x86_64/syscalls/__rt_sigpending.S
index a755e28..d683b37 100644
--- a/libc/arch-x86_64/syscalls/__rt_sigpending.S
+++ b/libc/arch-x86_64/syscalls/__rt_sigpending.S
@@ -16,3 +16,4 @@
1:
ret
END(__rt_sigpending)
+.hidden _C_LABEL(__rt_sigpending)
diff --git a/libc/arch-x86_64/syscalls/__rt_sigprocmask.S b/libc/arch-x86_64/syscalls/__rt_sigprocmask.S
index 4f0bed5..236b68d 100644
--- a/libc/arch-x86_64/syscalls/__rt_sigprocmask.S
+++ b/libc/arch-x86_64/syscalls/__rt_sigprocmask.S
@@ -17,3 +17,4 @@
1:
ret
END(__rt_sigprocmask)
+.hidden _C_LABEL(__rt_sigprocmask)
diff --git a/libc/arch-x86_64/syscalls/__rt_sigsuspend.S b/libc/arch-x86_64/syscalls/__rt_sigsuspend.S
index 0d80dd3..ed45250 100644
--- a/libc/arch-x86_64/syscalls/__rt_sigsuspend.S
+++ b/libc/arch-x86_64/syscalls/__rt_sigsuspend.S
@@ -16,3 +16,4 @@
1:
ret
END(__rt_sigsuspend)
+.hidden _C_LABEL(__rt_sigsuspend)
diff --git a/libc/arch-x86_64/syscalls/__rt_sigtimedwait.S b/libc/arch-x86_64/syscalls/__rt_sigtimedwait.S
index fca8ffa..bc2fdef 100644
--- a/libc/arch-x86_64/syscalls/__rt_sigtimedwait.S
+++ b/libc/arch-x86_64/syscalls/__rt_sigtimedwait.S
@@ -17,3 +17,4 @@
1:
ret
END(__rt_sigtimedwait)
+.hidden _C_LABEL(__rt_sigtimedwait)
diff --git a/libc/arch-x86_64/syscalls/__sched_getaffinity.S b/libc/arch-x86_64/syscalls/__sched_getaffinity.S
index 9b6034c..1476557 100644
--- a/libc/arch-x86_64/syscalls/__sched_getaffinity.S
+++ b/libc/arch-x86_64/syscalls/__sched_getaffinity.S
@@ -16,3 +16,4 @@
1:
ret
END(__sched_getaffinity)
+.hidden _C_LABEL(__sched_getaffinity)
diff --git a/libc/arch-x86_64/syscalls/__syslog.S b/libc/arch-x86_64/syscalls/__syslog.S
index ed6a4ff..db3a397 100644
--- a/libc/arch-x86_64/syscalls/__syslog.S
+++ b/libc/arch-x86_64/syscalls/__syslog.S
@@ -16,3 +16,4 @@
1:
ret
END(__syslog)
+.hidden _C_LABEL(__syslog)
diff --git a/libc/arch-x86_64/syscalls/__timer_create.S b/libc/arch-x86_64/syscalls/__timer_create.S
index 97f7a56..c4c4a2e 100644
--- a/libc/arch-x86_64/syscalls/__timer_create.S
+++ b/libc/arch-x86_64/syscalls/__timer_create.S
@@ -16,3 +16,4 @@
1:
ret
END(__timer_create)
+.hidden _C_LABEL(__timer_create)
diff --git a/libc/arch-x86_64/syscalls/__timer_delete.S b/libc/arch-x86_64/syscalls/__timer_delete.S
index 2d4cbfb..8088841 100644
--- a/libc/arch-x86_64/syscalls/__timer_delete.S
+++ b/libc/arch-x86_64/syscalls/__timer_delete.S
@@ -16,3 +16,4 @@
1:
ret
END(__timer_delete)
+.hidden _C_LABEL(__timer_delete)
diff --git a/libc/arch-x86_64/syscalls/__timer_getoverrun.S b/libc/arch-x86_64/syscalls/__timer_getoverrun.S
index 508fb31..f5224b4 100644
--- a/libc/arch-x86_64/syscalls/__timer_getoverrun.S
+++ b/libc/arch-x86_64/syscalls/__timer_getoverrun.S
@@ -16,3 +16,4 @@
1:
ret
END(__timer_getoverrun)
+.hidden _C_LABEL(__timer_getoverrun)
diff --git a/libc/arch-x86_64/syscalls/__timer_gettime.S b/libc/arch-x86_64/syscalls/__timer_gettime.S
index 87e6994..bf3efff 100644
--- a/libc/arch-x86_64/syscalls/__timer_gettime.S
+++ b/libc/arch-x86_64/syscalls/__timer_gettime.S
@@ -16,3 +16,4 @@
1:
ret
END(__timer_gettime)
+.hidden _C_LABEL(__timer_gettime)
diff --git a/libc/arch-x86_64/syscalls/__timer_settime.S b/libc/arch-x86_64/syscalls/__timer_settime.S
index 5bbce2d..694216e 100644
--- a/libc/arch-x86_64/syscalls/__timer_settime.S
+++ b/libc/arch-x86_64/syscalls/__timer_settime.S
@@ -17,3 +17,4 @@
1:
ret
END(__timer_settime)
+.hidden _C_LABEL(__timer_settime)
diff --git a/libc/arch-x86_64/syscalls/__waitid.S b/libc/arch-x86_64/syscalls/__waitid.S
index 8e0f503..5632fb1 100644
--- a/libc/arch-x86_64/syscalls/__waitid.S
+++ b/libc/arch-x86_64/syscalls/__waitid.S
@@ -17,3 +17,4 @@
1:
ret
END(__waitid)
+.hidden _C_LABEL(__waitid)
diff --git a/libc/tools/gensyscalls.py b/libc/tools/gensyscalls.py
index 2334e35..578605d 100755
--- a/libc/tools/gensyscalls.py
+++ b/libc/tools/gensyscalls.py
@@ -233,10 +233,17 @@
return "__NR_%s" % (name)
-def add_aliases(stub, syscall):
+def add_footer(pointer_length, stub, syscall):
+ # Add any aliases for this syscall.
aliases = syscall["aliases"]
for alias in aliases:
stub += function_alias % { "func" : syscall["func"], "alias" : alias }
+
+ # Use hidden visibility for any functions beginning with underscores.
+ # TODO: clean up single-underscore names too.
+ if pointer_length == 64 and syscall["func"].startswith("__"):
+ stub += '.hidden _C_LABEL(' + syscall["func"] + ')\n'
+
return stub
@@ -334,22 +341,22 @@
syscall["__NR_name"] = make__NR_name(syscall["name"])
if syscall.has_key("arm"):
- syscall["asm-arm"] = add_aliases(arm_eabi_genstub(syscall), syscall)
+ syscall["asm-arm"] = add_footer(32, arm_eabi_genstub(syscall), syscall)
if syscall.has_key("x86"):
if syscall["socketcall_id"] >= 0:
- syscall["asm-x86"] = add_aliases(x86_genstub_socketcall(syscall), syscall)
+ syscall["asm-x86"] = add_footer(32, x86_genstub_socketcall(syscall), syscall)
else:
- syscall["asm-x86"] = add_aliases(x86_genstub(syscall), syscall)
+ syscall["asm-x86"] = add_footer(32, x86_genstub(syscall), syscall)
elif syscall["socketcall_id"] >= 0:
E("socketcall_id for dispatch syscalls is only supported for x86 in '%s'" % t)
return
if syscall.has_key("mips"):
- syscall["asm-mips"] = add_aliases(mips_genstub(syscall), syscall)
+ syscall["asm-mips"] = add_footer(32, mips_genstub(syscall), syscall)
if syscall.has_key("x86_64"):
- syscall["asm-x86_64"] = add_aliases(x86_64_genstub(syscall), syscall)
+ syscall["asm-x86_64"] = add_footer(64, x86_64_genstub(syscall), syscall)
# Scan a Linux kernel asm/unistd.h file containing __NR_* constants