OpenBSD CVS

CVS log for src/lib/csu/crtbeginS.c


[BACK] Up to [local] / src / lib / csu

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.21 / (download) - annotate - [select for diffs], Fri Dec 17 12:03:16 2021 UTC (2 years, 5 months ago) by jca
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, OPENBSD_7_4_BASE, OPENBSD_7_4, OPENBSD_7_3_BASE, OPENBSD_7_3, OPENBSD_7_2_BASE, OPENBSD_7_2, OPENBSD_7_1_BASE, OPENBSD_7_1, HEAD
Changes since 1.20: +3 -1 lines
Diff to previous 1.20 (colored)

Declare pthread_atfork as weak to avoid a fatal error with LLVM 13

Fixes behavior with current clang, which marks the symbol as GLOBAL
instead of WEAK.  LLVM change: https://reviews.llvm.org/D90108
base-gcc is unaffected.  Keep asm(".weak") for gcc3 until a cleanup can
be tested there.

Initial diff from mortimer@, input and ok kettenis@, ok guenther@

Revision 1.20 / (download) - annotate - [select for diffs], Wed Jan 9 16:42:38 2019 UTC (5 years, 5 months ago) by visa
Branch: MAIN
CVS Tags: OPENBSD_7_0_BASE, OPENBSD_7_0, OPENBSD_6_9_BASE, OPENBSD_6_9, OPENBSD_6_8_BASE, OPENBSD_6_8, OPENBSD_6_7_BASE, OPENBSD_6_7, OPENBSD_6_6_BASE, OPENBSD_6_6, OPENBSD_6_5_BASE, OPENBSD_6_5
Changes since 1.19: +3 -3 lines
Diff to previous 1.19 (colored)

Use static consistently with definitions of functions that have been
declared static.

OK guenther@

