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,

Reply via email to