2003-01-06 Philip Blundell <philb@gnu.org>
* sysdeps/unix/arm/sysdep.S (syscall_error): Optimise a little.
[__LIBC_REENTRANT]: Unify PIC and non-PIC cases.
* sysdeps/unix/sysv/linux/arm/sysdep.h (PSEUDO): Remove .type
directive.
(PSEUDO_RET): Use SYSCALL_ERROR in place of __syscall_error.
(SYSCALL_ERROR): New.
(SYSCALL_ERROR_HANDLER) [NOT_IN_libc]: Provide local copy of error
handling code.
(INTERNAL_SYSCALL): Define.
(INLINE_SYSCALL): Use it.
(INTERNAL_SYSCALL_ERROR_P, INTERNAL_SYSCALL_ERRNO): Define.
* sysdeps/unix/sysv/linux/arm/socket.S (__socket): Use
SYSCALL_ERROR in place of __syscall_error.
2003-01-07 Jakub Jelinek <jakub@redhat.com>
* sysdeps/ia64/bits/byteswap.h [__GNUC__ >= 2] (__bswap_16,
__bswap_32, __bswap_64): Put x into temporary variable
to avoid warnings.
[!__GNUC__] (__bswap_16, __bswap_32, __bswap_64): Change into static
(inline) functions.
* sysdeps/s390/bits/byteswap.h [__GNUC__ >= 2] (__bswap_16,
__bswap_32, __bswap_64): Put x into temporary variable
to avoid warnings.
[!__GNUC__] (__bswap_16, __bswap_32, __bswap_64): Change into static
(inline) functions.
* sysdeps/i386/bits/byteswap.h [!__GNUC__] (__bswap_16, __bswap_32):
Likewise.
2003-01-07 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/alpha/adjtime.c (ntp_adjtime): New weak
alias.
2003-01-05 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* sysdeps/unix/sysv/linux/sh/clone.S (__clone): Use
SYSCALL_ERROR_HANDLER.
* sysdeps/unix/sysv/linux/sh/pipe.S (__libc_pipe): Likewise.
* sysdeps/unix/sysv/linux/sh/socket.S (__socket): Likewise.
Add support for cancellation handling.
* sysdeps/unix/sysv/linux/sh/syscall.S (__syscall): Use
SYSCALL_ERROR_HANDLER.
* sysdeps/unix/sysv/linux/sh/vfork.S (__vfork): Likewise.
* sysdeps/unix/sysv/linux/sh/sysdep.h (PSEUDO): Likewise.
Add support for cancellation handling.
(SYSCALL_ERROR_HANDLER): Define PIC variants.
2003-01-04 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile: New file.
2002-12-30 Jakub Jelinek <jakub@redhat.com>
* forward.c: Make all functions available by default again. It
caused too much trouble.
* internals.h (struct pthread_functions): Rename ptr_pthread_exit
and ptr_pthread_attr_init_2_* to ptr___pthread_exit and
ptr___pthread_attr_init_2_*.
* pthread.c (pthread_functions): Adjust.
($(common-objpfx)s-%.d): Generalized from
$(common-objpfx)s-proto.d rule.
(common-generated): Add s-proto-cancel.d.
* sysdeps/unix/make-syscalls.sh: Use s-proto-cancel.d for
cancellable syscalls.
* sysdeps/unix/s-proto-cancel.S: New file.
2002-12-28 Ulrich Drepper <drepper@redhat.com>
* descr.h (struct pthread): Move header.data.list to the back of the
struct.
* sysdeps/i386/tls.h (tcbhead_t): Move list to the back of the struct.
(MULTIPLE_THREADS_OFFSET): Adjust offset.
(SYSINFO_OFFSEET): Likewise.
2002-12-27 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h (USE_DL_SYSINFO):
Define.
(DL_SYSINFO_DEFAULT): Cast to uintptr_t to avoid warnings.
* sysdeps/unix/sysv/linux/i386/dl-sysdep.h (NEED_DL_SYSINFO,
DL_SYSINFO_DEFAULT, DL_SYSINFO_IMPLEMENTATION): Define.
(USE_DL_SYSINFO): Undef.
2002-12-22 Jakub Jelinek <jakub@redhat.com>
* Makefile (tests-reverse): Use $(objpfx)../libc.so instead of
$(common-objpfx)libc.so.
* tst-cancel4.c (tf_write, tf_writev): Increase buf sizes so that
it is bigger than pipe buffer size even on arches with bigger
page size.
(tf_usleep): Cast usleep argument to useconds_t to avoid warnings.
2002-12-20 Art Haas <ahaas@airmail.net>
* sysdeps/gnu/siglist.c: Convert GCC extension initializer
syntax to C99.
2002-12-21 Philip Blundell <philb@gnu.org>
* sysdeps/arm/elf/start.S (_start): Optimise a little. Push stack
top as seventh arg to __libc_start_main.
Reported by paulnash@wildseed.com.
* sysdeps/unix/sysv/linux/arm/clone.S: Small optimisation.
* sysdeps/unix/sysv/linux/arm/sigcontextinfo.h: Elide
compatibility cruft when new enough kernel is assumed.
2002-12-19 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/sysdep.h: Add support to use AT_SYSINFO
information for system calls.
* sysdeps/generic/dl-sysdep.h: Define RTLD_PRIVATE_ERRNO to 1 only
for ld.so.
* elf/rtld.c (_dl_start) [USE___THREAD]: Define initdtv.
2002-12-19 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/system.c: Define FORK only if
__ASSUME_CLONE_THREAD_FLAGS is defined.
* sysdeps/unix/sysv/linux/kernel-features.h
(__ASSUME_CLONE_THREAD_FLAGS): Define for x86 and kernel >=
2.5.50.
* sysdeps/unix/sysv/linux/i386/brk.c: Use INTERNAL_SYSCALL instead
of asm.
* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
2002-12-18 Ulrich Drepper <drepper@redhat.com>
* descr.h (struct pthread) [NEED_DL_SYSINFO]: Add sysinfo member.
* sysdeps/i386/tls.h (tcbhead_t): Add sysinfo member.
Define SYSINFO_OFFSEET if NEED_DL_SYSINFO is defined.
(INIT_SYSINFO): New #define.
(TLS_TP_INIT): Use INIT_SYSINFO.
* sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
At test to make sure SYSINFO_OFFSET value is correct.
* sysdeps/unix/sysv/linux/i386/dl-sysdep.h: New file.
2002-12-17 Jakub Jelinek <jakub@redhat.com>
* malloc/thread-m.h (mutex_init, mutex_lock, mutex_trylock,
mutex_unlock): If not building NPTL, use __libc_maybe_call2 if
available, otherwise __libc_maybe_call.
* sysdeps/unix/sysv/linux/x86_64/recv.c: Add support for
cancellation handling.
* sysdeps/unix/sysv/linux/x86_64/send.c: Likewise.
* sysdeps/posix/system.c (do_system): Add support for installation
of cancellation handlers.
* sysdeps/unix/sysv/linux/i386/system.c: New file.
* stdlib/Makefile (tests): Add tst-system.
* stdlib/tst-system.c: New file.
* sysdeps/unix/sysv/linux/wait.c: Don't include <nptl/pthreadP.h> or
<tls.h> here, no need for it.
* sysdeps/unix/sysv/linux/waitpid.c: Likewise.
* sysdeps/unix/sysv/linux/i386/fcntl.c (do_fcntl): Take ARG as void *
parameter, not varargs parameter.
* sysdeps/generic/sysdep-cancel.h (LIBC_CANCEL_RESET): Evaluate the
argument so it's not an unused variable.
* resolv/resolv.h (__p_key_syms, __p_cert_syms, __p_class_syms,
__p_type_syms, __p_rcode_syms): Remove decls, never really intended
for users.
* resolv/Versions (libresolv: GLIBC_2.3.2): New set, add __p_rcode.
2002-12-15 Art Haas <ahaas@airmail.net>
* nscd/connections.c: C99 initializer conversion.
* nscd/grpcache.c: Same.
* nscd/hstcache.c: Same.
* nscd/pwdcache.c: Same.
2002-12-15 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/fcntl.c (do_fcntl): This is the
original __libc_fcntl code. Just renamed.
* sysdeps/unix/sysv/linux/m68k/clone.S: Make inline syscall to _exit.
2002-12-14 Olaf Hering <olh@suse.de>
* sysdeps/powerpc/bits/setjmp.h: Include <bits/wordsize.h>.
* sysdeps/powerpc/powerpc64/setjmp.S: Fix typo in r18 load.
* sysdeps/unix/sysv/linux/dl-librecon.h (EXTRA_LD_ENVVARS): Refer to
and move contents to ...
(EXTRA_LD_ENVVARS_LINUX): ... this new macro. Add break for nonmatch.
* sysdeps/unix/sysv/linux/i386/dl-librecon.h (EXTRA_LD_ENVVARS): Use
it instead of duplicating its contents.
(EXTRA_LD_ENVVARS): Likewise. Add break for nonmatch.
2002-12-09 Jakub Jelinek <jakub@redhat.com>
* elf/dl-support.c (_dl_non_dynamic_init): Add DL_OSVERSION_INIT if
defined.
* sysdeps/unix/sysv/linux/dl-librecon.h (_dl_osversion_init): New
function.
(EXTRA_LD_ENVVARS): Use it.
(DL_OSVERSION_INIT): Define.
* sysdeps/unix/sysv/linux/i386/dl-librecon.h: Include linux
dl-librecon.h.
(EXTRA_LD_ENVVARS): Undef before defining. Use _dl_osversion_init.
2002-12-07 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h [RTLD_PRIVATE_ERRNO]
(SYSCALL_ERROR_HANDLER): Fix a pasto.
Reported by Jeff Bailey <jbailey@nisa.net>.
* include/wctype.h: Define iswalnum with libc_hidden_proto.
* include/signal.h: Define raise with libc_hidden_proto.
* sysdeps/unix/sysv/linux/fexecve.c (fexecve): Use __snprintf and
__execve instead of snprintf and execve.
DL_SYSDEP_OSCHECK here.
* sysdeps/unix/sysv/linux/init-first.c (init): Not here.
* sysdeps/unix/sysv/linux/dl-osinfo.h: Include <fcntl.h>.
* sysdeps/generic/libc-tls.c (__libc_setup_tls): Bail if
argument TCBSIZE <= TLS_INIT_TCB_SIZE, not just if it's zero.
* sysdeps/generic/dl-tls.c (_dl_allocate_tls_init): Check l_tls_offset
instead of l_type to decide whether to use TLS_DTV_UNALLOCATED.
* include/link.h: Comment typo fix.
2002-12-01 Roland McGrath <roland@frob.com>
* sysdeps/mach/hurd/bits/posix_opt.h (_POSIX_FSYNC): Set to 200112L.
(_POSIX_SPAWN, _POSIX_MAPPED_FILES, _POSIX_MEMLOCK_RANGE,
_POSIX_MEMORY_PROTECTION): Likewise.
(_POSIX_POLL, _POSIX_SELECT): Removed.
From Ian Wienand <ianw@gelato.unsw.edu.au>.
* sysdeps/unix/sysv/linux/ia64/sysdep.h (__NR_pread): Define to
__NR_pread64 if not defined.
(__NR_pwrite): Define to __NR_pwrite64 if not defined.
From Ian Wienand <ianw@gelato.unsw.edu.au>.
* sysdeps/hppa/Makefile (CFLAGS-rtld.c): New variable.
Set -mdisable-fpregs for this file.
2002-11-11 Carlos O'Donell <carlos@baldric.uwo.ca>
* sysdeps/unix/sysv/linux/configure.in:
Make 2.4.19 minimum linux kernel for hppa, and add unwind symbols
from gcc-3.0 era for backwards compatibility.
* sysdeps/unix/sysv/linux/configure: Regenerate.
* sysdeps/unix/sysv/linux/hppa/sys/ucontext.h:
Define mcontext_t as a sigcontext.
* dlfcn/dlerror.c (fini): New function, __attribute__ ((destructor)).
Free memory in `last_result' if it was used.
* resolv/nss_dns/dns-network.c (getanswer_r): In BYNAME case, search
all aliases for one that matches the "<dotted-quad>.IN-ADDR.ARPA" form.
Do the parsing inline instead of copying strings and calling
inet_network, and properly skip all alias names not matching the form.
the beginning of generated target commands.
* csu/Makefile ($(objpfx)crti.o, $(objpfx)crtn.o): Add explicit
dependencies for these in case implicit rule search skipped the
nonexistent source directory.
* sysdeps/gnu/Makefile ($(objpfx)errlist.d): Give this rule all the
files with $(object-suffixes) as targets too.
* Makerules [no_deps && objpfx] (before-compile): Add $(objpfx).
and a target for it using $(make-target-directory).
* Rules (before-compile): Add $(common-objpfx)bits/stdio-lim.h.
* sysdeps/unix/sysv/linux/bits/pthreadtypes.h: Moved to ...
* sysdeps/generic/bits/pthreadtypes.h: ... here.
* string/test-strpbrk.c (do_test): Likewise.
* string/test-strncmp.c (stupid_strncmp): Use strnlen, not strlen.
* string/test-strncpy.c (stupid_strncpy): Likewise.
* string/test-stpncpy.c (stupid_stpncpy): Likewise.
2002-10-08 Roland McGrath <roland@redhat.com>
* string/test-string.h (test_init): Fill BUF1 and BUF2 with
nonzero characters.
2002-09-22 H.J. Lu <hjl@gnu.org>
* sysdeps/unix/sysv/linux/mmap64.c (MMAP2_PAGE_SHIFT): Renamed
from PAGE_SHIFT. Define if not defined. Check MMAP2_PAGE_SHIFT
only if __NR_mmap2 is defined.
* sysdeps/unix/sysv/linux/powerpc/mmap64.c: Moved to ...
* sysdeps/unix/sysv/linux/mmap64.c: ... here.
* sysdeps/unix/sysv/linux/hppa/mmap64.c: File removed.
* sysdeps/unix/sysv/linux/sparc/sparc32/mmap64.c: FIle removed,
2002-11-05 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Handle
__NR_pread64 and __NR_pwrite64.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/powerpc/pread.c: Remove __NR_pread64
and __NR_pwrite64.
Revert change to use INLINE_SYSCALL.
* sysdeps/unix/sysv/linux/powerpc/pread64.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/pwrite.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/ftruncate64.c: Revert change to use
INLINE_SYSCALL.
* sysdeps/unix/sysv/linux/powerpc/truncate64.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h (INLINE_SYSCALL):
Update clobber list and add a comment about the syscall ABI.
2002-11-03 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/segfault.c (catch_segfault): If HAVE_PROC_SELF
is defined write out memory map.
* sysdeps/unix/sysv/linux/segfault.c: New file.
32bit-predefine when creating .new32 list and -U for each
32bit-predefine when creating .new64 list.
* sysdeps/unix/sysv/linux/x86_64/Makefile (32bit-predefine): New.
conditional from __libc_multiple_libcs access. Remove kludge for weak
symbol access with old compilers we no longer support.
* sysdeps/unix/sysv/aix/init-first.c (init): Likewise.
* sysdeps/generic/libc-start.c (__libc_start_main): Likewise.
2002-10-24 Roland McGrath <roland@redhat.com>
* sysdeps/generic/ldsodefs.h (struct rtld_global): New member
`_dl_tls_static_used'.
(TLS_STATIC_MIN): New macro.
* sysdeps/generic/libc-tls.c (_dl_tls_static_used): New variable.
(__libc_setup_tls): Initialize it.
* sysdeps/generic/dl-tls.c (_dl_determine_tlsoffset): Likewise.
* elf/dl-reloc.c [USE_TLS] (allocate_static_tls): New function.
(CHECK_STATIC_TLS): Use it.
* elf/dl-close.c (_dl_close): Adjust _dl_tls_static_used when the
closed objects occupied a trailing contiguous chunk of static TLS area.
2002-10-25 Roland McGrath <roland@redhat.com>
(_dl_debug_vdprintf): Only take dl_load_lock if not _dl_starting_up.
* sysdeps/generic/ldsodefs.h (_dl_starting_up): Declare it here.
* sysdeps/unix/sysv/linux/init-first.c: Not here.
* sysdeps/powerpc/elf/libc-start.c: Or here.
* sysdeps/unix/sysv/aix/libc-start.c: Or here.
* sysdeps/unix/sysv/aix/start-libc.c: Or here.
* sysdeps/unix/sysv/aix/init-first.c: Or here.
* sysdeps/generic/libc-start.c: Or here.
* sysdeps/unix/sysv/linux/init-first.c (init): Protect _dl_starting_up
access with [! SHARED].
* sysdeps/unix/sysv/aix/init-first.c (init): Likewise.
Check for the result overflowing off_t and fail with EOVERFLOW.
* libio/ioftell.c (_IO_ftell): Likewise.
* libio/iofgetpos.c (_IO_new_fgetpos): Likewise.
* login/logwtmp.c (logwtmp): If sizeof ut_tv != sizeof struct timeval,
use a temporary timeval on the stack for gettimeofday and copy it.
* login/logout.c (logout): Likewise.
Reported by Steven Munroe <sjmunroe@us.ibm.com>.
* sysdeps/unix/sysv/linux/bits/statfs.h (struct statfs):
Use __SWORD_TYPE instead of int for member types.
(struct statfs64): Likewise.
* sysdeps/unix/sysv/linux/alpha/bits/statfs.h: New file.
* sysdeps/unix/sysv/linux/s390/bits/statfs.h: New file.
* sysdeps/unix/sysv/linux/ia64/bits/statfs.h: File removed.
* sysdeps/unix/sysv/linux/sparc/bits/statfs.h: File removed.
* sysdeps/unix/sysv/linux/x86_64/bits/statfs.h: File removed.
* sysdeps/unix/sysv/linux/sparc/bits/statvfs.h: Moved to ...
* sysdeps/unix/sysv/linux/bits/statvfs.h: ... here.
(ST_NODIRATIME): Restore fixed value of 2048.
* sysdeps/unix/sysv/linux/alpha/bits/statvfs.h: File removed.
* sysdeps/unix/sysv/linux/ia64/bits/statvfs.h: File removed.
Rearranged <bits/types.h> definitions to reduce duplication.
* sysdeps/generic/bits/types.h: Rewritten, using macros from
<bits/wordsize.h> and new header <bits/typesizes.h>.
* posix/Makefile (headers): Add bits/typesizes.h here.
* sysdeps/generic/bits/typesizes.h: New file.
* sysdeps/unix/sysv/linux/alpha/bits/typesizes.h: New file.
* sysdeps/unix/sysv/linux/sparc/bits/typesizes.h: New file.
* sysdeps/mach/hurd/bits/typesizes.h: New file.
* sysdeps/unix/sysv/linux/alpha/bits/types.h: File removed.
* sysdeps/unix/sysv/linux/bits/types.h: File removed.
* sysdeps/unix/sysv/linux/ia64/bits/types.h: File removed.
* sysdeps/unix/sysv/linux/mips/bits/types.h: File removed.
* sysdeps/unix/sysv/linux/s390/bits/types.h: File removed.
* sysdeps/unix/sysv/linux/sparc/bits/types.h: File removed.
* sysdeps/unix/sysv/linux/x86_64/bits/types.h: File removed.
* posix/sys/types.h [__USE_POSIX199506 || __USE_UNIX98]: Include
<bits/pthreadtypes.h> here, not in <bits/types.h>.
* signal/signal.h: Likewise.
* streams/stropts.h: Include <bits/xtitypes.h>.
* streams/Makefile (headers): Add bits/xtitypes.h here.
* sysdeps/generic/bits/xtitypes.h: New file.
* sysdeps/s390/bits/xtitypes.h: New file.
* sysdeps/ia64/bits/xtitypes.h: New file.
* sysdeps/x86_64/bits/xtitypes.h: New file.
* sysvipc/Makefile (headers): Add bits/ipctypes.h here.
* sysdeps/generic/bits/ipctypes.h: New file.
* sysdeps/mips/bits/ipctypes.h: New file.
* sysdeps/gnu/bits/shm.h: Include <bits/ipctypes.h>.
* sysdeps/gnu/bits/msq.h: Likewise.
* sysvipc/sys/ipc.h: Likewise.
2002-10-22 Roland McGrath <roland@redhat.com>
* sysdeps/generic/libc-tls.c (_dl_tls_static_used): New variable.
* sysdeps/generic/ldsodefs.h (struct rtld_global): New member
`_dl_tls_static_used'.
(TLS_STATIC_MIN): New macro.
* elf/dl-reloc.c [USE_TLS] (allocate_static_tls): New function.
(CHECK_STATIC_TLS): Use it.
sysdeps/unix/sysv/linux/i386/bits/time.h file. All the following
files were identical except for the absence of CLOCK_THREAD_CPUTIME_ID
and CLOCK_PROCESS_CPUTIME_ID in .../linux/bits/time.h; adding these
macros is ok even for architectures that don't now implement them.
* sysdeps/mach/hurd/bits/time.h: File removed.
* sysdeps/unix/sysv/linux/bits/time.h: File removed.
* sysdeps/unix/sysv/linux/i386/bits/time.h: File removed.
* sysdeps/unix/sysv/linux/ia64/bits/time.h: File removed.
* sysdeps/unix/sysv/linux/sparc/bits/time.h: File removed.
* sysdeps/unix/sysv/linux/x86_64/bits/time.h: File removed.
instead of += to append, to be sure $(lib) gets expanded at defn time.
(libof-$(cpp-src)): New variable, define this instead.
* extra-lib.mk (cpp-srcs-left): Reduce duplication in include setup.
(lib): Don't use override.
(CPPFLAGS-$(lib)): New variable, put -D's here.
* Makeconfig (CPPFLAGS): Use basename fn for CPPFLAGS-basename.
Also add $(CPPFLAGS-LIB) before the file-specific flags, for each
LIB found by $(libof-*) for basename, target, or source.
* Makerules (CPPFLAGS-nonlib): New variable.
* nscd/Makefile (lib): Set to nonlib when using cppflags-iterator.mk.
* locale/Makefile (lib): Likewise.
* sunrpc/Makefile (lib): Likewise.
* sysdeps/unix/sysv/linux/fpathconf.c (LINUX_LINK_MAX): Move macro ...
* sysdeps/unix/sysv/linux/linux_fsinfo.h (LINUX_LINK_MAX): ... here.
* sysdeps/unix/sysv/linux/pathconf.h: New file.
(statfs_link_max): New function, guts from fpathconf.c.
* sysdeps/unix/sysv/linux/fpathconf.c: Rewritten using that.
* sysdeps/unix/sysv/linux/pathconf.c (__pathconf): Likewise.
* sysdeps/unix/sysv/linux/alpha/pathconf.c (__pathconf): Rewritten
to use the linux/pathconf.c code by #include rather than duplication.
* sysdeps/unix/sysv/linux/alpha/fpathconf.c (__pathconf): Likewise.
2002-10-16 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/x86_64/sysdep.h (SYSCALL_ERROR_HANDLER):
Use __libc_errno only for libc itself.
* sysdeps/unix/sysv/linux/fpathconf.c (LINUX_LINK_MAX): Move macro ...
* sysdeps/unix/sysv/linux/linux_fsinfo.h (LINUX_LINK_MAX): ... here.
* sysdeps/unix/sysv/linux/pathconf.h: New file.
(statfs_link_max): New function, guts from fpathconf.c.
* sysdeps/unix/sysv/linux/fpathconf.c: Rewritten using that.
* sysdeps/unix/sysv/linux/pathconf.c (__pathconf): Likewise.
* sysdeps/unix/sysv/linux/alpha/pathconf.c (__pathconf): Rewritten
to use the linux/pathconf.c code by #include rather than duplication.
* sysdeps/unix/sysv/linux/alpha/fpathconf.c (__pathconf): Likewise.
* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_VFORK_SYSCALL):
Define for 2.4+ kernels.
* sysdeps/unix/sysv/linux/i386/vfork.S: Optimize for kernels which
are known to have the vfork syscall. Don't confuse the CPUs
branch prediction unit by jumping to the return address.
* sysdeps/unix/sysv/linux/Makefile
($(objpfx)syscall-%.h $(objpfx)syscall-%.d): Take code from
sparc/Makefile to produce a bi-arch file as needed.
That's now parameterized by the variable $(64bit-predefine).
Use LC_ALL=C for `comm' commands in that rule.
No longer conditional on [$(no_syscall_list_h)].
* sysdeps/unix/sysv/linux/sparc/Makefile: Remove replacement rules.
(64bit-predefine): New variable.
* sysdeps/unix/sysv/linux/x86_64/Makefile: Likewise.
* sysdeps/unix/sysv/linux/s390/Makefile: New file.
* sysdeps/unix/sysv/linux/powerpc/Makefile
(64bit-predefine): New variable.
2002-10-15 Roland McGrath <roland@redhat.com>
* sysdeps/unix/sysv/linux/Makefile
($(objpfx)syscall-%.h $(objpfx)syscall-%.d)
* login/utmp-private.h: Declare __libc_utmp_lock.
* sysdeps/unix/getlogin_r.c (getlogin_r): Take __libc_utmp_lock once
call __libc_utmp_jump_table functions directly, instead of using
__setutent et al.
* sysdeps/unix/sysv/linux/configure.in: Use case instead of if.
* sysdeps/unix/sysv/linux/configure: Regenerated.
(struct lastlog) [__WORDSIZE == 64 && __WORDSIZE_COMPAT32]:
Use int32_t for ll_time.
(struct utmp) [__WORDSIZE == 64 && __WORDSIZE_COMPAT32]:
Use int32_t instead of long int for ut_session.
Use an anonymous struct with 32-bit fields for ut_tv.
* sysdeps/gnu/bits/utmpx.h: Include <bits/wordsize.h>.
(struct utmpx) [__WORDSIZE == 64 && __WORDSIZE_COMPAT32]: Do the same
here as in utmp.h for `struct utmp'.
* sysdeps/unix/sysv/linux/powerpc/bits/utmp.h: File removed.
* sysdeps/unix/sysv/linux/powerpc/bits/utmpx.h: File removed.
* sysdeps/unix/sysv/linux/sparc/bits/utmp.h: File removed.
* sysdeps/unix/sysv/linux/sparc/bits/utmpx.h: File removed.
* sysdeps/unix/sysv/linux/x86_64/bits/utmp.h: File removed.
* sysdeps/unix/sysv/linux/x86_64/bits/utmpx.h: File removed.
* sysdeps/unix/sysv/linux/bits/resource.h: Replaced with the contents
of the sysdeps/unix/sysv/linux/i386/bits/resource.h file.
All the following files were identical or equivalent to it.
* sysdeps/unix/sysv/linux/i386/bits/resource.h: File removed.
* sysdeps/unix/sysv/linux/arm/bits/resource.h: File removed.
* sysdeps/unix/sysv/linux/cris/bits/resource.h: File removed.
* sysdeps/unix/sysv/linux/hppa/bits/resource.h: File removed.
* sysdeps/unix/sysv/linux/ia64/bits/resource.h: File removed.
* sysdeps/unix/sysv/linux/m68k/bits/resource.h: File removed.
* sysdeps/unix/sysv/linux/powerpc/bits/resource.h: File removed.
* sysdeps/unix/sysv/linux/s390/bits/resource.h: File removed.
* sysdeps/unix/sysv/linux/sh/bits/resource.h: File removed.
* sysdeps/unix/sysv/linux/x86_64/bits/resource.h: File removed.
* sysdeps/unix/sysv/linux/bits/socket.h (struct msghdr): Use size_t
instead of int for msg_iovlen, instead of socklen_t for msg_controllen.
Other than the previously incorrect sign of msg_iovlen, this is a
no-op on 32-bit platforms. On 64-bit platforms it makes this header
match their layouts as well, so the following are now identical to it.
* sysdeps/unix/sysv/linux/s390/bits/socket.h: File removed.
* sysdeps/unix/sysv/linux/sparc/bits/socket.h: File removed.
* sysdeps/unix/sysv/linux/x86_64/bits/socket.h: File removed.
* sysdeps/unix/sysv/linux/ia64/bits/socket.h: File removed.
* sysdeps/unix/sysv/linux/alpha/bits/socket.h: File removed.
2002-10-15 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/alpha/fpathconf.c (__fpathconf): Add
support for reiserfs and xfs.
* sysdeps/unix/sysv/linux/fpathconf.c (__fpathconf): Add case for
XFS link count.
* sysdeps/unix/sysv/linux/linux_fsinfo.h: Define XFS_SUPER_MAGIC
and XFS_LINK_MAX.
Patch by Eric Sandeen <sandeen@sgi.com> [PR libc/4706].
2002-10-12 H.J. Lu <hjl@gnu.org>
* sunrpc/thrsvc.c (PROCQUIT): New.
(struct rpc_arg): New.
(dispatch): Call exit (0) if request->rq_proc == PROCQUIT.
(test_one_call): Take struct rpc_arg * instead of CLIENT *c.
(thread_wrapper): Modified for struct rpc_arg * and call PROCQUIT.
(main): Modified for struct rpc_arg *.
2002-10-14 Ulrich Drepper <drepper@redhat.com>
* dirent/scandir.c: Rearrange code a bit to reduce binary size.
2002-10-14 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/x86_64/sysdep.h: Include tls.h.
(SYSCALL_ERROR_HANDLER): Use RTLD_PRIVATE_ERRNO sequence
in ld.so even if __thread is supported.
2002-10-13 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/arm/profil-counter.h (profil_counter):
Add hack to prevent the compiler from clobbering the signal context.
* sysdeps/unix/sysv/linux/sh/profil-counter.h (profil_counter):
Likewise.
* sysdeps/unix/sysv/linux/x86_64/profil-counter.h (profil_counter):
Likewise.
2002-10-11 Isamu Hasegawa <isamu@yamato.ibm.com>
* posix/regcomp.c (re_compile_fastmap_iter): Remove the handling
OP_CONTEXT_NODE.
(regfree): Likewise.
(create_initial_state): Likewise.
(analyze): Remove the substitutions which became useless.
(calc_first): Likewise.
(calc_epsdest): Use edests of OP_BACK_REF in case that it has
epsilon destination.
(duplicate_node_closure): New function.
(duplicate_node): Remove the handling OP_CONTEXT_NODE.
(calc_inveclosure): Likewise.
(calc_eclosure): Likewise.
(calc_eclosure_iter): Invoke duplicate_node_closure instead of
direct invocation of duplicate_node.
(parse): Don't use comma operator in the return to avoid compiler
warning.
(parse_reg_exp): Likewise.
(parse_branch): Likewise.
(parse_expression): Likewise.
(parse_sub_exp): Likewise.
(parse_dup_op): Likewise.
* posix/regex_internal.c (re_dfa_add_node): Remove the substitutions
which became useless.
(create_ci_newstate): Remove the handling OP_CONTEXT_NODE.
(create_cd_newstate): Likewise.
* posix/regex_internal.h (re_token_type_t): Remove the obsolete type.
(re_token_t): Likewise.
(re_dfa_t): Likewise.
(re_node_set_remove): New macro.
* posix/regexec.c (check_matching): Remove the handling
OP_CONTEXT_NODE.
(check_halt_node_context): Likewise.
(proceed_next_node): Likewise.
(pop_fail_stack): Fix the memory leak.
(set_regs): Likewise.
(free_fail_stack_return): New function.
(sift_states_backward): Fix the memory leak. Remove the handling
OP_CONTEXT_NODE.
(update_cur_sifted_state): Append some if clause to avoid redundant
call.
(sub_epsilon_src_nodes): Use IS_EPSILON_NODE since it might be a
back reference.
(check_dst_limits): Remove the handling OP_CONTEXT_NODE.
(check_subexp_limits): Likewise.
(search_subexp): Likewise.
(sift_states_bkref): Likewise.
(transit_state_mb): Likewise.
(transit_state_bkref_loop): Likewise.
(transit_state_bkref_loop): Likewise.
(group_nodes_into_DFAstates): Likewise.
(check_node_accept): Likewise.
(sift_ctx_init): Add initializing.
2002-10-12 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/sysdep.h (INLINE_SYSCALL): Use
__builtin_expect.
* elf/dl-load.c (_dl_map_object_from_fd): Remove unnecessarily
duplicated variable c.
* sysdeps/unix/sysv/linux/sigwait.c (__sigwait): Use INTERNAL_SYSCALL
if possible.
Add hack to prevent the compiler from clobbering the signal context.
* sysdeps/unix/sysv/linux/sigwait.c (__sigwait): Use
INTERNAL_SYSCALL is possible.
* sysdeps/unix/sysv/linux/i386/sysdep.h
(INTERNAL_SYSCALL_ERROR_P): New define.
(INTERNAL_SYSCALL_ERRNO): Likewise.
changed from [USE_TLS && HAVE___THREAD].
* sysdeps/i386/dl-machine.h (elf_machine_type_class, elf_machine_rel):
Disable TLS relocs if [RTLD_BOOTSTRAP && !USE___THREAD].
* sysdeps/x86_64/dl-machine.h
(elf_machine_type_class, elf_machine_rela): Likewise.
* sysdeps/sh/dl-machine.h (elf_machine_type_class, elf_machine_rela):
Likewise.
* include/link.h (struct link_map): Remove member l_tls_tp_initialized.
* elf/rtld.c (_dl_start_final, dl_main): Don't use it.
(_dl_start): Conditionalize PT_TLS check on [USE___THREAD].
* sysdeps/i386/dl-tls.h (__TLS_GET_ADDR): Use ___tls_get_addr_internal
instead of ___tls_get_addr.
(___tls_get_addr_internal): Add attribute_hidden to decl.
* sysdeps/generic/ldsodefs.h (struct rtld_global): New variable
_dl_error_catch_tsd.
* elf/rtld.c (startup_error_tsd): New function.
(dl_main): Point _dl_error_catch_tsd at that.
* elf/dl-error.c: Don't use libc-tsd.h for DL_ERROR,
use new function pointer instead.
* elf/dl-tsd.c: New file.
* elf/Makefile (routines): Add it.
2002-10-07 Roland McGrath <roland@redhat.com>
* elf/dl-misc.c (_dl_debug_vdprintf): Use INTERNAL_SYSCALL macro for
writev if it's available. Otherwise if [RTLD_PRIVATE_ERRNO] then
take _dl_load_lock around calling __writev.
* sysdeps/unix/sysv/linux/i386/sysdep.h (INTERNAL_SYSCALL): New macro.
(INLINE_SYSCALL): Use that.
* sysdeps/generic/dl-sysdep.h: New file.
* sysdeps/mach/hurd/dl-sysdep.h: New file.
* sysdeps/generic/ldsodefs.h: Include <dl-sysdep.h>.
* include/errno.h [IS_IN_rtld]: Include <dl-sysdep.h> to define ...
[RTLD_PRIVATE_ERRNO]: Use a hidden global variable for errno and
access it directly.
* elf/dl-minimal.c (__errno_location): Removed.
* sysdeps/unix/i386/sysdep.S (__syscall_errno) [RTLD_PRIVATE_ERRNO]:
Use GOTOFF access for errno.
* sysdeps/unix/sysv/linux/i386/sysdep.h
[RTLD_PRIVATE_ERRNO] (SYSCALL_ERROR_HANDLER): Likewise.
* sysdeps/unix/x86_64/sysdep.S (__syscall_errno) [RTLD_PRIVATE_ERRNO]:
Use PC-relative access for errno.
* sysdeps/unix/sysv/linux/x86_64/sysdep.h
[RTLD_PRIVATE_ERRNO] (SYSCALL_ERROR_HANDLER): Likewise.
* include/tls.h: New file.
(USE___THREAD): New macro.
Define to 1 under [USE_TLS && HAVE___THREAD] and only when compiling
libc or libpthread.
* sysdeps/unix/sysv/linux/i386/sysdep.h [USE___THREAD]: Conditional
changed from [USE_TLS && HAVE___THREAD].
* sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
* sysdeps/unix/i386/sysdep.S: Likewise.
* sysdeps/unix/x86_64/sysdep.S: Likewise.
* include/errno.h: Likewise.
* include/netdb.h: Likewise.
* include/resolv.h: Likewise.
* sysdeps/generic/errno.c: New file.
* csu/Makefile (aux): New variable, list errno.
* sysdeps/unix/sysv/linux/i386/sysdep.S (errno, _errno): Remove defns.
* sysdeps/unix/sysv/linux/m68k/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/x86_64/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/arm/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/cris/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/hppa/sysdep.c: Likewise.
* sysdeps/unix/sysv/linux/ia64/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/powerpc/sysdep.c: Likewise.
* sysdeps/unix/sysv/linux/sparc/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/sh/sysdep.S: Likewise.
* sysdeps/unix/alpha/sysdep.S: Likewise.
* sysdeps/generic/start.c: Likewise.
* sysdeps/unix/start.c: Likewise.
* sysdeps/unix/arm/start.c: Likewise.
* sysdeps/unix/bsd/ultrix4/mips/start.S: Likewise.
* sysdeps/unix/sparc/start.c: Likewise.
* sysdeps/unix/sysv/irix4/start.c: Likewise.
* sysdeps/unix/sysv/linux/mips/sysdep.S: File removed.
* manual/search.texi (Tree Search Function, Hash Search Function):
Mention search.h clearly.
2002-10-05 Roland McGrath <roland@redhat.com>
* elf/dl-fxstat64.c: File removed.
* elf/dl-xstat64.c: File removed.
* elf/Makefile (rtld-routines): Remove them.
* sysdeps/unix/sysv/linux/xstat64.c: Remove RTLD_STAT64 conditionals.
Instead, use strong_alias instead of versioned_symbol in the
!SHLIB_COMPAT case.
* sysdeps/unix/sysv/linux/fxstat64.c: Likewise.
* sysdeps/unix/sysv/linux/lxstat64.c: Likewise.
* include/shlib-compat.h
(SHLIB_COMPAT): Require that IS_IN_##lib be defined nonzero.
[! NOT_IN_libc] (IS_IN_libc): Define it.
* cppflags-iterator.mk (CPPFLAGS-$(cpp-src)): Use -Dx=1 not just -Dx.
* elf/Makefile (CPPFLAGS-.os): Likewise.
* sunrpc/rpc_main.c (main): Don't declare with noreturn attribute.
Return the status instead of calling exit.
* Makeconfig (CFLAGS): Prepend -std=gnu99.
* Makerules (+make-deps): Use $(CFLAGS) only for .c sources.
Remove superfluous rm command, whose @ plus make bugs hid
all these commands from the make output.
* include/stubs-prologue.h: New file. Give #error under #ifdef _LIBC.
* Makefile ($(inst_includedir)/gnu/stubs.h): Depend on it.
Use that file's contents instead of literal echo's for the prologue.
* include/features.h: Include <gnu/stubs.h> unconditionally.
* include/gnu/stubs.h: New file.
2002-09-30 Roland McGrath <roland@redhat.com>
* elf/rtld-Rules: New file.
* elf/Makefile ($(objpfx)librtld.map, $(objpfx)librtld.mk,
$(objpfx)rtld-libc.a): New targets.
(generated): Add them.
(reloc-link): Remove -o $@ from the variable.
($(objpfx)dl-allobjs.os): Add -o $@ after $(reloc-link).
(distribute): Add rtld-Rules.
(CPPFLAGS-.os): Define this instead of CFLAGS-.os.
* Makerules ($(+sysdir_pfx)sysd-rules): Emit rules for rtld-% targets.
(common-mostlyclean, common-clean): Clean up rtld-* files.
* sysdeps/unix/make-syscalls.sh: Add rtld-*.os target name to rules.