aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2018-04-02 19:07:52 +0000
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2018-04-02 19:07:52 +0000
commitdba2bdbe75bcb62e62133b7c4a807a2c45c098a7 (patch)
tree686b67d01629f943b7401323bf19887445105232
parentf6fb29d22eefb208c0c7da463c31229d50ccbe01 (diff)
downloadglibc-dba2bdbe75bcb62e62133b7c4a807a2c45c098a7.zip
glibc-dba2bdbe75bcb62e62133b7c4a807a2c45c098a7.tar.gz
glibc-dba2bdbe75bcb62e62133b7c4a807a2c45c098a7.tar.bz2
hurd: Avoid some PLTs in libc and librt
* hurd/hurdauth.c (_S_msg_add_auth): Call __vm_allocate and __vm_deallocate instead of vm_allocate and vm_deallocate. * hurd/hurdmsg.c (_S_msg_set_env_variable): Call __setenv instead of setenv. * hurd/hurdprio.c (_hurd_priority_which_map): Call __geteuid instead of geteuid. * hurd/path-lookup.c (file_name_path_scan): Call __strdup instead of strdup. * hurd/siginfo.c: Include <libioP.h>. (_hurd_siginfo_handler): Call _IO_puts instead of puts. * hurd/xattr.c (_hurd_xattr_get, _hurd_xattr_set): Call __munmap instead of munmap. * io/fts.c (fts_build): Call __dirfd instead of dirfd. * mach/devstream.c: Include <libioP.h>. (dealloc_ref): Call __mach_port_deallocate instead of mach_port_deallocate. (mach_open_devstream): Call _IO_fopencookie instead of fopencookie. Call __mach_port_deallocate instead of mach_port_deallocate. * stdlib/canonicalize.c (__realpath): Call __pathconf instead of pathconf. * sysdeps/mach/hurd/ifreq.c (__ifreq): Call __munmap instead of munmap. * sysdeps/mach/hurd/ifreq.h (__if_freereq): Likewise. * sysdeps/mach/hurd/ptrace.c (ptrace): Call __kill instead of kill. * sysdeps/mach/hurd/sendfile64.c (sendfile64): Call __munmap instead of munmap. * sysdeps/mach/hurd/socketpair.c (__socketpair): Call __close instead of close. * sysdeps/posix/clock_getres.c (realtime_getres): Call __sysconf instead of sysconf. * sysdeps/pthread/timer_gettime.c (timer_gettime): Call __clock_gettime instead of clock_gettime. * sysdeps/pthread/timer_routines.c (thread_func): Likewise. * sysdeps/pthread/timer_settime.c (timer_settime): Likewise. * sysdeps/unix/bsd/gtty.c (gtty): Call __ioctl instead of ioctl. * sysdeps/unix/bsd/stty.c (stty): Likewise. * sysdeps/unix/bsd/tcflow.c (tcflow): Call __tcgetattr instead of tcgetattr. * sysdeps/unix/clock_nanosleep.c (__clock_nanosleep): Call __clock_gettime and __nanosleep instead of clock_gettime and nanosleep.
-rw-r--r--ChangeLog42
-rw-r--r--hurd/hurdauth.c16
-rw-r--r--hurd/hurdmsg.c2
-rw-r--r--hurd/hurdprio.c2
-rw-r--r--hurd/path-lookup.c2
-rw-r--r--hurd/siginfo.c3
-rw-r--r--hurd/xattr.c6
-rw-r--r--io/fts.c2
-rw-r--r--mach/devstream.c13
-rw-r--r--stdlib/canonicalize.c2
-rw-r--r--sysdeps/mach/hurd/ifreq.c2
-rw-r--r--sysdeps/mach/hurd/ifreq.h2
-rw-r--r--sysdeps/mach/hurd/ptrace.c2
-rw-r--r--sysdeps/mach/hurd/sendfile64.c2
-rw-r--r--sysdeps/mach/hurd/socketpair.c2
-rw-r--r--sysdeps/posix/clock_getres.c2
-rw-r--r--sysdeps/pthread/timer_gettime.c2
-rw-r--r--sysdeps/pthread/timer_routines.c2
-rw-r--r--sysdeps/pthread/timer_settime.c4
-rw-r--r--sysdeps/unix/bsd/gtty.c2
-rw-r--r--sysdeps/unix/bsd/stty.c2
-rw-r--r--sysdeps/unix/bsd/tcflow.c2
-rw-r--r--sysdeps/unix/clock_nanosleep.c4
23 files changed, 82 insertions, 38 deletions
diff --git a/ChangeLog b/ChangeLog
index b3d009b..e63f987 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -305,6 +305,48 @@
(_init_routine): Call __pthread_attr_init and __pthread_attr_setstack
instead of pthread_attr_init and pthread_attr_setstack.
+ * hurd/hurdauth.c (_S_msg_add_auth): Call __vm_allocate and
+ __vm_deallocate instead of vm_allocate and vm_deallocate.
+ * hurd/hurdmsg.c (_S_msg_set_env_variable): Call __setenv instead of
+ setenv.
+ * hurd/hurdprio.c (_hurd_priority_which_map): Call __geteuid instead
+ of geteuid.
+ * hurd/path-lookup.c (file_name_path_scan): Call __strdup instead of
+ strdup.
+ * hurd/siginfo.c: Include <libioP.h>.
+ (_hurd_siginfo_handler): Call _IO_puts instead of puts.
+ * hurd/xattr.c (_hurd_xattr_get, _hurd_xattr_set): Call __munmap instead of
+ munmap.
+ * io/fts.c (fts_build): Call __dirfd instead of dirfd.
+ * mach/devstream.c: Include <libioP.h>.
+ (dealloc_ref): Call __mach_port_deallocate instead of
+ mach_port_deallocate.
+ (mach_open_devstream): Call _IO_fopencookie instead of fopencookie.
+ Call __mach_port_deallocate instead of mach_port_deallocate.
+ * stdlib/canonicalize.c (__realpath): Call __pathconf instead of
+ pathconf.
+ * sysdeps/mach/hurd/ifreq.c (__ifreq): Call __munmap instead of
+ munmap.
+ * sysdeps/mach/hurd/ifreq.h (__if_freereq): Likewise.
+ * sysdeps/mach/hurd/ptrace.c (ptrace): Call __kill instead of kill.
+ * sysdeps/mach/hurd/sendfile64.c (sendfile64): Call __munmap instead
+ of munmap.
+ * sysdeps/mach/hurd/socketpair.c (__socketpair): Call __close instead
+ of close.
+ * sysdeps/posix/clock_getres.c (realtime_getres): Call __sysconf
+ instead of sysconf.
+ * sysdeps/pthread/timer_gettime.c (timer_gettime): Call
+ __clock_gettime instead of clock_gettime.
+ * sysdeps/pthread/timer_routines.c (thread_func): Likewise.
+ * sysdeps/pthread/timer_settime.c (timer_settime): Likewise.
+ * sysdeps/unix/bsd/gtty.c (gtty): Call __ioctl instead of ioctl.
+ * sysdeps/unix/bsd/stty.c (stty): Likewise.
+ * sysdeps/unix/bsd/tcflow.c (tcflow): Call __tcgetattr instead of
+ tcgetattr.
+ * sysdeps/unix/clock_nanosleep.c (__clock_nanosleep): Call
+ __clock_gettime and __nanosleep instead of clock_gettime and
+ nanosleep.
+
2018-04-02 Agustina Arzille <avarzille@riseup.net>
Amos Jeffries <squid3@treenet.co.nz>
David Michael <fedora.dm0@gmail.com>
diff --git a/hurd/hurdauth.c b/hurd/hurdauth.c
index ad315a2..1a7e67e 100644
--- a/hurd/hurdauth.c
+++ b/hurd/hurdauth.c
@@ -52,8 +52,8 @@ _S_msg_add_auth (mach_port_t me,
int i, j, k;
vm_size_t offset;
- urp = vm_allocate (mach_task_self (), (vm_address_t *) newlistp,
- nexist + nnew * sizeof (uid_t), 1);
+ urp = __vm_allocate (mach_task_self (), (vm_address_t *) newlistp,
+ nexist + nnew * sizeof (uid_t), 1);
if (urp)
return urp;
@@ -75,10 +75,10 @@ _S_msg_add_auth (mach_port_t me,
offset = (round_page (nexist + nnew * sizeof (uid_t))
- round_page (j * sizeof (uid_t)));
if (offset)
- vm_deallocate (mach_task_self (),
- (vm_address_t) (*newlistp
- + (nexist + nnew * sizeof (uid_t))),
- offset);
+ __vm_deallocate (mach_task_self (),
+ (vm_address_t) (*newlistp
+ + (nexist + nnew * sizeof (uid_t))),
+ offset);
*newlistlen = j;
return 0;
}
@@ -136,8 +136,8 @@ _S_msg_add_auth (mach_port_t me,
#define freeup(array, len) \
if (array) \
- vm_deallocate (mach_task_self (), (vm_address_t) array, \
- len * sizeof (uid_t));
+ __vm_deallocate (mach_task_self (), (vm_address_t) array, \
+ len * sizeof (uid_t));
freeup (genuids, ngenuids);
freeup (auxuids, nauxuids);
diff --git a/hurd/hurdmsg.c b/hurd/hurdmsg.c
index 5759af3..63e5e81 100644
--- a/hurd/hurdmsg.c
+++ b/hurd/hurdmsg.c
@@ -344,7 +344,7 @@ _S_msg_set_env_variable (mach_port_t msgport, mach_port_t auth,
{
AUTHCHECK;
- if (setenv (variable, value, replace)) /* XXX name space */
+ if (__setenv (variable, value, replace)) /* XXX name space */
return errno;
return 0;
}
diff --git a/hurd/hurdprio.c b/hurd/hurdprio.c
index 5ff84b6..3783fe9 100644
--- a/hurd/hurdprio.c
+++ b/hurd/hurdprio.c
@@ -50,7 +50,7 @@ _hurd_priority_which_map (enum __priority_which which, int who,
case PRIO_USER:
if (who == 0)
- who = geteuid ();
+ who = __geteuid ();
err = __USEPORT (PROC, __proc_getallpids (port, &pids, &npids));
for (i = 0; !err && i < npids; ++i)
{
diff --git a/hurd/path-lookup.c b/hurd/path-lookup.c
index d3906e1..389a8cc 100644
--- a/hurd/path-lookup.c
+++ b/hurd/path-lookup.c
@@ -63,7 +63,7 @@ file_name_path_scan (const char *file_name, const char *path,
if (err == 0)
{
if (prefixed_name)
- *prefixed_name = strdup (pfxed_name);
+ *prefixed_name = __strdup (pfxed_name);
return 0;
}
if (!real_err && err != ENOENT)
diff --git a/hurd/siginfo.c b/hurd/siginfo.c
index 65d8e48..75e02d5 100644
--- a/hurd/siginfo.c
+++ b/hurd/siginfo.c
@@ -17,10 +17,11 @@
#include <hurd/signal.h>
#include <stdio.h>
+#include <libioP.h>
void
_hurd_siginfo_handler (int signo)
{
/* XXX */
- puts ("got a SIGINFO");
+ _IO_puts ("got a SIGINFO");
}
diff --git a/hurd/xattr.c b/hurd/xattr.c
index c56bab0..23d9fcb 100644
--- a/hurd/xattr.c
+++ b/hurd/xattr.c
@@ -67,14 +67,14 @@ _hurd_xattr_get (io_t port, const char *name, void *value, size_t *size)
if (value != NULL && *size < bufsz)
{
if (buf != value)
- munmap (buf, bufsz);
+ __munmap (buf, bufsz);
return -ERANGE;
}
if (buf != value && bufsz > 0)
{
if (value != NULL)
memcpy (value, buf, bufsz);
- munmap (buf, bufsz);
+ __munmap (buf, bufsz);
}
*size = bufsz;
return 0;
@@ -150,7 +150,7 @@ _hurd_xattr_set (io_t port, const char *name, const void *value, size_t size,
return err;
if (bufsz > 0)
{
- munmap (buf, bufsz);
+ __munmap (buf, bufsz);
return ENODATA;
}
}
diff --git a/io/fts.c b/io/fts.c
index ad9d333..a30491c 100644
--- a/io/fts.c
+++ b/io/fts.c
@@ -680,7 +680,7 @@ fts_build (FTSOBJ *sp, int type)
*/
cderrno = 0;
if (nlinks || type == BREAD) {
- if (fts_safe_changedir(sp, cur, dirfd(dirp), NULL)) {
+ if (fts_safe_changedir(sp, cur, __dirfd(dirp), NULL)) {
if (nlinks && type == BREAD)
cur->fts_errno = errno;
cur->fts_flags |= FTS_DONTCHDIR;
diff --git a/mach/devstream.c b/mach/devstream.c
index 21d9f7b..505b657 100644
--- a/mach/devstream.c
+++ b/mach/devstream.c
@@ -22,6 +22,7 @@
#include <device/device.h>
#include <errno.h>
#include <string.h>
+#include <libioP.h>
static ssize_t
@@ -111,7 +112,7 @@ devstream_read (void *cookie, char *buffer, size_t to_read)
static int
dealloc_ref (void *cookie)
{
- if (mach_port_deallocate (mach_task_self (), (mach_port_t) cookie))
+ if (__mach_port_deallocate (mach_task_self (), (mach_port_t) cookie))
{
errno = EINVAL;
return -1;
@@ -130,13 +131,13 @@ mach_open_devstream (mach_port_t dev, const char *mode)
return NULL;
}
- stream = fopencookie ((void *) dev, mode,
- (cookie_io_functions_t) { write: devstream_write,
- read: devstream_read,
- close: dealloc_ref });
+ stream = _IO_fopencookie ((void *) dev, mode,
+ (cookie_io_functions_t) { write: devstream_write,
+ read: devstream_read,
+ close: dealloc_ref });
if (stream == NULL)
{
- mach_port_deallocate (mach_task_self (), dev);
+ __mach_port_deallocate (mach_task_self (), dev);
return NULL;
}
diff --git a/stdlib/canonicalize.c b/stdlib/canonicalize.c
index 30825a9..4135f3f 100644
--- a/stdlib/canonicalize.c
+++ b/stdlib/canonicalize.c
@@ -68,7 +68,7 @@ __realpath (const char *name, char *resolved)
#ifdef PATH_MAX
path_max = PATH_MAX;
#else
- path_max = pathconf (name, _PC_PATH_MAX);
+ path_max = __pathconf (name, _PC_PATH_MAX);
if (path_max <= 0)
path_max = 1024;
#endif
diff --git a/sysdeps/mach/hurd/ifreq.c b/sysdeps/mach/hurd/ifreq.c
index 1087782..70a906a 100644
--- a/sysdeps/mach/hurd/ifreq.c
+++ b/sysdeps/mach/hurd/ifreq.c
@@ -53,7 +53,7 @@ __ifreq (struct ifreq **ifreqs, int *num_ifs, int sockfd)
if (len % sizeof (struct ifreq) != 0)
{
- munmap (data, len);
+ __munmap (data, len);
errno = EGRATUITOUS;
goto out;
}
diff --git a/sysdeps/mach/hurd/ifreq.h b/sysdeps/mach/hurd/ifreq.h
index 3c20066..3ab8d85 100644
--- a/sysdeps/mach/hurd/ifreq.h
+++ b/sysdeps/mach/hurd/ifreq.h
@@ -28,5 +28,5 @@
static inline void
__if_freereq (struct ifreq *ifreqs, int num_ifs)
{
- munmap (ifreqs, num_ifs * sizeof (struct ifreq));
+ __munmap (ifreqs, num_ifs * sizeof (struct ifreq));
}
diff --git a/sysdeps/mach/hurd/ptrace.c b/sysdeps/mach/hurd/ptrace.c
index ac3059b..d0268a3 100644
--- a/sysdeps/mach/hurd/ptrace.c
+++ b/sysdeps/mach/hurd/ptrace.c
@@ -155,7 +155,7 @@ ptrace (enum __ptrace_request request, ... )
va_end (ap);
/* SIGKILL always just terminates the task,
so normal kill is just the same when traced. */
- return kill (pid, SIGKILL);
+ return __kill (pid, SIGKILL);
case PTRACE_SINGLESTEP:
/* This is a machine-dependent kernel RPC on
diff --git a/sysdeps/mach/hurd/sendfile64.c b/sysdeps/mach/hurd/sendfile64.c
index dfd9c45..f69ccd4 100644
--- a/sysdeps/mach/hurd/sendfile64.c
+++ b/sysdeps/mach/hurd/sendfile64.c
@@ -47,7 +47,7 @@ sendfile64 (int out_fd, int in_fd, off64_t *offset, size_t count)
return 0;
err = HURD_DPORT_USE (out_fd, __io_write (port, data, datalen,
(off_t) -1, &nwrote));
- munmap (data, datalen);
+ __munmap (data, datalen);
if (err == 0)
{
if (offset)
diff --git a/sysdeps/mach/hurd/socketpair.c b/sysdeps/mach/hurd/socketpair.c
index 85e0f74..3b18c67 100644
--- a/sysdeps/mach/hurd/socketpair.c
+++ b/sysdeps/mach/hurd/socketpair.c
@@ -82,7 +82,7 @@ __socketpair (int domain, int type, int protocol, int fds[2])
if (d2 < 0)
{
err = errno;
- (void) close (d1);
+ (void) __close (d1);
return __hurd_fail (err);
}
diff --git a/sysdeps/posix/clock_getres.c b/sysdeps/posix/clock_getres.c
index 8bc7e81..e7924e0 100644
--- a/sysdeps/posix/clock_getres.c
+++ b/sysdeps/posix/clock_getres.c
@@ -58,7 +58,7 @@ hp_timing_getres (struct timespec *res)
static inline int
realtime_getres (struct timespec *res)
{
- long int clk_tck = sysconf (_SC_CLK_TCK);
+ long int clk_tck = __sysconf (_SC_CLK_TCK);
if (__glibc_likely (clk_tck != -1))
{
diff --git a/sysdeps/pthread/timer_gettime.c b/sysdeps/pthread/timer_gettime.c
index ef3019f..f5f060a 100644
--- a/sysdeps/pthread/timer_gettime.c
+++ b/sysdeps/pthread/timer_gettime.c
@@ -50,7 +50,7 @@ timer_gettime (timer_t timerid, struct itimerspec *value)
{
if (armed)
{
- clock_gettime (clock, &now);
+ __clock_gettime (clock, &now);
if (timespec_compare (&now, &expiry) < 0)
timespec_sub (&value->it_value, &expiry, &now);
else
diff --git a/sysdeps/pthread/timer_routines.c b/sysdeps/pthread/timer_routines.c
index 25ccfad..c122467 100644
--- a/sysdeps/pthread/timer_routines.c
+++ b/sysdeps/pthread/timer_routines.c
@@ -376,7 +376,7 @@ thread_func (void *arg)
/* This assumes that the elements of the list of one thread
are all for the same clock. */
- clock_gettime (timer->clock, &now);
+ __clock_gettime (timer->clock, &now);
while (1)
{
diff --git a/sysdeps/pthread/timer_settime.c b/sysdeps/pthread/timer_settime.c
index 5c541ac..8a71a50 100644
--- a/sysdeps/pthread/timer_settime.c
+++ b/sysdeps/pthread/timer_settime.c
@@ -55,7 +55,7 @@ timer_settime (timer_t timerid, int flags, const struct itimerspec *value,
if ((flags & TIMER_ABSTIME) == 0)
{
- clock_gettime (timer->clock, &now);
+ __clock_gettime (timer->clock, &now);
have_now = 1;
}
@@ -80,7 +80,7 @@ timer_settime (timer_t timerid, int flags, const struct itimerspec *value,
if (! have_now)
{
pthread_mutex_unlock (&__timer_mutex);
- clock_gettime (timer->clock, &now);
+ __clock_gettime (timer->clock, &now);
have_now = 1;
pthread_mutex_lock (&__timer_mutex);
timer_addref (timer);
diff --git a/sysdeps/unix/bsd/gtty.c b/sysdeps/unix/bsd/gtty.c
index 830de6d..77e2a72 100644
--- a/sysdeps/unix/bsd/gtty.c
+++ b/sysdeps/unix/bsd/gtty.c
@@ -22,5 +22,5 @@
int
gtty (int fd, struct sgttyb *params)
{
- return ioctl (fd, TIOCGETP, (void *) params);
+ return __ioctl (fd, TIOCGETP, (void *) params);
}
diff --git a/sysdeps/unix/bsd/stty.c b/sysdeps/unix/bsd/stty.c
index c89ab00..8a0bbde 100644
--- a/sysdeps/unix/bsd/stty.c
+++ b/sysdeps/unix/bsd/stty.c
@@ -22,5 +22,5 @@
int
stty (int fd, const struct sgttyb *params)
{
- return ioctl (fd, TIOCSETP, (void *) params);
+ return __ioctl (fd, TIOCSETP, (void *) params);
}
diff --git a/sysdeps/unix/bsd/tcflow.c b/sysdeps/unix/bsd/tcflow.c
index 7998e0c..3eb5f61 100644
--- a/sysdeps/unix/bsd/tcflow.c
+++ b/sysdeps/unix/bsd/tcflow.c
@@ -40,7 +40,7 @@ tcflow (int fd, int action)
`write'. Is there another way to do this? */
struct termios attr;
unsigned char c;
- if (tcgetattr (fd, &attr) < 0)
+ if (__tcgetattr (fd, &attr) < 0)
return -1;
c = attr.c_cc[action == TCIOFF ? VSTOP : VSTART];
if (c != _POSIX_VDISABLE && write (fd, &c, 1) < 1)
diff --git a/sysdeps/unix/clock_nanosleep.c b/sysdeps/unix/clock_nanosleep.c
index 491ce02..97b3d6b 100644
--- a/sysdeps/unix/clock_nanosleep.c
+++ b/sysdeps/unix/clock_nanosleep.c
@@ -71,7 +71,7 @@ __clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
assert (sizeof (sec) >= sizeof (now.tv_sec));
/* Get the current time for this clock. */
- if (__builtin_expect (clock_gettime (clock_id, &now), 0) != 0)
+ if (__builtin_expect (__clock_gettime (clock_id, &now), 0) != 0)
return errno;
/* Compute the difference. */
@@ -96,6 +96,6 @@ __clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
/* Not supported. */
return ENOTSUP;
- return __builtin_expect (nanosleep (req, rem), 0) ? errno : 0;
+ return __builtin_expect (__nanosleep (req, rem), 0) ? errno : 0;
}
weak_alias (__clock_nanosleep, clock_nanosleep)