about summary refs log tree commit diff
path: root/elf
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2008-03-08 07:35:10 +0000
committerUlrich Drepper <drepper@redhat.com>2008-03-08 07:35:10 +0000
commit7c22c7ec9a8170f3d1006ddf21d74cd9d2316332 (patch)
treefba9543f411d48001c40e81cd32b0ed44c0d5928 /elf
parent93025f9373f4efde62aab31aa03c4744fd3bed62 (diff)
downloadglibc-7c22c7ec9a8170f3d1006ddf21d74cd9d2316332.tar.gz
glibc-7c22c7ec9a8170f3d1006ddf21d74cd9d2316332.tar.xz
glibc-7c22c7ec9a8170f3d1006ddf21d74cd9d2316332.zip
[BZ #5786]
	* elf/dl-sysdep.c: Undefine ROUND after use.
	* sysdeps/generic/ldsodefs.h [HAVE_DL_DISCOVER_OSVERSION]
	(struct rtld_global_ro): Add _dl_tls_get_addr_soft element.
	* elf/rtld.c (rtld_global_ro): Initialize _dl_discover_osversion.
	* sysdeps/unix/sysv/linux/dl-osinfo.h: Move _dl_discover_osversion
	to ...
	* sysdeps/unix/sysv/linux/dl-sysdep.c: ...here.
	* sysdeps/unix/sysv/linux/dl-sysdep.h: Declare _dl_discover_osversion
	if necessary.
	* sysdeps/unix/sysv/linux/sysconf.c: Handle _SC_ARG_MAX here.
Diffstat (limited to 'elf')
-rw-r--r--elf/dl-sysdep.c3
-rw-r--r--elf/dl-tls.c1
-rw-r--r--elf/rtld.c5
3 files changed, 6 insertions, 3 deletions
diff --git a/elf/dl-sysdep.c b/elf/dl-sysdep.c
index 85e331a90f..dd55905e14 100644
--- a/elf/dl-sysdep.c
+++ b/elf/dl-sysdep.c
@@ -1,5 +1,5 @@
 /* Operating system support for run-time dynamic linker.  Generic Unix version.
-   Copyright (C) 1995-1998, 2000-2006, 2007 Free Software Foundation, Inc.
+   Copyright (C) 1995-1998, 2000-2007, 2008 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
@@ -398,6 +398,7 @@ _dl_important_hwcaps (const char *platform, size_t platform_len, size_t *sz,
 		  }
 		note = ((const void *) (note + 1)
 			+ ROUND (note->vendorlen) + ROUND (note->datalen));
+#undef ROUND
 	      }
 	    if (dsocaps != NULL)
 	      break;
diff --git a/elf/dl-tls.c b/elf/dl-tls.c
index deed47249f..76a3f25c0f 100644
--- a/elf/dl-tls.c
+++ b/elf/dl-tls.c
@@ -758,7 +758,6 @@ __tls_get_addr (GET_ADDR_ARGS)
 /* Look up the module's TLS block as for __tls_get_addr,
    but never touch anything.  Return null if it's not allocated yet.  */
 void *
-attribute_hidden
 _dl_tls_get_addr_soft (struct link_map *l)
 {
   if (__builtin_expect (l->l_tls_modid == 0, 0))
diff --git a/elf/rtld.c b/elf/rtld.c
index 9497e5d43f..46bece7fa3 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -162,7 +162,10 @@ struct rtld_global_ro _rtld_global_ro attribute_relro =
     ._dl_check_caller = _dl_check_caller,
     ._dl_open = _dl_open,
     ._dl_close = _dl_close,
-    ._dl_tls_get_addr_soft = _dl_tls_get_addr_soft
+    ._dl_tls_get_addr_soft = _dl_tls_get_addr_soft,
+#ifdef HAVE_DL_DISCOVER_OSVERSION
+    ._dl_discover_osversion = _dl_discover_osversion
+#endif
   };
 /* If we would use strong_alias here the compiler would see a
    non-hidden definition.  This would undo the effect of the previous