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.
This commit is contained in:
Samuel Thibault 2018-04-02 19:07:52 +00:00
parent f6fb29d22e
commit dba2bdbe75
23 changed files with 82 additions and 38 deletions

View file

@ -305,6 +305,48 @@
(_init_routine): Call __pthread_attr_init and __pthread_attr_setstack (_init_routine): Call __pthread_attr_init and __pthread_attr_setstack
instead of 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> 2018-04-02 Agustina Arzille <avarzille@riseup.net>
Amos Jeffries <squid3@treenet.co.nz> Amos Jeffries <squid3@treenet.co.nz>
David Michael <fedora.dm0@gmail.com> David Michael <fedora.dm0@gmail.com>

View file

@ -52,8 +52,8 @@ _S_msg_add_auth (mach_port_t me,
int i, j, k; int i, j, k;
vm_size_t offset; vm_size_t offset;
urp = vm_allocate (mach_task_self (), (vm_address_t *) newlistp, urp = __vm_allocate (mach_task_self (), (vm_address_t *) newlistp,
nexist + nnew * sizeof (uid_t), 1); nexist + nnew * sizeof (uid_t), 1);
if (urp) if (urp)
return urp; return urp;
@ -75,10 +75,10 @@ _S_msg_add_auth (mach_port_t me,
offset = (round_page (nexist + nnew * sizeof (uid_t)) offset = (round_page (nexist + nnew * sizeof (uid_t))
- round_page (j * sizeof (uid_t))); - round_page (j * sizeof (uid_t)));
if (offset) if (offset)
vm_deallocate (mach_task_self (), __vm_deallocate (mach_task_self (),
(vm_address_t) (*newlistp (vm_address_t) (*newlistp
+ (nexist + nnew * sizeof (uid_t))), + (nexist + nnew * sizeof (uid_t))),
offset); offset);
*newlistlen = j; *newlistlen = j;
return 0; return 0;
} }
@ -136,8 +136,8 @@ _S_msg_add_auth (mach_port_t me,
#define freeup(array, len) \ #define freeup(array, len) \
if (array) \ if (array) \
vm_deallocate (mach_task_self (), (vm_address_t) array, \ __vm_deallocate (mach_task_self (), (vm_address_t) array, \
len * sizeof (uid_t)); len * sizeof (uid_t));
freeup (genuids, ngenuids); freeup (genuids, ngenuids);
freeup (auxuids, nauxuids); freeup (auxuids, nauxuids);

View file

@ -344,7 +344,7 @@ _S_msg_set_env_variable (mach_port_t msgport, mach_port_t auth,
{ {
AUTHCHECK; AUTHCHECK;
if (setenv (variable, value, replace)) /* XXX name space */ if (__setenv (variable, value, replace)) /* XXX name space */
return errno; return errno;
return 0; return 0;
} }

View file

@ -50,7 +50,7 @@ _hurd_priority_which_map (enum __priority_which which, int who,
case PRIO_USER: case PRIO_USER:
if (who == 0) if (who == 0)
who = geteuid (); who = __geteuid ();
err = __USEPORT (PROC, __proc_getallpids (port, &pids, &npids)); err = __USEPORT (PROC, __proc_getallpids (port, &pids, &npids));
for (i = 0; !err && i < npids; ++i) for (i = 0; !err && i < npids; ++i)
{ {

View file

@ -63,7 +63,7 @@ file_name_path_scan (const char *file_name, const char *path,
if (err == 0) if (err == 0)
{ {
if (prefixed_name) if (prefixed_name)
*prefixed_name = strdup (pfxed_name); *prefixed_name = __strdup (pfxed_name);
return 0; return 0;
} }
if (!real_err && err != ENOENT) if (!real_err && err != ENOENT)

View file

@ -17,10 +17,11 @@
#include <hurd/signal.h> #include <hurd/signal.h>
#include <stdio.h> #include <stdio.h>
#include <libioP.h>
void void
_hurd_siginfo_handler (int signo) _hurd_siginfo_handler (int signo)
{ {
/* XXX */ /* XXX */
puts ("got a SIGINFO"); _IO_puts ("got a SIGINFO");
} }

View file

@ -67,14 +67,14 @@ _hurd_xattr_get (io_t port, const char *name, void *value, size_t *size)
if (value != NULL && *size < bufsz) if (value != NULL && *size < bufsz)
{ {
if (buf != value) if (buf != value)
munmap (buf, bufsz); __munmap (buf, bufsz);
return -ERANGE; return -ERANGE;
} }
if (buf != value && bufsz > 0) if (buf != value && bufsz > 0)
{ {
if (value != NULL) if (value != NULL)
memcpy (value, buf, bufsz); memcpy (value, buf, bufsz);
munmap (buf, bufsz); __munmap (buf, bufsz);
} }
*size = bufsz; *size = bufsz;
return 0; return 0;
@ -150,7 +150,7 @@ _hurd_xattr_set (io_t port, const char *name, const void *value, size_t size,
return err; return err;
if (bufsz > 0) if (bufsz > 0)
{ {
munmap (buf, bufsz); __munmap (buf, bufsz);
return ENODATA; return ENODATA;
} }
} }

View file

@ -680,7 +680,7 @@ fts_build (FTSOBJ *sp, int type)
*/ */
cderrno = 0; cderrno = 0;
if (nlinks || type == BREAD) { 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) if (nlinks && type == BREAD)
cur->fts_errno = errno; cur->fts_errno = errno;
cur->fts_flags |= FTS_DONTCHDIR; cur->fts_flags |= FTS_DONTCHDIR;

View file

@ -22,6 +22,7 @@
#include <device/device.h> #include <device/device.h>
#include <errno.h> #include <errno.h>
#include <string.h> #include <string.h>
#include <libioP.h>
static ssize_t static ssize_t
@ -111,7 +112,7 @@ devstream_read (void *cookie, char *buffer, size_t to_read)
static int static int
dealloc_ref (void *cookie) 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; errno = EINVAL;
return -1; return -1;
@ -130,13 +131,13 @@ mach_open_devstream (mach_port_t dev, const char *mode)
return NULL; return NULL;
} }
stream = fopencookie ((void *) dev, mode, stream = _IO_fopencookie ((void *) dev, mode,
(cookie_io_functions_t) { write: devstream_write, (cookie_io_functions_t) { write: devstream_write,
read: devstream_read, read: devstream_read,
close: dealloc_ref }); close: dealloc_ref });
if (stream == NULL) if (stream == NULL)
{ {
mach_port_deallocate (mach_task_self (), dev); __mach_port_deallocate (mach_task_self (), dev);
return NULL; return NULL;
} }

View file

@ -68,7 +68,7 @@ __realpath (const char *name, char *resolved)
#ifdef PATH_MAX #ifdef PATH_MAX
path_max = PATH_MAX; path_max = PATH_MAX;
#else #else
path_max = pathconf (name, _PC_PATH_MAX); path_max = __pathconf (name, _PC_PATH_MAX);
if (path_max <= 0) if (path_max <= 0)
path_max = 1024; path_max = 1024;
#endif #endif

View file

@ -53,7 +53,7 @@ __ifreq (struct ifreq **ifreqs, int *num_ifs, int sockfd)
if (len % sizeof (struct ifreq) != 0) if (len % sizeof (struct ifreq) != 0)
{ {
munmap (data, len); __munmap (data, len);
errno = EGRATUITOUS; errno = EGRATUITOUS;
goto out; goto out;
} }

View file

@ -28,5 +28,5 @@
static inline void static inline void
__if_freereq (struct ifreq *ifreqs, int num_ifs) __if_freereq (struct ifreq *ifreqs, int num_ifs)
{ {
munmap (ifreqs, num_ifs * sizeof (struct ifreq)); __munmap (ifreqs, num_ifs * sizeof (struct ifreq));
} }

View file

@ -155,7 +155,7 @@ ptrace (enum __ptrace_request request, ... )
va_end (ap); va_end (ap);
/* SIGKILL always just terminates the task, /* SIGKILL always just terminates the task,
so normal kill is just the same when traced. */ so normal kill is just the same when traced. */
return kill (pid, SIGKILL); return __kill (pid, SIGKILL);
case PTRACE_SINGLESTEP: case PTRACE_SINGLESTEP:
/* This is a machine-dependent kernel RPC on /* This is a machine-dependent kernel RPC on

View file

@ -47,7 +47,7 @@ sendfile64 (int out_fd, int in_fd, off64_t *offset, size_t count)
return 0; return 0;
err = HURD_DPORT_USE (out_fd, __io_write (port, data, datalen, err = HURD_DPORT_USE (out_fd, __io_write (port, data, datalen,
(off_t) -1, &nwrote)); (off_t) -1, &nwrote));
munmap (data, datalen); __munmap (data, datalen);
if (err == 0) if (err == 0)
{ {
if (offset) if (offset)

View file

@ -82,7 +82,7 @@ __socketpair (int domain, int type, int protocol, int fds[2])
if (d2 < 0) if (d2 < 0)
{ {
err = errno; err = errno;
(void) close (d1); (void) __close (d1);
return __hurd_fail (err); return __hurd_fail (err);
} }

View file

@ -58,7 +58,7 @@ hp_timing_getres (struct timespec *res)
static inline int static inline int
realtime_getres (struct timespec *res) 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)) if (__glibc_likely (clk_tck != -1))
{ {

View file

@ -50,7 +50,7 @@ timer_gettime (timer_t timerid, struct itimerspec *value)
{ {
if (armed) if (armed)
{ {
clock_gettime (clock, &now); __clock_gettime (clock, &now);
if (timespec_compare (&now, &expiry) < 0) if (timespec_compare (&now, &expiry) < 0)
timespec_sub (&value->it_value, &expiry, &now); timespec_sub (&value->it_value, &expiry, &now);
else else

View file

@ -376,7 +376,7 @@ thread_func (void *arg)
/* This assumes that the elements of the list of one thread /* This assumes that the elements of the list of one thread
are all for the same clock. */ are all for the same clock. */
clock_gettime (timer->clock, &now); __clock_gettime (timer->clock, &now);
while (1) while (1)
{ {

View file

@ -55,7 +55,7 @@ timer_settime (timer_t timerid, int flags, const struct itimerspec *value,
if ((flags & TIMER_ABSTIME) == 0) if ((flags & TIMER_ABSTIME) == 0)
{ {
clock_gettime (timer->clock, &now); __clock_gettime (timer->clock, &now);
have_now = 1; have_now = 1;
} }
@ -80,7 +80,7 @@ timer_settime (timer_t timerid, int flags, const struct itimerspec *value,
if (! have_now) if (! have_now)
{ {
pthread_mutex_unlock (&__timer_mutex); pthread_mutex_unlock (&__timer_mutex);
clock_gettime (timer->clock, &now); __clock_gettime (timer->clock, &now);
have_now = 1; have_now = 1;
pthread_mutex_lock (&__timer_mutex); pthread_mutex_lock (&__timer_mutex);
timer_addref (timer); timer_addref (timer);

View file

@ -22,5 +22,5 @@
int int
gtty (int fd, struct sgttyb *params) gtty (int fd, struct sgttyb *params)
{ {
return ioctl (fd, TIOCGETP, (void *) params); return __ioctl (fd, TIOCGETP, (void *) params);
} }

View file

@ -22,5 +22,5 @@
int int
stty (int fd, const struct sgttyb *params) stty (int fd, const struct sgttyb *params)
{ {
return ioctl (fd, TIOCSETP, (void *) params); return __ioctl (fd, TIOCSETP, (void *) params);
} }

View file

@ -40,7 +40,7 @@ tcflow (int fd, int action)
`write'. Is there another way to do this? */ `write'. Is there another way to do this? */
struct termios attr; struct termios attr;
unsigned char c; unsigned char c;
if (tcgetattr (fd, &attr) < 0) if (__tcgetattr (fd, &attr) < 0)
return -1; return -1;
c = attr.c_cc[action == TCIOFF ? VSTOP : VSTART]; c = attr.c_cc[action == TCIOFF ? VSTOP : VSTART];
if (c != _POSIX_VDISABLE && write (fd, &c, 1) < 1) if (c != _POSIX_VDISABLE && write (fd, &c, 1) < 1)

View file

@ -71,7 +71,7 @@ __clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
assert (sizeof (sec) >= sizeof (now.tv_sec)); assert (sizeof (sec) >= sizeof (now.tv_sec));
/* Get the current time for this clock. */ /* 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; return errno;
/* Compute the difference. */ /* Compute the difference. */
@ -96,6 +96,6 @@ __clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
/* Not supported. */ /* Not supported. */
return ENOTSUP; 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) weak_alias (__clock_nanosleep, clock_nanosleep)