OSDN Git Service

Use hidden visibility for generated stubs whose names begin with underscores.
authorElliott Hughes <enh@google.com>
Fri, 25 Oct 2013 00:03:20 +0000 (17:03 -0700)
committerElliott Hughes <enh@google.com>
Fri, 25 Oct 2013 00:03:20 +0000 (17:03 -0700)
Change-Id: Idb39fd04b7a14114801624e744e76e0e7913d951

27 files changed:
libc/arch-x86_64/syscalls/__arch_prctl.S
libc/arch-x86_64/syscalls/__brk.S
libc/arch-x86_64/syscalls/__clone.S
libc/arch-x86_64/syscalls/__epoll_pwait.S
libc/arch-x86_64/syscalls/__getcpu.S
libc/arch-x86_64/syscalls/__getcwd.S
libc/arch-x86_64/syscalls/__getpriority.S
libc/arch-x86_64/syscalls/__ioctl.S
libc/arch-x86_64/syscalls/__openat.S
libc/arch-x86_64/syscalls/__ppoll.S
libc/arch-x86_64/syscalls/__pselect6.S
libc/arch-x86_64/syscalls/__ptrace.S
libc/arch-x86_64/syscalls/__reboot.S
libc/arch-x86_64/syscalls/__rt_sigaction.S
libc/arch-x86_64/syscalls/__rt_sigpending.S
libc/arch-x86_64/syscalls/__rt_sigprocmask.S
libc/arch-x86_64/syscalls/__rt_sigsuspend.S
libc/arch-x86_64/syscalls/__rt_sigtimedwait.S
libc/arch-x86_64/syscalls/__sched_getaffinity.S
libc/arch-x86_64/syscalls/__syslog.S
libc/arch-x86_64/syscalls/__timer_create.S
libc/arch-x86_64/syscalls/__timer_delete.S
libc/arch-x86_64/syscalls/__timer_getoverrun.S
libc/arch-x86_64/syscalls/__timer_gettime.S
libc/arch-x86_64/syscalls/__timer_settime.S
libc/arch-x86_64/syscalls/__waitid.S
libc/tools/gensyscalls.py

index 70f284a..0adcfd2 100644 (file)
@@ -16,3 +16,4 @@ ENTRY(__arch_prctl)
 1:
     ret
 END(__arch_prctl)
+.hidden _C_LABEL(__arch_prctl)
index a50d6ca..6227f9d 100644 (file)
@@ -16,3 +16,4 @@ ENTRY(__brk)
 1:
     ret
 END(__brk)
+.hidden _C_LABEL(__brk)
index c10402a..9de9a68 100644 (file)
@@ -17,3 +17,4 @@ ENTRY(__clone)
 1:
     ret
 END(__clone)
+.hidden _C_LABEL(__clone)
index 98f3465..5be1f2a 100644 (file)
@@ -17,3 +17,4 @@ ENTRY(__epoll_pwait)
 1:
     ret
 END(__epoll_pwait)
+.hidden _C_LABEL(__epoll_pwait)
index becdead..c669ea6 100644 (file)
@@ -16,3 +16,4 @@ ENTRY(__getcpu)
 1:
     ret
 END(__getcpu)
+.hidden _C_LABEL(__getcpu)
index aed2293..dd34d19 100644 (file)
@@ -16,3 +16,4 @@ ENTRY(__getcwd)
 1:
     ret
 END(__getcwd)
+.hidden _C_LABEL(__getcwd)
index 4e7cdc7..588f7fe 100644 (file)
@@ -16,3 +16,4 @@ ENTRY(__getpriority)
 1:
     ret
 END(__getpriority)
+.hidden _C_LABEL(__getpriority)
index 384cb44..264ffa4 100644 (file)
@@ -16,3 +16,4 @@ ENTRY(__ioctl)
 1:
     ret
 END(__ioctl)
+.hidden _C_LABEL(__ioctl)
index 022bf7f..36f7ddc 100644 (file)
@@ -17,3 +17,4 @@ ENTRY(__openat)
 1:
     ret
 END(__openat)
