History log of /openbsd-current/lib/csu/extern.h
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.5 10-May-2019 guenther

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 tags: OPENBSD_6_5_BASE
# 1.4 21-Dec-2018 guenther

Add support for {preinit,init,fini}_array sections in static binaries

ok kettenis@


Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE
# 1.3 21-Jan-2017 guenther

Pull in declarations for main() and __init() to make clang happy.
Mark __init() as hidden

ok kettenis@ deraadt@


# 1.2 21-Jan-2017 guenther

Declare the symbols that label the .ctors, .dtors, .eh_frame, and .jcr
sections as extern hidden arrays of indefinite size, so that the compiler
(well, clang) doesn't believe it knows the exact contents and thus optimize
things into infinite loops. Actually set the symbols to be in the sections
and insert the leading and trailing values via __asm().

Problem pointed out by patrick@
testing and ok kettenis@


Revision tags: OPENBSD_5_7_BASE OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.1 26-Jan-2004 espie

small clean-up: typedef to desambiguate const, prototypes...

ok drahn@, some time ago.


# 1.4 21-Dec-2018 guenther

Add support for {preinit,init,fini}_array sections in static binaries

ok kettenis@


Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE
# 1.3 21-Jan-2017 guenther

Pull in declarations for main() and __init() to make clang happy.
Mark __init() as hidden

ok kettenis@ deraadt@


# 1.2 21-Jan-2017 guenther

Declare the symbols that label the .ctors, .dtors, .eh_frame, and .jcr
sections as extern hidden arrays of indefinite size, so that the compiler
(well, clang) doesn't believe it knows the exact contents and thus optimize
things into infinite loops. Actually set the symbols to be in the sections
and insert the leading and trailing values via __asm().

Problem pointed out by patrick@
testing and ok kettenis@


Revision tags: OPENBSD_5_7_BASE OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.1 26-Jan-2004 espie

small clean-up: typedef to desambiguate const, prototypes...

ok drahn@, some time ago.


Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE
# 1.3 21-Jan-2017 guenther

Pull in declarations for main() and __init() to make clang happy.
Mark __init() as hidden

ok kettenis@ deraadt@


# 1.2 21-Jan-2017 guenther

Declare the symbols that label the .ctors, .dtors, .eh_frame, and .jcr
sections as extern hidden arrays of indefinite size, so that the compiler
(well, clang) doesn't believe it knows the exact contents and thus optimize
things into infinite loops. Actually set the symbols to be in the sections
and insert the leading and trailing values via __asm().

Problem pointed out by patrick@
testing and ok kettenis@


Revision tags: OPENBSD_5_7_BASE OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.1 26-Jan-2004 espie

small clean-up: typedef to desambiguate const, prototypes...

ok drahn@, some time ago.