summary refs log tree commit diff
diff options
context:
space:
mode:
authorSiddhesh Poyarekar <siddhesh@redhat.com>2013-06-11 11:11:11 +0530
committerSiddhesh Poyarekar <siddhesh@redhat.com>2013-06-11 11:11:11 +0530
commit89fb6835583088059b8d8987c86caac33e37e5ea (patch)
treeffd867e682b478adbfe07fe0410c33c14b6e4002
parentb8c61b4b1d6afb69190169764c1b141f4659e48b (diff)
downloadglibc-89fb6835583088059b8d8987c86caac33e37e5ea.tar.gz
glibc-89fb6835583088059b8d8987c86caac33e37e5ea.tar.xz
glibc-89fb6835583088059b8d8987c86caac33e37e5ea.zip
Fix symbol definitions for __clock_* functions
__clock_gettime and other __clock_* functions could result in an extra
PLT reference within libc.so if it actually gets used.  None of the
code currently uses them, which is why this probably went unnoticed.
-rw-r--r--ChangeLog22
-rw-r--r--include/time.h1
-rw-r--r--rt/clock_getcpuclockid.c4
-rw-r--r--rt/clock_getres.c4
-rw-r--r--rt/clock_gettime.c5
-rw-r--r--rt/clock_nanosleep.c6
-rw-r--r--rt/clock_settime.c4
-rw-r--r--sysdeps/posix/clock_getres.c4
-rw-r--r--sysdeps/unix/clock_gettime.c5
-rw-r--r--sysdeps/unix/clock_nanosleep.c6
-rw-r--r--sysdeps/unix/clock_settime.c4
-rw-r--r--sysdeps/unix/sysv/linux/clock_getcpuclockid.c4
-rw-r--r--sysdeps/unix/sysv/linux/clock_nanosleep.c6
13 files changed, 50 insertions, 25 deletions
diff --git a/ChangeLog b/ChangeLog
index 19cb14c896..ded27a8a22 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,25 @@
+2013-06-11  Siddhesh Poyarekar  <siddhesh@redhat.com>
+
+	* include/time.h (__clock_gettime): Add libc_hidden_proto.
+	* rt/clock_getcpuclockid.c (clock_getcpuclockid): Rename to
+	__clock_getcpuclockid.  Add weak_alias and libc_hidden_def.
+	* sysdeps/unix/sysv/linux/clock_getcpuclockid.c
+	(clock_getcpuclockid): Likewise.
+	* rt/clock_getres.c (clock_getres): Rename to __clock_getres.
+	Add weak_alias and libc_hidden_def.
+	* sysdeps/posix/clock_getres.c (clock_getres): Likewise.
+	* rt/clock_gettime.c (clock_gettime): Rename to
+	__clock_gettime.  Add weak_alias and libc_hidden_def.
+	* sysdeps/unix/clock_gettime.c (clock_gettime): Likewise.
+	* rt/clock_nanosleep.c (clock_nanosleep): Rename to
+	__clock_nanosleep.  Add weak_alias and libc_hidden_def.
+	* sysdeps/unix/clock_nanosleep.c (clock_nanosleep): Likewise.
+	* sysdeps/unix/sysv/linux/clock_nanosleep.c (clock_nanosleep):
+	Likewise.
+	* rt/clock_settime.c (clock_settime): Rename to
+	__clock_settime.  Add weak_alias and libc_hidden_def.
+	* sysdeps/unix/clock_settime.c (clock_settime): Likewise.
+
 2013-06-10  Joseph Myers  <joseph@codesourcery.com>
 
 	* mach/err_boot.sub: Remove trailing whitespace.
diff --git a/include/time.h b/include/time.h
index 9be15b9739..8dd10dcdd8 100644
--- a/include/time.h
+++ b/include/time.h
@@ -21,6 +21,7 @@ libc_hidden_proto (strptime)
 
 extern __typeof (clock_getres) __clock_getres;
 extern __typeof (clock_gettime) __clock_gettime;
+libc_hidden_proto (__clock_gettime)
 extern __typeof (clock_settime) __clock_settime;
 extern __typeof (clock_nanosleep) __clock_nanosleep;
 extern __typeof (clock_getcpuclockid) __clock_getcpuclockid;
diff --git a/rt/clock_getcpuclockid.c b/rt/clock_getcpuclockid.c
index 44d7724fad..d16ce14a8b 100644
--- a/rt/clock_getcpuclockid.c
+++ b/rt/clock_getcpuclockid.c
@@ -21,7 +21,7 @@
 #include <unistd.h>
 
 int
