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.
This commit is contained in:
Siddhesh Poyarekar 2013-06-11 11:11:11 +05:30
parent b8c61b4b1d
commit 89fb683558
13 changed files with 50 additions and 25 deletions

View File

@ -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.

View File

@ -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;

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)