From 8660b873a822d9fc7d85312aad626b66faf1a7bd Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Wed, 20 Oct 2004 11:45:54 +0000 Subject: [PATCH] auto-import glibc-2.3.3-71 on branch devel from glibc-2.3.3-71.src.rpm --- .cvsignore | 4 +- glibc-fedora.patch | 1719 +++++--------------------------------------- glibc.spec | 48 +- sources | 4 +- 4 files changed, 249 insertions(+), 1526 deletions(-) diff --git a/.cvsignore b/.cvsignore index f8400ab..cd8f010 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1,2 @@ -glibc-20041018T0940.tar.bz2 -glibc-fedora-20041018T0940.tar.bz2 +glibc-20041020T1016.tar.bz2 +glibc-fedora-20041020T1016.tar.bz2 diff --git a/glibc-fedora.patch b/glibc-fedora.patch index a1938c6..880edf6 100644 --- a/glibc-fedora.patch +++ b/glibc-fedora.patch @@ -1,68 +1,27 @@ ---- glibc-20041018T0940/ChangeLog 18 Oct 2004 05:17:42 -0000 1.8895 -+++ glibc-20041018T0940-fedora/ChangeLog 18 Oct 2004 23:30:18 -0000 1.8782.2.24 -@@ -1,3 +1,61 @@ +--- glibc-20041020T1016/ChangeLog 20 Oct 2004 10:05:07 -0000 1.8909 ++++ glibc-20041020T1016-fedora/ChangeLog 20 Oct 2004 11:04:42 -0000 1.8782.2.26 +@@ -1,3 +1,8 @@ ++2004-10-20 Jakub Jelinek ++ ++ * sysdeps/unix/sysv/linux/readonly-area.c (__readonly_area): If /proc ++ is not mounted, return 1. ++ + 2004-10-20 Roland McGrath + + * manual/errno.texi (Error Codes): Add ENOKEY, EKEYEXPIRED, +@@ -61,6 +66,11 @@ + * debug/catchsegv.sh: Update copyright year. + Use mktemp to create segv_output file. + +2004-10-19 Jakub Jelinek + + * include/features.h (__USE_FORTIFY_LEVEL): Enable even with + Red Hat gcc4 4.0.0 and above. + -+2004-10-18 Jakub Jelinek -+ -+ * elf/dl-libc.c (__libc_dlsym_private, __libc_register_dl_open_hook): -+ New functions. -+ (__libc_dlopen_mode): Call __libc_register_dl_open_hook and -+ __libc_register_dlfcn_hook. -+ * dlfcn/Makefile (routines, elide-routines.os): Set. -+ Add rules to build and test tststatic2. -+ * dlfcn/tststatic2.c: New test. -+ * dlfcn/modstatic2.c: New test module. -+ * dlfcn/dladdr.c: Call _dlfcn_hook from libdl.so if not NULL. -+ Define __ prefixed routine in libc.a and in libdl.a just call it. -+ * dlfcn/dladdr1.c: Likewise. -+ * dlfcn/dlclose.c: Likewise. -+ * dlfcn/dlerror.c: Likewise. -+ * dlfcn/dlinfo.c: Likewise. -+ * dlfcn/dlmopen.c: Likewise. -+ * dlfcn/dlopen.c: Likewise. -+ * dlfcn/dlopenold.c: Likewise. -+ * dlfcn/dlsym.c: Likewise. -+ * dlfcn/dlvsym.c: Likewise. -+ * dlfcn/sdladdr.c: New file. -+ * dlfcn/sdladdr1.c: New file. -+ * dlfcn/sdlclose.c: New file. -+ * dlfcn/sdlerror.c: New file. -+ * dlfcn/sdlinfo.c: New file. -+ * dlfcn/sdlopen.c: New file. -+ * dlfcn/sdlsym.c: New file. -+ * dlfcn/sdlvsym.c: New file. -+ * dlfcn/Versions (libdl): Export _dlfcn_hook@GLIBC_PRIVATE. -+ * include/dlfcn.h (DL_CALLER_DECL, DL_CALLER RETURN_ADDRESS): Define. -+ (struct dlfcn_hook): New type. -+ (_dlfcn_hook): New extern decl. -+ (__dlopen, __dlclose, __dlsym, __dlerror, __dladdr, __dladdr1, -+ __dlinfo, __dlmopen, __libc_dlsym_private, -+ __libc_register_dl_open_hook, __libc_register_dlfcn_hook): New -+ prototypes. -+ (__dlvsym): Use DL_CALLER_DECL. -+ * include/libc-symbols.h: Define libdl_hidden_proto and friends. -+ -+ * malloc/arena.c (_dl_open_hook): Extern decl. -+ (ptmalloc_init): Don't call _dl_addr when dlopened from statically -+ linked programs but don't use brk for them either. -+ -+2004-10-18 Roland McGrath -+ -+ * dlfcn/bug-dlsym1.c (main): Remove bogus setenv call. -+ -+2004-10-18 Ulrich Drepper -+ -+ * elf/dl-open.c (dl_open_worker): Avoid dereferencing map in -+ statically linked code if there might none be found. -+ - 2004-10-06 Maciej W. Rozycki + 2004-10-18 Jakub Jelinek - * sysdeps/unix/sysv/linux/mips/mips32/sysdep.h -@@ -928,6 +986,22 @@ + * elf/dl-libc.c (__libc_dlsym_private, __libc_register_dl_open_hook): +@@ -1044,6 +1054,22 @@ * string/string.h: Add __nonnull annotations. * stdlib/stdlib.h: Likewise. @@ -85,7 +44,7 @@ 2004-09-20 H.J. Lu * sysdeps/unix/sysv/linux/ia64/sysdep.h (DO_INLINE_SYSCALL): -@@ -1657,6 +1731,23 @@ +@@ -1773,6 +1799,23 @@ before return type. * locale/localename.c (__current_locale_name): Likewise. @@ -109,7 +68,7 @@ 2004-08-30 Roland McGrath * scripts/extract-abilist.awk: If `lastversion' variable defined, omit -@@ -1813,6 +1904,22 @@ +@@ -1929,6 +1972,22 @@ * resolv/nss_dns/dns-canon.c (_nss_dns_getcanonname_r): Initialize status to NSS_STATUS_UNAVAIL. @@ -132,7 +91,7 @@ 2004-08-19 Ulrich Drepper * sysdeps/posix/getaddrinfo.c (gaih_inet): Use h->h_name in the -@@ -2117,6 +2224,12 @@ +@@ -2233,6 +2292,12 @@ * iconvdata/testdata/ISO-2022-JP-3: Regenerated. @@ -145,8 +104,8 @@ 2004-08-10 Alfred M. Szmidt * sysdeps/generic/bits/in.h (struct ip_mreq): Remove definition. ---- glibc-20041018T0940/ChangeLog.11 10 Nov 2000 03:31:36 -0000 1.1 -+++ glibc-20041018T0940-fedora/ChangeLog.11 22 Sep 2004 21:20:47 -0000 1.1.4.1 +--- glibc-20041020T1016/ChangeLog.11 10 Nov 2000 03:31:36 -0000 1.1 ++++ glibc-20041020T1016-fedora/ChangeLog.11 22 Sep 2004 21:20:47 -0000 1.1.4.1 @@ -1352,6 +1352,11 @@ * sysdeps/unix/sysv/linux/mips/sys/tas.h: Add missing .mips0 at the end of inline assembler code. @@ -196,8 +155,8 @@ * sysdeps/arm/bits/huge_val.h (HUGE_VAL, HUGE_VALF): Add __extension__ to hexadecimal floating constant notation. * sysdeps/i386/bits/huge_val.h (HUGE_VAL, HUGE_VALF, HUGE_VALL): ---- glibc-20041018T0940/ChangeLog.12 16 Aug 2001 05:24:54 -0000 1.1 -+++ glibc-20041018T0940-fedora/ChangeLog.12 22 Sep 2004 21:20:47 -0000 1.1.4.1 +--- glibc-20041020T1016/ChangeLog.12 16 Aug 2001 05:24:54 -0000 1.1 ++++ glibc-20041020T1016-fedora/ChangeLog.12 22 Sep 2004 21:20:47 -0000 1.1.4.1 @@ -7729,6 +7729,13 @@ * Versions.def [ld]: Add GLIBC_2.2.1. @@ -224,8 +183,8 @@ 2001-01-02 Franz Sirl * sysdeps/powerpc/dl-machine.c (__process_machine_rela): Fix typo. ---- glibc-20041018T0940/csu/elf-init.c 16 Aug 2004 04:51:00 -0000 1.3 -+++ glibc-20041018T0940-fedora/csu/elf-init.c 22 Sep 2004 21:20:47 -0000 1.3.2.1 +--- glibc-20041020T1016/csu/elf-init.c 16 Aug 2004 04:51:00 -0000 1.3 ++++ glibc-20041020T1016-fedora/csu/elf-init.c 22 Sep 2004 21:20:47 -0000 1.3.2.1 @@ -44,6 +44,24 @@ extern void (*__init_array_start []) (vo extern void (*__init_array_end []) (void) attribute_hidden; extern void (*__fini_array_start []) (void) attribute_hidden; @@ -251,1107 +210,8 @@ #endif /* These function symbols are provided for the .init/.fini section entry ---- glibc-20041018T0940/dlfcn/Makefile 14 Oct 2004 01:46:57 -0000 1.33 -+++ glibc-20041018T0940-fedora/dlfcn/Makefile 18 Oct 2004 23:30:21 -0000 1.32.2.2 -@@ -21,9 +21,11 @@ headers := bits/dlfcn.h dlfcn.h - extra-libs := libdl - libdl-routines := dlopen dlclose dlsym dlvsym dlerror dladdr dladdr1 dlinfo \ - dlmopen -+routines := $(patsubst %,s%,$(libdl-routines)) -+elide-routines.os := $(routines) - distribute := dlopenold.c glreflib1.c glreflib2.c failtestmod.c \ - defaultmod1.c defaultmod2.c errmsg1mod.c modatexit.c \ -- modcxaatexit.c modstatic.c \ -+ modcxaatexit.c modstatic.c modstatic2.c \ - bug-dlsym1-lib1.c bug-dlsym1-lib2.c - - extra-libs-others := libdl -@@ -51,10 +53,11 @@ glreflib2.so-no-z-defs = yes - errmsg1mod.so-no-z-defs = yes - - ifeq (yesyesyes,$(build-static)$(build-shared)$(elf)) --tests += tststatic --tests-static += tststatic --modules-names += modstatic -+tests += tststatic tststatic2 -+tests-static += tststatic tststatic2 -+modules-names += modstatic modstatic2 - tststatic-ENV = LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(common-objpfx)elf -+tststatic2-ENV = LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(common-objpfx)elf - endif - - extra-objs += $(modules-names:=.os) -@@ -106,7 +109,12 @@ $(objpfx)modatexit.so: $(common-objpfx)l - $(objpfx)tststatic: $(objpfx)libdl.a - $(objpfx)tststatic.out: $(objpfx)tststatic $(objpfx)modstatic.so - --$(objpfx)modstatic.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a -+$(objpfx)tststatic2: $(objpfx)libdl.a -+$(objpfx)tststatic2.out: $(objpfx)tststatic2 $(objpfx)modstatic.so \ -+ $(objpfx)modstatic2.so -+ -+$(objpfx)modstatic2.so: $(libdl) $(common-objpfx)libc.so \ -+ $(common-objpfx)libc_nonshared.a - - $(objpfx)bug-dlopen1: $(libdl) - ---- glibc-20041018T0940/dlfcn/Versions 14 Oct 2004 01:47:20 -0000 1.4 -+++ glibc-20041018T0940-fedora/dlfcn/Versions 18 Oct 2004 23:30:21 -0000 1.3.2.2 -@@ -11,4 +11,7 @@ libdl { - GLIBC_2.3.4 { - dlmopen; - } -+ GLIBC_PRIVATE { -+ _dlfcn_hook; -+ } - } ---- glibc-20041018T0940/dlfcn/bug-dlsym1.c 21 Aug 2002 23:03:46 -0000 1.1 -+++ glibc-20041018T0940-fedora/dlfcn/bug-dlsym1.c 18 Oct 2004 23:30:21 -0000 1.1.2.1 -@@ -10,8 +10,6 @@ int main(void) - void *handle; - char *c; - -- setenv ("LD_LIBRARY_PATH", "/home/roland/build/tls-libc/dlfcn", 1); -- - /* open lib1.so, which has the unresolved test symbol and a DT_NEEDED - on lib2.so, which provides the symbol */ - if ((handle = dlopen("bug-dlsym1-lib1.so", RTLD_NOW)) == NULL) { ---- glibc-20041018T0940/dlfcn/dladdr.c 10 Mar 2003 09:12:11 -0000 1.3 -+++ glibc-20041018T0940-fedora/dlfcn/dladdr.c 18 Oct 2004 23:30:21 -0000 1.3.2.1 -@@ -1,5 +1,6 @@ - /* Locate the shared object symbol nearest a given address. -- Copyright (C) 1996, 1997, 1998, 1999, 2003 Free Software Foundation, Inc. -+ Copyright (C) 1996, 1997, 1998, 1999, 2003, 2004 -+ Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or -@@ -19,8 +20,26 @@ - - #include - -+#if !defined SHARED && defined IS_IN_libdl -+ - int - dladdr (const void *address, Dl_info *info) - { -+ return __dladdr (address, info); -+} -+ -+#else -+ -+int -+__dladdr (const void *address, Dl_info *info) -+{ -+# ifdef SHARED -+ if (__builtin_expect (_dlfcn_hook != NULL, 0)) -+ return _dlfcn_hook->dladdr (address, info); -+# endif - return _dl_addr (address, info, NULL, NULL); - } -+# ifdef SHARED -+strong_alias (__dladdr, dladdr) -+# endif -+#endif ---- glibc-20041018T0940/dlfcn/dladdr1.c 10 Mar 2003 09:12:11 -0000 1.1 -+++ glibc-20041018T0940-fedora/dlfcn/dladdr1.c 18 Oct 2004 23:30:21 -0000 1.1.2.1 -@@ -1,5 +1,5 @@ - /* Locate the shared object symbol nearest a given address. -- Copyright (C) 2003 Free Software Foundation, Inc. -+ Copyright (C) 2003, 2004 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or -@@ -19,9 +19,24 @@ - - #include - -+#if !defined SHARED && defined IS_IN_libdl -+ - int - dladdr1 (const void *address, Dl_info *info, void **extra, int flags) - { -+ return __dladdr1 (address, info, extra, flags); -+} -+ -+#else -+ -+int -+__dladdr1 (const void *address, Dl_info *info, void **extra, int flags) -+{ -+# ifdef SHARED -+ if (__builtin_expect (_dlfcn_hook != NULL, 0)) -+ return _dlfcn_hook->dladdr1 (address, info, extra, flags); -+# endif -+ - switch (flags) - { - default: /* Make this an error? */ -@@ -33,3 +48,7 @@ dladdr1 (const void *address, Dl_info *i - return _dl_addr (address, info, (struct link_map **) extra, NULL); - } - } -+# ifdef SHARED -+strong_alias (__dladdr1, dladdr1) -+# endif -+#endif ---- glibc-20041018T0940/dlfcn/dlclose.c 6 Jul 2001 04:54:45 -0000 1.2 -+++ glibc-20041018T0940-fedora/dlfcn/dlclose.c 18 Oct 2004 23:30:21 -0000 1.2.4.1 -@@ -1,5 +1,6 @@ - /* Close a handle opened by `dlopen'. -- Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. -+ Copyright (C) 1995, 1996, 1997, 1998, 1999, 2004 -+ Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or -@@ -19,6 +20,16 @@ - - #include - -+#if !defined SHARED && defined IS_IN_libdl -+ -+int -+dlclose (void *handle) -+{ -+ return __dlclose (handle); -+} -+ -+#else -+ - static void - dlclose_doit (void *handle) - { -@@ -26,7 +37,16 @@ dlclose_doit (void *handle) - } - - int --dlclose (void *handle) -+__dlclose (void *handle) - { -+# ifdef SHARED -+ if (__builtin_expect (_dlfcn_hook != NULL, 0)) -+ return _dlfcn_hook->dlclose (handle); -+# endif -+ - return _dlerror_run (dlclose_doit, handle) ? -1 : 0; - } -+# ifdef SHARED -+strong_alias (__dlclose, dlclose) -+# endif -+#endif ---- glibc-20041018T0940/dlfcn/dlerror.c 6 Mar 2004 08:09:14 -0000 1.13 -+++ glibc-20041018T0940-fedora/dlfcn/dlerror.c 18 Oct 2004 23:30:21 -0000 1.13.2.1 -@@ -25,6 +25,16 @@ - #include - #include - -+#if !defined SHARED && defined IS_IN_libdl -+ -+char * -+dlerror (void) -+{ -+ return __dlerror (); -+} -+ -+#else -+ - /* Type for storing results of dynamic loading actions. */ - struct dl_action_result - { -@@ -46,11 +56,16 @@ static void free_key_mem (void *mem); - - - char * --dlerror (void) -+__dlerror (void) - { - char *buf = NULL; - struct dl_action_result *result; - -+# ifdef SHARED -+ if (__builtin_expect (_dlfcn_hook != NULL, 0)) -+ return _dlfcn_hook->dlerror (); -+# endif -+ - /* If we have not yet initialized the buffer do it now. */ - __libc_once (once, init); - -@@ -99,6 +114,9 @@ dlerror (void) - - return buf; - } -+# ifdef SHARED -+strong_alias (__dlerror, dlerror) -+# endif - - int - internal_function -@@ -185,3 +203,35 @@ free_key_mem (void *mem) - free (mem); - __libc_setspecific (key, NULL); - } -+ -+# ifdef SHARED -+ -+struct dlfcn_hook *_dlfcn_hook __attribute__((nocommon)); -+libdl_hidden_data_def (_dlfcn_hook) -+ -+# else -+ -+static struct dlfcn_hook _dlfcn_hooks = -+ { -+ .dlopen = __dlopen, -+ .dlclose = __dlclose, -+ .dlsym = __dlsym, -+ .dlvsym = __dlvsym, -+ .dlerror = __dlerror, -+ .dladdr = __dladdr, -+ .dladdr1 = __dladdr1, -+ .dlinfo = __dlinfo, -+ .dlmopen = __dlmopen -+ }; -+ -+void -+__libc_register_dlfcn_hook (struct link_map *map) -+{ -+ struct dlfcn_hook **hook; -+ -+ hook = (struct dlfcn_hook **) __libc_dlsym_private (map, "_dlfcn_hook"); -+ if (hook != NULL) -+ *hook = &_dlfcn_hooks; -+} -+# endif -+#endif ---- glibc-20041018T0940/dlfcn/dlinfo.c 14 Oct 2004 16:07:37 -0000 1.4 -+++ glibc-20041018T0940-fedora/dlfcn/dlinfo.c 18 Oct 2004 23:30:21 -0000 1.2.2.3 -@@ -22,6 +22,16 @@ - #include - #include - -+#if !defined SHARED && defined IS_IN_libdl -+ -+int -+dlinfo (void *handle, int request, void *arg) -+{ -+ return __dlinfo (handle, request, arg, RETURN_ADDRESS (0)); -+} -+ -+#else -+ - struct dlinfo_args - { - ElfW(Addr) caller; -@@ -36,7 +46,7 @@ dlinfo_doit (void *argsblock) - struct dlinfo_args *const args = argsblock; - struct link_map *l = args->handle; - --#if 0 -+# if 0 - if (args->handle == RTLD_SELF) - { - Lmid_t nsid; -@@ -53,7 +63,7 @@ dlinfo_doit (void *argsblock) - GLRO(dl_signal_error) (0, NULL, NULL, N_("\ - RTLD_SELF used in code not dynamically loaded")); - } --#endif -+# endif - - switch (args->request) - { -@@ -84,9 +94,19 @@ RTLD_SELF used in code not dynamically l - } - - int --dlinfo (void *handle, int request, void *arg) -+__dlinfo (void *handle, int request, void *arg DL_CALLER_DECL) - { -- struct dlinfo_args args = { (ElfW(Addr)) RETURN_ADDRESS (0), -+# ifdef SHARED -+ if (__builtin_expect (_dlfcn_hook != NULL, 0)) -+ return _dlfcn_hook->dlinfo (handle, request, arg, -+ DL_CALLER); -+# endif -+ -+ struct dlinfo_args args = { (ElfW(Addr)) DL_CALLER, - handle, request, arg }; - return _dlerror_run (&dlinfo_doit, &args) ? -1 : 0; - } -+# ifdef SHARED -+strong_alias (__dlinfo, dlinfo) -+# endif -+#endif ---- glibc-20041018T0940/dlfcn/dlmopen.c 14 Oct 2004 01:46:27 -0000 1.1 -+++ glibc-20041018T0940-fedora/dlfcn/dlmopen.c 18 Oct 2004 23:30:21 -0000 1.1.2.2 -@@ -23,6 +23,17 @@ - #include - #include - -+#if !defined SHARED && defined IS_IN_libdl -+ -+void * -+dlmopen (Lmid_t nsid, const char *file, int mode) -+{ -+ return __dlmopen (nsid, file, mode, RETURN_ADDRESS (0)); -+} -+static_link_warning (dlmopen) -+ -+#else -+ - struct dlmopen_args - { - /* Namespace ID. */ -@@ -43,11 +54,11 @@ dlmopen_doit (void *a) - - /* Non-shared code has no support for multiple namespaces. */ - if (args->nsid != LM_ID_BASE) --#ifdef SHARED -+# ifdef SHARED - /* If trying to open the link map for the main executable the namespace - must be the main one. */ - if (args->file == NULL) --#endif -+# endif - GLRO(dl_signal_error) (EINVAL, NULL, NULL, N_("invalid namespace")); - - args->new = _dl_open (args->file ?: "", args->mode | __RTLD_DLOPEN, -@@ -56,14 +67,32 @@ dlmopen_doit (void *a) - - - void * --dlmopen (Lmid_t nsid, const char *file, int mode) -+__dlmopen (Lmid_t nsid, const char *file, int mode DL_CALLER_DECL) - { -+# ifdef SHARED -+ if (__builtin_expect (_dlfcn_hook != NULL, 0)) -+ return _dlfcn_hook->dlmopen (nsid, file, mode, RETURN_ADDRESS (0)); -+# endif -+ - struct dlmopen_args args; - args.nsid = nsid; - args.file = file; - args.mode = mode; -- args.caller = RETURN_ADDRESS (0); -+ args.caller = DL_CALLER; - -+# ifdef SHARED - return _dlerror_run (dlmopen_doit, &args) ? NULL : args.new; -+# else -+ if (_dlerror_run (dlmopen_doit, &args)) -+ return NULL; -+ -+ __libc_register_dl_open_hook ((struct link_map *) args.new); -+ __libc_register_dlfcn_hook ((struct link_map *) args.new); -+ -+ return args.new; -+# endif - } --static_link_warning (dlmopen) -+# ifdef SHARED -+strong_alias (__dlmopen, dlmopen) -+# endif -+#endif ---- glibc-20041018T0940/dlfcn/dlopen.c 14 Oct 2004 01:48:54 -0000 1.9 -+++ glibc-20041018T0940-fedora/dlfcn/dlopen.c 18 Oct 2004 23:30:21 -0000 1.8.2.2 -@@ -20,6 +20,17 @@ - #include - #include - -+#if !defined SHARED && defined IS_IN_libdl -+ -+void * -+dlopen (const char *file, int mode) -+{ -+ return __dlopen (file, mode, RETURN_ADDRESS (0)); -+} -+static_link_warning (dlopen) -+ -+#else -+ - struct dlopen_args - { - /* The arguments for dlopen_doit. */ -@@ -33,11 +44,11 @@ struct dlopen_args - - - /* Non-shared code has no support for multiple namespaces. */ --#ifdef SHARED --# define NS __LM_ID_CALLER --#else --# define NS LM_ID_BASE --#endif -+# ifdef SHARED -+# define NS __LM_ID_CALLER -+# else -+# define NS LM_ID_BASE -+# endif - - - static void -@@ -50,17 +61,34 @@ dlopen_doit (void *a) - } - - --extern void *__dlopen_check (const char *file, int mode); - void * --__dlopen_check (const char *file, int mode) -+__dlopen (const char *file, int mode DL_CALLER_DECL) - { -+# ifdef SHARED -+ if (__builtin_expect (_dlfcn_hook != NULL, 0)) -+ return _dlfcn_hook->dlopen (file, mode, DL_CALLER); -+# endif -+ - struct dlopen_args args; - args.file = file; - args.mode = mode; -- args.caller = RETURN_ADDRESS (0); -+ args.caller = DL_CALLER; - -+# ifdef SHARED - return _dlerror_run (dlopen_doit, &args) ? NULL : args.new; -+# else -+ if (_dlerror_run (dlopen_doit, &args)) -+ return NULL; -+ -+ __libc_register_dl_open_hook ((struct link_map *) args.new); -+ __libc_register_dlfcn_hook ((struct link_map *) args.new); -+ -+ return args.new; -+# endif - } --#include -+# ifdef SHARED -+# include -+strong_alias (__dlopen, __dlopen_check) - versioned_symbol (libdl, __dlopen_check, dlopen, GLIBC_2_1); --static_link_warning (dlopen) -+# endif -+#endif ---- glibc-20041018T0940/dlfcn/dlopenold.c 14 Oct 2004 01:48:54 -0000 1.8 -+++ glibc-20041018T0940-fedora/dlfcn/dlopenold.c 18 Oct 2004 23:30:21 -0000 1.7.4.2 -@@ -67,6 +67,9 @@ __dlopen_nocheck (const char *file, int - mode |= RTLD_LAZY; - args.mode = mode; - -+ if (__builtin_expect (_dlfcn_hook != NULL, 0)) -+ return _dlfcn_hook->dlopen (file, mode, RETURN_ADDRESS (0)); -+ - return _dlerror_run (dlopen_doit, &args) ? NULL : args.new; - } - compat_symbol (libdl, __dlopen_nocheck, dlopen, GLIBC_2_0); ---- glibc-20041018T0940/dlfcn/dlsym.c 21 Feb 2004 01:03:02 -0000 1.5 -+++ glibc-20041018T0940-fedora/dlfcn/dlsym.c 18 Oct 2004 23:30:21 -0000 1.5.2.1 -@@ -22,6 +22,16 @@ - - #include - -+#if !defined SHARED && defined IS_IN_libdl -+ -+void * -+dlsym (void *handle, const char *name) -+{ -+ return __dlsym (handle, name, RETURN_ADDRESS (0)); -+} -+ -+#else -+ - struct dlsym_args - { - /* The arguments to dlsym_doit. */ -@@ -43,10 +53,15 @@ dlsym_doit (void *a) - - - void * --dlsym (void *handle, const char *name) -+__dlsym (void *handle, const char *name DL_CALLER_DECL) - { -+# ifdef SHARED -+ if (__builtin_expect (_dlfcn_hook != NULL, 0)) -+ return _dlfcn_hook->dlsym (handle, name, DL_CALLER); -+# endif -+ - struct dlsym_args args; -- args.who = RETURN_ADDRESS (0); -+ args.who = DL_CALLER; - args.handle = handle; - args.name = name; - -@@ -59,3 +74,7 @@ dlsym (void *handle, const char *name) - - return result; - } -+# ifdef SHARED -+strong_alias (__dlsym, dlsym) -+# endif -+#endif ---- glibc-20041018T0940/dlfcn/dlvsym.c 21 Feb 2004 01:03:02 -0000 1.5 -+++ glibc-20041018T0940-fedora/dlfcn/dlvsym.c 18 Oct 2004 23:30:21 -0000 1.5.2.1 -@@ -22,6 +22,17 @@ - - #include - -+#if !defined SHARED && defined IS_IN_libdl -+ -+void * -+weak_function -+dlvsym (void *handle, const char *name, const char *version_str) -+{ -+ return __dlvsym (handle, name, version_str, RETURN_ADDRESS (0)); -+} -+ -+#else -+ - struct dlvsym_args - { - /* The arguments to dlvsym_doit. */ -@@ -44,13 +55,18 @@ dlvsym_doit (void *a) - } - - void * --__dlvsym (void *handle, const char *name, const char *version_str) -+__dlvsym (void *handle, const char *name, const char *version_str -+ DL_CALLER_DECL) - { -- struct dlvsym_args args; -+# ifdef SHARED -+ if (__builtin_expect (_dlfcn_hook != NULL, 0)) -+ return _dlfcn_hook->dlvsym (handle, name, version_str, DL_CALLER); -+# endif - -+ struct dlvsym_args args; - args.handle = handle; - args.name = name; -- args.who = RETURN_ADDRESS (0); -+ args.who = DL_CALLER; - args.version = version_str; - - /* Protect against concurrent loads and unloads. */ -@@ -62,4 +78,7 @@ __dlvsym (void *handle, const char *name - - return result; - } -+# ifdef SHARED - weak_alias (__dlvsym, dlvsym) -+# endif -+#endif ---- glibc-20041018T0940/dlfcn/modstatic2.c 1 Jan 1970 00:00:00 -0000 -+++ glibc-20041018T0940-fedora/dlfcn/modstatic2.c 18 Oct 2004 23:30:21 -0000 1.1.2.1 -@@ -0,0 +1,228 @@ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+int test (FILE *out, int a); -+ -+int -+test (FILE *out, int a) -+{ -+ fputs ("in modstatic2.c (test)\n", out); -+ -+ void *handle = dlopen ("modstatic2-nonexistent.so", RTLD_LAZY); -+ if (handle == NULL) -+ fprintf (out, "nonexistent: %s\n", dlerror ()); -+ else -+ exit (1); -+ -+ handle = dlopen ("modstatic2.so", RTLD_LAZY); -+ if (handle == NULL) -+ { -+ fprintf (out, "%s\n", dlerror ()); -+ exit (1); -+ } -+ -+ int (*test2) (FILE *, int); -+ test2 = dlsym (handle, "test"); -+ if (test2 == NULL) -+ { -+ fprintf (out, "%s\n", dlerror ()); -+ exit (1); -+ } -+ if (test2 != test) -+ { -+ fprintf (out, "test %p != test2 %p\n", test, test2); -+ exit (1); -+ } -+ -+ Dl_info info; -+ int res = dladdr (test2, &info); -+ if (res == 0) -+ { -+ fputs ("dladdr returned 0\n", out); -+ exit (1); -+ } -+ else -+ { -+ if (strstr (info.dli_fname, "modstatic2.so") == NULL -+ || strcmp (info.dli_sname, "test") != 0) -+ { -+ fprintf (out, "fname %s sname %s\n", info.dli_fname, info.dli_sname); -+ exit (1); -+ } -+ if (info.dli_saddr != (void *) test2) -+ { -+ fprintf (out, "saddr %p != test %p\n", info.dli_saddr, test2); -+ exit (1); -+ } -+ } -+ -+ ElfW(Sym) *sym; -+ void *symp; -+ res = dladdr1 (test2, &info, &symp, RTLD_DL_SYMENT); -+ if (res == 0) -+ { -+ fputs ("dladdr1 returned 0\n", out); -+ exit (1); -+ } -+ else -+ { -+ if (strstr (info.dli_fname, "modstatic2.so") == NULL -+ || strcmp (info.dli_sname, "test") != 0) -+ { -+ fprintf (out, "fname %s sname %s\n", info.dli_fname, info.dli_sname); -+ exit (1); -+ } -+ if (info.dli_saddr != (void *) test2) -+ { -+ fprintf (out, "saddr %p != test %p\n", info.dli_saddr, test2); -+ exit (1); -+ } -+ sym = symp; -+ if (sym == NULL) -+ { -+ fputs ("sym == NULL\n", out); -+ exit (1); -+ } -+ if (ELF32_ST_BIND (sym->st_info) != STB_GLOBAL -+ || ELF32_ST_VISIBILITY (sym->st_other) != STV_DEFAULT) -+ { -+ fprintf (out, "bind %d visibility %d\n", -+ (int) ELF32_ST_BIND (sym->st_info), -+ (int) ELF32_ST_VISIBILITY (sym->st_other)); -+ exit (1); -+ } -+ } -+ -+ Lmid_t lmid; -+ res = dlinfo (handle, RTLD_DI_LMID, &lmid); -+ if (res != 0) -+ { -+ fprintf (out, "dlinfo returned %d %s\n", res, dlerror ()); -+ exit (1); -+ } -+ else if (lmid != LM_ID_BASE) -+ { -+ fprintf (out, "lmid %d != %d\n", (int) lmid, (int) LM_ID_BASE); -+ exit (1); -+ } -+ -+ void *handle2 = dlopen (LIBDL_SO, RTLD_LAZY); -+ if (handle2 == NULL) -+ { -+ fprintf (out, "libdl.so: %s\n", dlerror ()); -+ exit (1); -+ } -+ -+#ifdef DO_VERSIONING -+ if (dlvsym (handle2, "_dlfcn_hook", "GLIBC_PRIVATE") == NULL) -+ { -+ fprintf (out, "dlvsym: %s\n", dlerror ()); -+ exit (1); -+ } -+#endif -+ -+ void *(*dlsymfn) (void *, const char *); -+ dlsymfn = dlsym (handle2, "dlsym"); -+ if (dlsymfn == NULL) -+ { -+ fprintf (out, "dlsym \"dlsym\": %s\n", dlerror ()); -+ exit (1); -+ } -+ void *test3 = dlsymfn (handle, "test"); -+ if (test3 == NULL) -+ { -+ fprintf (out, "%s\n", dlerror ()); -+ exit (1); -+ } -+ else if (test3 != (void *) test2) -+ { -+ fprintf (out, "test2 %p != test3 %p\n", test2, test3); -+ exit (1); -+ } -+ -+ dlclose (handle2); -+ dlclose (handle); -+ -+ handle = dlmopen (LM_ID_BASE, "modstatic2.so", RTLD_LAZY); -+ if (handle == NULL) -+ { -+ fprintf (out, "%s\n", dlerror ()); -+ exit (1); -+ } -+ dlclose (handle); -+ -+ handle = dlmopen (LM_ID_NEWLM, "modstatic2.so", RTLD_LAZY); -+ if (handle == NULL) -+ fprintf (out, "LM_ID_NEWLM: %s\n", dlerror ()); -+ else -+ { -+ fputs ("LM_ID_NEWLM unexpectedly succeeded\n", out); -+ exit (1); -+ } -+ -+ handle = dlopen ("modstatic.so", RTLD_LAZY); -+ if (handle == NULL) -+ { -+ fprintf (out, "%s\n", dlerror ()); -+ exit (1); -+ } -+ -+ int (*test4) (int); -+ test4 = dlsym (handle, "test"); -+ if (test4 == NULL) -+ { -+ fprintf (out, "%s\n", dlerror ()); -+ exit (1); -+ } -+ -+ res = test4 (16); -+ if (res != 16 + 16) -+ { -+ fprintf (out, "modstatic.so (test) returned %d\n", res); -+ exit (1); -+ } -+ -+ res = dladdr1 (test4, &info, &symp, RTLD_DL_SYMENT); -+ if (res == 0) -+ { -+ fputs ("dladdr1 returned 0\n", out); -+ exit (1); -+ } -+ else -+ { -+ if (strstr (info.dli_fname, "modstatic.so") == NULL -+ || strcmp (info.dli_sname, "test") != 0) -+ { -+ fprintf (out, "fname %s sname %s\n", info.dli_fname, info.dli_sname); -+ exit (1); -+ } -+ if (info.dli_saddr != (void *) test4) -+ { -+ fprintf (out, "saddr %p != test %p\n", info.dli_saddr, test4); -+ exit (1); -+ } -+ sym = symp; -+ if (sym == NULL) -+ { -+ fputs ("sym == NULL\n", out); -+ exit (1); -+ } -+ if (ELF32_ST_BIND (sym->st_info) != STB_GLOBAL -+ || ELF32_ST_VISIBILITY (sym->st_other) != STV_DEFAULT) -+ { -+ fprintf (out, "bind %d visibility %d\n", -+ (int) ELF32_ST_BIND (sym->st_info), -+ (int) ELF32_ST_VISIBILITY (sym->st_other)); -+ exit (1); -+ } -+ } -+ -+ dlclose (handle); -+ -+ fputs ("leaving modstatic2.c (test)\n", out); -+ return a + a; -+} ---- glibc-20041018T0940/dlfcn/sdladdr.c 1 Jan 1970 00:00:00 -0000 -+++ glibc-20041018T0940-fedora/dlfcn/sdladdr.c 18 Oct 2004 23:30:21 -0000 1.1.2.1 -@@ -0,0 +1 @@ -+#include "dladdr.c" ---- glibc-20041018T0940/dlfcn/sdladdr1.c 1 Jan 1970 00:00:00 -0000 -+++ glibc-20041018T0940-fedora/dlfcn/sdladdr1.c 18 Oct 2004 23:30:21 -0000 1.1.2.1 -@@ -0,0 +1 @@ -+#include "dladdr1.c" ---- glibc-20041018T0940/dlfcn/sdlclose.c 1 Jan 1970 00:00:00 -0000 -+++ glibc-20041018T0940-fedora/dlfcn/sdlclose.c 18 Oct 2004 23:30:22 -0000 1.1.2.1 -@@ -0,0 +1 @@ -+#include "dlclose.c" ---- glibc-20041018T0940/dlfcn/sdlerror.c 1 Jan 1970 00:00:00 -0000 -+++ glibc-20041018T0940-fedora/dlfcn/sdlerror.c 18 Oct 2004 23:30:22 -0000 1.1.2.1 -@@ -0,0 +1 @@ -+#include "dlerror.c" ---- glibc-20041018T0940/dlfcn/sdlinfo.c 1 Jan 1970 00:00:00 -0000 -+++ glibc-20041018T0940-fedora/dlfcn/sdlinfo.c 18 Oct 2004 23:30:22 -0000 1.1.2.1 -@@ -0,0 +1 @@ -+#include "dlinfo.c" ---- glibc-20041018T0940/dlfcn/sdlmopen.c 1 Jan 1970 00:00:00 -0000 -+++ glibc-20041018T0940-fedora/dlfcn/sdlmopen.c 18 Oct 2004 23:30:22 -0000 1.1.2.1 -@@ -0,0 +1 @@ -+#include "dlmopen.c" ---- glibc-20041018T0940/dlfcn/sdlopen.c 1 Jan 1970 00:00:00 -0000 -+++ glibc-20041018T0940-fedora/dlfcn/sdlopen.c 18 Oct 2004 23:30:22 -0000 1.1.2.1 -@@ -0,0 +1 @@ -+#include "dlopen.c" ---- glibc-20041018T0940/dlfcn/sdlsym.c 1 Jan 1970 00:00:00 -0000 -+++ glibc-20041018T0940-fedora/dlfcn/sdlsym.c 18 Oct 2004 23:30:22 -0000 1.1.2.1 -@@ -0,0 +1 @@ -+#include "dlsym.c" ---- glibc-20041018T0940/dlfcn/sdlvsym.c 1 Jan 1970 00:00:00 -0000 -+++ glibc-20041018T0940-fedora/dlfcn/sdlvsym.c 18 Oct 2004 23:30:22 -0000 1.1.2.1 -@@ -0,0 +1 @@ -+#include "dlvsym.c" ---- glibc-20041018T0940/dlfcn/tststatic2.c 1 Jan 1970 00:00:00 -0000 -+++ glibc-20041018T0940-fedora/dlfcn/tststatic2.c 18 Oct 2004 23:30:22 -0000 1.1.2.1 -@@ -0,0 +1,166 @@ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+int -+main (void) -+{ -+ void *handle = dlopen ("modstatic2-nonexistent.so", RTLD_LAZY); -+ if (handle == NULL) -+ printf ("nonexistent: %s\n", dlerror ()); -+ else -+ exit (1); -+ -+ handle = dlopen ("modstatic2.so", RTLD_LAZY); -+ if (handle == NULL) -+ { -+ printf ("%s\n", dlerror ()); -+ exit (1); -+ } -+ -+ int (*test) (FILE *, int); -+ test = dlsym (handle, "test"); -+ if (test == NULL) -+ { -+ printf ("%s\n", dlerror ()); -+ exit (1); -+ } -+ -+ Dl_info info; -+ int res = dladdr (test, &info); -+ if (res == 0) -+ { -+ puts ("dladdr returned 0"); -+ exit (1); -+ } -+ else -+ { -+ if (strstr (info.dli_fname, "modstatic2.so") == NULL -+ || strcmp (info.dli_sname, "test") != 0) -+ { -+ printf ("fname %s sname %s\n", info.dli_fname, info.dli_sname); -+ exit (1); -+ } -+ if (info.dli_saddr != (void *) test) -+ { -+ printf ("saddr %p != test %p\n", info.dli_saddr, test); -+ exit (1); -+ } -+ } -+ -+ ElfW(Sym) *sym; -+ void *symp; -+ res = dladdr1 (test, &info, &symp, RTLD_DL_SYMENT); -+ if (res == 0) -+ { -+ puts ("dladdr1 returned 0"); -+ exit (1); -+ } -+ else -+ { -+ if (strstr (info.dli_fname, "modstatic2.so") == NULL -+ || strcmp (info.dli_sname, "test") != 0) -+ { -+ printf ("fname %s sname %s\n", info.dli_fname, info.dli_sname); -+ exit (1); -+ } -+ if (info.dli_saddr != (void *) test) -+ { -+ printf ("saddr %p != test %p\n", info.dli_saddr, test); -+ exit (1); -+ } -+ sym = symp; -+ if (sym == NULL) -+ { -+ puts ("sym == NULL\n"); -+ exit (1); -+ } -+ if (ELF32_ST_BIND (sym->st_info) != STB_GLOBAL -+ || ELF32_ST_VISIBILITY (sym->st_other) != STV_DEFAULT) -+ { -+ printf ("bind %d visibility %d\n", -+ (int) ELF32_ST_BIND (sym->st_info), -+ (int) ELF32_ST_VISIBILITY (sym->st_other)); -+ exit (1); -+ } -+ } -+ -+ Lmid_t lmid; -+ res = dlinfo (handle, RTLD_DI_LMID, &lmid); -+ if (res != 0) -+ { -+ printf ("dlinfo returned %d %s\n", res, dlerror ()); -+ exit (1); -+ } -+ else if (lmid != LM_ID_BASE) -+ { -+ printf ("lmid %d != %d\n", (int) lmid, (int) LM_ID_BASE); -+ exit (1); -+ } -+ -+ res = test (stdout, 2); -+ if (res != 4) -+ { -+ printf ("Got %i, expected 4\n", res); -+ exit (1); -+ } -+ -+ void *handle2 = dlopen (LIBDL_SO, RTLD_LAZY); -+ if (handle2 == NULL) -+ { -+ printf ("libdl.so: %s\n", dlerror ()); -+ exit (1); -+ } -+ -+#ifdef DO_VERSIONING -+ if (dlvsym (handle2, "_dlfcn_hook", "GLIBC_PRIVATE") == NULL) -+ { -+ printf ("dlvsym: %s\n", dlerror ()); -+ exit (1); -+ } -+#endif -+ -+ void *(*dlsymfn) (void *, const char *); -+ dlsymfn = dlsym (handle2, "dlsym"); -+ if (dlsymfn == NULL) -+ { -+ printf ("dlsym \"dlsym\": %s\n", dlerror ()); -+ exit (1); -+ } -+ void *test2 = dlsymfn (handle, "test"); -+ if (test2 == NULL) -+ { -+ printf ("%s\n", dlerror ()); -+ exit (1); -+ } -+ else if (test2 != (void *) test) -+ { -+ printf ("test %p != test2 %p\n", test, test2); -+ exit (1); -+ } -+ -+ dlclose (handle2); -+ dlclose (handle); -+ -+ handle = dlmopen (LM_ID_BASE, "modstatic2.so", RTLD_LAZY); -+ if (handle == NULL) -+ { -+ printf ("%s\n", dlerror ()); -+ exit (1); -+ } -+ dlclose (handle); -+ -+ handle = dlmopen (LM_ID_NEWLM, "modstatic2.so", RTLD_LAZY); -+ if (handle == NULL) -+ printf ("LM_ID_NEWLM: %s\n", dlerror ()); -+ else -+ { -+ puts ("LM_ID_NEWLM unexpectedly succeeded"); -+ exit (1); -+ } -+ -+ return 0; -+} ---- glibc-20041018T0940/elf/dl-libc.c 14 Oct 2004 02:02:33 -0000 1.23 -+++ glibc-20041018T0940-fedora/elf/dl-libc.c 18 Oct 2004 23:30:22 -0000 1.22.2.2 -@@ -121,7 +121,6 @@ do_dlsym_private (void *ptr) - vers.hidden = 1; - /* vers.hash = _dl_elf_hash (version); */ - vers.hash = 0x0963cf85; -- /* FIXME: Shouldn't we use libc.so.6* here? */ - vers.filename = NULL; - - struct do_dlsym_args *args = (struct do_dlsym_args *) ptr; -@@ -156,23 +155,36 @@ __libc_dlopen_mode (const char *name, in - if (dlerror_run (do_dlopen, &args)) - return NULL; - -+ __libc_register_dl_open_hook (args.map); -+ __libc_register_dlfcn_hook (args.map); -+ return (void *) args.map; -+#endif -+} -+libc_hidden_def (__libc_dlopen_mode) -+ -+#ifndef SHARED -+void * -+__libc_dlsym_private (struct link_map *map, const char *name) -+{ - struct do_dlsym_args sargs; -- sargs.map = args.map; -- sargs.name = "_dl_open_hook"; -+ sargs.map = map; -+ sargs.name = name; - - if (! dlerror_run (do_dlsym_private, &sargs)) -- { -- struct dl_open_hook **hook -- = (struct dl_open_hook **) -- (DL_SYMBOL_ADDRESS (sargs.loadbase, sargs.ref)); -- if (hook != NULL) -- *hook = &_dl_open_hook; -- } -+ return DL_SYMBOL_ADDRESS (sargs.loadbase, sargs.ref); -+ return NULL; -+} - -- return (void *) args.map; --#endif -+void -+__libc_register_dl_open_hook (struct link_map *map) -+{ -+ struct dl_open_hook **hook; -+ -+ hook = (struct dl_open_hook **) __libc_dlsym_private (map, "_dl_open_hook"); -+ if (hook != NULL) -+ *hook = &_dl_open_hook; - } --libc_hidden_def (__libc_dlopen_mode) -+#endif - - void * - __libc_dlsym (void *map, const char *name) ---- glibc-20041018T0940/elf/dl-open.c 14 Oct 2004 02:05:42 -0000 1.113 -+++ glibc-20041018T0940-fedora/elf/dl-open.c 18 Oct 2004 23:30:22 -0000 1.111.2.3 -@@ -207,7 +207,15 @@ dl_open_worker (void *a) - - found_caller: - if (args->nsid == __LM_ID_CALLER) -- args->nsid = call_map->l_ns; -+ { -+#ifndef SHARED -+ /* In statically linked apps there might be no loaded object. */ -+ if (call_map == NULL) -+ args->nsid = LM_ID_BASE; -+ else -+#endif -+ args->nsid = call_map->l_ns; -+ } - } - - /* Maybe we have to expand a DST. */ ---- glibc-20041018T0940/elf/dl-support.c 14 Oct 2004 02:06:18 -0000 1.86 -+++ glibc-20041018T0940-fedora/elf/dl-support.c 14 Oct 2004 05:57:53 -0000 1.84.2.3 +--- glibc-20041020T1016/elf/dl-support.c 14 Oct 2004 02:06:18 -0000 1.86 ++++ glibc-20041020T1016-fedora/elf/dl-support.c 14 Oct 2004 05:57:53 -0000 1.84.2.3 @@ -274,6 +274,11 @@ _dl_non_dynamic_init (void) if (_dl_platform != NULL) _dl_platformlen = strlen (_dl_platform); @@ -1364,8 +224,8 @@ /* Scan for a program header telling us the stack is nonexecutable. */ if (_dl_phdr != NULL) for (uint_fast16_t i = 0; i < _dl_phnum; ++i) ---- glibc-20041018T0940/elf/ldconfig.c 10 Aug 2004 04:04:32 -0000 1.47 -+++ glibc-20041018T0940-fedora/elf/ldconfig.c 22 Sep 2004 21:20:48 -0000 1.47.2.1 +--- glibc-20041020T1016/elf/ldconfig.c 10 Aug 2004 04:04:32 -0000 1.47 ++++ glibc-20041020T1016-fedora/elf/ldconfig.c 22 Sep 2004 21:20:48 -0000 1.47.2.1 @@ -944,17 +944,19 @@ search_dirs (void) @@ -1447,8 +307,8 @@ } search_dirs (); ---- glibc-20041018T0940/elf/rtld.c 14 Oct 2004 09:23:31 -0000 1.335 -+++ glibc-20041018T0940-fedora/elf/rtld.c 14 Oct 2004 09:57:38 -0000 1.330.2.6 +--- glibc-20041020T1016/elf/rtld.c 14 Oct 2004 09:23:31 -0000 1.335 ++++ glibc-20041020T1016-fedora/elf/rtld.c 14 Oct 2004 09:57:38 -0000 1.330.2.6 @@ -1087,6 +1087,53 @@ of this helper program; chances are you ++GL(dl_ns)[LM_ID_BASE]._ns_nloaded; ++GL(dl_load_adds); @@ -1571,8 +431,8 @@ if (__builtin_expect (npreloads, 0) != 0) { /* Set up PRELOADS with a vector of the preloaded libraries. */ ---- glibc-20041018T0940/elf/tst-tls10.h 17 Apr 2003 19:19:01 -0000 1.1 -+++ glibc-20041018T0940-fedora/elf/tst-tls10.h 22 Sep 2004 21:20:48 -0000 1.1.2.1 +--- glibc-20041020T1016/elf/tst-tls10.h 17 Apr 2003 19:19:01 -0000 1.1 ++++ glibc-20041020T1016-fedora/elf/tst-tls10.h 22 Sep 2004 21:20:48 -0000 1.1.2.1 @@ -1,8 +1,8 @@ #include #include @@ -1584,8 +444,8 @@ # define USE_TLS__THREAD struct A ---- glibc-20041018T0940/iconv/iconvconfig.c 24 Sep 2004 17:09:04 -0000 1.20 -+++ glibc-20041018T0940-fedora/iconv/iconvconfig.c 22 Sep 2004 21:20:51 -0000 1.19.2.1 +--- glibc-20041020T1016/iconv/iconvconfig.c 24 Sep 2004 17:09:04 -0000 1.20 ++++ glibc-20041020T1016-fedora/iconv/iconvconfig.c 22 Sep 2004 21:20:51 -0000 1.19.2.1 @@ -989,6 +989,34 @@ next_prime (uint32_t seed) module name offset (following last entry with step count 0) @@ -1662,82 +522,8 @@ /* Open the output file. */ assert (GCONV_MODULES_CACHE[0] == '/'); strcpy (stpcpy (mempcpy (tmpfname, prefix, prefix_len), GCONV_MODULES_CACHE), ---- glibc-20041018T0940/include/dlfcn.h 14 Oct 2004 01:57:25 -0000 1.18 -+++ glibc-20041018T0940-fedora/include/dlfcn.h 18 Oct 2004 23:30:22 -0000 1.17.2.2 -@@ -11,8 +11,6 @@ - #define __LM_ID_CALLER -2 - - /* Now define the internal interfaces. */ --extern void *__dlvsym (void *__handle, __const char *__name, -- __const char *__version); - - #define __libc_dlopen(name) __libc_dlopen_mode (name, RTLD_LAZY) - extern void *__libc_dlopen_mode (__const char *__name, int __mode); -@@ -76,4 +74,62 @@ extern int _dl_catch_error (const char * - extern int _dlerror_run (void (*operate) (void *), void *args) - internal_function; - -+#ifdef SHARED -+# define DL_CALLER_DECL /* Nothing */ -+# define DL_CALLER RETURN_ADDRESS (0) -+#else -+# define DL_CALLER_DECL , void *dl_caller -+# define DL_CALLER dl_caller -+#endif -+ -+struct dlfcn_hook -+{ -+ void *(*dlopen) (const char *file, int mode, void *dl_caller); -+ int (*dlclose) (void *handle); -+ void *(*dlsym) (void *handle, const char *name, void *dl_caller); -+ void *(*dlvsym) (void *handle, const char *name, const char *version, -+ void *dl_caller); -+ char *(*dlerror) (void); -+ int (*dladdr) (const void *address, Dl_info *info); -+ int (*dladdr1) (const void *address, Dl_info *info, -+ void **extra_info, int flags); -+ int (*dlinfo) (void *handle, int request, void *arg, void *dl_caller); -+ void *(*dlmopen) (Lmid_t nsid, const char *file, int mode, void *dl_caller); -+ void *pad[4]; -+}; -+ -+extern struct dlfcn_hook *_dlfcn_hook; -+libdl_hidden_proto (_dlfcn_hook) -+ -+extern void *__dlopen (const char *file, int mode DL_CALLER_DECL) -+ attribute_hidden; -+extern void *__dlmopen (Lmid_t nsid, const char *file, int mode DL_CALLER_DECL) -+ attribute_hidden; -+extern int __dlclose (void *handle) -+ attribute_hidden; -+extern void *__dlsym (void *handle, const char *name DL_CALLER_DECL) -+ attribute_hidden; -+extern void *__dlvsym (void *handle, const char *name, const char *version -+ DL_CALLER_DECL) -+ attribute_hidden; -+extern char *__dlerror (void) -+ attribute_hidden; -+extern int __dladdr (const void *address, Dl_info *info) -+ attribute_hidden; -+extern int __dladdr1 (const void *address, Dl_info *info, -+ void **extra_info, int flags) -+ attribute_hidden; -+extern int __dlinfo (void *handle, int request, void *arg DL_CALLER_DECL) -+ attribute_hidden; -+ -+#ifndef SHARED -+struct link_map; -+extern void * __libc_dlsym_private (struct link_map *map, const char *name) -+ attribute_hidden; -+extern void __libc_register_dl_open_hook (struct link_map *map) -+ attribute_hidden; -+extern void __libc_register_dlfcn_hook (struct link_map *map) -+ attribute_hidden; -+#endif -+ - #endif ---- glibc-20041018T0940/include/features.h 18 Oct 2004 04:17:16 -0000 1.36 -+++ glibc-20041018T0940-fedora/include/features.h 18 Oct 2004 22:56:48 -0000 1.35.2.3 +--- glibc-20041020T1016/include/features.h 18 Oct 2004 04:17:16 -0000 1.36 ++++ glibc-20041020T1016-fedora/include/features.h 18 Oct 2004 22:56:48 -0000 1.35.2.3 @@ -181,8 +181,8 @@ /* If none of the ANSI/POSIX macros are defined, use POSIX.1 and POSIX.2 @@ -1760,35 +546,8 @@ # if _FORTIFY_SOURCE == 1 # define __USE_FORTIFY_LEVEL 1 # elif _FORTIFY_SOURCE > 1 ---- glibc-20041018T0940/include/libc-symbols.h 18 Oct 2004 05:07:45 -0000 1.65 -+++ glibc-20041018T0940-fedora/include/libc-symbols.h 18 Oct 2004 23:30:22 -0000 1.64.2.2 -@@ -762,6 +762,24 @@ for linking") - # define libresolv_hidden_data_ver(local, name) - #endif - -+#if defined NOT_IN_libc && defined IS_IN_libdl -+# define libdl_hidden_proto(name, attrs...) hidden_proto (name, ##attrs) -+# define libdl_hidden_def(name) hidden_def (name) -+# define libdl_hidden_weak(name) hidden_weak (name) -+# define libdl_hidden_ver(local, name) hidden_ver (local, name) -+# define libdl_hidden_data_def(name) hidden_data_def (name) -+# define libdl_hidden_data_weak(name) hidden_data_weak (name) -+# define libdl_hidden_data_ver(local, name) hidden_data_ver (local, name) -+#else -+# define libdl_hidden_proto(name, attrs...) -+# define libdl_hidden_def(name) -+# define libdl_hidden_weak(name) -+# define libdl_hidden_ver(local, name) -+# define libdl_hidden_data_def(name) -+# define libdl_hidden_data_weak(name) -+# define libdl_hidden_data_ver(local, name) -+#endif -+ - #ifdef HAVE_BUILTIN_REDIRECTION - # define libc_hidden_builtin_proto(name, attrs...) libc_hidden_proto (name, ##attrs) - # define libc_hidden_builtin_def(name) libc_hidden_def (name) ---- glibc-20041018T0940/intl/locale.alias 4 Dec 2003 07:57:47 -0000 1.23 -+++ glibc-20041018T0940-fedora/intl/locale.alias 22 Sep 2004 21:20:53 -0000 1.23.2.1 +--- glibc-20041020T1016/intl/locale.alias 4 Dec 2003 07:57:47 -0000 1.23 ++++ glibc-20041020T1016-fedora/intl/locale.alias 22 Sep 2004 21:20:53 -0000 1.23.2.1 @@ -58,8 +58,6 @@ korean ko_KR.eucKR korean.euc ko_KR.eucKR ko_KR ko_KR.eucKR @@ -1798,8 +557,8 @@ norwegian nb_NO.ISO-8859-1 nynorsk nn_NO.ISO-8859-1 polish pl_PL.ISO-8859-2 ---- glibc-20041018T0940/libio/stdio.h 18 Oct 2004 04:17:15 -0000 1.79 -+++ glibc-20041018T0940-fedora/libio/stdio.h 18 Oct 2004 09:58:44 -0000 1.78.2.2 +--- glibc-20041020T1016/libio/stdio.h 18 Oct 2004 04:17:15 -0000 1.79 ++++ glibc-20041020T1016-fedora/libio/stdio.h 18 Oct 2004 09:58:44 -0000 1.78.2.2 @@ -142,10 +142,12 @@ typedef _G_fpos64_t fpos64_t; extern struct _IO_FILE *stdin; /* Standard input stream. */ extern struct _IO_FILE *stdout; /* Standard output stream. */ @@ -1813,9 +572,9 @@ __BEGIN_NAMESPACE_STD /* Remove file FILENAME. */ ---- glibc-20041018T0940/linuxthreads/ChangeLog 14 Oct 2004 16:10:58 -0000 1.824 -+++ glibc-20041018T0940-fedora/linuxthreads/ChangeLog 18 Oct 2004 09:58:46 -0000 1.817.2.6 -@@ -662,6 +662,12 @@ +--- glibc-20041020T1016/linuxthreads/ChangeLog 19 Oct 2004 05:13:11 -0000 1.825 ++++ glibc-20041020T1016-fedora/linuxthreads/ChangeLog 20 Oct 2004 10:47:15 -0000 1.817.2.7 +@@ -671,6 +671,12 @@ (pthread_barrierattr_setpshared): Return EINVAL if pshared is neither PTHREAD_PROCESS_PRIVATE nor PTHREAD_PROCESS_SHARED. @@ -1828,7 +587,7 @@ 2003-09-02 Ulrich Drepper * sysdeps/unix/sysv/linux/i386/dl-sysdep.h -@@ -794,6 +800,34 @@ +@@ -803,6 +809,34 @@ 2003-07-22 Jakub Jelinek @@ -1863,9 +622,9 @@ * descr.h (struct _pthread_descr_struct): Provide p_res member even if USE_TLS && HAVE___THREAD. * sysdeps/pthread/res-state.c (__res_state): Return __resp ---- glibc-20041018T0940/linuxthreads/Makefile 20 Sep 2004 22:10:55 -0000 1.94 -+++ glibc-20041018T0940-fedora/linuxthreads/Makefile 22 Sep 2004 21:20:54 -0000 1.94.2.1 -@@ -254,15 +254,18 @@ $(addprefix $(objpfx), \ +--- glibc-20041020T1016/linuxthreads/Makefile 19 Oct 2004 05:12:58 -0000 1.95 ++++ glibc-20041020T1016-fedora/linuxthreads/Makefile 20 Oct 2004 10:47:17 -0000 1.94.2.2 +@@ -256,15 +256,18 @@ $(addprefix $(objpfx), \ $(filter-out $(tests-static) $(tests-reverse) unload, \ $(tests) $(test-srcs))): $(objpfx)libpthread.so \ $(objpfx)libpthread_nonshared.a @@ -1886,8 +645,8 @@ else $(addprefix $(objpfx),$(tests) $(test-srcs)): $(objpfx)libpthread.a $(addprefix $(objpfx),$(librt-tests)): $(common-objpfx)rt/librt.a ---- glibc-20041018T0940/linuxthreads/cancel.c 22 Feb 2003 00:55:21 -0000 1.23 -+++ glibc-20041018T0940-fedora/linuxthreads/cancel.c 22 Sep 2004 21:20:55 -0000 1.23.2.1 +--- glibc-20041020T1016/linuxthreads/cancel.c 22 Feb 2003 00:55:21 -0000 1.23 ++++ glibc-20041020T1016-fedora/linuxthreads/cancel.c 22 Sep 2004 21:20:55 -0000 1.23.2.1 @@ -230,5 +230,6 @@ void __pthread_perform_cleanup(char *cur } @@ -1895,8 +654,8 @@ + THREAD_SETMEM (self, p_cancelstate, PTHREAD_CANCEL_DISABLE); __libc_thread_freeres (); } ---- glibc-20041018T0940/linuxthreads/lockfile.c 18 Dec 2002 01:16:46 -0000 1.10 -+++ glibc-20041018T0940-fedora/linuxthreads/lockfile.c 22 Sep 2004 21:20:55 -0000 1.10.2.1 +--- glibc-20041020T1016/linuxthreads/lockfile.c 18 Dec 2002 01:16:46 -0000 1.10 ++++ glibc-20041020T1016-fedora/linuxthreads/lockfile.c 22 Sep 2004 21:20:55 -0000 1.10.2.1 @@ -74,7 +74,11 @@ __fresetlockfiles (void) __pthread_mutexattr_settype (&attr, PTHREAD_MUTEX_RECURSIVE_NP); @@ -1910,8 +669,8 @@ __pthread_mutexattr_destroy (&attr); ---- glibc-20041018T0940/linuxthreads/semaphore.h 17 Apr 2004 23:01:39 -0000 1.13 -+++ glibc-20041018T0940-fedora/linuxthreads/semaphore.h 22 Sep 2004 21:20:55 -0000 1.13.2.1 +--- glibc-20041020T1016/linuxthreads/semaphore.h 17 Apr 2004 23:01:39 -0000 1.13 ++++ glibc-20041020T1016-fedora/linuxthreads/semaphore.h 22 Sep 2004 21:20:55 -0000 1.13.2.1 @@ -21,6 +21,7 @@ # define __need_timespec # include @@ -1920,8 +679,8 @@ #ifndef _PTHREAD_DESCR_DEFINED /* Thread descriptors. Needed for `sem_t' definition. */ ---- glibc-20041018T0940/linuxthreads/tst-tls1.h 2 Sep 2003 00:29:30 -0000 1.1 -+++ glibc-20041018T0940-fedora/linuxthreads/tst-tls1.h 22 Sep 2004 21:20:55 -0000 1.1.2.1 +--- glibc-20041020T1016/linuxthreads/tst-tls1.h 2 Sep 2003 00:29:30 -0000 1.1 ++++ glibc-20041020T1016-fedora/linuxthreads/tst-tls1.h 22 Sep 2004 21:20:55 -0000 1.1.2.1 @@ -2,7 +2,7 @@ #include #include @@ -1931,8 +690,8 @@ struct tls_obj { ---- glibc-20041018T0940/linuxthreads/sysdeps/alpha/tls.h 30 Jan 2003 21:03:40 -0000 1.5 -+++ glibc-20041018T0940-fedora/linuxthreads/sysdeps/alpha/tls.h 22 Sep 2004 21:20:55 -0000 1.5.2.1 +--- glibc-20041020T1016/linuxthreads/sysdeps/alpha/tls.h 30 Jan 2003 21:03:40 -0000 1.5 ++++ glibc-20041020T1016-fedora/linuxthreads/sysdeps/alpha/tls.h 22 Sep 2004 21:20:55 -0000 1.5.2.1 @@ -53,54 +53,76 @@ typedef struct # include @@ -2022,8 +781,8 @@ /* Get the thread descriptor definition. */ # include ---- glibc-20041018T0940/linuxthreads/sysdeps/i386/tls.h 25 Sep 2004 03:32:13 -0000 1.36 -+++ glibc-20041018T0940-fedora/linuxthreads/sysdeps/i386/tls.h 26 Sep 2004 08:45:21 -0000 1.35.2.3 +--- glibc-20041020T1016/linuxthreads/sysdeps/i386/tls.h 19 Oct 2004 05:12:58 -0000 1.37 ++++ glibc-20041020T1016-fedora/linuxthreads/sysdeps/i386/tls.h 20 Oct 2004 10:47:17 -0000 1.35.2.4 @@ -81,7 +81,14 @@ typedef struct # define TLS_INIT_TCB_ALIGN __alignof__ (tcbhead_t) @@ -2040,32 +799,8 @@ /* Alignment requirements for the TCB. */ # define TLS_TCB_ALIGN __alignof__ (struct _pthread_descr_struct) -@@ -113,7 +120,9 @@ typedef struct - # define TLS_LOAD_EBX - # endif - --# include "useldt.h" /* For the structure. */ -+# ifndef THREAD_SELF -+# include "useldt.h" /* For the structure. */ -+# endif - # if __ASSUME_LDT_WORKS > 0 - # define TLS_DO_MODIFY_LDT_KERNEL_CHECK(doit) (doit) /* Nothing to check. */ - # else ---- glibc-20041018T0940/linuxthreads/sysdeps/i386/i686/pt-machine.h 25 Sep 2004 10:04:15 -0000 1.23 -+++ glibc-20041018T0940-fedora/linuxthreads/sysdeps/i386/i686/pt-machine.h 26 Sep 2004 08:45:22 -0000 1.22.2.2 -@@ -69,9 +69,7 @@ __compare_and_swap (long int *p, long in - } - #endif - --/* If tls.h was included, it will include useldt.h after defining USE_TLS. -- We don't want to include it here first when tls.h includes us. */ --#if __ASSUME_LDT_WORKS > 0 && !defined _TLS_H -+#if __ASSUME_LDT_WORKS > 0 - #include "../useldt.h" - #endif - ---- glibc-20041018T0940/linuxthreads/sysdeps/ia64/tls.h 8 Jul 2004 21:20:57 -0000 1.9 -+++ glibc-20041018T0940-fedora/linuxthreads/sysdeps/ia64/tls.h 22 Sep 2004 21:20:55 -0000 1.9.2.1 +--- glibc-20041020T1016/linuxthreads/sysdeps/ia64/tls.h 8 Jul 2004 21:20:57 -0000 1.9 ++++ glibc-20041020T1016-fedora/linuxthreads/sysdeps/ia64/tls.h 22 Sep 2004 21:20:55 -0000 1.9.2.1 @@ -60,7 +60,14 @@ typedef struct # define TLS_TCB_SIZE sizeof (tcbhead_t) @@ -2082,8 +817,8 @@ /* Alignment requirements for the TCB. */ # define TLS_TCB_ALIGN __alignof__ (struct _pthread_descr_struct) ---- glibc-20041018T0940/linuxthreads/sysdeps/powerpc/tls.h 9 Apr 2004 19:09:42 -0000 1.8 -+++ glibc-20041018T0940-fedora/linuxthreads/sysdeps/powerpc/tls.h 22 Sep 2004 21:20:55 -0000 1.8.2.1 +--- glibc-20041020T1016/linuxthreads/sysdeps/powerpc/tls.h 9 Apr 2004 19:09:42 -0000 1.8 ++++ glibc-20041020T1016-fedora/linuxthreads/sysdeps/powerpc/tls.h 22 Sep 2004 21:20:55 -0000 1.8.2.1 @@ -64,11 +64,19 @@ typedef struct # define TLS_TCB_ALIGN __alignof__ (struct _pthread_descr_struct) @@ -2106,8 +841,8 @@ TCB + 0x7000 (per the ABI). This implies that TCB address is TP - 0x7000. As we define TLS_DTV_AT_TP we can assume that the pthread_descr is allocated immediately ahead of the ---- glibc-20041018T0940/linuxthreads/sysdeps/pthread/Makefile 14 Aug 2003 00:14:22 -0000 1.7 -+++ glibc-20041018T0940-fedora/linuxthreads/sysdeps/pthread/Makefile 22 Sep 2004 21:20:56 -0000 1.7.2.1 +--- glibc-20041020T1016/linuxthreads/sysdeps/pthread/Makefile 14 Aug 2003 00:14:22 -0000 1.7 ++++ glibc-20041020T1016-fedora/linuxthreads/sysdeps/pthread/Makefile 22 Sep 2004 21:20:56 -0000 1.7.2.1 @@ -12,3 +12,15 @@ endif ifeq ($(subdir),posix) CFLAGS-confstr.c += -DLIBPTHREAD_VERSION="\"$(shell sed 's/\(.*\) by .*/\1/' ../linuxthreads/Banner)\"" @@ -2124,8 +859,8 @@ + @echo '#define NPTL_STRUCT_PTHREAD_SIZE 0' > $@ +endif +endif ---- glibc-20041018T0940/linuxthreads/sysdeps/pthread/nptl-struct-pthread.sym 1 Jan 1970 00:00:00 -0000 -+++ glibc-20041018T0940-fedora/linuxthreads/sysdeps/pthread/nptl-struct-pthread.sym 22 Sep 2004 21:20:56 -0000 1.1.2.1 +--- glibc-20041020T1016/linuxthreads/sysdeps/pthread/nptl-struct-pthread.sym 1 Jan 1970 00:00:00 -0000 ++++ glibc-20041020T1016-fedora/linuxthreads/sysdeps/pthread/nptl-struct-pthread.sym 22 Sep 2004 21:20:56 -0000 1.1.2.1 @@ -0,0 +1,13 @@ +#ifdef HAVE_TLS_SUPPORT +# ifndef HAVE_FORCED_UNWIND @@ -2140,8 +875,8 @@ +#ifdef HAVE_TLS_SUPPORT +NPTL_STRUCT_PTHREAD_SIZE sizeof (struct pthread) +#endif ---- glibc-20041018T0940/linuxthreads/sysdeps/s390/tls.h 30 Jan 2003 18:34:11 -0000 1.3 -+++ glibc-20041018T0940-fedora/linuxthreads/sysdeps/s390/tls.h 22 Sep 2004 21:20:56 -0000 1.3.2.1 +--- glibc-20041020T1016/linuxthreads/sysdeps/s390/tls.h 30 Jan 2003 18:34:11 -0000 1.3 ++++ glibc-20041020T1016-fedora/linuxthreads/sysdeps/s390/tls.h 22 Sep 2004 21:20:56 -0000 1.3.2.1 @@ -72,7 +72,14 @@ typedef struct # define TLS_INIT_TCB_ALIGN __alignof__ (tcbhead_t) @@ -2158,8 +893,8 @@ /* Alignment requirements for the TCB. */ # define TLS_TCB_ALIGN __alignof__ (struct _pthread_descr_struct) ---- glibc-20041018T0940/linuxthreads/sysdeps/sh/tls.h 2 Mar 2003 11:44:20 -0000 1.9 -+++ glibc-20041018T0940-fedora/linuxthreads/sysdeps/sh/tls.h 22 Sep 2004 21:20:57 -0000 1.9.2.1 +--- glibc-20041020T1016/linuxthreads/sysdeps/sh/tls.h 2 Mar 2003 11:44:20 -0000 1.9 ++++ glibc-20041020T1016-fedora/linuxthreads/sysdeps/sh/tls.h 22 Sep 2004 21:20:57 -0000 1.9.2.1 @@ -64,7 +64,14 @@ typedef struct # define TLS_TCB_SIZE sizeof (tcbhead_t) @@ -2176,8 +911,8 @@ /* Alignment requirements for the TCB. */ # define TLS_TCB_ALIGN __alignof__ (struct _pthread_descr_struct) ---- glibc-20041018T0940/linuxthreads/sysdeps/sparc/tls.h 4 Feb 2003 20:41:02 -0000 1.3 -+++ glibc-20041018T0940-fedora/linuxthreads/sysdeps/sparc/tls.h 22 Sep 2004 21:20:57 -0000 1.3.2.1 +--- glibc-20041020T1016/linuxthreads/sysdeps/sparc/tls.h 4 Feb 2003 20:41:02 -0000 1.3 ++++ glibc-20041020T1016-fedora/linuxthreads/sysdeps/sparc/tls.h 22 Sep 2004 21:20:57 -0000 1.3.2.1 @@ -64,7 +64,14 @@ typedef struct # define TLS_INIT_TCB_ALIGN __alignof__ (tcbhead_t) @@ -2194,8 +929,8 @@ /* Alignment requirements for the TCB. */ # define TLS_TCB_ALIGN __alignof__ (struct _pthread_descr_struct) ---- glibc-20041018T0940/linuxthreads/sysdeps/x86_64/tls.h 18 Apr 2004 02:32:25 -0000 1.6 -+++ glibc-20041018T0940-fedora/linuxthreads/sysdeps/x86_64/tls.h 22 Sep 2004 21:20:57 -0000 1.6.2.1 +--- glibc-20041020T1016/linuxthreads/sysdeps/x86_64/tls.h 18 Apr 2004 02:32:25 -0000 1.6 ++++ glibc-20041020T1016-fedora/linuxthreads/sysdeps/x86_64/tls.h 22 Sep 2004 21:20:57 -0000 1.6.2.1 @@ -66,7 +66,14 @@ typedef struct # define TLS_INIT_TCB_ALIGN __alignof__ (tcbhead_t) @@ -2212,8 +947,8 @@ /* Alignment requirements for the TCB. */ # define TLS_TCB_ALIGN __alignof__ (struct _pthread_descr_struct) ---- glibc-20041018T0940/locale/iso-4217.def 10 Aug 2004 05:10:38 -0000 1.15 -+++ glibc-20041018T0940-fedora/locale/iso-4217.def 22 Sep 2004 21:20:57 -0000 1.15.2.1 +--- glibc-20041020T1016/locale/iso-4217.def 10 Aug 2004 05:10:38 -0000 1.15 ++++ glibc-20041020T1016-fedora/locale/iso-4217.def 22 Sep 2004 21:20:57 -0000 1.15.2.1 @@ -8,6 +8,7 @@ * * !!! The list has to be sorted !!! @@ -2305,8 +1040,8 @@ DEFINE_INT_CURR("PYG") /* Paraguay Guarani */ DEFINE_INT_CURR("QAR") /* Qatar Rial */ DEFINE_INT_CURR("ROL") /* Romanian Leu */ ---- glibc-20041018T0940/locale/programs/3level.h 13 Jun 2003 20:45:38 -0000 1.5 -+++ glibc-20041018T0940-fedora/locale/programs/3level.h 22 Sep 2004 21:20:58 -0000 1.5.2.1 +--- glibc-20041020T1016/locale/programs/3level.h 13 Jun 2003 20:45:38 -0000 1.5 ++++ glibc-20041020T1016-fedora/locale/programs/3level.h 22 Sep 2004 21:20:58 -0000 1.5.2.1 @@ -204,6 +204,42 @@ CONCAT(TABLE,_iterate) (struct TABLE *t, } } @@ -2350,8 +1085,8 @@ #endif #ifndef NO_FINALIZE ---- glibc-20041018T0940/localedata/Makefile 7 Aug 2004 23:38:13 -0000 1.101 -+++ glibc-20041018T0940-fedora/localedata/Makefile 22 Sep 2004 21:20:58 -0000 1.101.2.1 +--- glibc-20041020T1016/localedata/Makefile 7 Aug 2004 23:38:13 -0000 1.101 ++++ glibc-20041020T1016-fedora/localedata/Makefile 22 Sep 2004 21:20:58 -0000 1.101.2.1 @@ -222,6 +222,7 @@ $(INSTALL-SUPPORTED-LOCALES): install-lo echo -n '...'; \ input=`echo $$locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; \ @@ -2360,8 +1095,8 @@ -i locales/$$input -c -f charmaps/$$charset \ $(addprefix --prefix=,$(install_root)) $$locale; \ echo ' done'; \ ---- glibc-20041018T0940/localedata/SUPPORTED 17 May 2004 18:51:41 -0000 1.71 -+++ glibc-20041018T0940-fedora/localedata/SUPPORTED 22 Sep 2004 21:20:58 -0000 1.71.2.1 +--- glibc-20041020T1016/localedata/SUPPORTED 17 May 2004 18:51:41 -0000 1.71 ++++ glibc-20041020T1016-fedora/localedata/SUPPORTED 22 Sep 2004 21:20:58 -0000 1.71.2.1 @@ -64,6 +64,7 @@ cy_GB.UTF-8/UTF-8 \ cy_GB/ISO-8859-14 \ da_DK.UTF-8/UTF-8 \ @@ -2403,8 +1138,8 @@ ta_IN/UTF-8 \ te_IN/UTF-8 \ tg_TJ/KOI8-T \ ---- glibc-20041018T0940/localedata/locales/cy_GB 28 Sep 2004 04:37:33 -0000 1.4 -+++ glibc-20041018T0940-fedora/localedata/locales/cy_GB 29 Sep 2004 08:48:23 -0000 1.3.2.2 +--- glibc-20041020T1016/localedata/locales/cy_GB 28 Sep 2004 04:37:33 -0000 1.4 ++++ glibc-20041020T1016-fedora/localedata/locales/cy_GB 29 Sep 2004 08:48:23 -0000 1.3.2.2 @@ -248,8 +248,11 @@ mon "" d_fmt "" @@ -2419,8 +1154,8 @@ END LC_TIME LC_MESSAGES ---- glibc-20041018T0940/localedata/locales/en_GB 4 Dec 2003 04:49:58 -0000 1.10 -+++ glibc-20041018T0940-fedora/localedata/locales/en_GB 22 Sep 2004 21:21:01 -0000 1.10.2.1 +--- glibc-20041020T1016/localedata/locales/en_GB 4 Dec 2003 04:49:58 -0000 1.10 ++++ glibc-20041020T1016-fedora/localedata/locales/en_GB 22 Sep 2004 21:21:01 -0000 1.10.2.1 @@ -112,8 +112,8 @@ mon "" d_fmt "" @@ -2432,8 +1167,8 @@ date_fmt "/ / " ---- glibc-20041018T0940/localedata/locales/en_US 5 Dec 2003 09:48:09 -0000 1.7 -+++ glibc-20041018T0940-fedora/localedata/locales/en_US 22 Sep 2004 21:21:01 -0000 1.7.2.1 +--- glibc-20041020T1016/localedata/locales/en_US 5 Dec 2003 09:48:09 -0000 1.7 ++++ glibc-20041020T1016-fedora/localedata/locales/en_US 22 Sep 2004 21:21:01 -0000 1.7.2.1 @@ -100,7 +100,6 @@ mon " "";/ "";/ @@ -2442,8 +1177,8 @@ % Appropriate date and time representation (%c) % "%a %d %b %Y %r %Z" d_t_fmt "" ---- glibc-20041018T0940/localedata/locales/no_NO 1 Jan 1970 00:00:00 -0000 -+++ glibc-20041018T0940-fedora/localedata/locales/no_NO 22 Sep 2004 21:21:01 -0000 1.11.2.1 +--- glibc-20041020T1016/localedata/locales/no_NO 1 Jan 1970 00:00:00 -0000 ++++ glibc-20041020T1016-fedora/localedata/locales/no_NO 22 Sep 2004 21:21:01 -0000 1.11.2.1 @@ -0,0 +1,69 @@ +escape_char / +comment_char % @@ -2514,8 +1249,8 @@ +LC_ADDRESS +copy "nb_NO" +END LC_ADDRESS ---- glibc-20041018T0940/localedata/locales/zh_TW 28 Sep 2002 05:25:36 -0000 1.5 -+++ glibc-20041018T0940-fedora/localedata/locales/zh_TW 22 Sep 2004 21:21:01 -0000 1.5.2.1 +--- glibc-20041020T1016/localedata/locales/zh_TW 28 Sep 2002 05:25:36 -0000 1.5 ++++ glibc-20041020T1016-fedora/localedata/locales/zh_TW 22 Sep 2004 21:21:01 -0000 1.5.2.1 @@ -1,7 +1,7 @@ comment_char % escape_char / @@ -2543,46 +1278,19 @@ revision "0.2" date "2000-08-02" % ---- glibc-20041018T0940/malloc/arena.c 14 Oct 2004 01:55:55 -0000 1.11 -+++ glibc-20041018T0940-fedora/malloc/arena.c 18 Oct 2004 23:30:23 -0000 1.8.2.5 +--- glibc-20041020T1016/malloc/arena.c 18 Oct 2004 23:15:33 -0000 1.12 ++++ glibc-20041020T1016-fedora/malloc/arena.c 18 Oct 2004 23:30:23 -0000 1.8.2.5 @@ -18,7 +18,7 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ --/* $Id: arena.c,v 1.11 2004/10/14 01:55:55 drepper Exp $ */ +-/* $Id: arena.c,v 1.12 2004/10/18 23:15:33 drepper Exp $ */ +/* $Id: arena.c,v 1.8.2.5 2004/10/18 23:30:23 jakub Exp $ */ /* Compile-time constants. */ -@@ -347,6 +347,9 @@ __failing_morecore (ptrdiff_t d) - { - return (void *) MORECORE_FAILURE; - } -+ -+extern struct dl_open_hook *_dl_open_hook; -+libc_hidden_proto (_dl_open_hook); - # endif - - # if defined SHARED && defined USE_TLS && !USE___THREAD -@@ -429,10 +432,14 @@ ptmalloc_init (void) - main_arena.next = &main_arena; - - #if defined _LIBC && defined SHARED -- /* In case this libc copy is in a non-default namespace, never use brk. */ -+ /* In case this libc copy is in a non-default namespace, never use brk. -+ Likewise if dlopened from statically linked program. */ - Dl_info di; - struct link_map *l; -- if (_dl_addr (ptmalloc_init, &di, &l, NULL) != 0 && l->l_ns != LM_ID_BASE) -+ -+ if (_dl_open_hook != NULL -+ || (_dl_addr (ptmalloc_init, &di, &l, NULL) != 0 -+ && l->l_ns != LM_ID_BASE)) - __morecore = __failing_morecore; - #endif - ---- glibc-20041018T0940/malloc/malloc.c 14 Oct 2004 01:56:52 -0000 1.131 -+++ glibc-20041018T0940-fedora/malloc/malloc.c 14 Oct 2004 05:57:53 -0000 1.127.2.4 +--- glibc-20041020T1016/malloc/malloc.c 14 Oct 2004 01:56:52 -0000 1.131 ++++ glibc-20041020T1016-fedora/malloc/malloc.c 14 Oct 2004 05:57:53 -0000 1.127.2.4 @@ -24,7 +24,7 @@ Doug Lea and adapted to multiple threads/arenas by Wolfram Gloger. @@ -2592,8 +1300,8 @@ based on: VERSION 2.7.0 Sun Mar 11 14:14:06 2001 Doug Lea (dl at gee) ---- glibc-20041018T0940/nptl/ChangeLog 18 Oct 2004 04:19:48 -0000 1.723 -+++ glibc-20041018T0940-fedora/nptl/ChangeLog 18 Oct 2004 09:58:48 -0000 1.706.2.12 +--- glibc-20041020T1016/nptl/ChangeLog 18 Oct 2004 04:19:48 -0000 1.723 ++++ glibc-20041020T1016-fedora/nptl/ChangeLog 18 Oct 2004 09:58:48 -0000 1.706.2.12 @@ -242,6 +242,11 @@ Move definition inside libpthread, libc, librt check. Provide definition for rtld. @@ -2618,8 +1326,8 @@ 2003-07-25 Jakub Jelinek * tst-cancel17.c (do_test): Check if aio_cancel failed. ---- glibc-20041018T0940/nptl/Makefile 20 Sep 2004 22:05:25 -0000 1.157 -+++ glibc-20041018T0940-fedora/nptl/Makefile 22 Sep 2004 21:21:01 -0000 1.157.2.1 +--- glibc-20041020T1016/nptl/Makefile 20 Sep 2004 22:05:25 -0000 1.157 ++++ glibc-20041020T1016-fedora/nptl/Makefile 22 Sep 2004 21:21:01 -0000 1.157.2.1 @@ -503,15 +503,19 @@ $(addprefix $(objpfx), \ $(tests) $(test-srcs))): $(objpfx)libpthread.so \ $(objpfx)libpthread_nonshared.a @@ -2642,8 +1350,8 @@ else $(addprefix $(objpfx),$(tests) $(test-srcs)): $(objpfx)libpthread.a endif ---- glibc-20041018T0940/nptl/alloca_cutoff.c 26 Nov 2002 22:50:01 -0000 1.1.1.1 -+++ glibc-20041018T0940-fedora/nptl/alloca_cutoff.c 22 Sep 2004 21:21:01 -0000 1.1.1.1.2.1 +--- glibc-20041020T1016/nptl/alloca_cutoff.c 26 Nov 2002 22:50:01 -0000 1.1.1.1 ++++ glibc-20041020T1016-fedora/nptl/alloca_cutoff.c 22 Sep 2004 21:21:01 -0000 1.1.1.1.2.1 @@ -3,16 +3,16 @@ This file is part of the GNU C Library. @@ -2665,8 +1373,8 @@ 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. */ ---- glibc-20041018T0940/nptl/descr.h 25 Sep 2004 07:35:42 -0000 1.24 -+++ glibc-20041018T0940-fedora/nptl/descr.h 25 Sep 2004 07:55:43 -0000 1.23.2.2 +--- glibc-20041020T1016/nptl/descr.h 25 Sep 2004 07:35:42 -0000 1.24 ++++ glibc-20041020T1016-fedora/nptl/descr.h 25 Sep 2004 07:55:43 -0000 1.23.2.2 @@ -27,9 +27,13 @@ #include #include @@ -2681,8 +1389,8 @@ #include "../nptl_db/thread_db.h" #include #ifdef HAVE_FORCED_UNWIND ---- glibc-20041018T0940/nptl/pthread_cond_destroy.c 2 Sep 2004 18:45:37 -0000 1.5 -+++ glibc-20041018T0940-fedora/nptl/pthread_cond_destroy.c 22 Sep 2004 21:21:01 -0000 1.5.2.1 +--- glibc-20041020T1016/nptl/pthread_cond_destroy.c 2 Sep 2004 18:45:37 -0000 1.5 ++++ glibc-20041020T1016-fedora/nptl/pthread_cond_destroy.c 22 Sep 2004 21:21:01 -0000 1.5.2.1 @@ -44,15 +44,35 @@ __pthread_cond_destroy (cond) broadcasted, but still are using the pthread_cond_t structure, pthread_cond_destroy needs to wait for them. */ @@ -2724,8 +1432,8 @@ } return 0; ---- glibc-20041018T0940/nptl/tst-unload.c 25 Feb 2004 18:41:32 -0000 1.3 -+++ glibc-20041018T0940-fedora/nptl/tst-unload.c 22 Sep 2004 21:21:01 -0000 1.3.2.1 +--- glibc-20041020T1016/nptl/tst-unload.c 25 Feb 2004 18:41:32 -0000 1.3 ++++ glibc-20041020T1016-fedora/nptl/tst-unload.c 22 Sep 2004 21:21:01 -0000 1.3.2.1 @@ -3,16 +3,16 @@ Contributed by Ulrich Drepper , 2000. @@ -2747,8 +1455,8 @@ 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. */ ---- glibc-20041018T0940/nptl/sysdeps/pthread/allocalim.h 26 Nov 2002 22:50:35 -0000 1.1.1.1 -+++ glibc-20041018T0940-fedora/nptl/sysdeps/pthread/allocalim.h 22 Sep 2004 21:21:02 -0000 1.1.1.1.2.1 +--- glibc-20041020T1016/nptl/sysdeps/pthread/allocalim.h 26 Nov 2002 22:50:35 -0000 1.1.1.1 ++++ glibc-20041020T1016-fedora/nptl/sysdeps/pthread/allocalim.h 22 Sep 2004 21:21:02 -0000 1.1.1.1.2.1 @@ -3,16 +3,16 @@ This file is part of the GNU C Library. @@ -2770,8 +1478,8 @@ 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. */ ---- glibc-20041018T0940/nptl/sysdeps/pthread/pt-initfini.c 31 Dec 2002 08:46:38 -0000 1.3 -+++ glibc-20041018T0940-fedora/nptl/sysdeps/pthread/pt-initfini.c 22 Sep 2004 21:21:02 -0000 1.3.2.1 +--- glibc-20041020T1016/nptl/sysdeps/pthread/pt-initfini.c 31 Dec 2002 08:46:38 -0000 1.3 ++++ glibc-20041020T1016-fedora/nptl/sysdeps/pthread/pt-initfini.c 22 Sep 2004 21:21:02 -0000 1.3.2.1 @@ -3,11 +3,11 @@ This file is part of the GNU C Library. @@ -2798,8 +1506,8 @@ License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ ---- glibc-20041018T0940/nptl/sysdeps/pthread/bits/libc-lock.h 11 Dec 2003 04:50:49 -0000 1.17 -+++ glibc-20041018T0940-fedora/nptl/sysdeps/pthread/bits/libc-lock.h 22 Sep 2004 21:21:02 -0000 1.17.2.1 +--- glibc-20041020T1016/nptl/sysdeps/pthread/bits/libc-lock.h 11 Dec 2003 04:50:49 -0000 1.17 ++++ glibc-20041020T1016-fedora/nptl/sysdeps/pthread/bits/libc-lock.h 22 Sep 2004 21:21:02 -0000 1.17.2.1 @@ -3,16 +3,16 @@ This file is part of the GNU C Library. @@ -2821,8 +1529,8 @@ 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. */ ---- glibc-20041018T0940/nptl/sysdeps/pthread/bits/sigthread.h 26 Nov 2002 22:50:35 -0000 1.1.1.1 -+++ glibc-20041018T0940-fedora/nptl/sysdeps/pthread/bits/sigthread.h 22 Sep 2004 21:21:02 -0000 1.1.1.1.2.1 +--- glibc-20041020T1016/nptl/sysdeps/pthread/bits/sigthread.h 26 Nov 2002 22:50:35 -0000 1.1.1.1 ++++ glibc-20041020T1016-fedora/nptl/sysdeps/pthread/bits/sigthread.h 22 Sep 2004 21:21:02 -0000 1.1.1.1.2.1 @@ -3,16 +3,16 @@ This file is part of the GNU C Library. @@ -2844,8 +1552,8 @@ 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. */ ---- glibc-20041018T0940/nptl/sysdeps/unix/sysv/linux/kernel-features.h 1 Jan 1970 00:00:00 -0000 -+++ glibc-20041018T0940-fedora/nptl/sysdeps/unix/sysv/linux/kernel-features.h 22 Sep 2004 21:21:02 -0000 1.1.2.1 +--- glibc-20041020T1016/nptl/sysdeps/unix/sysv/linux/kernel-features.h 1 Jan 1970 00:00:00 -0000 ++++ glibc-20041020T1016-fedora/nptl/sysdeps/unix/sysv/linux/kernel-features.h 22 Sep 2004 21:21:02 -0000 1.1.2.1 @@ -0,0 +1,6 @@ +#include_next + @@ -2853,8 +1561,8 @@ +#ifndef __ASSUME_CLONE_THREAD_FLAGS +# define __ASSUME_CLONE_THREAD_FLAGS 1 +#endif ---- glibc-20041018T0940/nptl/sysdeps/unix/sysv/linux/bits/local_lim.h 13 Apr 2004 02:00:09 -0000 1.6 -+++ glibc-20041018T0940-fedora/nptl/sysdeps/unix/sysv/linux/bits/local_lim.h 22 Sep 2004 21:21:02 -0000 1.6.2.1 +--- glibc-20041020T1016/nptl/sysdeps/unix/sysv/linux/bits/local_lim.h 13 Apr 2004 02:00:09 -0000 1.6 ++++ glibc-20041020T1016-fedora/nptl/sysdeps/unix/sysv/linux/bits/local_lim.h 22 Sep 2004 21:21:02 -0000 1.6.2.1 @@ -3,16 +3,16 @@ This file is part of the GNU C Library. @@ -2876,8 +1584,8 @@ 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. */ ---- glibc-20041018T0940/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h 13 Apr 2004 02:01:17 -0000 1.8 -+++ glibc-20041018T0940-fedora/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h 22 Sep 2004 21:21:02 -0000 1.8.2.1 +--- glibc-20041020T1016/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h 13 Apr 2004 02:01:17 -0000 1.8 ++++ glibc-20041020T1016-fedora/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h 22 Sep 2004 21:21:02 -0000 1.8.2.1 @@ -3,16 +3,16 @@ This file is part of the GNU C Library. @@ -2899,8 +1607,8 @@ 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. */ ---- glibc-20041018T0940/nptl/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h 4 Oct 2004 20:47:50 -0000 1.8 -+++ glibc-20041018T0940-fedora/nptl/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h 5 Oct 2004 08:25:24 -0000 1.7.2.2 +--- glibc-20041020T1016/nptl/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h 4 Oct 2004 20:47:50 -0000 1.8 ++++ glibc-20041020T1016-fedora/nptl/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h 5 Oct 2004 08:25:24 -0000 1.7.2.2 @@ -3,16 +3,16 @@ This file is part of the GNU C Library. @@ -2922,8 +1630,8 @@ 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. */ ---- glibc-20041018T0940/nscd/connections.c 15 Oct 2004 21:12:15 -0000 1.64 -+++ glibc-20041018T0940-fedora/nscd/connections.c 18 Oct 2004 09:58:49 -0000 1.55.2.5 +--- glibc-20041020T1016/nscd/connections.c 15 Oct 2004 21:12:15 -0000 1.64 ++++ glibc-20041020T1016-fedora/nscd/connections.c 18 Oct 2004 09:58:49 -0000 1.55.2.5 @@ -21,6 +21,7 @@ #include #include @@ -3014,8 +1722,8 @@ + prune_cache (&dbs[hstdb], LONG_MAX); +} + ---- glibc-20041018T0940/nscd/nscd.c 4 Oct 2004 16:14:31 -0000 1.42 -+++ glibc-20041018T0940-fedora/nscd/nscd.c 5 Oct 2004 08:25:25 -0000 1.38.2.4 +--- glibc-20041020T1016/nscd/nscd.c 4 Oct 2004 16:14:31 -0000 1.42 ++++ glibc-20041020T1016-fedora/nscd/nscd.c 5 Oct 2004 08:25:25 -0000 1.38.2.4 @@ -122,9 +122,16 @@ static struct argp argp = options, parse_opt, NULL, doc, }; @@ -3041,8 +1749,8 @@ signal (SIGPIPE, SIG_IGN); /* Cleanup files created by a previous 'bind'. */ ---- glibc-20041018T0940/nscd/nscd.conf 3 Oct 2004 21:09:23 -0000 1.10 -+++ glibc-20041018T0940-fedora/nscd/nscd.conf 4 Oct 2004 08:56:17 -0000 1.8.2.2 +--- glibc-20041020T1016/nscd/nscd.conf 3 Oct 2004 21:09:23 -0000 1.10 ++++ glibc-20041020T1016-fedora/nscd/nscd.conf 4 Oct 2004 08:56:17 -0000 1.8.2.2 @@ -31,8 +31,8 @@ # logfile /var/log/nscd.log # threads 6 @@ -3054,8 +1762,8 @@ debug-level 0 # reload-count 5 paranoia no ---- glibc-20041018T0940/nscd/nscd_conf.c 3 Oct 2004 21:10:35 -0000 1.16 -+++ glibc-20041018T0940-fedora/nscd/nscd_conf.c 4 Oct 2004 08:56:17 -0000 1.14.2.2 +--- glibc-20041020T1016/nscd/nscd_conf.c 3 Oct 2004 21:10:35 -0000 1.16 ++++ glibc-20041020T1016-fedora/nscd/nscd_conf.c 4 Oct 2004 08:56:17 -0000 1.14.2.2 @@ -230,7 +230,10 @@ nscd_parse_file (const char *fname, stru if (strcmp (arg2, "no") == 0) dbs[cnt].shared = 0; @@ -3068,8 +1776,8 @@ break; } if (cnt == lastdb) ---- glibc-20041018T0940/resolv/gethnamaddr.c 18 Oct 2004 05:09:59 -0000 1.50 -+++ glibc-20041018T0940-fedora/resolv/gethnamaddr.c 18 Oct 2004 09:58:50 -0000 1.49.2.1 +--- glibc-20041020T1016/resolv/gethnamaddr.c 18 Oct 2004 05:09:59 -0000 1.50 ++++ glibc-20041020T1016-fedora/resolv/gethnamaddr.c 18 Oct 2004 09:58:50 -0000 1.49.2.1 @@ -51,7 +51,7 @@ #if defined(LIBC_SCCS) && !defined(lint) @@ -3079,8 +1787,8 @@ #endif /* LIBC_SCCS and not lint */ #include ---- glibc-20041018T0940/sunrpc/rpc_clntout.c 17 Oct 2004 14:59:39 -0000 1.7 -+++ glibc-20041018T0940-fedora/sunrpc/rpc_clntout.c 18 Oct 2004 09:58:53 -0000 1.6.4.1 +--- glibc-20041020T1016/sunrpc/rpc_clntout.c 17 Oct 2004 14:59:39 -0000 1.7 ++++ glibc-20041020T1016-fedora/sunrpc/rpc_clntout.c 18 Oct 2004 09:58:53 -0000 1.6.4.1 @@ -33,7 +33,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) @@ -3090,8 +1798,8 @@ #endif /* ---- glibc-20041018T0940/sunrpc/rpc_cout.c 17 Oct 2004 14:59:39 -0000 1.14 -+++ glibc-20041018T0940-fedora/sunrpc/rpc_cout.c 18 Oct 2004 09:58:53 -0000 1.13.4.1 +--- glibc-20041020T1016/sunrpc/rpc_cout.c 17 Oct 2004 14:59:39 -0000 1.14 ++++ glibc-20041020T1016-fedora/sunrpc/rpc_cout.c 18 Oct 2004 09:58:53 -0000 1.13.4.1 @@ -33,7 +33,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) @@ -3101,8 +1809,8 @@ #endif /* ---- glibc-20041018T0940/sunrpc/rpc_hout.c 17 Oct 2004 14:59:39 -0000 1.8 -+++ glibc-20041018T0940-fedora/sunrpc/rpc_hout.c 18 Oct 2004 09:58:53 -0000 1.7.4.1 +--- glibc-20041020T1016/sunrpc/rpc_hout.c 17 Oct 2004 14:59:39 -0000 1.8 ++++ glibc-20041020T1016-fedora/sunrpc/rpc_hout.c 18 Oct 2004 09:58:53 -0000 1.7.4.1 @@ -33,7 +33,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) @@ -3112,8 +1820,8 @@ #endif /* ---- glibc-20041018T0940/sunrpc/rpc_main.c 17 Oct 2004 14:59:39 -0000 1.24 -+++ glibc-20041018T0940-fedora/sunrpc/rpc_main.c 18 Oct 2004 09:58:53 -0000 1.23.2.1 +--- glibc-20041020T1016/sunrpc/rpc_main.c 17 Oct 2004 14:59:39 -0000 1.24 ++++ glibc-20041020T1016-fedora/sunrpc/rpc_main.c 18 Oct 2004 09:58:53 -0000 1.23.2.1 @@ -33,7 +33,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) @@ -3123,8 +1831,8 @@ #endif /* ---- glibc-20041018T0940/sunrpc/rpc_parse.c 17 Oct 2004 14:59:39 -0000 1.8 -+++ glibc-20041018T0940-fedora/sunrpc/rpc_parse.c 18 Oct 2004 09:58:53 -0000 1.5.4.2 +--- glibc-20041020T1016/sunrpc/rpc_parse.c 17 Oct 2004 14:59:39 -0000 1.8 ++++ glibc-20041020T1016-fedora/sunrpc/rpc_parse.c 18 Oct 2004 09:58:53 -0000 1.5.4.2 @@ -33,7 +33,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) @@ -3134,8 +1842,8 @@ #endif /* ---- glibc-20041018T0940/sunrpc/rpc_sample.c 17 Oct 2004 14:59:39 -0000 1.6 -+++ glibc-20041018T0940-fedora/sunrpc/rpc_sample.c 18 Oct 2004 09:58:53 -0000 1.5.6.1 +--- glibc-20041020T1016/sunrpc/rpc_sample.c 17 Oct 2004 14:59:39 -0000 1.6 ++++ glibc-20041020T1016-fedora/sunrpc/rpc_sample.c 18 Oct 2004 09:58:53 -0000 1.5.6.1 @@ -33,7 +33,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) @@ -3145,8 +1853,8 @@ #endif /* ---- glibc-20041018T0940/sunrpc/rpc_scan.c 17 Oct 2004 14:59:39 -0000 1.9 -+++ glibc-20041018T0940-fedora/sunrpc/rpc_scan.c 18 Oct 2004 09:58:53 -0000 1.8.4.1 +--- glibc-20041020T1016/sunrpc/rpc_scan.c 17 Oct 2004 14:59:39 -0000 1.9 ++++ glibc-20041020T1016-fedora/sunrpc/rpc_scan.c 18 Oct 2004 09:58:53 -0000 1.8.4.1 @@ -33,7 +33,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) @@ -3156,8 +1864,8 @@ #endif /* ---- glibc-20041018T0940/sunrpc/rpc_svcout.c 17 Oct 2004 14:59:39 -0000 1.12 -+++ glibc-20041018T0940-fedora/sunrpc/rpc_svcout.c 18 Oct 2004 09:58:53 -0000 1.11.2.1 +--- glibc-20041020T1016/sunrpc/rpc_svcout.c 17 Oct 2004 14:59:39 -0000 1.12 ++++ glibc-20041020T1016-fedora/sunrpc/rpc_svcout.c 18 Oct 2004 09:58:53 -0000 1.11.2.1 @@ -33,7 +33,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) @@ -3167,8 +1875,8 @@ #endif /* ---- glibc-20041018T0940/sunrpc/rpc_tblout.c 17 Oct 2004 14:59:39 -0000 1.3 -+++ glibc-20041018T0940-fedora/sunrpc/rpc_tblout.c 18 Oct 2004 09:58:53 -0000 1.2.6.1 +--- glibc-20041020T1016/sunrpc/rpc_tblout.c 17 Oct 2004 14:59:39 -0000 1.3 ++++ glibc-20041020T1016-fedora/sunrpc/rpc_tblout.c 18 Oct 2004 09:58:53 -0000 1.2.6.1 @@ -33,7 +33,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) @@ -3178,8 +1886,8 @@ #endif /* ---- glibc-20041018T0940/sunrpc/rpc_util.c 17 Oct 2004 14:59:39 -0000 1.7 -+++ glibc-20041018T0940-fedora/sunrpc/rpc_util.c 18 Oct 2004 09:58:53 -0000 1.6.6.1 +--- glibc-20041020T1016/sunrpc/rpc_util.c 17 Oct 2004 14:59:39 -0000 1.7 ++++ glibc-20041020T1016-fedora/sunrpc/rpc_util.c 18 Oct 2004 09:58:53 -0000 1.6.6.1 @@ -33,7 +33,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) @@ -3189,8 +1897,8 @@ #endif /* ---- glibc-20041018T0940/sysdeps/generic/dl-cache.h 25 Jun 2003 08:01:22 -0000 1.13 -+++ glibc-20041018T0940-fedora/sysdeps/generic/dl-cache.h 22 Sep 2004 21:21:07 -0000 1.13.2.1 +--- glibc-20041020T1016/sysdeps/generic/dl-cache.h 25 Jun 2003 08:01:22 -0000 1.13 ++++ glibc-20041020T1016-fedora/sysdeps/generic/dl-cache.h 22 Sep 2004 21:21:07 -0000 1.13.2.1 @@ -36,6 +36,14 @@ # define add_system_dir(dir) add_dir (dir) #endif @@ -3206,51 +1914,8 @@ #define CACHEMAGIC "ld.so-1.7.0" /* libc5 and glibc 2.0/2.1 use the same format. For glibc 2.2 another ---- glibc-20041018T0940/sysdeps/generic/strcpy_chk.c 18 Oct 2004 04:17:12 -0000 1.1 -+++ glibc-20041018T0940-fedora/sysdeps/generic/strcpy_chk.c 18 Oct 2004 10:00:48 -0000 1.1.2.2 -@@ -31,14 +31,36 @@ __strcpy_chk (dest, src, destlen) - { - reg_char c; - char *s = (char *) src; -- const ptrdiff_t off = dest - s - 1; -+ const ptrdiff_t off = dest - s; -+ -+ while (__builtin_expect (destlen >= 4, 0)) -+ { -+ c = s[0]; -+ s[off] = c; -+ if (c == '\0') -+ return dest; -+ c = s[1]; -+ s[off + 1] = c; -+ if (c == '\0') -+ return dest; -+ c = s[2]; -+ s[off + 2] = c; -+ if (c == '\0') -+ return dest; -+ c = s[3]; -+ s[off + 3] = c; -+ if (c == '\0') -+ return dest; -+ destlen -= 4; -+ s += 4; -+ } - - do - { - if (__builtin_expect (destlen-- == 0, 0)) -- __chk_fail (); -- c = *s++; -- s[off] = c; -+ __chk_fail (); -+ c = *s; -+ *(s++ + off) = c; - } - while (c != '\0'); - ---- glibc-20041018T0940/sysdeps/i386/bits/atomic.h 1 Jan 1970 00:00:00 -0000 -+++ glibc-20041018T0940-fedora/sysdeps/i386/bits/atomic.h 5 Oct 2004 12:09:44 -0000 1.1.2.3 +--- glibc-20041020T1016/sysdeps/i386/bits/atomic.h 1 Jan 1970 00:00:00 -0000 ++++ glibc-20041020T1016-fedora/sysdeps/i386/bits/atomic.h 5 Oct 2004 12:09:44 -0000 1.1.2.3 @@ -0,0 +1,410 @@ +/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. + This file is part of the GNU C Library. @@ -3662,8 +2327,8 @@ + + +#define atomic_delay() asm ("rep; nop") ---- glibc-20041018T0940/sysdeps/ia64/Makefile 16 Aug 2004 06:46:14 -0000 1.10 -+++ glibc-20041018T0940-fedora/sysdeps/ia64/Makefile 22 Sep 2004 21:21:07 -0000 1.10.2.1 +--- glibc-20041020T1016/sysdeps/ia64/Makefile 16 Aug 2004 06:46:14 -0000 1.10 ++++ glibc-20041020T1016-fedora/sysdeps/ia64/Makefile 22 Sep 2004 21:21:07 -0000 1.10.2.1 @@ -12,8 +12,8 @@ elide-routines.os += hp-timing ifeq (yes,$(build-shared)) @@ -3675,8 +2340,8 @@ endif endif ---- glibc-20041018T0940/sysdeps/ia64/ia64libgcc.S 11 May 2002 05:12:35 -0000 1.2 -+++ glibc-20041018T0940-fedora/sysdeps/ia64/ia64libgcc.S 22 Sep 2004 21:21:07 -0000 1.2.2.1 +--- glibc-20041020T1016/sysdeps/ia64/ia64libgcc.S 11 May 2002 05:12:35 -0000 1.2 ++++ glibc-20041020T1016-fedora/sysdeps/ia64/ia64libgcc.S 22 Sep 2004 21:21:07 -0000 1.2.2.1 @@ -1,350 +0,0 @@ -/* From the Intel IA-64 Optimization Guide, choose the minimum latency - alternative. */ @@ -4028,8 +2693,8 @@ - .symver ___multi3, __multi3@GLIBC_2.2 - -#endif ---- glibc-20041018T0940/sysdeps/ia64/libgcc-compat.c 1 Jan 1970 00:00:00 -0000 -+++ glibc-20041018T0940-fedora/sysdeps/ia64/libgcc-compat.c 22 Sep 2004 21:21:08 -0000 1.1.2.1 +--- glibc-20041020T1016/sysdeps/ia64/libgcc-compat.c 1 Jan 1970 00:00:00 -0000 ++++ glibc-20041020T1016-fedora/sysdeps/ia64/libgcc-compat.c 22 Sep 2004 21:21:08 -0000 1.1.2.1 @@ -0,0 +1,84 @@ +/* pre-.hidden libgcc compatibility + Copyright (C) 2002 Free Software Foundation, Inc. @@ -4115,8 +2780,8 @@ +symbol_version (INTUSE (__multi3), __multi3, GLIBC_2.2); + +#endif ---- glibc-20041018T0940/sysdeps/unix/nice.c 28 Sep 2002 19:13:13 -0000 1.6 -+++ glibc-20041018T0940-fedora/sysdeps/unix/nice.c 22 Sep 2004 21:21:08 -0000 1.6.2.1 +--- glibc-20041020T1016/sysdeps/unix/nice.c 28 Sep 2002 19:13:13 -0000 1.6 ++++ glibc-20041020T1016-fedora/sysdeps/unix/nice.c 22 Sep 2004 21:21:08 -0000 1.6.2.1 @@ -41,7 +41,12 @@ nice (int incr) __set_errno (save); } @@ -4131,8 +2796,8 @@ if (result != -1) return getpriority (PRIO_PROCESS, 0); else ---- glibc-20041018T0940/sysdeps/unix/sysv/linux/paths.h 15 Nov 2000 23:06:47 -0000 1.11 -+++ glibc-20041018T0940-fedora/sysdeps/unix/sysv/linux/paths.h 22 Sep 2004 21:21:08 -0000 1.11.4.1 +--- glibc-20041020T1016/sysdeps/unix/sysv/linux/paths.h 15 Nov 2000 23:06:47 -0000 1.11 ++++ glibc-20041020T1016-fedora/sysdeps/unix/sysv/linux/paths.h 22 Sep 2004 21:21:08 -0000 1.11.4.1 @@ -61,7 +61,7 @@ #define _PATH_TTY "/dev/tty" #define _PATH_UNIX "/boot/vmlinux" @@ -4142,8 +2807,22 @@ #define _PATH_WTMP "/var/log/wtmp" /* Provide trailing slash, since mostly used for building pathnames. */ ---- glibc-20041018T0940/sysdeps/unix/sysv/linux/tcsetattr.c 10 Sep 2003 19:16:07 -0000 1.16 -+++ glibc-20041018T0940-fedora/sysdeps/unix/sysv/linux/tcsetattr.c 22 Sep 2004 21:21:08 -0000 1.16.2.1 +--- glibc-20041020T1016/sysdeps/unix/sysv/linux/readonly-area.c 18 Oct 2004 04:17:11 -0000 1.1 ++++ glibc-20041020T1016-fedora/sysdeps/unix/sysv/linux/readonly-area.c 20 Oct 2004 11:04:51 -0000 1.1.2.2 +@@ -33,7 +33,10 @@ __readonly_area (const char *ptr, size_t + + FILE *fp = fopen ("/proc/self/maps", "rc"); + if (fp == NULL) +- return -1; ++ /* We don't know. Returning 1 here means that programs using %n ++ and -D_FORTIFY_SOURCE=2 will work even when /proc is not mounted, ++ but will allow %n even in writable areas. */ ++ return 1; + + /* We need no locking. */ + __fsetlocking (fp, FSETLOCKING_BYCALLER); +--- glibc-20041020T1016/sysdeps/unix/sysv/linux/tcsetattr.c 10 Sep 2003 19:16:07 -0000 1.16 ++++ glibc-20041020T1016-fedora/sysdeps/unix/sysv/linux/tcsetattr.c 22 Sep 2004 21:21:08 -0000 1.16.2.1 @@ -49,6 +49,7 @@ tcsetattr (fd, optional_actions, termios { struct __kernel_termios k_termios; @@ -4189,8 +2868,8 @@ + return retval; } libc_hidden_def (tcsetattr) ---- glibc-20041018T0940/sysdeps/unix/sysv/linux/i386/dl-cache.h 1 Jan 1970 00:00:00 -0000 -+++ glibc-20041018T0940-fedora/sysdeps/unix/sysv/linux/i386/dl-cache.h 22 Sep 2004 21:21:08 -0000 1.1.2.1 +--- glibc-20041020T1016/sysdeps/unix/sysv/linux/i386/dl-cache.h 1 Jan 1970 00:00:00 -0000 ++++ glibc-20041020T1016-fedora/sysdeps/unix/sysv/linux/i386/dl-cache.h 22 Sep 2004 21:21:08 -0000 1.1.2.1 @@ -0,0 +1,59 @@ +/* Support for reading /etc/ld.so.cache files written by Linux ldconfig. + Copyright (C) 2004 Free Software Foundation, Inc. @@ -4251,8 +2930,8 @@ + } while (0) + +#include_next ---- glibc-20041018T0940/sysdeps/unix/sysv/linux/ia64/dl-cache.h 6 Jul 2001 04:56:17 -0000 1.2 -+++ glibc-20041018T0940-fedora/sysdeps/unix/sysv/linux/ia64/dl-cache.h 22 Sep 2004 21:21:09 -0000 1.2.4.1 +--- glibc-20041020T1016/sysdeps/unix/sysv/linux/ia64/dl-cache.h 6 Jul 2001 04:56:17 -0000 1.2 ++++ glibc-20041020T1016-fedora/sysdeps/unix/sysv/linux/ia64/dl-cache.h 22 Sep 2004 21:21:09 -0000 1.2.4.1 @@ -22,4 +22,31 @@ #define _dl_cache_check_flags(flags) \ ((flags) == _DL_CACHE_DEFAULT_ID) @@ -4285,24 +2964,24 @@ + } while (0) + #include_next ---- glibc-20041018T0940/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c 1 Jan 1970 00:00:00 -0000 -+++ glibc-20041018T0940-fedora/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c 22 Sep 2004 21:21:09 -0000 1.1.2.1 +--- glibc-20041020T1016/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c 1 Jan 1970 00:00:00 -0000 ++++ glibc-20041020T1016-fedora/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c 22 Sep 2004 21:21:09 -0000 1.1.2.1 @@ -0,0 +1,5 @@ +#ifdef IS_IN_ldconfig +#include +#else +#include +#endif ---- glibc-20041018T0940/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h 1 Jan 1970 00:00:00 -0000 -+++ glibc-20041018T0940-fedora/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h 22 Sep 2004 21:21:09 -0000 1.1.2.1 +--- glibc-20041020T1016/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h 1 Jan 1970 00:00:00 -0000 ++++ glibc-20041020T1016-fedora/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h 22 Sep 2004 21:21:09 -0000 1.1.2.1 @@ -0,0 +1,5 @@ +#ifdef IS_IN_ldconfig +#include +#else +#include +#endif ---- glibc-20041018T0940/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed 17 Jan 2002 06:49:28 -0000 1.2 -+++ glibc-20041018T0940-fedora/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed 22 Sep 2004 21:21:09 -0000 1.2.2.1 +--- glibc-20041020T1016/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed 17 Jan 2002 06:49:28 -0000 1.2 ++++ glibc-20041020T1016-fedora/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed 22 Sep 2004 21:21:09 -0000 1.2.2.1 @@ -1 +1 @@ -s_^\(RTLDLIST=\)\([^ ]*\)-ia64\(\.so\.[0-9.]*\)[ ]*$_\1"\2-ia64\3 \2\3"_ +s_^\(RTLDLIST=\)\([^ ]*\)-ia64\(\.so\.[0-9.]*\)[ ]*$_\1"\2-ia64\3 /emul/ia32-linux\2\3"_ diff --git a/glibc.spec b/glibc.spec index 393674f..f4af1e7 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,6 +1,6 @@ -%define glibcdate 20041018T0940 +%define glibcdate 20041020T1016 %define glibcversion 2.3.3 -%define glibcrelease 70 +%define glibcrelease 71 %define auxarches i586 i686 athlon sparcv9 alphaev6 %define prelinkarches noarch %define nptlarches i386 i686 athlon x86_64 ia64 s390 s390x sparcv9 ppc ppc64 @@ -301,6 +301,14 @@ cat > asm/unistd.h < asm/unistd.h < asm/unistd.h < asm/errno.h < +#ifndef ENOKEY +%ifarch alpha alphaev6 +#define ENOKEY 131 /* Required key not available */ +%endif +%ifarch sparc sparcv9 sparc64 +#define ENOKEY 127 /* Required key not available */ +%endif +%ifnarch alpha alphaev6 sparc sparcv9 sparc64 +#define ENOKEY 125 /* Required key not available */ +%endif +#define EKEYEXPIRED (ENOKEY + 1) /* Key has expired */ +#define EKEYREVOKED (ENOKEY + 2) /* Key has been revoked */ +#define EKEYREJECTED (ENOKEY + 3) /* Key was rejected by service */ +#endif +EOF %ifnarch %{ix86} alpha alphaev6 sparc sparcv9 rm -rf glibc-compat @@ -1258,6 +1287,21 @@ rm -f *.filelist* %endif %changelog +* Wed Oct 20 2004 Jakub Jelinek 2.3.3-71 +- update from CVS + - fix minor catchsegv temp file handling vulnerability + (CAN-2004-0968, #136319) + - add 4 new errno codes + - setaltroot, key{_add,_request,ctl} syscalls on some arches + - export _dl_debug_state@GLIBC_PRIVATE from ld.so again for + gdb purpose + - use inet_pton to decide what is address and what is hostname + in getent (#135422) + - change dladdr/dladdr1, so that dli_saddr is the same kind + of value as dlsym/dlvsym return (makes difference on ia64/hppa only) + - fix catchsegv script so that it works with both 32-bit and 64-bit + programs on multi-arch platforms + * Tue Oct 19 2004 Jakub Jelinek 2.3.3-70 - update from CVS - require newer selinux-policy (#135978) diff --git a/sources b/sources index 0416600..82512b8 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -01427e846bb8f298c66818a406125afe glibc-20041018T0940.tar.bz2 -4dab0b67d64e3adfa44505f389fda0c9 glibc-fedora-20041018T0940.tar.bz2 +ef878645c8fac5e499ba02aa86221257 glibc-20041020T1016.tar.bz2 +f8d97779a6e4fe516b8dd3a480870e72 glibc-fedora-20041020T1016.tar.bz2