Module Name: src
Committed By: joerg
Date: Thu Feb 16 23:00:39 UTC 2012
Modified Files:
src/distrib/sets/lists/base: ad.mips64eb ad.mips64el md.amd64
md.sparc64 shl.mi
src/distrib/sets/lists/comp: ad.mips64eb ad.mips64el md.amd64
md.sparc64 shl.mi
src/include: dlfcn.h
src/lib/libc: shlib_version
src/lib/libc/dlfcn: dlfcn_elf.c
src/lib/libc/misc: initfini.c
src/libexec/ld.elf_so: rtld.c rtld.h symbol.c
Log Message:
Add _dlauxinfo helper function to provide access to the ELF auxilary
vector. This can normally be found via __ps_strings, but libc is
initialised too early when linked dynamically and doesn't have access to
it yet, so provide an alternative mechanism via ld.elf_so.
Bump libc minor.
To generate a diff of this commit:
cvs rdiff -u -r1.82 -r1.83 src/distrib/sets/lists/base/ad.mips64eb
cvs rdiff -u -r1.81 -r1.82 src/distrib/sets/lists/base/ad.mips64el
cvs rdiff -u -r1.156 -r1.157 src/distrib/sets/lists/base/md.amd64
cvs rdiff -u -r1.147 -r1.148 src/distrib/sets/lists/base/md.sparc64
cvs rdiff -u -r1.616 -r1.617 src/distrib/sets/lists/base/shl.mi
cvs rdiff -u -r1.69 -r1.70 src/distrib/sets/lists/comp/ad.mips64eb \
src/distrib/sets/lists/comp/ad.mips64el
cvs rdiff -u -r1.155 -r1.156 src/distrib/sets/lists/comp/md.amd64
cvs rdiff -u -r1.138 -r1.139 src/distrib/sets/lists/comp/md.sparc64
cvs rdiff -u -r1.209 -r1.210 src/distrib/sets/lists/comp/shl.mi
cvs rdiff -u -r1.23 -r1.24 src/include/dlfcn.h
cvs rdiff -u -r1.227 -r1.228 src/lib/libc/shlib_version
cvs rdiff -u -r1.10 -r1.11 src/lib/libc/dlfcn/dlfcn_elf.c
cvs rdiff -u -r1.9 -r1.10 src/lib/libc/misc/initfini.c
cvs rdiff -u -r1.155 -r1.156 src/libexec/ld.elf_so/rtld.c
cvs rdiff -u -r1.107 -r1.108 src/libexec/ld.elf_so/rtld.h
cvs rdiff -u -r1.59 -r1.60 src/libexec/ld.elf_so/symbol.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/distrib/sets/lists/base/ad.mips64eb
diff -u src/distrib/sets/lists/base/ad.mips64eb:1.82 src/distrib/sets/lists/base/ad.mips64eb:1.83
--- src/distrib/sets/lists/base/ad.mips64eb:1.82 Sat Feb 11 23:31:22 2012
+++ src/distrib/sets/lists/base/ad.mips64eb Thu Feb 16 23:00:38 2012
@@ -1,4 +1,4 @@
-# $NetBSD: ad.mips64eb,v 1.82 2012/02/11 23:31:22 martin Exp $
+# $NetBSD: ad.mips64eb,v 1.83 2012/02/16 23:00:38 joerg Exp $
./libexec/ld.elf_so-64 base-compat-shlib compat,pic
./libexec/ld.elf_so-o32 base-sysutil-bin compat,pic
./usr/lib/64 base-compat-lib
@@ -66,7 +66,7 @@
./usr/lib/64/libbz2.so.1 base-compat-shlib compat,pic
./usr/lib/64/libbz2.so.1.1 base-compat-shlib compat,pic
./usr/lib/64/libc.so.12 base-compat-shlib compat,pic
-./usr/lib/64/libc.so.12.181 base-compat-shlib compat,pic
+./usr/lib/64/libc.so.12.182 base-compat-shlib compat,pic
./usr/lib/64/libcom_err.so.7 base-compat-shlib compat,pic,kerberos
./usr/lib/64/libcom_err.so.7.0 base-compat-shlib compat,pic,kerberos
./usr/lib/64/libcrypt.so.1 base-compat-shlib compat,pic
@@ -362,7 +362,7 @@
./usr/lib/o32/libbz2.so.1 base-compat-shlib compat,pic
./usr/lib/o32/libbz2.so.1.1 base-compat-shlib compat,pic
./usr/lib/o32/libc.so.12 base-compat-shlib compat,pic
-./usr/lib/o32/libc.so.12.181 base-compat-shlib compat,pic
+./usr/lib/o32/libc.so.12.182 base-compat-shlib compat,pic
./usr/lib/o32/libcom_err.so.7 base-compat-shlib compat,pic,kerberos
./usr/lib/o32/libcom_err.so.7.0 base-compat-shlib compat,pic,kerberos
./usr/lib/o32/libcrypt.so.1 base-compat-shlib compat,pic
Index: src/distrib/sets/lists/base/ad.mips64el
diff -u src/distrib/sets/lists/base/ad.mips64el:1.81 src/distrib/sets/lists/base/ad.mips64el:1.82
--- src/distrib/sets/lists/base/ad.mips64el:1.81 Sat Feb 11 23:31:22 2012
+++ src/distrib/sets/lists/base/ad.mips64el Thu Feb 16 23:00:38 2012
@@ -1,4 +1,4 @@
-# $NetBSD: ad.mips64el,v 1.81 2012/02/11 23:31:22 martin Exp $
+# $NetBSD: ad.mips64el,v 1.82 2012/02/16 23:00:38 joerg Exp $
./libexec/ld.elf_so-64 base-compat-shlib compat,pic
./libexec/ld.elf_so-o32 base-sysutil-bin compat,pic
./usr/lib/64 base-compat-lib
@@ -66,7 +66,7 @@
./usr/lib/64/libbz2.so.1 base-compat-shlib compat,pic
./usr/lib/64/libbz2.so.1.1 base-compat-shlib compat,pic
./usr/lib/64/libc.so.12 base-compat-shlib compat,pic
-./usr/lib/64/libc.so.12.181 base-compat-shlib compat,pic
+./usr/lib/64/libc.so.12.182 base-compat-shlib compat,pic
./usr/lib/64/libcom_err.so.7 base-compat-shlib compat,pic,kerberos
./usr/lib/64/libcom_err.so.7.0 base-compat-shlib compat,pic,kerberos
./usr/lib/64/libcrypt.so.1 base-compat-shlib compat,pic
@@ -362,7 +362,7 @@
./usr/lib/o32/libbz2.so.1 base-compat-shlib compat,pic
./usr/lib/o32/libbz2.so.1.1 base-compat-shlib compat,pic
./usr/lib/o32/libc.so.12 base-compat-shlib compat,pic
-./usr/lib/o32/libc.so.12.181 base-compat-shlib compat,pic
+./usr/lib/o32/libc.so.12.182 base-compat-shlib compat,pic
./usr/lib/o32/libcom_err.so.7 base-compat-shlib compat,pic,kerberos
./usr/lib/o32/libcom_err.so.7.0 base-compat-shlib compat,pic,kerberos
./usr/lib/o32/libcrypt.so.1 base-compat-shlib compat,pic
Index: src/distrib/sets/lists/base/md.amd64
diff -u src/distrib/sets/lists/base/md.amd64:1.156 src/distrib/sets/lists/base/md.amd64:1.157
--- src/distrib/sets/lists/base/md.amd64:1.156 Sat Feb 11 23:31:22 2012
+++ src/distrib/sets/lists/base/md.amd64 Thu Feb 16 23:00:38 2012
@@ -1,4 +1,4 @@
-# $NetBSD: md.amd64,v 1.156 2012/02/11 23:31:22 martin Exp $
+# $NetBSD: md.amd64,v 1.157 2012/02/16 23:00:38 joerg Exp $
./dev/lms0 base-obsolete obsolete
./dev/mms0 base-obsolete obsolete
./libexec/ld.elf_so-i386 base-sys-shlib compat,pic
@@ -69,7 +69,7 @@
./usr/lib/i386/libbz2.so.1 base-compat-shlib compat,pic
./usr/lib/i386/libbz2.so.1.1 base-compat-shlib compat,pic
./usr/lib/i386/libc.so.12 base-compat-shlib compat,pic
-./usr/lib/i386/libc.so.12.181 base-compat-shlib compat,pic
+./usr/lib/i386/libc.so.12.182 base-compat-shlib compat,pic
./usr/lib/i386/libcom_err.so.7 base-compat-shlib compat,pic,kerberos
./usr/lib/i386/libcom_err.so.7.0 base-compat-shlib compat,pic,kerberos
./usr/lib/i386/libcrypt.so.1 base-compat-shlib compat,pic
Index: src/distrib/sets/lists/base/md.sparc64
diff -u src/distrib/sets/lists/base/md.sparc64:1.147 src/distrib/sets/lists/base/md.sparc64:1.148
--- src/distrib/sets/lists/base/md.sparc64:1.147 Sat Feb 11 23:31:22 2012
+++ src/distrib/sets/lists/base/md.sparc64 Thu Feb 16 23:00:38 2012
@@ -1,4 +1,4 @@
-# $NetBSD: md.sparc64,v 1.147 2012/02/11 23:31:22 martin Exp $
+# $NetBSD: md.sparc64,v 1.148 2012/02/16 23:00:38 joerg Exp $
./libexec/ld.elf_so-sparc base-sysutil-bin compat,pic
./sbin/edlabel base-sysutil-root obsolete
./usr/bin/fdformat base-util-bin
@@ -67,7 +67,7 @@
./usr/lib/sparc/libbz2.so.1 base-compat-shlib compat,pic
./usr/lib/sparc/libbz2.so.1.1 base-compat-shlib compat,pic
./usr/lib/sparc/libc.so.12 base-compat-shlib compat,pic
-./usr/lib/sparc/libc.so.12.181 base-compat-shlib compat,pic
+./usr/lib/sparc/libc.so.12.182 base-compat-shlib compat,pic
./usr/lib/sparc/libcom_err.so.7 base-compat-shlib compat,pic,kerberos
./usr/lib/sparc/libcom_err.so.7.0 base-compat-shlib compat,pic,kerberos
./usr/lib/sparc/libcrypt.so.1 base-compat-shlib compat,pic
Index: src/distrib/sets/lists/base/shl.mi
diff -u src/distrib/sets/lists/base/shl.mi:1.616 src/distrib/sets/lists/base/shl.mi:1.617
--- src/distrib/sets/lists/base/shl.mi:1.616 Sat Feb 11 23:31:22 2012
+++ src/distrib/sets/lists/base/shl.mi Thu Feb 16 23:00:38 2012
@@ -1,4 +1,4 @@
-# $NetBSD: shl.mi,v 1.616 2012/02/11 23:31:22 martin Exp $
+# $NetBSD: shl.mi,v 1.617 2012/02/16 23:00:38 joerg Exp $
#
# Note: Don't delete entries from here - mark them as "obsolete" instead,
# unless otherwise stated below.
@@ -15,7 +15,7 @@
#
./lib/libc.so base-sys-shlib dynamicroot
./lib/libc.so.12 base-sys-shlib dynamicroot
-./lib/libc.so.12.181 base-sys-shlib dynamicroot
+./lib/libc.so.12.182 base-sys-shlib dynamicroot
./lib/libcrypt.so base-sys-shlib dynamicroot
./lib/libcrypt.so.1 base-sys-shlib dynamicroot
./lib/libcrypt.so.1.0 base-sys-shlib dynamicroot
@@ -173,7 +173,7 @@
./usr/lib/libbz2.so.1.1 base-sys-shlib
./usr/lib/libc.so base-sys-shlib
./usr/lib/libc.so.12 base-sys-shlib
-./usr/lib/libc.so.12.181 base-sys-shlib
+./usr/lib/libc.so.12.182 base-sys-shlib
./usr/lib/libcdk.so base-obsolete obsolete
./usr/lib/libcom_err.so base-krb5-shlib kerberos
./usr/lib/libcom_err.so.7 base-krb5-shlib kerberos
Index: src/distrib/sets/lists/comp/ad.mips64eb
diff -u src/distrib/sets/lists/comp/ad.mips64eb:1.69 src/distrib/sets/lists/comp/ad.mips64eb:1.70
--- src/distrib/sets/lists/comp/ad.mips64eb:1.69 Sun Feb 12 10:01:57 2012
+++ src/distrib/sets/lists/comp/ad.mips64eb Thu Feb 16 23:00:38 2012
@@ -1,4 +1,4 @@
-# $NetBSD: ad.mips64eb,v 1.69 2012/02/12 10:01:57 njoly Exp $
+# $NetBSD: ad.mips64eb,v 1.70 2012/02/16 23:00:38 joerg Exp $
./usr/bin/elf2aout comp-obsolete obsolete
./usr/bin/elf2ecoff comp-sysutil-bin
./usr/include/gcc-4.5/loongson.h comp-c-include gcccmds,gcc=45
@@ -1266,7 +1266,7 @@
./usr/libdata/debug/usr/lib/64/libbluetooth.so.4.2.debug comp-sys-debug debug,compat
./usr/libdata/debug/usr/lib/64/libbsdmalloc.so.0.0.debug comp-sys-debug debug,compat
./usr/libdata/debug/usr/lib/64/libbz2.so.1.1.debug comp-sys-debug debug,compat
-./usr/libdata/debug/usr/lib/64/libc.so.12.181.debug comp-sys-debug debug,compat
+./usr/libdata/debug/usr/lib/64/libc.so.12.182.debug comp-sys-debug debug,compat
./usr/libdata/debug/usr/lib/64/libcom_err.so.6.0.debug comp-compat-shlib compat,pic,kerberos,debug,obsolete
./usr/libdata/debug/usr/lib/64/libcom_err.so.7.0.debug comp-compat-shlib compat,pic,kerberos,debug
./usr/libdata/debug/usr/lib/64/libcrypt.so.1.0.debug comp-sys-debug debug,compat
@@ -1418,7 +1418,7 @@
./usr/libdata/debug/usr/lib/o32/libbluetooth.so.4.2.debug comp-sys-debug debug,compat
./usr/libdata/debug/usr/lib/o32/libbsdmalloc.so.0.0.debug comp-sys-debug debug,compat
./usr/libdata/debug/usr/lib/o32/libbz2.so.1.1.debug comp-sys-debug debug,compat
-./usr/libdata/debug/usr/lib/o32/libc.so.12.181.debug comp-sys-debug debug,compat
+./usr/libdata/debug/usr/lib/o32/libc.so.12.182.debug comp-sys-debug debug,compat
./usr/libdata/debug/usr/lib/o32/libcom_err.so.6.0.debug comp-compat-shlib compat,pic,kerberos,debug,obsolete
./usr/libdata/debug/usr/lib/o32/libcom_err.so.7.0.debug comp-compat-shlib compat,pic,kerberos,debug
./usr/libdata/debug/usr/lib/o32/libcrypt.so.1.0.debug comp-sys-debug debug,compat
Index: src/distrib/sets/lists/comp/ad.mips64el
diff -u src/distrib/sets/lists/comp/ad.mips64el:1.69 src/distrib/sets/lists/comp/ad.mips64el:1.70
--- src/distrib/sets/lists/comp/ad.mips64el:1.69 Sun Feb 12 10:01:57 2012
+++ src/distrib/sets/lists/comp/ad.mips64el Thu Feb 16 23:00:38 2012
@@ -1,4 +1,4 @@
-# $NetBSD: ad.mips64el,v 1.69 2012/02/12 10:01:57 njoly Exp $
+# $NetBSD: ad.mips64el,v 1.70 2012/02/16 23:00:38 joerg Exp $
./usr/bin/elf2aout comp-obsolete obsolete
./usr/bin/elf2ecoff comp-sysutil-bin
./usr/include/gcc-4.5/loongson.h comp-c-include gcccmds,gcc=45
@@ -1266,7 +1266,7 @@
./usr/libdata/debug/usr/lib/64/libbluetooth.so.4.2.debug comp-sys-debug debug,compat
./usr/libdata/debug/usr/lib/64/libbsdmalloc.so.0.0.debug comp-sys-debug debug,compat
./usr/libdata/debug/usr/lib/64/libbz2.so.1.1.debug comp-sys-debug debug,compat
-./usr/libdata/debug/usr/lib/64/libc.so.12.181.debug comp-sys-debug debug,compat
+./usr/libdata/debug/usr/lib/64/libc.so.12.182.debug comp-sys-debug debug,compat
./usr/libdata/debug/usr/lib/64/libcom_err.so.6.0.debug comp-compat-shlib compat,pic,kerberos,debug,obsolete
./usr/libdata/debug/usr/lib/64/libcom_err.so.7.0.debug comp-compat-shlib compat,pic,kerberos,debug
./usr/libdata/debug/usr/lib/64/libcrypt.so.1.0.debug comp-sys-debug debug,compat
@@ -1418,7 +1418,7 @@
./usr/libdata/debug/usr/lib/o32/libbluetooth.so.4.2.debug comp-sys-debug debug,compat
./usr/libdata/debug/usr/lib/o32/libbsdmalloc.so.0.0.debug comp-sys-debug debug,compat
./usr/libdata/debug/usr/lib/o32/libbz2.so.1.1.debug comp-sys-debug debug,compat
-./usr/libdata/debug/usr/lib/o32/libc.so.12.181.debug comp-sys-debug debug,compat
+./usr/libdata/debug/usr/lib/o32/libc.so.12.182.debug comp-sys-debug debug,compat
./usr/libdata/debug/usr/lib/o32/libcom_err.so.6.0.debug comp-compat-shlib compat,pic,kerberos,debug,obsolete
./usr/libdata/debug/usr/lib/o32/libcom_err.so.7.0.debug comp-compat-shlib compat,pic,kerberos,debug
./usr/libdata/debug/usr/lib/o32/libcrypt.so.1.0.debug comp-sys-debug debug,compat
Index: src/distrib/sets/lists/comp/md.amd64
diff -u src/distrib/sets/lists/comp/md.amd64:1.155 src/distrib/sets/lists/comp/md.amd64:1.156
--- src/distrib/sets/lists/comp/md.amd64:1.155 Sun Feb 12 10:01:57 2012
+++ src/distrib/sets/lists/comp/md.amd64 Thu Feb 16 23:00:39 2012
@@ -1,4 +1,4 @@
-# $NetBSD: md.amd64,v 1.155 2012/02/12 10:01:57 njoly Exp $
+# $NetBSD: md.amd64,v 1.156 2012/02/16 23:00:39 joerg Exp $
./usr/include/amd64 comp-c-include
./usr/include/amd64/ansi.h comp-c-include
./usr/include/amd64/aout_machdep.h comp-c-include
@@ -1048,7 +1048,7 @@
./usr/libdata/debug/usr/lib/i386/libbluetooth.so.4.2.debug comp-compat-shlib compat,pic,debug
./usr/libdata/debug/usr/lib/i386/libbsdmalloc.so.0.0.debug comp-compat-shlib compat,pic,debug
./usr/libdata/debug/usr/lib/i386/libbz2.so.1.1.debug comp-compat-shlib compat,pic,debug
-./usr/libdata/debug/usr/lib/i386/libc.so.12.181.debug comp-compat-shlib compat,pic,debug
+./usr/libdata/debug/usr/lib/i386/libc.so.12.182.debug comp-compat-shlib compat,pic,debug
./usr/libdata/debug/usr/lib/i386/libcom_err.so.6.0.debug comp-compat-shlib compat,pic,kerberos,debug,obsolete
./usr/libdata/debug/usr/lib/i386/libcom_err.so.7.0.debug comp-compat-shlib compat,pic,kerberos,debug
./usr/libdata/debug/usr/lib/i386/libcrypt.so.1.0.debug comp-compat-shlib compat,pic,debug
Index: src/distrib/sets/lists/comp/md.sparc64
diff -u src/distrib/sets/lists/comp/md.sparc64:1.138 src/distrib/sets/lists/comp/md.sparc64:1.139
--- src/distrib/sets/lists/comp/md.sparc64:1.138 Sun Feb 12 10:01:57 2012
+++ src/distrib/sets/lists/comp/md.sparc64 Thu Feb 16 23:00:39 2012
@@ -1,4 +1,4 @@
-# $NetBSD: md.sparc64,v 1.138 2012/02/12 10:01:57 njoly Exp $
+# $NetBSD: md.sparc64,v 1.139 2012/02/16 23:00:39 joerg Exp $
./usr/include/gcc-4.5/tgmath.h comp-c-include gcccmds,gcc=45
./usr/include/ieeefp.h comp-c-include
./usr/include/sparc comp-c-include
@@ -891,7 +891,7 @@
./usr/libdata/debug/usr/lib/sparc/libbluetooth.so.4.2.debug comp-compat-shlib compat,pic,debug
./usr/libdata/debug/usr/lib/sparc/libbsdmalloc.so.0.0.debug comp-compat-shlib compat,pic,debug
./usr/libdata/debug/usr/lib/sparc/libbz2.so.1.1.debug comp-compat-shlib compat,pic,debug
-./usr/libdata/debug/usr/lib/sparc/libc.so.12.181.debug comp-compat-shlib compat,pic,debug
+./usr/libdata/debug/usr/lib/sparc/libc.so.12.182.debug comp-compat-shlib compat,pic,debug
./usr/libdata/debug/usr/lib/sparc/libcom_err.so.6.0.debug comp-compat-shlib compat,pic,kerberos,debug,obsolete
./usr/libdata/debug/usr/lib/sparc/libcom_err.so.7.0.debug comp-compat-shlib compat,pic,kerberos,debug
./usr/libdata/debug/usr/lib/sparc/libcrypt.so.1.0.debug comp-compat-shlib compat,pic,debug
Index: src/distrib/sets/lists/comp/shl.mi
diff -u src/distrib/sets/lists/comp/shl.mi:1.209 src/distrib/sets/lists/comp/shl.mi:1.210
--- src/distrib/sets/lists/comp/shl.mi:1.209 Sun Feb 12 10:01:58 2012
+++ src/distrib/sets/lists/comp/shl.mi Thu Feb 16 23:00:39 2012
@@ -1,4 +1,4 @@
-# $NetBSD: shl.mi,v 1.209 2012/02/12 10:01:58 njoly Exp $
+# $NetBSD: shl.mi,v 1.210 2012/02/16 23:00:39 joerg Exp $
#
# Note: don't delete entries from here - mark them as "obsolete" instead.
#
@@ -248,7 +248,7 @@
./usr/libdata/debug/usr/lib/libbluetooth.so.4.2.debug comp-sys-debug debug
./usr/libdata/debug/usr/lib/libbsdmalloc.so.0.0.debug comp-sys-debug debug
./usr/libdata/debug/usr/lib/libbz2.so.1.1.debug comp-sys-debug debug
-./usr/libdata/debug/usr/lib/libc.so.12.181.debug comp-sys-debug debug
+./usr/libdata/debug/usr/lib/libc.so.12.182.debug comp-sys-debug debug
./usr/libdata/debug/usr/lib/libcom_err.so.7.0.debug comp-krb5-debug kerberos,debug
./usr/libdata/debug/usr/lib/libcrypt.so.1.0.debug comp-sys-debug debug
./usr/libdata/debug/usr/lib/libcrypto.so.7.0.debug comp-crypto-debug crypto,debug
Index: src/include/dlfcn.h
diff -u src/include/dlfcn.h:1.23 src/include/dlfcn.h:1.24
--- src/include/dlfcn.h:1.23 Sat Jun 25 05:45:11 2011
+++ src/include/dlfcn.h Thu Feb 16 23:00:39 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: dlfcn.h,v 1.23 2011/06/25 05:45:11 nonaka Exp $ */
+/* $NetBSD: dlfcn.h,v 1.24 2012/02/16 23:00:39 joerg Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -48,6 +48,8 @@ typedef struct _dl_info {
* User interface to the run-time linker.
*/
__BEGIN_DECLS
+void *_dlauxinfo(void) __pure;
+
void *dlopen(const char *, int);
int dlclose(void *);
void *dlsym(void * __restrict, const char * __restrict);
Index: src/lib/libc/shlib_version
diff -u src/lib/libc/shlib_version:1.227 src/lib/libc/shlib_version:1.228
--- src/lib/libc/shlib_version:1.227 Sat Feb 11 23:31:24 2012
+++ src/lib/libc/shlib_version Thu Feb 16 23:00:39 2012
@@ -1,4 +1,4 @@
-# $NetBSD: shlib_version,v 1.227 2012/02/11 23:31:24 martin Exp $
+# $NetBSD: shlib_version,v 1.228 2012/02/16 23:00:39 joerg Exp $
# Remember to update distrib/sets/lists/base/shl.* when changing
#
# things we wish to do on next major version bump:
@@ -29,4 +29,4 @@
# it's insufficient bitwidth to implement all ctype class.
# see isblank's comment in ctype.h.
major=12
-minor=181
+minor=182
Index: src/lib/libc/dlfcn/dlfcn_elf.c
diff -u src/lib/libc/dlfcn/dlfcn_elf.c:1.10 src/lib/libc/dlfcn/dlfcn_elf.c:1.11
--- src/lib/libc/dlfcn/dlfcn_elf.c:1.10 Sat Jun 25 05:45:11 2011
+++ src/lib/libc/dlfcn/dlfcn_elf.c Thu Feb 16 23:00:39 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: dlfcn_elf.c,v 1.10 2011/06/25 05:45:11 nonaka Exp $ */
+/* $NetBSD: dlfcn_elf.c,v 1.11 2012/02/16 23:00:39 joerg Exp $ */
/*
* Copyright (c) 2000 Takuya SHIOZAKI
@@ -27,7 +27,7 @@
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: dlfcn_elf.c,v 1.10 2011/06/25 05:45:11 nonaka Exp $");
+__RCSID("$NetBSD: dlfcn_elf.c,v 1.11 2012/02/16 23:00:39 joerg Exp $");
#endif /* LIBC_SCCS and not lint */
#include "namespace.h"
@@ -149,21 +149,14 @@ static Elf_Addr dlpi_addr;
static const Elf_Phdr *dlpi_phdr;
static Elf_Half dlpi_phnum;
-/*
- * Declare as common symbol to allow new libc with older binaries to
- * not trigger an undefined reference.
- */
-extern __dso_hidden void *__auxinfo;
-
static void
dl_iterate_phdr_setup(void)
{
const AuxInfo *aux;
- if (__auxinfo == NULL)
- return;
+ _DIAGASSERT(_dlauxinfo() != NULL);
- for (aux = __auxinfo; aux->a_type != AT_NULL; ++aux) {
+ for (aux = _dlauxinfo(); aux->a_type != AT_NULL; ++aux) {
switch (aux->a_type) {
case AT_BASE:
dlpi_addr = aux->a_v;
@@ -189,9 +182,6 @@ dl_iterate_phdr(int (*callback)(struct d
static bool setup_done;
struct dl_phdr_info phdr_info;
- if (__auxinfo == NULL)
- return EOPNOTSUPP;
-
if (!setup_done) {
/*
* This can race on the first call to dl_iterate_phdr.
Index: src/lib/libc/misc/initfini.c
diff -u src/lib/libc/misc/initfini.c:1.9 src/lib/libc/misc/initfini.c:1.10
--- src/lib/libc/misc/initfini.c:1.9 Wed Mar 9 23:10:06 2011
+++ src/lib/libc/misc/initfini.c Thu Feb 16 23:00:39 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: initfini.c,v 1.9 2011/03/09 23:10:06 joerg Exp $ */
+/* $NetBSD: initfini.c,v 1.10 2012/02/16 23:00:39 joerg Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: initfini.c,v 1.9 2011/03/09 23:10:06 joerg Exp $");
+__RCSID("$NetBSD: initfini.c,v 1.10 2012/02/16 23:00:39 joerg Exp $");
#ifdef _LIBC
#include "namespace.h"
@@ -53,11 +53,27 @@ void __libc_env_init(void);
__dso_hidden void __libc_static_tls_setup(void);
#endif
+#ifdef __weak_alias
+__weak_alias(_dlauxinfo,___dlauxinfo)
+static void *__libc_dlauxinfo;
+
+void *___dlauxinfo(void) __pure;
+
+void *
+___dlauxinfo(void)
+{
+ return __libc_dlauxinfo;
+}
+#endif
+
static bool libc_initialised;
void _libc_init(void);
-__dso_hidden void *__auxinfo;
+/*
+ * Declare as common symbol to allow new libc with older binaries to
+ * not trigger an undefined reference.
+ */
struct ps_strings *__ps_strings;
/*
@@ -74,7 +90,7 @@ _libc_init(void)
libc_initialised = 1;
if (__ps_strings != NULL)
- __auxinfo = __ps_strings->ps_argvstr +
+ __libc_dlauxinfo = __ps_strings->ps_argvstr +
__ps_strings->ps_nargvstr + __ps_strings->ps_nenvstr + 2;
/* For -fstack-protector */
Index: src/libexec/ld.elf_so/rtld.c
diff -u src/libexec/ld.elf_so/rtld.c:1.155 src/libexec/ld.elf_so/rtld.c:1.156
--- src/libexec/ld.elf_so/rtld.c:1.155 Fri Nov 25 21:27:15 2011
+++ src/libexec/ld.elf_so/rtld.c Thu Feb 16 23:00:39 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: rtld.c,v 1.155 2011/11/25 21:27:15 joerg Exp $ */
+/* $NetBSD: rtld.c,v 1.156 2012/02/16 23:00:39 joerg Exp $ */
/*
* Copyright 1996 John D. Polstra.
@@ -40,7 +40,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: rtld.c,v 1.155 2011/11/25 21:27:15 joerg Exp $");
+__RCSID("$NetBSD: rtld.c,v 1.156 2012/02/16 23:00:39 joerg Exp $");
#endif /* not lint */
#include <sys/param.h>
@@ -103,6 +103,7 @@ Search_Path *_rtld_default_paths;
Search_Path *_rtld_paths;
Library_Xform *_rtld_xforms;
+static void *auxinfo;
/*
* Global declarations normally provided by crt0.
@@ -349,6 +350,12 @@ _rtld_exit(void)
_rtld_exclusive_exit(&mask);
}
+__dso_public void *
+_dlauxinfo(void)
+{
+ return auxinfo;
+}
+
/*
* Main entry point for dynamic linking. The argument is the stack
* pointer. The stack is expected to be laid out as described in the
@@ -371,7 +378,6 @@ _rtld(Elf_Addr *sp, Elf_Addr relocbase)
*pAUX_ruid, *pAUX_rgid;
const AuxInfo *pAUX_pagesz;
char **env, **oenvp;
- const AuxInfo *aux;
const AuxInfo *auxp;
Obj_Entry *obj;
Elf_Addr *const osp = sp;
@@ -421,7 +427,7 @@ _rtld(Elf_Addr *sp, Elf_Addr relocbase)
dbg(("env[%d] = %p %s", i++, (void *)sp[-1], (char *)sp[-1]));
#endif
}
- aux = (const AuxInfo *) sp;
+ auxinfo = (AuxInfo *) sp;
pAUX_base = pAUX_entry = pAUX_execfd = NULL;
pAUX_phdr = pAUX_phent = pAUX_phnum = NULL;
@@ -431,7 +437,7 @@ _rtld(Elf_Addr *sp, Elf_Addr relocbase)
execname = NULL;
/* Digest the auxiliary vector. */
- for (auxp = aux; auxp->a_type != AT_NULL; ++auxp) {
+ for (auxp = auxinfo; auxp->a_type != AT_NULL; ++auxp) {
switch (auxp->a_type) {
case AT_BASE:
pAUX_base = auxp;
Index: src/libexec/ld.elf_so/rtld.h
diff -u src/libexec/ld.elf_so/rtld.h:1.107 src/libexec/ld.elf_so/rtld.h:1.108
--- src/libexec/ld.elf_so/rtld.h:1.107 Fri Dec 2 09:06:49 2011
+++ src/libexec/ld.elf_so/rtld.h Thu Feb 16 23:00:39 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: rtld.h,v 1.107 2011/12/02 09:06:49 skrll Exp $ */
+/* $NetBSD: rtld.h,v 1.108 2012/02/16 23:00:39 joerg Exp $ */
/*
* Copyright 1996 John D. Polstra.
@@ -331,6 +331,8 @@ __dso_public int dlinfo(void *, int, voi
__dso_public int dl_iterate_phdr(int (*)(struct dl_phdr_info *, size_t, void *),
void *);
+__dso_public void *_dlauxinfo(void) __pure;
+
/* These aren't exported */
void _rtld_error(const char *, ...)
__attribute__((__format__(__printf__,1,2)));
Index: src/libexec/ld.elf_so/symbol.c
diff -u src/libexec/ld.elf_so/symbol.c:1.59 src/libexec/ld.elf_so/symbol.c:1.60
--- src/libexec/ld.elf_so/symbol.c:1.59 Fri Nov 25 14:39:02 2011
+++ src/libexec/ld.elf_so/symbol.c Thu Feb 16 23:00:39 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: symbol.c,v 1.59 2011/11/25 14:39:02 joerg Exp $ */
+/* $NetBSD: symbol.c,v 1.60 2012/02/16 23:00:39 joerg Exp $ */
/*
* Copyright 1996 John D. Polstra.
@@ -40,7 +40,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: symbol.c,v 1.59 2011/11/25 14:39:02 joerg Exp $");
+__RCSID("$NetBSD: symbol.c,v 1.60 2012/02/16 23:00:39 joerg Exp $");
#endif /* not lint */
#include <err.h>
@@ -94,6 +94,7 @@ _rtld_is_exported(const Elf_Sym *def)
(fptr_t)dladdr,
(fptr_t)dlinfo,
(fptr_t)dl_iterate_phdr,
+ (fptr_t)_dlauxinfo,
#if defined(__HAVE_TLS_VARIANT_I) || defined(__HAVE_TLS_VARIANT_II)
(fptr_t)_rtld_tls_allocate,
(fptr_t)_rtld_tls_free,