+.hidden _C_LABEL(__openat)
index c6c055b..a92dfe5 100644 (file)
@@ -17,3 +17,4 @@ ENTRY(__ppoll)
 1:
     ret
 END(__ppoll)
+.hidden _C_LABEL(__ppoll)
index b0bb8ba..44d5c8d 100644 (file)
@@ -17,3 +17,4 @@ ENTRY(__pselect6)
 1:
     ret
 END(__pselect6)
+.hidden _C_LABEL(__pselect6)
index 6c45144..f032f3e 100644 (file)
@@ -17,3 +17,4 @@ ENTRY(__ptrace)
 1:
     ret
 END(__ptrace)
+.hidden _C_LABEL(__ptrace)
index f4d9245..d62ebcd 100644 (file)
@@ -17,3 +17,4 @@ ENTRY(__reboot)
 1:
     ret
 END(__reboot)
+.hidden _C_LABEL(__reboot)
index ee50972..e2892bf 100644 (file)
@@ -17,3 +17,4 @@ ENTRY(__rt_sigaction)
 1:
     ret
 END(__rt_sigaction)
+.hidden _C_LABEL(__rt_sigaction)
index a755e28..d683b37 100644 (file)
@@ -16,3 +16,4 @@ ENTRY(__rt_sigpending)
 1:
     ret
 END(__rt_sigpending)
+.hidden _C_LABEL(__rt_sigpending)
index 4f0bed5..236b68d 100644 (file)
@@ -17,3 +17,4 @@ ENTRY(__rt_sigprocmask)
 1:
     ret
 END(__rt_sigprocmask)
+.hidden _C_LABEL(__rt_sigprocmask)
index 0d80dd3..ed45250 100644 (file)
@@ -16,3 +16,4 @@ ENTRY(__rt_sigsuspend)
 1:
     ret
 END(__rt_sigsuspend)
+.hidden _C_LABEL(__rt_sigsuspend)
index fca8ffa..bc2fdef 100644 (file)
@@ -17,3 +17,4 @@ ENTRY(__rt_sigtimedwait)
 1:
     ret
 END(__rt_sigtimedwait)
+.hidden _C_LABEL(__rt_sigtimedwait)
index 9b6034c..1476557 100644 (file)
@@ -16,3 +16,4 @@ ENTRY(__sched_getaffinity)
 1:
     ret
 END(__sched_getaffinity)
+.hidden _C_LABEL(__sched_getaffinity)
index ed6a4ff..db3a397 100644 (file)
@@ -16,3 +16,4 @@ ENTRY(__syslog)
 1:
     ret
 END(__syslog)
+.hidden _C_LABEL(__syslog)
index 97f7a56..c4c4a2e 100644 (file)
@@ -16,3 +16,4 @@ ENTRY(__timer_create)
 1:
     ret
 END(__timer_create)
+.hidden _C_LABEL(__timer_create)
index 2d4cbfb..8088841 100644 (file)
@@ -16,3 +16,4 @@ ENTRY(__timer_delete)
 1:
     ret
 END(__timer_delete)
+.hidden _C_LABEL(__timer_delete)
index 508fb31..f5224b4 100644 (file)
@@ -16,3 +16,4 @@ ENTRY(__timer_getoverrun)
 1:
     ret
 END(__timer_getoverrun)
+.hidden _C_LABEL(__timer_getoverrun)
index 87e6994..bf3efff 100644 (file)
@@ -16,3 +16,4 @@ ENTRY(__timer_gettime)
 1:
     ret
 END(__timer_gettime)
+.hidden _C_LABEL(__timer_gettime)
index 5bbce2d..694216e 100644 (file)
@@ -17,3 +17,4 @@ ENTRY(__timer_settime)
 1:
     ret
 END(__timer_settime)
+.hidden _C_LABEL(__timer_settime)
index 8e0f503..5632fb1 100644 (file)
@@ -17,3 +17,4 @@ ENTRY(__waitid)
 1:
     ret
 END(__waitid)
+.hidden _C_LABEL(__waitid)
index 2334e35..578605d 100755 (executable)
@@ -233,10 +233,17 @@ def make__NR_name(name):
         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 @@ class State:
             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