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  <[EMAIL PROTECTED]>
++
++      * 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  <[EMAIL PROTECTED]>
++
++      * 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  <[EMAIL PROTECTED]>
++
++      * stdlib/Makefile (tst-strtod3-ENV): Define.
++
++2006-12-11  Ulrich Drepper  <[EMAIL PROTECTED]>
++
++      * 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  <[EMAIL PROTECTED]>
++
++      [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  <[EMAIL PROTECTED]>
++
++      * string/Makefile (tst-strxfrm2-ENV): Define.
++
++2006-11-10  Jakub Jelinek  <[EMAIL PROTECTED]>
++
++      * 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  <[EMAIL PROTECTED]>
++
++      * string/Makefile (tests): Add tst-strxfrm2.
++      * string/tst-strxfrm2.c: New file.
++
++2006-11-08  Jakub Jelinek  <[EMAIL PROTECTED]>
++
++      * string/strxfrm_l.c (STRXFRM): Do the trailing \1 removal
++      optimization even if needed > n.
++
++2006-12-22  Gavin Romig-Koch  <[EMAIL PROTECTED]>
++
++      * 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  <[EMAIL PROTECTED]>
++
++      * include/atomic.h (atomic_forced_read): New macro.
++
++2006-12-19  Jakub Jelinek  <[EMAIL PROTECTED]>
++
++      * 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  <[EMAIL PROTECTED]>
++
++      [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  <[EMAIL PROTECTED]>
++
++      * misc/tst-pselect.c (do_test): Fix sigblock argument.
++
++2006-12-14  Ulrich Drepper  <[EMAIL PROTECTED]>
++
++      * misc/tst-pselect.c (do_test): Make sure the helper process is
++      terminating when the test is aborted.
++
++2006-12-13  Ulrich Drepper  <[EMAIL PROTECTED]>
++
++      [BZ #2337]
++      * libio/Makefile (tests): Add tst-setvbuf1.
++      * libio/tst-setvbuf1.c: New file.
++
++2006-12-08  Jakub Jelinek  <[EMAIL PROTECTED]>
++
++      [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  <[EMAIL PROTECTED]>
++
++      [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  <[EMAIL PROTECTED]>
++
++      * 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  <[EMAIL PROTECTED]>
++
++      [BZ #3632]
++      * include/features.h: Fix comment about default value for
++      _POSIX_C_SOURCE.
++
++2006-12-09  Jakub Jelinek  <[EMAIL PROTECTED]>
++
++      * 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  <[EMAIL PROTECTED]>
++
++      * nis/nis_subr.c (nis_getnames): Revert last change.
++
++2006-10-11  Jakub Jelinek  <[EMAIL PROTECTED]>
++
++      * 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  <[EMAIL PROTECTED]>
++
++      * 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  <[EMAIL PROTECTED]>
++
++      * 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  <[EMAIL PROTECTED]>
++
++      * 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  <[EMAIL PROTECTED]>
++
++      [BZ #3559]
++      * sunrpc/svc_run.c (svc_run): Fail instead of segfaulting if
++      malloc crashed.
++
++2006-11-14  Jakub Jelinek  <[EMAIL PROTECTED]>
++
++      * nss/nss_files/files-alias.c (get_next_alias): Set line back
++      to first_unused after parsing :include: file.
++
++2006-11-14  Ulrich Drepper  <[EMAIL PROTECTED]>
++
++      * po/nl.po: Update from translation team.
++
++2006-11-10  Ulrich Drepper  <[EMAIL PROTECTED]>
++
++      * po/sv.po: Update from translation team.
++
++2006-11-01  Ulrich Drepper  <[EMAIL PROTECTED]>
++
++      * po/sv.po: Update from translation team.
++
++2006-10-29  Ulrich Drepper  <[EMAIL PROTECTED]>
++
++      * po/sv.po: Update from translation team.
++
++2006-10-09  Ulrich Drepper  <[EMAIL PROTECTED]>
++
++      * po/sv.po: Update from translation team.
++
++2006-10-07  Ulrich Drepper  <[EMAIL PROTECTED]>
++
++      * po/tr.po: Update from translation team.
++
++2006-10-06  Ulrich Drepper  <[EMAIL PROTECTED]>
++
++      * po/pl.po: Update from translation team.
++
++2006-11-10  Ulrich Drepper  <[EMAIL PROTECTED]>
++
++      [BZ #3451]
++      * sysdeps/i386/fpu/bits/mathinline.h (floor): Make rounding mode
++      change atomic.
++      (ceil): Likewise.
++
++2006-11-09  Ulrich Drepper  <[EMAIL PROTECTED]>
++
++      * sysdeps/unix/sysv/linux/x86_64/sysconf.c (intel_check_word): Add
++      noinline attribute.
++
++2006-11-10  Jakub Jelinek  <[EMAIL PROTECTED]>
++
++      * sysdeps/unix/sysv/linux/i386/sysconf.c (intel_check_word): Add
++      noinline attribute.
++
++2006-11-05  Ulrich Drepper  <[EMAIL PROTECTED]>
++
++      * 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  <[EMAIL PROTECTED]>
++
++      * 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  <[EMAIL PROTECTED]>
++
++      * malloc/memusage.c (dest): Reset not_me back to false after
++      printing statistics.
++
++2006-10-27  Ulrich Drepper  <[EMAIL PROTECTED]>
++
++      * 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 <[EMAIL PROTECTED]>.
++
++2006-10-17  Jakub Jelinek  <[EMAIL PROTECTED]>
++
++      * 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  <[EMAIL PROTECTED]>
++
++      [BZ #3369]
++      * sysdeps/posix/getaddrinfo.c (rfc3484_sort): Fix typos in rules 4
++      and 7.
++
++2006-10-13  Ulrich Drepper  <[EMAIL PROTECTED]>
++
++      * elf/dl-minimal.c (realloc): Optimize last patch.
++
++2006-10-12  Richard Sandiford  <[EMAIL PROTECTED]>
++
++      [BZ #3352]
++      * elf/dl-minimal.c (realloc): Let malloc() return a new pointer,
++      and use memcpy() if it does.
++
++2006-10-11  Ulrich Drepper  <[EMAIL PROTECTED]>
++
++      * sysdeps/unix/sysv/linux/i386/sysdep.h (DOARGS_6): Fix offset.
++
++2006-10-10  Ulrich Drepper  <[EMAIL PROTECTED]>
++
++      * 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  <[EMAIL PROTECTED]>
++
++      * elf/dl-debug.c (_dl_debug_initialize): Check r->r_map for 0
++      rather than r->r_brk.
++
++2006-10-06  Ulrich Drepper  <[EMAIL PROTECTED]>
++
++      * 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  <[EMAIL PROTECTED]>
++
++      * 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  <[EMAIL PROTECTED]>
++
++      * include/features.h (__GLIBC_MINOR__): It's glibc 2.5 now.
++
++2006-10-06  Ulrich Drepper  <[EMAIL PROTECTED]>
++
++      * po/pl.po: Update from translation team.
++
++      * nscd/nscd.c (main): Fix typo in message.
++      Patch by Jakub Bogsz <[EMAIL PROTECTED]>.
++
++2006-10-02  Jakub Jelinek  <[EMAIL PROTECTED]>
++
++      [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  <[EMAIL PROTECTED]>
++
++      * elf/rtld.c (dl_main): Don't use prelinking if LD_DYNAMIC_WEAK is
++      used.
++
++2006-10-02  Jakub Jelinek  <[EMAIL PROTECTED]>
++
++      * 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  <[EMAIL PROTECTED]>
++
++      * 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  <[EMAIL PROTECTED]>
++
++      * posix/glob.c (glob_in_dir): Add some comments and asserts to
++      explain why there are no leaks.
++
+ 2006-09-29  Ulrich Drepper  <[EMAIL PROTECTED]>
+ 
++      * 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>>
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to