-clock_getcpuclockid (pid_t pid, clockid_t *clock_id)
+__clock_getcpuclockid (pid_t pid, clockid_t *clock_id)
 {
   /* We don't allow any process ID but our own.  */
   if (pid != 0 && pid != getpid ())
@@ -37,4 +37,4 @@ clock_getcpuclockid (pid_t pid, clockid_t *clock_id)
   return ENOENT;
 #endif
 }
-strong_alias (clock_getcpuclockid, __clock_getcpuclockid)
+weak_alias (__clock_getcpuclockid, clock_getcpuclockid)
diff --git a/rt/clock_getres.c b/rt/clock_getres.c
index cd59b141f4..df19c40de3 100644
--- a/rt/clock_getres.c
+++ b/rt/clock_getres.c
@@ -21,10 +21,10 @@
 
 /* Get resolution of clock.  */
 int
-clock_getres (clockid_t clock_id, struct timespec *res)
+__clock_getres (clockid_t clock_id, struct timespec *res)
 {
   __set_errno (ENOSYS);
   return -1;
 }
-strong_alias (clock_getres, __clock_getres)
+weak_alias (__clock_getres, clock_getres)
 stub_warning (clock_getres)
diff --git a/rt/clock_gettime.c b/rt/clock_gettime.c
index cc7936de8a..1c9e52459a 100644
--- a/rt/clock_gettime.c
+++ b/rt/clock_gettime.c
@@ -21,10 +21,11 @@
 
 /* Get current value of CLOCK and store it in TP.  */
 int
-clock_gettime (clockid_t clock_id, struct timespec *tp)
+__clock_gettime (clockid_t clock_id, struct timespec *tp)
 {
   __set_errno (ENOSYS);
   return -1;
 }
-strong_alias (clock_gettime, __clock_gettime)
+weak_alias (__clock_gettime, clock_gettime)
+libc_hidden_def (__clock_gettime)
 stub_warning (clock_gettime)
diff --git a/rt/clock_nanosleep.c b/rt/clock_nanosleep.c
index 24f8bc6608..8779147516 100644
--- a/rt/clock_nanosleep.c
+++ b/rt/clock_nanosleep.c
@@ -20,8 +20,8 @@
 #include <time.h>
 
 int
-clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
-		 struct timespec *rem)
+__clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
+		   struct timespec *rem)
 {
   if (__builtin_expect (req->tv_nsec, 0) < 0
       || __builtin_expect (req->tv_nsec, 0) >= 1000000000)
@@ -33,5 +33,5 @@ clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
   /* Not implemented.  */
   return ENOSYS;
 }
-strong_alias (clock_nanosleep, __clock_nanosleep)
+weak_alias (__clock_nanosleep, clock_nanosleep)
 stub_warning (clock_nanosleep)
diff --git a/rt/clock_settime.c b/rt/clock_settime.c
index 411a7ee5da..9249f262ff 100644
--- a/rt/clock_settime.c
+++ b/rt/clock_settime.c
@@ -21,10 +21,10 @@
 
 /* Set CLOCK to value TP.  */
 int
-clock_settime (clockid_t clock_id, const struct timespec *tp)
+__clock_settime (clockid_t clock_id, const struct timespec *tp)
 {
   __set_errno (ENOSYS);
   return -1;
 }
-strong_alias (clock_settime, __clock_settime)
+weak_alias (__clock_settime, clock_settime)
 stub_warning (clock_settime)
diff --git a/sysdeps/posix/clock_getres.c b/sysdeps/posix/clock_getres.c
index 7581f32806..5d898e4d04 100644
--- a/sysdeps/posix/clock_getres.c
+++ b/sysdeps/posix/clock_getres.c
@@ -76,7 +76,7 @@ realtime_getres (struct timespec *res)
 
 /* Get resolution of clock.  */
 int
-clock_getres (clockid_t clock_id, struct timespec *res)
+__clock_getres (clockid_t clock_id, struct timespec *res)
 {
   int retval = -1;
 
@@ -115,4 +115,4 @@ clock_getres (clockid_t clock_id, struct timespec *res)
 
   return retval;
 }
-strong_alias (clock_getres, __clock_getres)
+weak_alias (__clock_getres, clock_getres)
diff --git a/sysdeps/unix/clock_gettime.c b/sysdeps/unix/clock_gettime.c
index 1c64f07ec3..d46057a6c7 100644
--- a/sysdeps/unix/clock_gettime.c
+++ b/sysdeps/unix/clock_gettime.c
@@ -89,7 +89,7 @@ realtime_gettime (struct timespec *tp)
 
 /* Get current value of CLOCK and store it in TP.  */
 int
