SOURCES: glibc-cvs20070210.patch (NEW) - update from 2.5 cvs branch

arekm arekm at pld-linux.org
Sat Feb 10 13:42:57 CET 2007


Author: arekm                        Date: Sat Feb 10 12:42:57 2007 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- update from 2.5 cvs branch

---- Files affected:
SOURCES:
   glibc-cvs20070210.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/glibc-cvs20070210.patch
diff -u /dev/null SOURCES/glibc-cvs20070210.patch:1.1
--- /dev/null	Sat Feb 10 13:42:57 2007
+++ SOURCES/glibc-cvs20070210.patch	Sat Feb 10 13:42:52 2007
@@ -0,0 +1,48177 @@
+Index: libc/ChangeLog
+diff -u libc/ChangeLog:1.10354 libc/ChangeLog:1.10362.2.31
+--- libc/ChangeLog:1.10354	Fri Sep 29 19:45:39 2006
++++ libc/ChangeLog	Fri Jan 12 18:24:52 2007
+@@ -1,5 +1,416 @@
++2007-01-05  Steven Munroe  <sjmunroe at us.ibm.com>
++
++	* stdlib/tst-makecontext.c: Include errno.h.  Change main()
++	to do_test().  Define TEST_FUNCTION. Include test-skeleton.c.
++	(do_test): Check errno and exit(0) if ENOSYS.
++
++2007-01-11  Jakub Jelinek  <jakub at redhat.com>
++
++	* stdlib/strtod_l.c (____STRTOF_INTERNAL): Fix handling of multi-byte
++	thousands separators.
++	* stdlib/Makefile: Add rules to build and run tst-strtod4.
++	* stdlib/tst-strtod4.c: New test.
++
++	[BZ #3855]
++	* stdlib/strtod_l.c (____STRTOF_INTERNAL): 0x. not followed by
++	hexadecimal digit should accept just the initial 0.
++	* stdlib/tst-strtod2.c (tests): New variable.
++	(do_test): Run several tests rather than just one.
++
++2007-01-03  Ulrich Drepper  <drepper at redhat.com>
++
++	* stdlib/Makefile (tst-strtod3-ENV): Define.
++
++2006-12-11  Ulrich Drepper  <drepper at redhat.com>
++
++	* stdlib/strtod_l.c (____STRTOF_INTERNAL): Parse thousand
++	separators also if no non-zero digits found.
++	* stdlib/Makefile (tests): Add tst-strtod3.
++
++2006-12-09  Ulrich Drepper  <drepper at redhat.com>
++
++	[BZ #3664]
++	* stdlib/strtod_l.c (____STRTOF_INTERNAL): Fix test to recognize
++	empty parsed strings.
++	* stdlib/Makefile (tests): Add tst-strtod2.
++	* stdlib/tst-strtod2.c: New file.
++
++	[BZ #3673]
++	* stdlib/strtod_l.c (____STRTOF_INTERNAL): Fix exp_limit
++	computation.
++	* stdlib/Makefile (tests): Add tst-atof2.
++	* stdlib/tst-atof2.c: New file.
++
++	[BZ #3674]
++	* stdlib/strtod_l.c (____STRTOF_INTERNAL): Adjust exponent value
++	correctly if removing trailing zero of hex-float.
++	* stdlib/Makefile (tests): Add tst-atof1.
++	* stdlib/tst-atof1.c: New file.
++
++2007-01-03  Ulrich Drepper  <drepper at redhat.com>
++
++	* string/Makefile (tst-strxfrm2-ENV): Define.
++
++2006-11-10  Jakub Jelinek  <jakub at redhat.com>
++
++	* string/strxfrm_l.c (STRXFRM): Fix trailing \1 optimization
++	if N is one bigger than return value.
++	* string/tst-strxfrm2.c (do_test): Also test strxfrm with l1 + 1
++	and l1 last arguments, if buf is defined, verify the return value
++	equals to strlen (buf) and verify no byte beyond passed length
++	is modified.
++
++2006-11-09  Ulrich Drepper  <drepper at redhat.com>
++
++	* string/Makefile (tests): Add tst-strxfrm2.
++	* string/tst-strxfrm2.c: New file.
++
++2006-11-08  Jakub Jelinek  <jakub at redhat.com>
++
++	* string/strxfrm_l.c (STRXFRM): Do the trailing \1 removal
++	optimization even if needed > n.
++
++2006-12-22  Gavin Romig-Koch  <gavin at redhat.com>
++
++	* nis/nss_compat/compat-grp.c (internal_getgrgid_r): Don't
++	blacklist the group till after we look it up.
++
++2006-12-21  Ulrich Drepper  <drepper at redhat.com>
++
++	* include/atomic.h (atomic_forced_read): New macro.
++
++2006-12-19  Jakub Jelinek  <jakub at redhat.com>
++
++	* nss/getXXbyYY_r.c: Include atomic.h.
++	(INTERNAL (REENTRANT_NAME)): Write startp after start_fct,
++	add atomic_write_barrier () in between.
++
++2006-12-18  Jakub Jelinek  <jakub at redhat.com>
++
++	[BZ #3747]
++	* stdlib/jrand48_r.c (__jrand48_r): Make sure result is in the
++	[-231 .. 231) range.
++	* stdlib/tst-rand48.c (main): Fix expected values for 64-bit
++	targets.
++	* stdlib/tst-rand48-2.c: New test.
++	* stdlib/Makefile (tests): Add tst-rand48-2.
++
++2006-12-14  Jakub Jelinek  <jakub at redhat.com>
++
++	* misc/tst-pselect.c (do_test): Fix sigblock argument.
++
++2006-12-14  Ulrich Drepper  <drepper at redhat.com>
++
++	* misc/tst-pselect.c (do_test): Make sure the helper process is
++	terminating when the test is aborted.
++
++2006-12-13  Ulrich Drepper  <drepper at redhat.com>
++
++	[BZ #2337]
++	* libio/Makefile (tests): Add tst-setvbuf1.
++	* libio/tst-setvbuf1.c: New file.
++
++2006-12-08  Jakub Jelinek  <jakub at redhat.com>
++
++	[BZ #2337]
++	* libio/genops.c (__uflow): Fix a typo.
++	* libio/wfiledoalloc.c (_IO_wfile_doallocate): Don't stat
++	nor set _IO_LINE_BUF bit here.  Size the wide buffer based on
++	the narrow buffer size.
++
++2006-11-24  Jakub Jelinek  <jakub at redhat.com>
++
++	[BZ #2337]
++	* libio/libio.h (_IO_FLAGS2_USER_WBUF): Define.
++	* libio/wgenops.c (_IO_wsetb, _IO_wdefault_finish): Test and set
++	_IO_FLAGS2_USER_WBUF bit in _flags2 instead of _IO_USER_BUF bit
++	in _flags.
++	* libio/wstrops.c (_IO_wstr_overflow, enlarge_userbuf,
++	_IO_wstr_finish): Likewise.
++	* libio/wmemstream.c (open_wmemstream): Likewise.
++	* libio/fileops.c (_IO_new_file_close_it): Call _IO_set[bgp]
++	even for wide streams.
++
++2006-12-09  Jakub Jelinek  <jakub at redhat.com>
++
++	* misc/mntent_r.c (__hasmntopt): Check p[optlen] even when p == rest.
++	Start searching for next comma at p rather than rest.
++	* misc/Makefile (tests): Add tst-mntent2.
++	* misc/tst-mntent2.c: New test.
++
++2006-12-09  Ulrich Drepper  <drepper at redhat.com>
++
++	[BZ #3632]
++	* include/features.h: Fix comment about default value for
++	_POSIX_C_SOURCE.
++
++2006-12-09  Jakub Jelinek  <jakub at redhat.com>
++
++	* misc/getusershell.c (initshells): Check for integer overflows.
++	Make strings buffer one bigger as fgets always succeeds when second
++	argument is 1.  Don't use calloc for shells array.  Disallow
++	/ as shell.
++
++2006-12-05  Jakub Jelinek  <jakub at redhat.com>
++
++	* nis/nis_subr.c (nis_getnames): Revert last change.
++
++2006-10-11  Jakub Jelinek  <jakub at redhat.com>
++
++	* nis/nis_defaults.c (__nis_default_access): Don't call getenv twice.
++
++	* nis/nis_subr.c (nis_getnames): Use __secure_getenv instead of getenv.
++	* sysdeps/generic/unsecvars.h: Add NIS_PATH.
++
++2006-12-04  Jakub Jelinek  <jakub at redhat.com>
++
++	* sysdeps/unix/sysv/linux/ttyname.c: Include termios.h.
++	(ttyname): Use tcgetattr instead of isatty, don't set errno to ENOTTY.
++	* sysdeps/unix/sysv/linux/ttyname_r.c: Include termios.h.
++	(__ttyname_r): Use tcgetattr instead of isatty, don't set errno to
++	ENOTTY.
++	* io/Makefile: Add rules to build and run tst-ttyname_r test.
++	* io/tst-ttyname_r.c: New test.
++
++2006-11-28  Jakub Jelinek  <jakub at redhat.com>
++
++	* elf/dl-support.c: Include dl-procinfo.h.
++	* sysdeps/powerpc/dl-procinfo.h (PPC_PLATFORM_POWER4,
++	PPC_PLATFORM_PPC970, PPC_PLATFORM_POWER5, PPC_PLATFORM_POWER5_PLUS,
++	PPC_PLATFORM_POWER6, PPC_PLATFORM_CELL_BE, PPC_PLATFORM_POWER6X):
++	Define.
++	(_dl_string_platform): Use PPC_PLATFORM_* macros instead of
++	hardcoded constants.
++	* sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_platform): Use
++	PPC_PLATFORM_* macros for array designators.
++
++2006-11-11  Steven Munroe  <sjmunroe at us.ibm.com>
++
++	* sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_cap_flags): Add 3 new cap
++	names to the beginning.
++	(_dl_powerpc_platforms): Add "power6x".
++	* sysdeps/powerpc/dl-procinfo.h (_DL_HWCAP_FIRST): Decrease.
++	(HWCAP_IMPORTANT): Add PPC_FEATURE_HAS_DFP.
++	(_DL_PLATFORMS_COUNT): Increase.
++	(_dl_string_platform): Handle power6x case.
++	* sysdeps/powerpc/sysdep.h (PPC_FEATURE_PA6T, PPC_FEATURE_HAS_DFP,
++	PPC_FEATURE_POWER6_EXT): Define.
++	(PPC_FEATURE_POWER5, PPC_FEATURE_POWER5_PLUS): Correct Comment.
++
++2006-11-27  Jakub Jelinek  <jakub at redhat.com>
++
++	[BZ #3559]
++	* sunrpc/svc_run.c (svc_run): Fail instead of segfaulting if
++	malloc crashed.
++
++2006-11-14  Jakub Jelinek  <jakub at redhat.com>
++
++	* nss/nss_files/files-alias.c (get_next_alias): Set line back
++	to first_unused after parsing :include: file.
++
++2006-11-14  Ulrich Drepper  <drepper at redhat.com>
++
++	* po/nl.po: Update from translation team.
++
++2006-11-10  Ulrich Drepper  <drepper at redhat.com>
++
++	* po/sv.po: Update from translation team.
++
++2006-11-01  Ulrich Drepper  <drepper at redhat.com>
++
++	* po/sv.po: Update from translation team.
++
++2006-10-29  Ulrich Drepper  <drepper at redhat.com>
++
++	* po/sv.po: Update from translation team.
++
++2006-10-09  Ulrich Drepper  <drepper at redhat.com>
++
++	* po/sv.po: Update from translation team.
++
++2006-10-07  Ulrich Drepper  <drepper at redhat.com>
++
++	* po/tr.po: Update from translation team.
++
++2006-10-06  Ulrich Drepper  <drepper at redhat.com>
++
++	* po/pl.po: Update from translation team.
++
++2006-11-10  Ulrich Drepper  <drepper at redhat.com>
++
++	[BZ #3451]
++	* sysdeps/i386/fpu/bits/mathinline.h (floor): Make rounding mode
++	change atomic.
++	(ceil): Likewise.
++
++2006-11-09  Ulrich Drepper  <drepper at redhat.com>
++
++	* sysdeps/unix/sysv/linux/x86_64/sysconf.c (intel_check_word): Add
++	noinline attribute.
++
++2006-11-10  Jakub Jelinek  <jakub at redhat.com>
++
++	* sysdeps/unix/sysv/linux/i386/sysconf.c (intel_check_word): Add
++	noinline attribute.
++
++2006-11-05  Ulrich Drepper  <drepper at redhat.com>
++
++	* sysdeps/unix/sysv/linux/i386/sysconf.c (intel_check_word):
++	Update handling of cache descriptor 0x49 for new models.
++	* sysdeps/unix/sysv/linux/x86_64/sysconf.c (intel_check_word):
++	Likewise.
++
++2006-11-08  Jakub Jelinek  <jakub at redhat.com>
++
++	* elf/dl-load.c (decompose_rpath): Return bool rather than void.
++	If l->l_name is on inhibit_rpath list, set sps->dirs to -1 and
++	return false, otherwise return true.
++	(cache_rpath): Return decompose_rpath return value.
++
++2006-11-02  Jakub Jelinek  <jakub at redhat.com>
++
++	* malloc/memusage.c (dest): Reset not_me back to false after
++	printing statistics.
++
++2006-10-27  Ulrich Drepper  <drepper at redhat.com>
++
++	* elf/dl-close.c (_dl_close_worker): Renamed from _dl_close and
++	split out locking and parameter checking.
++	(_dl_close): Call _dl_close_worker after locking and checking.
++	* elf/dl-open.c (_dl_open): Call _dl_close_worker instead of
++	_dl_close.
++	* elf/Makefile: Add rules to build and run tst-thrlock.
++	* elf/tst-thrlock.c:  New file.
++
++	[BZ #3429]
++	* elf/dl-open.c (dl_open_worker): Keep holding dl_load_lock until
++	we are sure we do not need it anymore for _dl_close.  Also move
++	the asserts inside the lock region.
++	Patch mostly by Suzuki <suzuki at in.ibm.com>.
++
++2006-10-17  Jakub Jelinek  <jakub at redhat.com>
++
++	* sunrpc/xdr_mem.c (xdrmem_setpos): Don't compare addresses
++	as signed longs, check for x_base + pos overflow.
++	* sunrpc/Makefile (tests): Add tst-xdrmem2.
++	* sunrpc/tst-xdrmem2.c: New test.
++
++2006-10-16  Ulrich Drepper  <drepper at redhat.com>
++
++	[BZ #3369]
++	* sysdeps/posix/getaddrinfo.c (rfc3484_sort): Fix typos in rules 4
++	and 7.
++
++2006-10-13  Ulrich Drepper  <drepper at redhat.com>
++
++	* elf/dl-minimal.c (realloc): Optimize last patch.
++
++2006-10-12  Richard Sandiford  <richard at codesourcery.com>
++
++	[BZ #3352]
++	* elf/dl-minimal.c (realloc): Let malloc() return a new pointer,
++	and use memcpy() if it does.
++
++2006-10-11  Ulrich Drepper  <drepper at redhat.com>
++
++	* sysdeps/unix/sysv/linux/i386/sysdep.h (DOARGS_6): Fix offset.
++
++2006-10-10  Ulrich Drepper  <drepper at redhat.com>
++
++	* nis/nis_subr.c (nis_getnames): Add trailing dot to NIS_PATH
++	components which lack them.
++
++	* nis/nis_subr.c (nis_getnames): Make sure that we always return
++	at least one entry consisting of the parameter concatenated with
++	the domain.
++
++2006-10-09  Jakub Jelinek  <jakub at redhat.com>
++
++	* elf/dl-debug.c (_dl_debug_initialize): Check r->r_map for 0
++	rather than r->r_brk.
++
++2006-10-06  Ulrich Drepper  <drepper at redhat.com>
++
++	* nis/nis_table.c (nis_list): If __follow_path fails in the new
++	code, make sure the nis_freeresult call doesn't crash and that the
++	result is reported correctly.
++
++2006-09-27  Jakub Jelinek  <jakub at redhat.com>
++
++	* nis/nis_table.c (nis_list): Handle FOLLOW_PATH | ALL_RESULTS
++	when callback is NULL.
++
++	* nis/Versions (libnss_nisplus): Add
++	_nss_nisplus_initgroups_dyn@@GLIBC_PRIVATE.
++	* nis/Makefile (libnss_nisplus-routines): Add nisplus-initgroups.
++	* nis/nss_nisplus/nisplus-grp.c (tablename_val, tablename_len,
++	_nss_create_tablename): Rename to...
++	(grp_tablename_val, grp_tablename_len, _nss_grp_create_tablename):
++	... these.  No longer static.
++	(internal_setgrent): Adjust users.
++	(_nss_nisplus_getgrnam_r, _nss_nisplus_getgrgid_r): Likewise.
++	Don't use locking around _nss_grp_create_tablename call.
++	* nis/nss_nisplus/nisplus-initgroups.c: New file.
++
++2006-10-06  Andreas Jaeger  <aj at suse.de>
++
++	* include/features.h (__GLIBC_MINOR__): It's glibc 2.5 now.
++
++2006-10-06  Ulrich Drepper  <drepper at redhat.com>
++
++	* po/pl.po: Update from translation team.
++
++	* nscd/nscd.c (main): Fix typo in message.
++	Patch by Jakub Bogsz <qboosh at pld-linux.org>.
++
++2006-10-02  Jakub Jelinek  <jakub at redhat.com>
++
++	[BZ #3291]
++	* sysdeps/unix/sysv/linux/sparc/sparc64/pause.c: Include
++	errno.h, signal.h, unistd.h and sysdep-cancel.h.
++	(__sigprocmask): Define.
++
++2006-10-02  Ulrich Drepper  <drepper at redhat.com>
++
++	* elf/rtld.c (dl_main): Don't use prelinking if LD_DYNAMIC_WEAK is
++	used.
++
++2006-10-02  Jakub Jelinek  <jakub at redhat.com>
++
++	* nscd/mem.c (mempool_alloc): Round array size to 16 bytes
++	in oldtotal and newtotal calculation.
++	* nscd/nscd-client.h (struct mapped_database): Add datasize
++	field.
++	* nscd/nscd_helper.c (get_mapping): Initialize datasize field.
++	(__nscd_get_map_ref): Get a new mapping even if mapping's data_size
++	increased.
++	(__nscd_cache_search): Add checks to make sure we never reference
++	data beyond the current mapping.
++
++2006-10-02  Dmitry V. Levin  <ldv at altlinux.org>
++
++	* sysdeps/posix/getaddrinfo.c (match_prefix): Make mask and val
++	variables const to avoid compiler warnings.
++
++	* io/fts.c (fts_close): Remove redundant checks.
++	(fts_build): Likewise.
++	(fts_palloc): Likewise.
++
++	* manual/message.texi (Advanced gettext functions,
++	Using gettextized software): Fix typos.
++
++2006-09-30  Ulrich Drepper  <drepper at redhat.com>
++
++	* posix/glob.c (glob_in_dir): Add some comments and asserts to
++	explain why there are no leaks.
++
+ 2006-09-29  Ulrich Drepper  <drepper at redhat.com>
+ 
++	* libio/wmemstream.c: Include <wchar.h>.
++	* libio/bug-wmemstream1.c: Likewise.
++	* libio/tst-wmemstream1.c: Likewise.
++	* libio/tst-wmemstream2.c: Likewise.
++
+ 	* version.h (RELEASE): Bump to 2.5.
+ 	* README: Regenerated.
+ 
+Index: libc/README
+diff -u libc/README:1.80 libc/README:1.81
+--- libc/README:1.80	Fri Sep 29 19:42:12 2006
++++ libc/README	Mon Oct  2 18:11:52 2006
+@@ -10,13 +10,6 @@
+ implement the operating system behavior seen by user applications.
+ In GNU/Hurd systems, it works with a microkernel and Hurd servers.
+ 
+-Version 2.4 is the first release after a long period of development, and
+-introduces changes to the API and a new ABI for all configurations.  It
+-has been tested and deployed in new production systems, but should still
+-be considered somewhat experimental.  The stable 2.3 release series
+-continues to be maintained, and implements a widely-deployed ABI.
+-Version 2.3.6 is available, and we will release 2.3.7 with more bug fixes.
+-
+ The GNU C Library implements much of the POSIX.1 functionality in the
+ GNU/Hurd system, using configurations i[34567]86-*-gnu.
+ 
+Index: libc/README.template
+diff -u libc/README.template:1.45 libc/README.template:1.46
+--- libc/README.template:1.45	Mon Mar  6 10:59:31 2006
++++ libc/README.template	Mon Oct  2 18:10:43 2006
+@@ -10,13 +10,6 @@
+ implement the operating system behavior seen by user applications.
+ In GNU/Hurd systems, it works with a microkernel and Hurd servers.
+ 
+-Version 2.4 is the first release after a long period of development, and
+-introduces changes to the API and a new ABI for all configurations.  It
+-has been tested and deployed in new production systems, but should still
+-be considered somewhat experimental.  The stable 2.3 release series
+-continues to be maintained, and implements a widely-deployed ABI.
+-Version 2.3.6 is available, and we will release 2.3.7 with more bug fixes.
+-
+ The GNU C Library implements much of the POSIX.1 functionality in the
+ GNU/Hurd system, using configurations i[34567]86-*-gnu.
+ 
+Index: libc/elf/Makefile
+diff -u libc/elf/Makefile:1.315 libc/elf/Makefile:1.315.2.1
+--- libc/elf/Makefile:1.315	Tue Sep 19 15:41:41 2006
++++ libc/elf/Makefile	Fri Jan 12 15:21:33 2007
+@@ -171,7 +171,7 @@
+ 	 tst-dlmopen1 tst-dlmopen2 tst-dlmopen3 \
+ 	 unload3 unload4 unload5 unload6 unload7 tst-global1 order2 \
+ 	 tst-audit1 tst-audit2 \
+-	 tst-stackguard1 tst-addr1
++	 tst-stackguard1 tst-addr1 tst-thrlock
+ #	 reldep9
+ test-srcs = tst-pathopt
+ tests-vis-yes = vismain
+@@ -916,3 +916,5 @@
+ tst-leaks1-ENV = MALLOC_TRACE=$(objpfx)tst-leaks1.mtrace
+ 
+ $(objpfx)tst-addr1: $(libdl)
++
++$(objpfx)tst-thrlock: $(libdl) $(shared-thread-library)
+Index: libc/elf/dl-close.c
+diff -u libc/elf/dl-close.c:1.117 libc/elf/dl-close.c:1.117.2.1
+--- libc/elf/dl-close.c:1.117	Tue Sep 19 15:39:42 2006
++++ libc/elf/dl-close.c	Fri Jan 12 15:21:33 2007
+@@ -101,22 +101,9 @@
+ 
+ 
+ void
+-_dl_close (void *_map)
++_dl_close_worker (struct link_map *map)
+ {
+-  struct link_map *map = _map;
+   Lmid_t ns = map->l_ns;
+-  unsigned int i;
+-  /* First see whether we can remove the object at all.  */
+-  if (__builtin_expect (map->l_flags_1 & DF_1_NODELETE, 0)
+-      && map->l_init_called)
+-    /* Nope.  Do nothing.  */
+-    return;
+-
+-  if (__builtin_expect (map->l_direct_opencount, 1) == 0)
+-    GLRO(dl_signal_error) (0, map->l_name, NULL, N_("shared object not open"));
+-
+-  /* Acquire the lock.  */
+-  __rtld_lock_lock_recursive (GL(dl_load_lock));
+ 
+   /* One less direct use.  */
+   --map->l_direct_opencount;
+@@ -137,7 +124,6 @@
+ 	_dl_debug_printf ("\nclosing file=%s; direct_opencount=%u\n",
+ 			  map->l_name, map->l_direct_opencount);
+ 
+-      __rtld_lock_unlock_recursive (GL(dl_load_lock));
+       return;
+     }
+ 
+@@ -240,7 +226,7 @@
+ #endif
+   bool unload_any = false;
+   unsigned int first_loaded = ~0;
+-  for (i = 0; i < nloaded; ++i)
++  for (unsigned int i = 0; i < nloaded; ++i)
+     {
+       struct link_map *imap = maps[i];
+ 
+@@ -411,7 +397,7 @@
+ 
+   /* Check each element of the search list to see if all references to
+      it are gone.  */
+-  for (i = first_loaded; i < nloaded; ++i)
++  for (unsigned int i = first_loaded; i < nloaded; ++i)
+     {
+       struct link_map *imap = maps[i];
+       if (!used[i])
+@@ -627,6 +613,30 @@
+     goto retry;
+ 
+   dl_close_state = not_pending;
++}
++
++
++void
++_dl_close (void *_map)
++{
++  struct link_map *map = _map;
++
++  /* First see whether we can remove the object at all.  */
++  if (__builtin_expect (map->l_flags_1 & DF_1_NODELETE, 0))
++    {
++      assert (map->l_init_called);
++      /* Nope.  Do nothing.  */
++      return;
++    }
++
++  if (__builtin_expect (map->l_direct_opencount, 1) == 0)
++    GLRO(dl_signal_error) (0, map->l_name, NULL, N_("shared object not open"));
++
++  /* Acquire the lock.  */
++  __rtld_lock_lock_recursive (GL(dl_load_lock));
++
++  _dl_close_worker (map);
++
+   __rtld_lock_unlock_recursive (GL(dl_load_lock));
+ }
+ 
+Index: libc/elf/dl-debug.c
+diff -u libc/elf/dl-debug.c:1.16 libc/elf/dl-debug.c:1.16.2.1
+--- libc/elf/dl-debug.c:1.16	Wed Mar  1 06:18:30 2006
++++ libc/elf/dl-debug.c	Fri Jan 12 14:54:57 2007
+@@ -54,7 +54,7 @@
+   else
+     r = &GL(dl_ns)[ns]._ns_debug;
+ 
+-  if (r->r_brk == 0 || ldbase != 0)
++  if (r->r_map == NULL || ldbase != 0)
+     {
+       /* Tell the debugger where to find the map of loaded objects.  */
+       r->r_version = 1	/* R_DEBUG_VERSION XXX */;
+Index: libc/elf/dl-load.c
+diff -u libc/elf/dl-load.c:1.279 libc/elf/dl-load.c:1.279.2.1
+--- libc/elf/dl-load.c:1.279	Tue Aug 29 02:43:42 2006
++++ libc/elf/dl-load.c	Fri Jan 12 15:28:03 2007
+@@ -511,7 +511,7 @@
+ }
+ 
+ 
+-static void
++static bool
+ internal_function
+ decompose_rpath (struct r_search_path_struct *sps,
+ 		 const char *rpath, struct link_map *l, const char *what)
+@@ -546,19 +546,8 @@
+ 	    {
+ 	      /* This object is on the list of objects for which the
+ 		 RUNPATH and RPATH must not be used.  */
<<Diff was trimmed, longer than 597 lines>>


More information about the pld-cvs-commit mailing list