Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
Siddhesh Poyarekar committed Jun 11, 2013
1 parent b8c61b4 commit 89fb683
Show file tree
Hide file tree
Showing 13 changed files with 50 additions and 25 deletions.
22 changes: 22 additions & 0 deletions 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.
Expand Down
1 change: 1 addition & 0 deletions include/time.h
Expand Up @@ -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;
Expand Down
4 changes: 2 additions & 2 deletions rt/clock_getcpuclockid.c
Expand Up @@ -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 ())
Expand All @@ -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)
4 changes: 2 additions & 2 deletions rt/clock_getres.c
Expand Up @@ -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)
5 changes: 3 additions & 2 deletions rt/clock_gettime.c
Expand Up @@ -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)
6 changes: 3 additions & 3 deletions rt/clock_nanosleep.c
Expand Up @@ -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)
Expand All @@ -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)
4 changes: 2 additions & 2 deletions rt/clock_settime.c
Expand Up @@ -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)
4 changes: 2 additions & 2 deletions sysdeps/posix/clock_getres.c
Expand Up @@ -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;

Expand Down Expand Up @@ -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)
5 changes: 3 additions & 2 deletions sysdeps/unix/clock_gettime.c
Expand Up @@ -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;

Expand Down Expand Up @@ -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)
6 changes: 3 additions & 3 deletions sysdeps/unix/clock_nanosleep.c
Expand Up @@ -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;

Expand Down Expand Up @@ -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)
4 changes: 2 additions & 2 deletions sysdeps/unix/clock_settime.c
Expand Up @@ -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;

Expand Down Expand Up @@ -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)
4 changes: 2 additions & 2 deletions sysdeps/unix/sysv/linux/clock_getcpuclockid.c
Expand Up @@ -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. */
Expand All @@ -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)
6 changes: 3 additions & 3 deletions sysdeps/unix/sysv/linux/clock_nanosleep.c
Expand Up @@ -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;
Expand All @@ -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)

0 comments on commit 89fb683

Please sign in to comment.