OpenBSD CVS

CVS log for src/include/tib.h


[BACK] Up to [local] / src / include

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.10 / (download) - annotate - [select for diffs], Fri Dec 8 19:14:36 2023 UTC (5 months, 1 week ago) by miod
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, HEAD
Changes since 1.9: +2 -1 lines
Diff to previous 1.9 (colored)

Make sure TIB_INIT correctly initializes tib_thread_flags; regression
introduced in 1.3, causing sporadic pthread_main_np() erroneous results
(and possibly more subtle problems).

With and ok kurt@

Revision 1.9 / (download) - annotate - [select for diffs], Tue Dec 27 07:44:56 2022 UTC (16 months, 3 weeks ago) by jmc
Branch: MAIN
CVS Tags: OPENBSD_7_4_BASE, OPENBSD_7_4, OPENBSD_7_3_BASE, OPENBSD_7_3
Changes since 1.8: +2 -2 lines
Diff to previous 1.8 (colored)

spelling fixes; from paul tagliamonte

Revision 1.8 / (download) - annotate - [select for diffs], Tue Jul 14 16:48:13 2020 UTC (3 years, 10 months ago) by kettenis
Branch: MAIN
CVS Tags: OPENBSD_7_2_BASE, OPENBSD_7_2, OPENBSD_7_1_BASE, OPENBSD_7_1, OPENBSD_7_0_BASE, OPENBSD_7_0, OPENBSD_6_9_BASE, OPENBSD_6_9, OPENBSD_6_8_BASE, OPENBSD_6_8
Changes since 1.7: +6 -1 lines
Diff to previous 1.7 (colored)

Fix TIB/TCB on powerpc64.  Some bright sould decided that the TCB should
be 8 bytes in the 64-bit ABI just like in the 32-bit ABI.  But that means
there is no "spare" word in the TCB that we can use to store a pointer
to our struct pthread.  So we have to treat powerpc64 special.

Also recognize that the thread pointer points 0x7000 bytes after the TCB.
Since the TCB is 8 bytes this means that TCB_OFFSET should be 0x7008.

Pointed out by guenther@; ok deraadt@

Revision 1.7 / (download) - annotate - [select for diffs], Fri May 10 13:29:21 2019 UTC (5 years ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_6_7_BASE, OPENBSD_6_7, OPENBSD_6_6_BASE, OPENBSD_6_6
Changes since 1.6: +23 -1 lines
Diff to previous 1.6 (colored)

ld.so boot cleanup support:
 - put functions and data which are only used before calling the executable's
   start function into their own page-aligned segments for unmapping
   (only done on amd64, arm64, armv7, powerpc, and sparc64 so far)
 - pass .init_array and .preinit_array functions an addition argument which
   is a callback to get a structure which includes a function that frees
   the boot text and data
 - sometimes delay doing RELRO processing: for a shared-object marked
   DF_1_INITFIRST do it after the object's .init_array, for the executable
   do it after the .preinit_array
 - improve test-ld.so to link against libpthread and trigger its initialization
   late
libc changes to use this will come later

ok kettenis@

Revision 1.6 / (download) - annotate - [select for diffs], Tue Nov 28 18:57:02 2017 UTC (6 years, 5 months ago) by kettenis
Branch: MAIN
CVS Tags: OPENBSD_6_5_BASE, OPENBSD_6_5, OPENBSD_6_4_BASE, OPENBSD_6_4, OPENBSD_6_3_BASE, OPENBSD_6_3
Changes since 1.5: +4 -6 lines
Diff to previous 1.5 (colored)

Add a member to be used by __cxa_thread_atexit().  Remove padding which would
now misalign things.

ok guenther@

Revision 1.5 / (download) - annotate - [select for diffs], Thu Aug 10 13:35:18 2017 UTC (6 years, 9 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_6_2_BASE, OPENBSD_6_2
Changes since 1.4: +2 -2 lines
Diff to previous 1.4 (colored)

fix typo in comment

Revision 1.4 / (download) - annotate - [select for diffs], Thu Apr 20 16:07:52 2017 UTC (7 years ago) by visa
Branch: MAIN
Changes since 1.3: +3 -5 lines
Diff to previous 1.3 (colored)

Get TCB address using the RDHWR instruction instead of __get_tcb().
This gives fast access to the address on systems that implement
the UserLocal register. TCB caching is still used when running
in the single-threaded mode in order not to penalize old systems.

The kernel counterpart of this change must be in place before
using this diff!

With guenther@

Revision 1.3 / (download) - annotate - [select for diffs], Sat May 7 19:05:21 2016 UTC (8 years ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_6_1_BASE, OPENBSD_6_1, OPENBSD_6_0_BASE, OPENBSD_6_0
Changes since 1.2: +52 -47 lines
Diff to previous 1.2 (colored)

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@

Revision 1.2 / (download) - annotate - [select for diffs], Sun Mar 20 02:30:28 2016 UTC (8 years, 2 months ago) by guenther
Branch: MAIN
Changes since 1.1: +36 -39 lines
Diff to previous 1.1 (colored)

Prepare for future ld.so/libc bump: update <tib.h> with the definitions
that will be needed and make libpthread work when ld.so/libc.a provide an
initial TIB.

Revision 1.1 / (download) - annotate - [select for diffs], Mon Sep 14 08:16:14 2015 UTC (8 years, 8 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_5_9_BASE, OPENBSD_5_9

Prefer the standardized <poll.h> over <sys/poll.h>

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.