diff options
author | Ulrich Drepper <drepper@redhat.com> | 2000-06-14 00:55:24 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2000-06-14 00:55:24 +0000 |
commit | afa0569f3ba820fe6baf60e72d8c1d6e923e4e98 (patch) | |
tree | c55508731f6a3858cfd1adaf6563aa40cab13fec | |
parent | 490dc9aa62445bdc3f5a84addd459398b9fdbe15 (diff) | |
download | glibc-afa0569f3ba820fe6baf60e72d8c1d6e923e4e98.tar.gz glibc-afa0569f3ba820fe6baf60e72d8c1d6e923e4e98.tar.xz glibc-afa0569f3ba820fe6baf60e72d8c1d6e923e4e98.zip |
Update.
* crypt/Makefile (distribute): Add ufc-crypt.h, crypt-private.h, ufc.c, speeds.c, README.ufc-crypt, and Banner. * sysdeps/sparc/Subdirs: New file. * locale/Makefile (distribute): Add weightwc.h and programs/localedef.h. * time/Makefile (distribute): Add datemsk. * sysdeps/ia64/Dist: Add softpipe.h. * sysdeps/unix/sysv/aix/Dist: New file. * posix/setpgrp.c: Moved to... * sysdeps/generic/setpgrp.c: ...here. New file. * io/mknod.c: Moved to... * sysdeps/generic/mknod.c: ...here. New file. * sysdeps/unix/sysv/linux/ia64/Dist: New file. * sysdeps/unix/sysv/linux/sparc/Dist: Add sys/procfs.h. * sysdeps/unix/sysv/linux/arm/Dist: Add oldgetrlimit64.c. * sysdeps/powerpc/Dist: Add fprrest.S, fprsave.S, gprsave1.S, gprsave0.S, gprrest1.S, and gprrest0.S. * sysdeps/generic/Dist: Add bp-thunks.h, bp-sym.h, and bp-start.h. * posix/Makefile (routines): Add spawnattr_getsigmask, spawnattr_getschedpolicy, spawnattr_getschedparam, spawnattr_setsigmask, spawnattr_setschedpolicy, and spawnattr_setschedparam. * posix/Versions: Add posix_spawnattr_getschedpolicy, posix_spawnattr_setschedpolicy, posix_spawnattr_getschedparam, and posix_spawnattr_setschedparam. * posix/spawnattr_setschedparam.c: Fix typo. * posix/spawnattr_setsigmask.c (posix_spawnattr_setsigmask): Correct typo. * login/programs/utmpd.c: Removed. * login/programs/utmpd.h: Removed. * login/programs/utmpd-private.h: Removed. * Makefile (distribute): Add include/db_185.h and include/db.h. * iconvdata/Makefile (distribute): Add iso-ir-165.c and iso-ir-165.h. * elf/Makefile (distribute): Add missing files. * dlfcn/Makefile: Add back rules to include eval in libdl.so. * elf/eval.c: Moved to... * dlfcn/eval.c: ...here. New file. * Makefile (distribute): Also distribute ChangeLog.1?.
29 files changed, 120 insertions, 692 deletions
diff --git a/ChangeLog b/ChangeLog index c4323e38d1..dac25c2e34 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,65 @@ 2000-06-13 Ulrich Drepper <drepper@redhat.com> + * crypt/Makefile (distribute): Add ufc-crypt.h, crypt-private.h, + ufc.c, speeds.c, README.ufc-crypt, and Banner. + + * sysdeps/sparc/Subdirs: New file. + + * locale/Makefile (distribute): Add weightwc.h and + programs/localedef.h. + + * time/Makefile (distribute): Add datemsk. + + * sysdeps/ia64/Dist: Add softpipe.h. + + * sysdeps/unix/sysv/aix/Dist: New file. + + * posix/setpgrp.c: Moved to... + * sysdeps/generic/setpgrp.c: ...here. New file. + * io/mknod.c: Moved to... + * sysdeps/generic/mknod.c: ...here. New file. + + * sysdeps/unix/sysv/linux/ia64/Dist: New file. + + * sysdeps/unix/sysv/linux/sparc/Dist: Add sys/procfs.h. + + * sysdeps/unix/sysv/linux/arm/Dist: Add oldgetrlimit64.c. + + * sysdeps/powerpc/Dist: Add fprrest.S, fprsave.S, gprsave1.S, + gprsave0.S, gprrest1.S, and gprrest0.S. + + * sysdeps/generic/Dist: Add bp-thunks.h, bp-sym.h, and bp-start.h. + + * posix/Makefile (routines): Add spawnattr_getsigmask, + spawnattr_getschedpolicy, spawnattr_getschedparam, + spawnattr_setsigmask, spawnattr_setschedpolicy, and + spawnattr_setschedparam. + * posix/Versions: Add posix_spawnattr_getschedpolicy, + posix_spawnattr_setschedpolicy, posix_spawnattr_getschedparam, and + posix_spawnattr_setschedparam. + + * posix/spawnattr_setschedparam.c: Fix typo. + + * posix/spawnattr_setsigmask.c (posix_spawnattr_setsigmask): + Correct typo. + + * login/programs/utmpd.c: Removed. + * login/programs/utmpd.h: Removed. + * login/programs/utmpd-private.h: Removed. + + * Makefile (distribute): Add include/db_185.h and include/db.h. + + * iconvdata/Makefile (distribute): Add iso-ir-165.c and + iso-ir-165.h. + + * elf/Makefile (distribute): Add missing files. + + * dlfcn/Makefile: Add back rules to include eval in libdl.so. + * elf/eval.c: Moved to... + * dlfcn/eval.c: ...here. New file. + + * Makefile (distribute): Also distribute ChangeLog.1?. + * Make-dist (+tsrcs): Remove .args handling here as well. * rt/Makefile (tests): Add tst-timer. diff --git a/Makefile b/Makefile index 5cf82ebc95..c7ef4b68aa 100644 --- a/Makefile +++ b/Makefile @@ -253,13 +253,14 @@ parent_echo-distinfo: distribute := README README.libm INSTALL FAQ FAQ.in NOTES NEWS BUGS \ PROJECTS COPYING.LIB COPYING ChangeLog ChangeLog.[0-9] \ - Makefile Makeconfig Makerules Rules Make-dist MakeTAGS \ - extra-lib.mk o-iterator.mk configure configure.in \ - aclocal.m4 config.h.in config.make.in config-name.in \ - Makefile.in sysdep.h set-hooks.h libc-symbols.h \ - version.h shlib-versions rpm/Makefile rpm/template \ - rpm/rpmrc glibcbug.in abi-tags stub-tag.h \ - test-skeleton.c include/des.h Versions.def \ + ChangeLog.1[0-9] Makefile Makeconfig Makerules Rules \ + Make-dist MakeTAGS extra-lib.mk o-iterator.mk configure \ + configure.in aclocal.m4 config.h.in config.make.in \ + config-name.in Makefile.in sysdep.h set-hooks.h \ + libc-symbols.h version.h shlib-versions rpm/Makefile \ + rpm/template rpm/rpmrc glibcbug.in abi-tags stub-tag.h \ + test-skeleton.c include/des.h include/db_185.h \ + include/db.h Versions.def \ INTERFACE CONFORMANCE NAMESPACE \ $(addprefix scripts/, \ rellns-sh config.sub config.guess \ diff --git a/crypt/Makefile b/crypt/Makefile index a9ce7da41e..79f45b80ce 100644 --- a/crypt/Makefile +++ b/crypt/Makefile @@ -32,6 +32,9 @@ libcrypt-routines := crypt-entry md5-crypt md5 crypt crypt_util tests = cert md5test md5c-test +distribute = ufc-crypt.h crypt-private.h ufc.c speeds.c README.ufc-crypt \ + Banner + include ../Makeconfig ifeq ($(crypt-in-libc),yes) diff --git a/dlfcn/Makefile b/dlfcn/Makefile index ed725639ef..1f171040d2 100644 --- a/dlfcn/Makefile +++ b/dlfcn/Makefile @@ -19,8 +19,8 @@ subdir := dlfcn headers := bits/dlfcn.h dlfcn.h extra-libs := libdl -libdl-routines := dlopen dlclose dlsym dlvsym dlerror dladdr -distribute := dlopenold.c glreflib1.c glreflib2.c failtestmod.c +libdl-routines := dlopen dlclose dlsym dlvsym dlerror dladdr eval +distribute := dlopenold.c glreflib1.c glreflib2.c failtestmod.c eval.c extra-libs-others := libdl @@ -30,15 +30,18 @@ ifeq ($(versioning),yes) libdl-routines += dlopenold libdl-shared-only-routines := dlopenold endif +libdl-shared-only-routines += eval ifeq (yes,$(build-shared)) tests = glrefmain failtest endif modules-names = glreflib1 glreflib2 failtestmod -extra-objs += $(modules-names:=.os) +extra-objs += $(modules-names:=.os) eval.os include ../Rules +LDFLAGS-dl.so = -Wl,-dynamic-linker,$(slibdir)/$(rtld-installed-name) + test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(modules-names))) $(test-modules): $(objpfx)%.so: $(objpfx)%.os $(build-module) diff --git a/elf/eval.c b/dlfcn/eval.c index ce452b722c..ce452b722c 100644 --- a/elf/eval.c +++ b/dlfcn/eval.c diff --git a/elf/Makefile b/elf/Makefile index a31e0816c8..35aa7a1283 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -43,7 +43,9 @@ distribute := $(rtld-routines:=.c) dynamic-link.h do-rel.h dl-machine.h \ testobj1.c testobj2.c testobj3.c testobj4.c testobj5.c \ testobj6.c testobj1_1.c failobj.c \ ldconfig.h ldconfig.c cache.c readlib.c readelflib.c \ - dep1.c dep2.c dep3.c dep4.c dl-dtprocnum.h + dep1.c dep2.c dep3.c dep4.c dl-dtprocnum.h \ + vismain.c vismod1.c vismod2.c vismod3.c \ + constload2.c constload3.c include ../Makeconfig diff --git a/iconvdata/Makefile b/iconvdata/Makefile index fb6edca5b7..b95d3a4086 100644 --- a/iconvdata/Makefile +++ b/iconvdata/Makefile @@ -118,7 +118,7 @@ distribute := gconv-modules extra-module.mk gap.awk gaptab.awk \ macintosh.c mac-is.c mac-uk.c nats-dano.c nats-sefi.c sjis.c \ t.61.c uhc.c sami-ws2.c iso-ir-197.c tis-620.c koi8-u.c \ isiri-3342.c gbgbk.c iso-2022-cn.c cns11643l2.h iso8859-16.c \ - utf-16.c unicode.c big5hkscs.c + utf-16.c unicode.c big5hkscs.c iso-ir-165.c iso-ir-165.h # We build the transformation modules only when we build shared libs. ifeq (yes,$(build-shared)) diff --git a/locale/Makefile b/locale/Makefile index 6ab6b54b7c..db71cc2422 100644 --- a/locale/Makefile +++ b/locale/Makefile @@ -23,7 +23,7 @@ subdir := locale headers = locale.h langinfo.h xlocale.h distribute = localeinfo.h categories.def iso-639.def iso-3166.def \ - iso-4217.def weight.h strlen-hash.h elem-hash.h \ + iso-4217.def weight.h weightwc.h strlen-hash.h elem-hash.h \ indigits.h indigitswc.h outdigits.h outdigitswc.h \ $(addprefix programs/, \ locale.c localedef.c \ @@ -31,7 +31,7 @@ distribute = localeinfo.h categories.def iso-639.def iso-3166.def \ $(lib-modules:=.c) config.h simple-hash.h \ charmap-kw.gperf charmap-kw.h locfile-token.h \ locfile-kw.gperf locfile-kw.h linereader.h \ - locfile.h charmap.h repertoire.h) + locfile.h charmap.h repertoire.h localedef.h) routines = setlocale findlocale loadlocale localeconv nl_langinfo \ mb_cur_max codeset_name \ newlocale duplocale freelocale diff --git a/localedata/Makefile b/localedata/Makefile index 218e68e09c..05b85e14ad 100644 --- a/localedata/Makefile +++ b/localedata/Makefile @@ -42,9 +42,10 @@ test-input := de_DE.ISO-8859-1 da_DK.ISO-8859-1 fr_CA,2.13.ISO-8859-1 \ test-input-data = $(addsuffix .in, $(basename $(test-input))) test-output := $(foreach s, .out .xout, \ $(addsuffix $s, $(basename $(test-input)))) -ld-test-names := test1 test2 test3 test4 test5 +ld-test-names := test1 test2 test3 test4 test5 test6 ld-test-srcs := $(addprefix tests/,$(addsuffix .cm,$(ld-test-names)) \ - $(addsuffix .def,$(ld-test-names))) + $(addsuffix .def,$(ld-test-names)) \ + $(addsuffix .ds,$(ld-test-names))) fmon-tests = n01y12 n02n40 n10y31 n11y41 n12y11 n20n32 n30y20 n41n00 \ y01y10 y02n22 y22n42 y30y21 y32n31 y40y00 y42n21 @@ -57,7 +58,7 @@ distribute := CHECKSUMS README SUPPORTED ChangeLog \ $(charmaps) $(locales) $(repertoiremaps) \ tst-rpmatch.sh tst-locale.sh tst-fmon.sh sort-test.sh \ tst-fmon.data $(test-input-data) $(ld-test-srcs) \ - th_TH.in cs_CZ.in tst-mbswcs.sh + th_TH.in cs_CZ.in tst-mbswcs.sh tst-trans.sh trans.def # Get $(inst_i18ndir) defined. include ../Makeconfig diff --git a/localedata/tests/test6.mne b/localedata/tests/test6.ds index bb1218569d..bb1218569d 100644 --- a/localedata/tests/test6.mne +++ b/localedata/tests/test6.ds diff --git a/login/programs/utmpd-private.h b/login/programs/utmpd-private.h deleted file mode 100644 index b22e58f700..0000000000 --- a/login/programs/utmpd-private.h +++ /dev/null @@ -1,110 +0,0 @@ -/* Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1997. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#ifndef _UTMPD_PRIVATE_H -#define _UTMPD_PRIVATE_H 1 - -#include <time.h> -#include <utmp.h> - - -/* The number of connections we allow. */ -#ifndef MAX_CONNECTIONS -#define MAX_CONNECTIONS 16 -#endif - - -typedef struct utmp_database -{ - int fd; - int old_fd; - char *file; - char *old_file; - time_t mtime; -} utmp_database; - - -/* The databases we handle. */ -extern utmp_database *utmp_db; -extern utmp_database *wtmp_db; - - -typedef struct client_connection -{ - int sock; - /* Access permissions. */ - int access; - - /* Read pointer. */ - void *read_base; - void *read_ptr; - void *read_end; - - /* Write buffer. */ - void *write_base; - void *write_ptr; - void *write_end; - - /* Database to use for this connection. */ - utmp_database *database; - /* Position pointer. */ - int position; - - /* Last read entry. */ - struct utmp last_entry; - - /* Pointers to the next and previous connections in the list. */ - struct client_connection *next; - struct client_connection *prev; -} client_connection; - - -/* This variable indicates if we have forked. If set, we log messages - via the system logger. Otherwise we simply print the program name - and the message to standard error. */ -extern int forked; - - -/* Database functions. */ -utmp_database *open_database (const char *file, const char *old_file); -int synchronize_database (utmp_database *database); -void close_database (utmp_database *database); -int read_entry (utmp_database *database, int position, struct utmp *entry); -int write_entry (utmp_database *database, int position, - const struct utmp *entry); -int append_entry (utmp_database *database, const struct utmp *entry); -int read_old_entry (utmp_database *database, int position, struct utmp *entry); -int write_old_entry (utmp_database *database, int position, - const struct utmp *entry); - -/* Connection oriented functions. */ -client_connection *accept_connection (int sock, int access); -client_connection *find_connection (int sock); -void close_connection (client_connection *connection); -int read_data (client_connection *connection); -int write_data (client_connection *connection); - -int proc_utmp_eq (const struct utmp *entry, const struct utmp *match); - -void error (int status, int errnum, const char *message, ...); -void warning (int errnum, const char *message, ...); - - -#endif /* utmpd-private.h */ - diff --git a/login/programs/utmpd.c b/login/programs/utmpd.c deleted file mode 100644 index ec16b9e778..0000000000 --- a/login/programs/utmpd.c +++ /dev/null @@ -1,419 +0,0 @@ -/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1997. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#include <errno.h> -#include <fcntl.h> -#include <getopt.h> -#include <libintl.h> -#include <locale.h> -#include <pwd.h> -#include <stddef.h> -#include <stdio.h> -#include <stdlib.h> -#include <signal.h> -#include <string.h> -#include <sys/param.h> -#include <sys/select.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/types.h> -#include <sys/un.h> -#include <syslog.h> -#include <unistd.h> - -#include "utmpd.h" -#include "utmpd-private.h" - -#ifndef DEFAULT_USER -#define DEFAULT_USER "daemon" -#endif - -/* Get libc version number. */ -#include <version.h> - -#define PACKAGE _libc_intl_domainname - -/* Long options. */ -static const struct option long_options[] = -{ - { "debug", no_argument, NULL, 'd' }, - { "help", no_argument, NULL, 'h' }, - { "version", no_argument, NULL, 'V' }, - { NULL, 0, NULL, 0} -}; - -/* The UTMP database. */ -utmp_database *utmp_db; - -/* The socket for read only requests. */ -int ro_sock = -1; - -/* The socket for read/write requests. */ -int rw_sock = -1; - - -/* Prototypes for the local functions. */ -static void usage (int status) __attribute__ ((noreturn)); -static void drop_priviliges (void); -static int make_socket (const char *name); -static void handle_requests (void) __attribute__ ((noreturn)); -static void termination_handler (int signum); -static int check_pid (const char *file); -static int write_pid (const char *file); - - -int -main (int argc, char *argv[]) -{ - mode_t mask; - int debug; - int do_help; - int do_version; - int opt; - - /* Set locale via LC_ALL. */ - setlocale (LC_ALL, ""); - - /* Set the text message domain. */ - textdomain (PACKAGE); - - /* Initialize local variables. */ - debug = 0; - do_help = 0; - do_version = 0; - - while ((opt = getopt_long (argc, argv, "dhV", long_options, NULL)) != -1) - switch (opt) - { - case '\0': /* Long option. */ - break; - case 'h': - do_help = 1; - break; - case 'd': - debug = 1; - break; - case 'V': - do_version = 1; - break; - default: - usage (EXIT_FAILURE); - } - - /* Version information is reequested. */ - if (do_version) - { - printf ("utmpd (GNU %s) %s\n", PACKAGE, VERSION); - printf (_("\ -Copyright (C) %s Free Software Foundation, Inc.\n\ -This is free software; see the source for copying conditions. There is NO\n\ -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\ -"), "1999"); - printf (_("Written by %s.\n"), "Mark Kettenis"); - - exit (EXIT_SUCCESS); - } - - /* Help is requested. */ - if (do_help) - usage (EXIT_SUCCESS); - - signal (SIGINT, termination_handler); - signal (SIGQUIT, termination_handler); - signal (SIGTERM, termination_handler); - - /* Check if we are already running. */ - if (check_pid (_PATH_UTMPDPID)) - error (EXIT_FAILURE, 0, _("already running")); - - /* Cleanup files created by a previous `bind'. */ - unlink (_PATH_UTMPD_RO); - unlink (_PATH_UTMPD_RW); - - /* Open UTMP database. */ - utmp_db = open_database (_PATH_UTMP "x", _PATH_UTMP); - if (utmp_db == NULL) - exit (EXIT_FAILURE); - - /* Create sockets, with the right permissions. */ - mask = umask (S_IXUSR | S_IXGRP | S_IXOTH); - ro_sock = make_socket (_PATH_UTMPD_RO); - umask (S_IXUSR | S_IRWXG | S_IRWXO); - rw_sock = make_socket (_PATH_UTMPD_RW); - umask (mask); - - /* Set the sockets up to accept connections. */ - if (listen (ro_sock, MAX_CONNECTIONS) < 0 - || listen (rw_sock, MAX_CONNECTIONS) < 0) - error (EXIT_FAILURE, errno, - _("cannot enable socket to accept connections")); - - /* Behave like a daemon. */ - if (!debug) - { - openlog ("utmpd", LOG_CONS | LOG_ODELAY, LOG_DAEMON); - - if (daemon (0, 0) < 0) - error (EXIT_FAILURE, errno, _("cannot auto-background")); - forked = 1; - - if (write_pid (_PATH_UTMPDPID) < 0) - warning (errno, "%s", _PATH_UTMPDPID); - - /* Ignore job control signals. */ - signal (SIGTTOU, SIG_IGN); - signal (SIGTTIN, SIG_IGN); - signal (SIGTSTP, SIG_IGN); - } - - /* Drop priviliges. */ - drop_priviliges (); - - /* Handle incoming requests. */ - handle_requests (); -} - - -/* Display usage information and exit. */ -static void -usage (int status) -{ - if (status != EXIT_SUCCESS) - fprintf (stderr, _("Try `%s --help' for more information.\n"), - program_invocation_name); - else - { - printf (_("\ -Usage: %s [OPTION]...\n\ - -d, --debug do not fork and display messages on the current tty\n\ - -h, --help display this help and exit\n\ - -V, --version output version information and exit\n"), - program_invocation_name); - fputs (_("\ -Report bugs using the `glibcbug' script to <bugs@gnu.org>.\n"), - stdout); - } - - exit (status); -} - - -/* Drop priviliges. */ -static void -drop_priviliges (void) -{ - struct passwd *pw; - - pw = getpwnam (DEFAULT_USER); - if (pw) - { - seteuid (pw->pw_uid); - setegid (pw->pw_gid); - } -} - - -/* Make a socket in the file namespace using the filename NAME as the - socket's address. */ -static int -make_socket (const char *name) -{ - struct sockaddr_un addr; - size_t size; - int sock; - - /* Create the socket. */ - sock = socket (PF_UNIX, SOCK_STREAM, 0); - if (sock < 0) - error (EXIT_FAILURE, errno, _("cannot create socket")); - - /* Bind a name to the socket. */ - addr.sun_family = AF_UNIX; - strcpy (addr.sun_path, name); - - /* The size of the address is the offset of the start - of the filename, plus its length, plus one for the - terminating null byte. */ - size = (offsetof (struct sockaddr_un, sun_path) - + strlen (addr.sun_path)); - - - if (bind (sock, (struct sockaddr *) &addr, size) < 0) - error (EXIT_FAILURE, errno, "%s", name); - - return sock; -} - - -/* Hanlde incoming requests. */ -static -void handle_requests (void) -{ - client_connection *connection; - fd_set active_read_fd_set; - fd_set active_write_fd_set; - fd_set read_fd_set; - fd_set write_fd_set; - int fd; - int maxfd; /* Highest used fd to optimize select/loop. */ - - /* Initialize the set of active sockets. */ - FD_ZERO (&active_read_fd_set); - FD_ZERO (&active_write_fd_set); - FD_SET (rw_sock, &active_read_fd_set); - FD_SET (ro_sock, &active_read_fd_set); - - maxfd = MAX (rw_sock, ro_sock); - - while (1) - { - /* Block until input arrives on one or more active sockets. */ - read_fd_set = active_read_fd_set; - write_fd_set = active_write_fd_set; - if (select (maxfd + 1, &read_fd_set, &write_fd_set, NULL, NULL) < 0) - error (EXIT_FAILURE, errno, _("cannot get input on sockets")); - - /* Service all the sockets with input pending. */ - for (fd = 0; fd <= maxfd; ++fd) - { - if (FD_ISSET (fd, &read_fd_set)) - { - if (fd == ro_sock || fd == rw_sock) - { - int access = ((fd == rw_sock) ? (R_OK | W_OK) : R_OK); - - connection = accept_connection (fd, access); - if (connection == NULL) - error (0, errno, _("cannot accept connection")); - - FD_SET (connection->sock, &active_read_fd_set); - maxfd = MAX (maxfd, connection->sock); - } - else - { - connection = find_connection (fd); - if (connection == NULL) - error (EXIT_FAILURE, 0, _("cannot find connection")); - - if (read_data (connection) < 0) - { - close_connection (connection); - FD_CLR (fd, &active_read_fd_set); - FD_CLR (fd, &active_write_fd_set); - } - - if (connection->write_ptr > connection->write_base) - FD_SET (fd, &active_write_fd_set); - } - } - if (FD_ISSET (fd, &write_fd_set) && - fd != rw_sock && fd != ro_sock) - { - connection = find_connection (fd); - if (connection == NULL) - error (EXIT_FAILURE, 0, _("cannot find connection")); - - if (write_data (connection) < 0) - { - close_connection (connection); - FD_CLR (fd, &active_read_fd_set); - FD_CLR (fd, &active_write_fd_set); - } - - if (connection->write_ptr == connection->write_base) - FD_CLR (fd, &active_write_fd_set); - } - } - - /* Check if maxfd can be lowered. */ - for (; maxfd >= 0; --maxfd) - { - if (FD_ISSET (maxfd, &active_read_fd_set) - || FD_ISSET (maxfd, &active_write_fd_set)) - break; - } - } -} - - -/* Cleanup. */ -static void -termination_handler (int signum) -{ - /* Close sockets. */ - close (ro_sock); - close (rw_sock); - - /* Restore user id. */ - seteuid (getuid ()); - - /* Clean up the files created by `bind'. */ - unlink (_PATH_UTMPD_RO); - unlink (_PATH_UTMPD_RW); - - if (utmp_db) - close_database (utmp_db); - - /* Clean up pid file. */ - unlink (_PATH_UTMPDPID); - - exit (EXIT_SUCCESS); -} - - -/* Returns 1 if the process in pid file FILE is running, 0 if not. */ -static int -check_pid (const char *file) -{ - FILE *fp; - - fp = fopen (_PATH_UTMPDPID, "r"); - if (fp) - { - pid_t pid; - - fscanf (fp, "%d", &pid); - fclose (fp); - - if (kill (pid, 0) == 0) - return 1; - } - - return 0; -} - -/* Write the current process id to the file FILE. Returns 0 if - successful, -1 if not. */ -static int -write_pid (const char *file) -{ - FILE *fp; - - fp = fopen (_PATH_UTMPDPID, "w"); - if (fp == NULL) - return -1; - - fprintf (fp, "%d\n", getpid ()); - if (ferror (fp)) - return -1; - - fclose (fp); - - return 0; -} diff --git a/login/programs/utmpd.h b/login/programs/utmpd.h deleted file mode 100644 index ef92a1490b..0000000000 --- a/login/programs/utmpd.h +++ /dev/null @@ -1,140 +0,0 @@ -/* Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1997. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#ifndef _UTMPD_H -#define _UTMPD_H 1 - -/* This is an *internal* header. */ - -#include <stddef.h> -#include <utmp.h> - - -/* Paths to daemon sockets. */ -#define _PATH_UTMPD_RO "/var/run/utmpd.ro" -#define _PATH_UTMPD_RW "/var/run/utmpd.rw" - - -/* Path to PID file. */ -#define _PATH_UTMPDPID "/var/run/utmpd.pid" - - -/* Version number of the daemon interface. */ -#define UTMPD_VERSION 1 - - -/* Services provided. */ -typedef enum -{ - UTMPD_REQ_SETUTENT, - UTMPD_REQ_GETUTENT, - UTMPD_REQ_ENDUTENT, - UTMPD_REQ_GETUTLINE, - UTMPD_REQ_GETUTID, - UTMPD_REQ_PUTUTLINE, - UTMPD_REQ_UPDWTMP -} request_type; - - -/* Header common to all requests. */ -typedef struct -{ - /* Version number of the daemon interface. */ - int version; - /* Number of bytes in this request. */ - size_t size; - /* Service requested. */ - request_type type; -} request_header; - -typedef struct -{ - request_header header; - /* File to use. */ - char file[0]; -} setutent_request; - -typedef struct -{ - request_header header; -} getutent_request, endutent_request; - -typedef struct -{ - request_header header; - /* Entry to match. */ - struct utmp line; -} getutline_request; - -typedef struct -{ - request_header header; - /* Entry to match. */ - struct utmp id; -} getutid_request; - -typedef struct -{ - request_header header; - /* Entry to write. */ - struct utmp utmp; -} pututline_request; - -typedef struct -{ - request_header header; - /* Entry to write. */ - struct utmp utmp; - /* File to use. */ - char file[0]; -} updwtmp_request; - - -/* Header common to all replies. */ -typedef struct -{ - /* Version number of the daemon interface. */ - int version; - /* Number of bytes in this reply. */ - size_t size; - /* Answer to the request. */ - request_type type; -} reply_header; - -typedef struct -{ - reply_header header; - /* Error code. */ - int errnum; - /* Return value. */ - int result; -} setutent_reply, endutent_reply, pututline_reply, updwtmp_reply; - -typedef struct -{ - reply_header header; - /* Found entry. */ - struct utmp entry; - /* Error code. */ - int errnum; - /* Return value. */ - int result; -} getutent_reply, getutline_reply, getutid_reply; - -#endif /* utmpd.h */ diff --git a/posix/Makefile b/posix/Makefile index 2e510a1907..174074e595 100644 --- a/posix/Makefile +++ b/posix/Makefile @@ -58,7 +58,9 @@ routines := \ spawnattr_init spawnattr_destroy \ spawnattr_getdefault spawnattr_setdefault \ spawnattr_getflags spawnattr_setflags \ - spawnattr_getpgroup spawnattr_setpgroup spawn spawnp spawni + spawnattr_getpgroup spawnattr_setpgroup spawn spawnp spawni \ + spawnattr_getsigmask spawnattr_getschedpolicy spawnattr_getschedparam \ + spawnattr_setsigmask spawnattr_setschedpolicy spawnattr_setschedparam include ../Makeconfig diff --git a/posix/Versions b/posix/Versions index 164d187469..9830841151 100644 --- a/posix/Versions +++ b/posix/Versions @@ -102,6 +102,8 @@ libc { posix_spawnattr_getflags; posix_spawnattr_setflags; posix_spawnattr_getpgroup; posix_spawnattr_setpgroup; posix_spawnattr_setsigmask; posix_spawnattr_getsigmask; - posix_spawn; posix_spawnp; + posix_spawn; posix_spawnp; posix_spawnattr_getschedpolicy; + posix_spawnattr_setschedpolicy; posix_spawnattr_getschedparam; + posix_spawnattr_setschedparam; } } diff --git a/posix/spawnattr_setschedparam.c b/posix/spawnattr_setschedparam.c index ffcd893d97..39d6b7a183 100644 --- a/posix/spawnattr_setschedparam.c +++ b/posix/spawnattr_setschedparam.c @@ -22,10 +22,10 @@ /* Store scheduling parameters in the attribute structure. */ int posix_spawnattr_setschedparam (posix_spawnattr_t *attr, - const struct shed_param *schedparam) + const struct sched_param *schedparam) { - /* Store the flag word. */ - attr->__flags = flags; + /* Store the scheduling parameters. */ + attr->__sp = *schedparam; return 0; } diff --git a/posix/spawnattr_setsigmask.c b/posix/spawnattr_setsigmask.c index aa917ff60d..e0a94cb3a2 100644 --- a/posix/spawnattr_setsigmask.c +++ b/posix/spawnattr_setsigmask.c @@ -25,7 +25,7 @@ posix_spawnattr_setsigmask (posix_spawnattr_t *attr, const sigset_t *sigmask) { /* Copy the sigset_t data to the user buffer. */ - memcpy (&attr->__ss, sigdefault, sizeof (sigset_t)); + memcpy (&attr->__ss, sigmask, sizeof (sigset_t)); return 0; } diff --git a/sysdeps/generic/Dist b/sysdeps/generic/Dist index 14baf3eef2..ffcebf9fd0 100644 --- a/sysdeps/generic/Dist +++ b/sysdeps/generic/Dist @@ -15,3 +15,6 @@ updwtmpx.c utmpxname.c bits/libc-tsd.h siglist.h +bp-thunks.h +bp-sym.h +bp-start.h diff --git a/io/mknod.c b/sysdeps/generic/mknod.c index 8d1dde2546..8d1dde2546 100644 --- a/io/mknod.c +++ b/sysdeps/generic/mknod.c diff --git a/posix/setpgrp.c b/sysdeps/generic/setpgrp.c index a511e058b9..a511e058b9 100644 --- a/posix/setpgrp.c +++ b/sysdeps/generic/setpgrp.c diff --git a/sysdeps/i386/fpu/Version b/sysdeps/i386/fpu/Versions index a2eec371f1..a2eec371f1 100644 --- a/sysdeps/i386/fpu/Version +++ b/sysdeps/i386/fpu/Versions diff --git a/sysdeps/ia64/Dist b/sysdeps/ia64/Dist index 9fc1de291a..dcaac62ee6 100644 --- a/sysdeps/ia64/Dist +++ b/sysdeps/ia64/Dist @@ -1,2 +1,3 @@ dl-symaddr.c dl-fptr.c +softpipe.h diff --git a/sysdeps/powerpc/Dist b/sysdeps/powerpc/Dist index 4513e6c604..5a5c15c087 100644 --- a/sysdeps/powerpc/Dist +++ b/sysdeps/powerpc/Dist @@ -2,3 +2,9 @@ dl-machine.c dl-start.S ppc-mcount.S fe_nomask.c +fprrest.S +fprsave.S +gprsave1.S +gprsave0.S +gprrest1.S +gprrest0.S diff --git a/sysdeps/sparc/Subdirs b/sysdeps/sparc/Subdirs new file mode 100644 index 0000000000..87eadf3024 --- /dev/null +++ b/sysdeps/sparc/Subdirs @@ -0,0 +1 @@ +soft-fp diff --git a/sysdeps/unix/sysv/aix/Dist b/sysdeps/unix/sysv/aix/Dist new file mode 100644 index 0000000000..9db1d7446d --- /dev/null +++ b/sysdeps/unix/sysv/aix/Dist @@ -0,0 +1,6 @@ +dl-sym.c +dl-open.c +dl-close.c +kernel_proto.h +bits/utmpx.h +gnu/lib-names.h diff --git a/sysdeps/unix/sysv/linux/arm/Dist b/sysdeps/unix/sysv/linux/arm/Dist index 49bdaf3636..60513f7c46 100644 --- a/sysdeps/unix/sysv/linux/arm/Dist +++ b/sysdeps/unix/sysv/linux/arm/Dist @@ -10,3 +10,4 @@ sys/elf.h sys/io.h sys/procfs.h sys/user.h +oldgetrlimit64.c diff --git a/sysdeps/unix/sysv/linux/ia64/Dist b/sysdeps/unix/sysv/linux/ia64/Dist new file mode 100644 index 0000000000..6b4b44b489 --- /dev/null +++ b/sysdeps/unix/sysv/linux/ia64/Dist @@ -0,0 +1,2 @@ +xstatconv.c +kernel_stat.h diff --git a/sysdeps/unix/sysv/linux/sparc/Dist b/sysdeps/unix/sysv/linux/sparc/Dist index b8abd55c0e..174d053909 100644 --- a/sysdeps/unix/sysv/linux/sparc/Dist +++ b/sysdeps/unix/sysv/linux/sparc/Dist @@ -1,3 +1,4 @@ kernel_termios.h sys/trap.h ldd-rewrite.sed +sys/procfs.h diff --git a/time/Makefile b/time/Makefile index ff1e42eae2..b675f745ea 100644 --- a/time/Makefile +++ b/time/Makefile @@ -30,6 +30,8 @@ routines := offtime asctime clock ctime ctime_r difftime \ stime dysize timegm ftime \ strptime getdate wcsftime +distribute := datemsk + tests := test_time clocktest tst-posixtz tst-strptime tst_wcsftime \ tst-getdate |