Revision 1.19 / (download) - annotate - [select for diffs], Sun Feb 19 21:39:32 2017 UTC (7 years, 3 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_6_4_BASE, OPENBSD_6_4, OPENBSD_6_3_BASE, OPENBSD_6_3, OPENBSD_6_2_BASE, OPENBSD_6_2, OPENBSD_6_1_BASE, OPENBSD_6_1
Changes since 1.18: +3 -3 lines
Diff to previous 1.18 (colored)

Move static variables from .data to .bss by not initializing them to zero

ok kettenis@

Revision 1.18 / (download) - annotate - [select for diffs], Sat Jan 21 05:46:56 2017 UTC (7 years, 4 months ago) by guenther
Branch: MAIN
Changes since 1.17: +9 -11 lines
Diff to previous 1.17 (colored)

Make crtbegin.c and crtbeginS.c consistent on stylistic points

ok kettenis@

Revision 1.17 / (download) - annotate - [select for diffs], Sat Jan 21 00:45:13 2017 UTC (7 years, 4 months ago) by guenther
Branch: MAIN
Changes since 1.16: +4 -8 lines
Diff to previous 1.16 (colored)

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 1.16 / (download) - annotate - [select for diffs], Tue Apr 7 01:27:06 2015 UTC (9 years, 2 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_6_0_BASE, OPENBSD_6_0, OPENBSD_5_9_BASE, OPENBSD_5_9, OPENBSD_5_8_BASE, OPENBSD_5_8
Changes since 1.15: +15 -1 lines
Diff to previous 1.15 (colored)

Make pthread_atfork() track the DSO that called it like atexit() does,
unregistering callbacks if the DSO is unloaded.  Move the callback
handling from libpthread to libc, though libpthread still overrides the
inner call to handle locking and thread-library reinitialization.
Major version bump for both libc and libpthread.

verification that this fixes various ports ajacoutot@
asm assistance miod@; ok millert@ deraadt@

Revision 1.15 / (download) - annotate - [select for diffs], Sat Apr 4 18:05:05 2015 UTC (9 years, 2 months ago) by guenther
Branch: MAIN
Changes since 1.14: +3 -10 lines
Diff to previous 1.14 (colored)

gcc 2.x is dead

ok millert@

Revision 1.14 / (download) - annotate - [select for diffs], Sat Dec 28 18:38:42 2013 UTC (10 years, 5 months ago) by kettenis
Branch: MAIN
CVS Tags: OPENBSD_5_7_BASE, OPENBSD_5_7
Changes since 1.13: +9 -1 lines
Diff to previous 1.13 (colored)

Move atexit(3) into crtbegin.c and certbeginS.c such that we can pass the
right __dso_handle and have dlopen'ed shared objects run their atexit handlers
when they get unloaded.  This is what Linux does, and several ports depend on
this behaviour (and will crash upon exit without this chang).

Based on an earlier diff from matthew@
Tested by ajacoutot@
ok deraadt@

Revision 1.13 / (download) - annotate - [select for diffs], Sat Sep 8 20:08:33 2012 UTC (11 years, 9 months ago) by matthew
Branch: MAIN
Changes since 1.12: +7 -7 lines
Diff to previous 1.12 (colored)

Reverse the order that ctors and dtors are run in accordance with
GCC's documentation.  Fixes GNU C++'s init_priority attribute.

ok miod

Revision 1.12 / (download) - annotate - [select for diffs], Tue Aug 28 16:39:09 2012 UTC (11 years, 9 months ago) by matthew
Branch: MAIN
Changes since 1.11: +3 -1 lines
Diff to previous 1.11 (colored)

Add __guard_local as a hidden symbol to ld.so, kernel, and every
executable and DSO (via crtbegin.c/crtbeginS.c).  Not used yet, but
needed before GCC can start emitting -fstack-protector code that uses
them instead of __guard.

Revision 1.11 / (download) - annotate - [select for diffs], Sat May 1 11:32:43 2010 UTC (14 years, 1 month ago) by kettenis
Branch: MAIN
Changes since 1.10: +5 -5 lines
Diff to previous 1.10 (colored)

Sprinkle a few __used markers to prevent gcc4 from throwing away essential
bits of code and data.  With this change gcc4 builds usable crt*.o on sparc64,
other architectures probably need some more love.

ok marco@, jsg@

Revision 1.10 / (download) - annotate - [select for diffs], Mon Apr 13 20:15:24 2009 UTC (15 years, 2 months ago) by kurt
Branch: MAIN
Changes since 1.9: +19 -1 lines
Diff to previous 1.9 (colored)

Add gcj java class registration hooks for gcc3 elf archs. From NetBSD
with minor differences.

okay kettenis@ drahn@

Revision 1.9 / (download) - annotate - [select for diffs], Wed Feb 4 19:43:48 2009 UTC (15 years, 4 months ago) by kettenis
Branch: MAIN
Changes since 1.8: +3 -1 lines
Diff to previous 1.8 (colored)

Tag ELF shared libraries as OpenBSD.

ok kurt@, drahn@, miod@

Revision 1.8 / (download) - annotate - [select for diffs], Mon Sep 3 14:40:16 2007 UTC (16 years, 9 months ago) by millert
Branch: MAIN
Changes since 1.7: +22 -1 lines
Diff to previous 1.7 (colored)

Add __cxa_atexit() support for gcc3.  This provides support for shared object destructors called at dlclose() time.  Inspired by similar changes in FreeBSD and NetBSD.

Revision 1.7 / (download) - annotate - [select for diffs], Mon Jan 26 20:04:11 2004 UTC (20 years, 4 months ago) by espie
Branch: MAIN
Changes since 1.6: +9 -5 lines
Diff to previous 1.6 (colored)

add finalized guard to destructor calls, to prevent multiple calls.
stop most kde apps from burping all over the place on exit, which
means that, somehow, our destructors get registered twice... :-(

Okay drahn@

Revision 1.6 / (download) - annotate - [select for diffs], Mon Jan 26 20:00:37 2004 UTC (20 years, 4 months ago) by espie
Branch: MAIN
Changes since 1.5: +6 -5 lines
Diff to previous 1.5 (colored)

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

ok drahn@, some time ago.

Revision 1.5 / (download) - annotate - [select for diffs], Thu Jan 8 14:59:15 2004 UTC (20 years, 5 months ago) by drahn
Branch: MAIN
Changes since 1.4: +15 -3 lines
Diff to previous 1.4 (colored)

__init/__fini handling on ELF has not been correct. It is supposed to
be a section which code stubs (branches) can be added to initialize/destructor
This adds MD stubs to allow this to operate as expected. should fix wine
and behave according to ELF specs. ok miod@

Revision 1.4 / (download) - annotate - [select for diffs], Sun Dec 28 04:11:52 2003 UTC (20 years, 5 months ago) by drahn
Branch: MAIN
Changes since 1.3: +3 -3 lines
Diff to previous 1.3 (colored)

correct array initializer size to be [1], not [0] fixes gcc3 libstdc++ error
ok espie, millert

Revision 1.3 / (download) - annotate - [select for diffs], Thu Jun 26 23:19:18 2003 UTC (20 years, 11 months ago) by deraadt
Branch: MAIN
Changes since 1.2: +5 -5 lines
Diff to previous 1.2 (colored)

boring protos

Revision 1.2 / (download) - annotate - [select for diffs], Sat Feb 16 21:27:20 2002 UTC (22 years, 3 months ago) by millert
Branch: MAIN
Changes since 1.1: +5 -5 lines
Diff to previous 1.1 (colored)

Part one of userland __P removal.  Done with a simple regexp with some minor hand editing to make comments line up correctly.  Another pass is forthcoming that handles the cases that could not be done automatically.

Revision 1.1 / (download) - annotate - [select for diffs], Mon May 28 21:38:13 2001 UTC (23 years ago) by drahn
Branch: MAIN

Commonize csu code for elf systems, powerpc now no longer has it's own
versions of these files.

Fixed a bug in ld.so in this, instead of scheduling the fini of each of
the shared libraries with atexit. schedule a function of ld.so itself
and it will walk all of the open libraries when the program exits.
otherwise a shared library could be dl_open()ed and then dl_close()d
and then it would not be mapped for the atexit processing.

TODO:
What if atexit is not found (process did not link against libc?)
Do shared libraries that are dl_closed have their global destructors run?

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.