diff options
author | Philip Guenther <guenther@cvs.openbsd.org> | 2016-05-07 19:05:25 +0000 |
---|---|---|
committer | Philip Guenther <guenther@cvs.openbsd.org> | 2016-05-07 19:05:25 +0000 |
commit | be4e94637d7117375492627b79c41629c7da9bc3 (patch) | |
tree | 61a9fabcc07d38d2720bbb937e83103928286550 /distrib | |
parent | 33d8693716b4a6d503e0ba97f94a783905b87f28 (diff) |
Use a Thread Information Block in both single and multi-threaded programs.
This stores errno, the cancelation flags, and related bits for each thread
and is allocated by ld.so or libc.a. This is an ABI break from 5.9-stable!
Make libpthread dlopen'able by moving the cancelation wrappers into libc
and doing locking and fork/errno handling via callbacks that libpthread
registers when it first initializes. 'errno' *must* be declared via
<errno.h> now!
Clean up libpthread's symbol exports like libc.
On powerpc, offset the TIB/TCB/TLS data from the register per the ELF spec.
Testing by various, particularly sthen@ and patrick@
ok kettenis@
Diffstat (limited to 'distrib')
-rw-r--r-- | distrib/sets/lists/base/md.alpha | 1 | ||||
-rw-r--r-- | distrib/sets/lists/base/md.amd64 | 1 | ||||
-rw-r--r-- | distrib/sets/lists/base/md.armish | 1 | ||||
-rw-r--r-- | distrib/sets/lists/base/md.armv7 | 1 | ||||
-rw-r--r-- | distrib/sets/lists/base/md.hppa | 1 | ||||
-rw-r--r-- | distrib/sets/lists/base/md.hppa64 | 1 | ||||
-rw-r--r-- | distrib/sets/lists/base/md.i386 | 1 | ||||
-rw-r--r-- | distrib/sets/lists/base/md.landisk | 1 | ||||
-rw-r--r-- | distrib/sets/lists/base/md.loongson | 1 | ||||
-rw-r--r-- | distrib/sets/lists/base/md.luna88k | 1 | ||||
-rw-r--r-- | distrib/sets/lists/base/md.macppc | 1 | ||||
-rw-r--r-- | distrib/sets/lists/base/md.octeon | 1 | ||||
-rw-r--r-- | distrib/sets/lists/base/md.sgi | 1 | ||||
-rw-r--r-- | distrib/sets/lists/base/md.socppc | 1 | ||||
-rw-r--r-- | distrib/sets/lists/base/md.sparc | 1 | ||||
-rw-r--r-- | distrib/sets/lists/base/md.sparc64 | 1 | ||||
-rw-r--r-- | distrib/sets/lists/base/md.zaurus | 1 | ||||
-rw-r--r-- | distrib/sets/lists/base/mi | 6 | ||||
-rw-r--r-- | distrib/sets/lists/comp/mi | 1 | ||||
-rw-r--r-- | distrib/special/libstubs/Makefile | 4 |
20 files changed, 23 insertions, 5 deletions
diff --git a/distrib/sets/lists/base/md.alpha b/distrib/sets/lists/base/md.alpha index 0fef6889948..b34ff8a05b5 100644 --- a/distrib/sets/lists/base/md.alpha +++ b/distrib/sets/lists/base/md.alpha @@ -2042,6 +2042,7 @@ ./usr/libdata/perl5/site_perl/alpha-openbsd/termcap.ph ./usr/libdata/perl5/site_perl/alpha-openbsd/termios.ph ./usr/libdata/perl5/site_perl/alpha-openbsd/tgmath.ph +./usr/libdata/perl5/site_perl/alpha-openbsd/tib.ph ./usr/libdata/perl5/site_perl/alpha-openbsd/time.ph ./usr/libdata/perl5/site_perl/alpha-openbsd/tls.ph ./usr/libdata/perl5/site_perl/alpha-openbsd/ttyent.ph diff --git a/distrib/sets/lists/base/md.amd64 b/distrib/sets/lists/base/md.amd64 index e387aa63ff3..76d2a9cbc71 100644 --- a/distrib/sets/lists/base/md.amd64 +++ b/distrib/sets/lists/base/md.amd64 @@ -2076,6 +2076,7 @@ ./usr/libdata/perl5/site_perl/amd64-openbsd/termcap.ph ./usr/libdata/perl5/site_perl/amd64-openbsd/termios.ph ./usr/libdata/perl5/site_perl/amd64-openbsd/tgmath.ph +./usr/libdata/perl5/site_perl/amd64-openbsd/tib.ph ./usr/libdata/perl5/site_perl/amd64-openbsd/time.ph ./usr/libdata/perl5/site_perl/amd64-openbsd/tls.ph ./usr/libdata/perl5/site_perl/amd64-openbsd/ttyent.ph diff --git a/distrib/sets/lists/base/md.armish b/distrib/sets/lists/base/md.armish index 169d5d617b3..dd8ee579129 100644 --- a/distrib/sets/lists/base/md.armish +++ b/distrib/sets/lists/base/md.armish @@ -2058,6 +2058,7 @@ ./usr/libdata/perl5/site_perl/arm-openbsd/termcap.ph ./usr/libdata/perl5/site_perl/arm-openbsd/termios.ph ./usr/libdata/perl5/site_perl/arm-openbsd/tgmath.ph +./usr/libdata/perl5/site_perl/arm-openbsd/tib.ph ./usr/libdata/perl5/site_perl/arm-openbsd/time.ph ./usr/libdata/perl5/site_perl/arm-openbsd/tls.ph ./usr/libdata/perl5/site_perl/arm-openbsd/ttyent.ph diff --git a/distrib/sets/lists/base/md.armv7 b/distrib/sets/lists/base/md.armv7 index 8233e3597aa..eed9a4e8468 100644 --- a/distrib/sets/lists/base/md.armv7 +++ b/distrib/sets/lists/base/md.armv7 @@ -2058,6 +2058,7 @@ ./usr/libdata/perl5/site_perl/arm-openbsd/termcap.ph ./usr/libdata/perl5/site_perl/arm-openbsd/termios.ph ./usr/libdata/perl5/site_perl/arm-openbsd/tgmath.ph +./usr/libdata/perl5/site_perl/arm-openbsd/tib.ph ./usr/libdata/perl5/site_perl/arm-openbsd/time.ph ./usr/libdata/perl5/site_perl/arm-openbsd/tls.ph ./usr/libdata/perl5/site_perl/arm-openbsd/ttyent.ph diff --git a/distrib/sets/lists/base/md.hppa b/distrib/sets/lists/base/md.hppa index 91a8fe70aaf..b9256cbc3c9 100644 --- a/distrib/sets/lists/base/md.hppa +++ b/distrib/sets/lists/base/md.hppa @@ -2044,6 +2044,7 @@ ./usr/libdata/perl5/site_perl/hppa-openbsd/termcap.ph ./usr/libdata/perl5/site_perl/hppa-openbsd/termios.ph ./usr/libdata/perl5/site_perl/hppa-openbsd/tgmath.ph +./usr/libdata/perl5/site_perl/hppa-openbsd/tib.ph ./usr/libdata/perl5/site_perl/hppa-openbsd/time.ph ./usr/libdata/perl5/site_perl/hppa-openbsd/tls.ph ./usr/libdata/perl5/site_perl/hppa-openbsd/ttyent.ph diff --git a/distrib/sets/lists/base/md.hppa64 b/distrib/sets/lists/base/md.hppa64 index ca17f432eb6..84093b0e0dd 100644 --- a/distrib/sets/lists/base/md.hppa64 +++ b/distrib/sets/lists/base/md.hppa64 @@ -1971,6 +1971,7 @@ ./usr/libdata/perl5/site_perl/hppa64-openbsd/termcap.ph ./usr/libdata/perl5/site_perl/hppa64-openbsd/termios.ph ./usr/libdata/perl5/site_perl/hppa64-openbsd/tgmath.ph +./usr/libdata/perl5/site_perl/hppa64-openbsd/tib.ph ./usr/libdata/perl5/site_perl/hppa64-openbsd/time.ph ./usr/libdata/perl5/site_perl/hppa64-openbsd/tls.ph ./usr/libdata/perl5/site_perl/hppa64-openbsd/ttyent.ph diff --git a/distrib/sets/lists/base/md.i386 b/distrib/sets/lists/base/md.i386 index db57c19b4bd..1cc1047df79 100644 --- a/distrib/sets/lists/base/md.i386 +++ b/distrib/sets/lists/base/md.i386 @@ -2079,6 +2079,7 @@ ./usr/libdata/perl5/site_perl/i386-openbsd/termcap.ph ./usr/libdata/perl5/site_perl/i386-openbsd/termios.ph ./usr/libdata/perl5/site_perl/i386-openbsd/tgmath.ph +./usr/libdata/perl5/site_perl/i386-openbsd/tib.ph ./usr/libdata/perl5/site_perl/i386-openbsd/time.ph ./usr/libdata/perl5/site_perl/i386-openbsd/tls.ph ./usr/libdata/perl5/site_perl/i386-openbsd/ttyent.ph diff --git a/distrib/sets/lists/base/md.landisk b/distrib/sets/lists/base/md.landisk index ce2f341526a..e13ecc10a9e 100644 --- a/distrib/sets/lists/base/md.landisk +++ b/distrib/sets/lists/base/md.landisk @@ -2057,6 +2057,7 @@ ./usr/libdata/perl5/site_perl/sh-openbsd/termcap.ph ./usr/libdata/perl5/site_perl/sh-openbsd/termios.ph ./usr/libdata/perl5/site_perl/sh-openbsd/tgmath.ph +./usr/libdata/perl5/site_perl/sh-openbsd/tib.ph ./usr/libdata/perl5/site_perl/sh-openbsd/time.ph ./usr/libdata/perl5/site_perl/sh-openbsd/tls.ph ./usr/libdata/perl5/site_perl/sh-openbsd/ttyent.ph diff --git a/distrib/sets/lists/base/md.loongson b/distrib/sets/lists/base/md.loongson index ee015dabc67..a32e324e04d 100644 --- a/distrib/sets/lists/base/md.loongson +++ b/distrib/sets/lists/base/md.loongson @@ -2064,6 +2064,7 @@ ./usr/libdata/perl5/site_perl/mips64el-openbsd/termcap.ph ./usr/libdata/perl5/site_perl/mips64el-openbsd/termios.ph ./usr/libdata/perl5/site_perl/mips64el-openbsd/tgmath.ph +./usr/libdata/perl5/site_perl/mips64el-openbsd/tib.ph ./usr/libdata/perl5/site_perl/mips64el-openbsd/time.ph ./usr/libdata/perl5/site_perl/mips64el-openbsd/tls.ph ./usr/libdata/perl5/site_perl/mips64el-openbsd/ttyent.ph diff --git a/distrib/sets/lists/base/md.luna88k b/distrib/sets/lists/base/md.luna88k index 4d79ce71bb9..fda5ba3c1f3 100644 --- a/distrib/sets/lists/base/md.luna88k +++ b/distrib/sets/lists/base/md.luna88k @@ -1954,6 +1954,7 @@ ./usr/libdata/perl5/site_perl/m88k-openbsd/termcap.ph ./usr/libdata/perl5/site_perl/m88k-openbsd/termios.ph ./usr/libdata/perl5/site_perl/m88k-openbsd/tgmath.ph +./usr/libdata/perl5/site_perl/m88k-openbsd/tib.ph ./usr/libdata/perl5/site_perl/m88k-openbsd/time.ph ./usr/libdata/perl5/site_perl/m88k-openbsd/tls.ph ./usr/libdata/perl5/site_perl/m88k-openbsd/ttyent.ph diff --git a/distrib/sets/lists/base/md.macppc b/distrib/sets/lists/base/md.macppc index cdbc6a251f1..e69370bdb64 100644 --- a/distrib/sets/lists/base/md.macppc +++ b/distrib/sets/lists/base/md.macppc @@ -2089,6 +2089,7 @@ ./usr/libdata/perl5/site_perl/powerpc-openbsd/termcap.ph ./usr/libdata/perl5/site_perl/powerpc-openbsd/termios.ph ./usr/libdata/perl5/site_perl/powerpc-openbsd/tgmath.ph +./usr/libdata/perl5/site_perl/powerpc-openbsd/tib.ph ./usr/libdata/perl5/site_perl/powerpc-openbsd/time.ph ./usr/libdata/perl5/site_perl/powerpc-openbsd/tls.ph ./usr/libdata/perl5/site_perl/powerpc-openbsd/ttyent.ph diff --git a/distrib/sets/lists/base/md.octeon b/distrib/sets/lists/base/md.octeon index ecbf7f07ab9..eb17af53da2 100644 --- a/distrib/sets/lists/base/md.octeon +++ b/distrib/sets/lists/base/md.octeon @@ -2027,6 +2027,7 @@ ./usr/libdata/perl5/site_perl/mips64-openbsd/termcap.ph ./usr/libdata/perl5/site_perl/mips64-openbsd/termios.ph ./usr/libdata/perl5/site_perl/mips64-openbsd/tgmath.ph +./usr/libdata/perl5/site_perl/mips64-openbsd/tib.ph ./usr/libdata/perl5/site_perl/mips64-openbsd/time.ph ./usr/libdata/perl5/site_perl/mips64-openbsd/tls.ph ./usr/libdata/perl5/site_perl/mips64-openbsd/ttyent.ph diff --git a/distrib/sets/lists/base/md.sgi b/distrib/sets/lists/base/md.sgi index 15a50360040..b21fb2ab811 100644 --- a/distrib/sets/lists/base/md.sgi +++ b/distrib/sets/lists/base/md.sgi @@ -2091,6 +2091,7 @@ ./usr/libdata/perl5/site_perl/mips64-openbsd/termcap.ph ./usr/libdata/perl5/site_perl/mips64-openbsd/termios.ph ./usr/libdata/perl5/site_perl/mips64-openbsd/tgmath.ph +./usr/libdata/perl5/site_perl/mips64-openbsd/tib.ph ./usr/libdata/perl5/site_perl/mips64-openbsd/time.ph ./usr/libdata/perl5/site_perl/mips64-openbsd/tls.ph ./usr/libdata/perl5/site_perl/mips64-openbsd/ttyent.ph diff --git a/distrib/sets/lists/base/md.socppc b/distrib/sets/lists/base/md.socppc index e8530eadc31..d2a80dac4ef 100644 --- a/distrib/sets/lists/base/md.socppc +++ b/distrib/sets/lists/base/md.socppc @@ -2076,6 +2076,7 @@ ./usr/libdata/perl5/site_perl/powerpc-openbsd/termcap.ph ./usr/libdata/perl5/site_perl/powerpc-openbsd/termios.ph ./usr/libdata/perl5/site_perl/powerpc-openbsd/tgmath.ph +./usr/libdata/perl5/site_perl/powerpc-openbsd/tib.ph ./usr/libdata/perl5/site_perl/powerpc-openbsd/time.ph ./usr/libdata/perl5/site_perl/powerpc-openbsd/tls.ph ./usr/libdata/perl5/site_perl/powerpc-openbsd/ttyent.ph diff --git a/distrib/sets/lists/base/md.sparc b/distrib/sets/lists/base/md.sparc index bd8b193ba73..11ef7de0005 100644 --- a/distrib/sets/lists/base/md.sparc +++ b/distrib/sets/lists/base/md.sparc @@ -1591,6 +1591,7 @@ ./usr/libdata/perl5/site_perl/sparc-openbsd/termcap.ph ./usr/libdata/perl5/site_perl/sparc-openbsd/termios.ph ./usr/libdata/perl5/site_perl/sparc-openbsd/tgmath.ph +./usr/libdata/perl5/site_perl/sparc-openbsd/tib.ph ./usr/libdata/perl5/site_perl/sparc-openbsd/time.ph ./usr/libdata/perl5/site_perl/sparc-openbsd/tls.ph ./usr/libdata/perl5/site_perl/sparc-openbsd/ttyent.ph diff --git a/distrib/sets/lists/base/md.sparc64 b/distrib/sets/lists/base/md.sparc64 index a46820df03c..126b8a958cf 100644 --- a/distrib/sets/lists/base/md.sparc64 +++ b/distrib/sets/lists/base/md.sparc64 @@ -1651,6 +1651,7 @@ ./usr/libdata/perl5/site_perl/sparc64-openbsd/termcap.ph ./usr/libdata/perl5/site_perl/sparc64-openbsd/termios.ph ./usr/libdata/perl5/site_perl/sparc64-openbsd/tgmath.ph +./usr/libdata/perl5/site_perl/sparc64-openbsd/tib.ph ./usr/libdata/perl5/site_perl/sparc64-openbsd/time.ph ./usr/libdata/perl5/site_perl/sparc64-openbsd/tls.ph ./usr/libdata/perl5/site_perl/sparc64-openbsd/ttyent.ph diff --git a/distrib/sets/lists/base/md.zaurus b/distrib/sets/lists/base/md.zaurus index 01067239021..1f43b6df990 100644 --- a/distrib/sets/lists/base/md.zaurus +++ b/distrib/sets/lists/base/md.zaurus @@ -2012,6 +2012,7 @@ ./usr/libdata/perl5/site_perl/arm-openbsd/termcap.ph ./usr/libdata/perl5/site_perl/arm-openbsd/termios.ph ./usr/libdata/perl5/site_perl/arm-openbsd/tgmath.ph +./usr/libdata/perl5/site_perl/arm-openbsd/tib.ph ./usr/libdata/perl5/site_perl/arm-openbsd/time.ph ./usr/libdata/perl5/site_perl/arm-openbsd/tls.ph ./usr/libdata/perl5/site_perl/arm-openbsd/ttyent.ph diff --git a/distrib/sets/lists/base/mi b/distrib/sets/lists/base/mi index 78bb15241ad..3251f28ac0e 100644 --- a/distrib/sets/lists/base/mi +++ b/distrib/sets/lists/base/mi @@ -610,8 +610,8 @@ ./usr/games ./usr/include ./usr/lib -./usr/lib/libc.so.86.0 -./usr/lib/libc.so.86.0.a +./usr/lib/libc.so.87.0 +./usr/lib/libc.so.87.0.a ./usr/lib/libcrypto.so.38.0 ./usr/lib/libcurses.so.14.0 ./usr/lib/libedit.so.5.2 @@ -633,7 +633,7 @@ ./usr/lib/libpanelw.so.6.0 ./usr/lib/libpcap.so.8.1 ./usr/lib/libperl.so.17.1 -./usr/lib/libpthread.so.21.0 +./usr/lib/libpthread.so.22.0 ./usr/lib/libradius.so.1.0 ./usr/lib/libreadline.so.4.0 ./usr/lib/librpcsvc.so.2.0 diff --git a/distrib/sets/lists/comp/mi b/distrib/sets/lists/comp/mi index c1ab44c3f84..86057434657 100644 --- a/distrib/sets/lists/comp/mi +++ b/distrib/sets/lists/comp/mi @@ -1410,6 +1410,7 @@ ./usr/include/termcap.h ./usr/include/termios.h ./usr/include/tgmath.h +./usr/include/tib.h ./usr/include/time.h ./usr/include/tls.h ./usr/include/ttyent.h diff --git a/distrib/special/libstubs/Makefile b/distrib/special/libstubs/Makefile index 8853173e095..8f07014debc 100644 --- a/distrib/special/libstubs/Makefile +++ b/distrib/special/libstubs/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.17 2015/10/17 21:48:42 guenther Exp $ +# $OpenBSD: Makefile,v 1.18 2016/05/07 19:05:24 guenther Exp $ .include <bsd.own.mk> LIB= stubs @@ -30,7 +30,7 @@ NOPIC= Yes NOPROFILE=Yes CFLAGS+=-DSHA2_SMALL -UYP -DNO_LOG_BAD_DNS_RESPONSES \ - -DFLOATING_POINT -DASRNODEBUG \ + -DFLOATING_POINT -DASRNODEBUG -D__LIBC__ \ -I${LIBCSRCDIR}/include -I${LIBCSRCDIR}/hidden \ -I${LIBCSRCDIR}/asr -I${LIBCSRCDIR}/locale -I${LIBCSRCDIR}/gdtoa \ -I${LIBCSRCDIR}/arch/${MACHINE_CPU}/gdtoa -I${LIBCSRCDIR}/stdio \ |