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.
* manual/signal.texi (Process Signal Mask): Document that
pthread_sigmask, not sigprocmask, must be used in MT programs.
Patch by Bertold Kolics <Bertold.Kolics@Sun.COM>.
2000-10-29 Greg Louis <glouis@dynamicro.on.ca>
* posix/regex.h (__restrict_arr): Move definition out of #ifndef block.
Required because egcs-2.91.66 (aka 1.1.2) defines __restrict, but
doesn't define __restrict_arr.
* manual/search.texi: Correct description if VISIT values.
Patch by Ben Collins <bcollins@debian.org>.
1999-11-09 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-load.c (_dl_dst_count): Allow $ORIGIN to point to
directory with the reference since this is as secure as using the
object with the dependency.
(_dl_dst_substitute): Likewise.
* elf/dl-load.c (_dl_dst_count): Change strings in first two
strncmp calls to allow reuse.
(_dl_dst_substitute): Likewise.
1999-11-01 Arnold D. Robbins <arnold@skeeve.com>
* posix/regex.c (init_syntax_once): move below definition of
ISALNUM etc., then use ISALNUM to init the table, so that
the word ops will work if i18n'ed.
(SYNTAX): And subscript with 0xFF for 8bit character sets.
1999-11-09 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/getlogin_r.c (getlogin_r): Sync with getlogin
implementation for ttyname_r call; fix inverted condition; return
ut_user. Closes PR libc/1438.
1999-11-09 Ulrich Drepper <drepper@cygnus.com>
* timezone/checktab.awk: Update from tzcode1999h.
* timezone/africa: Update from tzdata1999i.
* timezone/asia: Likewise.
* timezone/australasia: Likewise.
* timezone/backward: Likewise.
* timezone/europe: Likewise.
* timezone/northamerica: Likewise.
* timezone/southamerica: Likewise.
* timezone/iso3166.tab: Likewise.
* timezone/zone.tab: Likewise.
* sysdeps/unix/sysv/linux/bits/resource.h: Define values also as
macros. Patch by brg@csua.berkeley.edu [PR libc/1439].
1999-11-09 Andreas Jaeger <aj@suse.de>
* posix/Makefile (tests): Added tst-getlogin.
* posix/tst-getlogin.c: New file, contains simple tests for
getlogin and getlogin_r.
1999-11-09 Andreas Schwab <schwab@suse.de>
* misc/syslog.c: For LOG_PERROR only append a newline if
necessary.
* iconv/gconv_int.h (gconv_module): Add new element from_regex_mem.
* iconv/gconv_conf.c (module_compare): Make s1 and s2 const.
(detect_conflict): New function.
(add_alias): Call detect_conflict to see whether there is already
a module for the new name.
(add_module): Make sure there is no alias for the new name.
(read_conf_file): Call add_alias with new argument.
(__gconv_read_conf): Don't destroy module tree immediately after
walking it. We need it to test the internal conversions for
conflicts.
* iconv/gconv_db.c (find_derivation): Don't allocate memory for
regular expression. There is now room in the module descriptor.
(free_mem): Don't free memory for regular expression.
1998-11-16 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/opendir.c: Use o_directory_works differently. Treat
zero value as uninitialized so that variable can go into .bss.
* dirent/opendir-tst1.c: Print error strings to stdout.
* sysdeps/unix/sysv/linux/mmap64.c: New file. Empty.
* sysdeps/unix/sysv/linux/syscalls.list: Add mmap with mmap64 alias.
* sysdeps/unix/sysv/linux/arm/mmap.S: Add mmap64 alias.
* sysdeps/unix/sysv/linux/i386/mmap.S: Likewise.
* sysdeps/unix/sysv/linux/m68k/mmap.S: Likewise.
1998-11-16 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* time/tzfile.c (__tzfile_read): Check that types[i].isdst is in
range.
1998-11-16 Ulrich Drepper <drepper@cygnus.com>
* libio/bits/stdio.h (fread_unlocked): Do handle zero size and number.
(fwrite_unlocked): Likewise.
1998-11-16 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* libio/bits/stdio.h (fread_unlocked): Don't evaluate non-constant
twice. Don't bother handling zero size.
(frwite_unlocked): Likewise.
1998-11-15 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* configure.in: Fix regex for makeinfo version string.
1998-11-15 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* sunrpc/rpc_sample.c (write_sample_server): Avoid -Wparentheses
warning.
* sunrpc/rpc_svcout.c (write_program): Likewise.
1998-11-15 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* time/Makefile (CFLAGS-test_time.c): Add -Wno-format.
1998-11-16 Ulrich Drepper <drepper@cygnus.com
* misc/sys/mman.h: Pretty print prototypes.
1998-11-15 Ulrich Drepper <drepper@cygnus.com
* misc/error.c (error): Don't use result of strerror_r call directly
since at least DEC Unix has a wrong return type.
Patch by Johan Danielsson <joda@pdc.kth.se>.
1998-11-16 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
1997-09-21 03:19 Ulrich Drepper <drepper@cygnus.com>
* libio/libio.h: More libstdc++ cleanups. Define _IO_USE_DTOA if
_G_HAVE_PRINTF_FP is not defined.
* libio/strops.c: Undo patch of 1997-07-08 02:18. Must find a
different solution for the problem.
* misc/search.h [__USE_GNU]: Define comparison_fn_t.
* stdlib/stdlib.h: Define comparison_fn_t only if __COMPAR_FN_T is
not defined.
Fix typo. Pretty print inline functions.
* sysdeps/i386/i486/string.h (__stpcpy_small): Increment __cp not cp.
Patch by HJ Lu <hjl@gnu.ai.mit.edu>.
1997-09-20 16:45 Ulrich Drepper <drepper@cygnus.com>
* hesiod/hesiod.c (hesiod_init): Use __secure_getenv to get
HES_DOMAIN environment variable.
Suggested by Mark Kettenis <kettenis@phys.uva.nl>.
* hesiod/README.hesiod: A bit of information about Hesiod and how
to use it. Written by Mark Kettenis <kettenis@phys.uva.nl>.
1997-09-20 05:15 Ulrich Drepper <drepper@cygnus.com>
* manual/maint.texi: Update requirement list.
* io/ftw.h: Don't use parameter names from global namespace in
prototypes.
* stdlib/strtol.c: If used outside glibc handle broken systems
which have character classification functions which are not 8-bit
clean gracefully. Patch by Bruno Haible <haible@ilog.fr>.
1997-09-19 21:42 David S. Miller <davem@tanya.rutgers.edu>
* sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: ssize_t is
a long long int.
1997-09-19 15:12 H.J. Lu <hjl@gnu.ai.mit.edu>
* posix/Makefile (test-srcs): New, set to globtest.
1997-09-20 00:24 Ulrich Drepper <drepper@cygnus.com>
* manual/filesys.texi: Document ftw, nftw and needed data types.
1997-09-19 12:53 H.J. Lu <hjl@gnu.ai.mit.edu>
* sysdeps/i386/i486/bits/string.h: Fix typo.
1997-09-19 14:11 Ulrich Drepper <drepper@cygnus.com>
* io/ftwtest.c (cb): Print level.
* io/ftwtest-sh: Updated for ftwtest.c change.
* string/argz.h (__argz_next): Cast NULL to char * to satisfy C++
compilers.
Reported by Mirko Streckenbach <mirko@ramz.ing.tu-bs.de>.
* catgets/catgets.c (catopen): Correctly allocate string of nlspath.
Reported by Charles C. Fu <ccwf@klab.caltech.edu>.
1997-09-18 13:30 Klaus Espenlaub <kespenla@student.informatik.uni-ulm.de>
* sysdeps/i386/init-first.c: Call __getopt_clean_environment with
additional argument.
* sysdeps/mach/hurd/i386/init-first.c: Likewise.
* sysdeps/mach/hurd/mips/init-first.c: Likewise.
* sysdeps/stub/init-first.c: Likewise.
1997-09-18 03:16 Ulrich Drepper <drepper@cygnus.com>
* manual/search.texi: Document lsearch, lfind, the hsearch and
tsearch functions.
1997-09-18 00:04 Ulrich Drepper <drepper@cygnus.com>
* misc/hsearch_r.c (hsearch_r): Only return error for ENTER action
if the table is full and we *really* have to enter a new entry.
1997-09-17 19:44 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Get rid
of hack for handling flush opcode.
Patch by Richard Henderson <rth@cygnus.com>.