-clock_gettime (clockid_t clock_id, struct timespec *tp)
+__clock_gettime (clockid_t clock_id, struct timespec *tp)
 {
   int retval = -1;
 
@@ -132,4 +132,5 @@ clock_gettime (clockid_t clock_id, struct timespec *tp)
 
   return retval;
 }
-strong_alias (clock_gettime, __clock_gettime)
+weak_alias (__clock_gettime, clock_gettime)
+libc_hidden_def (__clock_gettime)
diff --git a/sysdeps/unix/clock_nanosleep.c b/sysdeps/unix/clock_nanosleep.c
index 33fee7ba28..00793242f6 100644
--- a/sysdeps/unix/clock_nanosleep.c
+++ b/sysdeps/unix/clock_nanosleep.c
@@ -39,8 +39,8 @@
 /* This implementation assumes that these is only a `nanosleep' system
    call.  So we have to remap all other activities.  */
 int
-clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
-		 struct timespec *rem)
+__clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
+		   struct timespec *rem)
 {
   struct timespec now;
 
@@ -98,4 +98,4 @@ clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
 
   return __builtin_expect (nanosleep (req, rem), 0) ? errno : 0;
 }
-strong_alias (clock_nanosleep, __clock_nanosleep)
+weak_alias (__clock_nanosleep, clock_nanosleep)
diff --git a/sysdeps/unix/clock_settime.c b/sysdeps/unix/clock_settime.c
index 48269ccd91..6605e9ead9 100644
--- a/sysdeps/unix/clock_settime.c
+++ b/sysdeps/unix/clock_settime.c
@@ -72,7 +72,7 @@ hp_timing_settime (clockid_t clock_id, const struct timespec *tp)
 
 /* Set CLOCK to value TP.  */
 int
-clock_settime (clockid_t clock_id, const struct timespec *tp)
+__clock_settime (clockid_t clock_id, const struct timespec *tp)
 {
   int retval;
 
@@ -124,4 +124,4 @@ clock_settime (clockid_t clock_id, const struct timespec *tp)
 
   return retval;
 }
-strong_alias (clock_settime, __clock_settime)
+weak_alias (__clock_settime, clock_settime)
diff --git a/sysdeps/unix/sysv/linux/clock_getcpuclockid.c b/sysdeps/unix/sysv/linux/clock_getcpuclockid.c
index 5c89c66a4e..e234bdc609 100644
--- a/sysdeps/unix/sysv/linux/clock_getcpuclockid.c
+++ b/sysdeps/unix/sysv/linux/clock_getcpuclockid.c
@@ -23,7 +23,7 @@
 #include "kernel-posix-cpu-timers.h"
 
 int
-clock_getcpuclockid (pid_t pid, clockid_t *clock_id)
+__clock_getcpuclockid (pid_t pid, clockid_t *clock_id)
 {
   /* The clockid_t value is a simple computation from the PID.
      But we do a clock_getres call to validate it.  */
@@ -46,4 +46,4 @@ clock_getcpuclockid (pid_t pid, clockid_t *clock_id)
   else
     return INTERNAL_SYSCALL_ERRNO (r, err);
 }
-strong_alias (clock_getcpuclockid, __clock_getcpuclockid)
+weak_alias (__clock_getcpuclockid, clock_getcpuclockid)
diff --git a/sysdeps/unix/sysv/linux/clock_nanosleep.c b/sysdeps/unix/sysv/linux/clock_nanosleep.c
index 41bc5e9041..2e496d28c6 100644
--- a/sysdeps/unix/sysv/linux/clock_nanosleep.c
+++ b/sysdeps/unix/sysv/linux/clock_nanosleep.c
@@ -26,8 +26,8 @@
 /* We can simply use the syscall.  The CPU clocks are not supported
    with this function.  */
 int
-clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
-		 struct timespec *rem)
+__clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
+		   struct timespec *rem)
 {
   INTERNAL_SYSCALL_DECL (err);
   int r;
@@ -52,4 +52,4 @@ clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
   return (INTERNAL_SYSCALL_ERROR_P (r, err)
 	  ? INTERNAL_SYSCALL_ERRNO (r, err) : 0);
 }
-strong_alias (clock_nanosleep, __clock_nanosleep)
+weak_alias (__clock_nanosleep, clock_nanosleep)