summaryrefslogtreecommitdiff
path: root/lib/csu
AgeCommit message (Collapse)Author
2014-04-18It's been a quarter century: we can assume volatile is present with that name.Philip Guenther
2014-02-22Increase _STACKALIGNBYTES to 15 (was 7), and make sure the stack is alignedMiod Vallat
to a 16 byte boundary in csu (similar to what the other arches where _STACKALIGNBYTES != _ALIGNBYTES do). This is necessary for long double variables on the stack to be correctly aligned.
2014-01-14build crt*S with -fPIC instead of -fpicMiod Vallat
2013-12-28Move atexit(3) into crtbegin.c and certbeginS.c such that we can pass theMark Kettenis
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@
2013-12-23Add assembly code to set up the arguments for the common C startup code. ThisMark Kettenis
means we no longer rely on how the C compiler sets up the initial stack frame and allows us to get rid of MD_NO_CLEANUP. ok deraadt@, guenther@
2013-12-23Sync Makefile with what other platforms do; makes dependency tracking actuallyMark Kettenis
work. ok deraadt@, guenther@
2013-12-20Fix typo, allow hppa64 to build a little furtherTobias Ulmer
2013-12-12Fix static linking of libpthread: have crt0 invoke __init_tcb() if it'sPhilip Guenther
defined and we don't think ld.so has already done the TCB setup. ok and much discussion miod@
2013-12-04correct frame handlingTheo de Raadt
with and ok guenther
2013-12-03Merge the per-arch crt0.c files into common_elf/crt0.c, with MD macros inPhilip Guenther
the md_init.h files. Worked out with and ok miod@; ok matthew@
2006-10-10Preliminary userland bits for OpenBSD/landisk, many things coming fromMiod Vallat
NetBSD.
2013-12-01mips64 no longer uses scrt0.o, and it was identical to crt0.o anyway.Philip Guenther
Delete unused #ifndef SCRT0 conditionals. ok miod@
2013-11-10The kernel and ld.so have passed 0 in r0 for use as the cleanupPhilip Guenther
callback for about a year, so it's safe to make __start() pass that as the cleanup argument to ___start(), and have *that* conditionally pass it to atexit(). Eliminate the no-longer-used obj and ps_strings arguments to position things correctly, simplifying the ASM wrapper slightly. ok kettenis@ miod@; testing patrick@
2013-11-10The kernel and ld.so have passed 0 in r7 for use as the cleanupPhilip Guenther
callback for about a year, so it's safe to make __start() treat that as the cleanup argument and conditionally pass it to atexit(). Eliminate the no-longer-used obj and ps_strings arguments to position things correctly, which lets us eliminate the ASM wrapper completely. ok kettenis@ miod@
2013-11-10The kernel and ld.so pass 0 in %rdx for use as the cleanup callbackPhilip Guenther
for about a year, so it's safe to add the test and atexit() call. While here, drop the no-longer-used obj and ps_strings and the asm to set those up, switch from sys/param.h to limits.h, and ANSIfy. ok kettenis@
2013-09-08Remove a.out leftovers. (it's september now)Miod Vallat
2013-07-05VAX ELF userland bits. Consists mostly of register prefix additions.Miod Vallat
2013-05-08Don't declare ___start static, for gcc4 would optimize it out.Miod Vallat
2013-02-02Userland bits for m68k/ELF. Mostly addition of register prefixes to theMiod Vallat
assembler instructions, and cope with the few changes in return values location.
2013-01-15build crt{begin,end}S.o with -fpic.Miod Vallat
2013-01-05Switch m88k ports to ELF.Miod Vallat
2012-12-31Spell `calculation' correctly.Miod Vallat
2012-12-24Register cleanup handler passed by ld.so with atexit(3).Mark Kettenis
tested by benno@
2012-12-24Register cleanup handler passed by ld.so with atexit(3). Fix stack alignment.Mark Kettenis
ok guenther@
2012-12-23Register cleanup handler passed by ld.so with atexit(3).Mark Kettenis
2012-12-23Explicitly align the stack on a 16-byte boundary such that constructors canMark Kettenis
use SSE instructions. In principle we should be able to rely on the stack to be aligned properly, but the i386 calling convention makes this rather fragile. ok guenther@, deraadt@
2012-12-22Register cleanup handler passed by ld.so with atexit(3).Mark Kettenis
ok kurt@
2012-12-19crtbeginS.o needs to be built with -fPIC, otherwise bloated shared librariesMark Kettenis
silently crash when running constructors. Tested by landry@. ok beck@
2012-12-05Remove excessive sys/cdefs.h inclusionTheo de Raadt
ok guenther millert kettenis
2012-11-01Register cleanup handler passed by ld.so with atexit(3).Mark Kettenis
ok kurt@
2012-09-08Reverse the order that ctors and dtors are run in accordance withMatthew Dempsky
GCC's documentation. Fixes GNU C++'s init_priority attribute. ok miod
2012-08-28Add __guard_local as a hidden symbol to ld.so, kernel, and everyMatthew Dempsky
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.
2012-08-22Convert cpp | as rules in bsd.lib.mk and lib/libc/sys/Makefile.inc to pure ccPascal Stumpf
invocations. This allows us to use the compiler builtin define __PIC__ to check for PIC/PIEness rather than passing -DPIC. Simplifies PIE work a lot. ok matthew@, conceptually ok kurt@
2012-04-12the fpu control symbol on sh (__fpscr_values) suddenly becomes localJonathan Gray
instead of global with gcc4 and this ends up breaking things in hard to debug ways. So move the definition to csu instead of libgcc. ok miod@
2011-11-08Pass install the -S option to avoid a window where the target isn'tPhilip Guenthe
executable (by mode or content), which can trip up builds with 'make -j' (The generic fix is in share/mk/*; some Makefiles have their own INSTALL lines) ok millert@ deraadt@
2011-09-19Use long calls like we do on hppa, otherwise the function we want to callMark Kettenis
might be unreachable.
2011-08-19Make sure the stack is properly aligned for using SSE instructions. WhileMark Kettenis
our in-tree compiler will emit code to do this at the start of main(), other compilers might not do that. ok miod@
2011-07-09On hppa64 we need to use __gp instead of $global$.Mark Kettenis
2011-07-04enter ia64 for objTheo de Raadt
2011-07-04Add csu ia64 support.Paul Irofti
2011-04-20Implement correct prologue and epilogue for hppa64.Joel Sing
ok kettenis@
2011-03-31Make sure everything run from .init and .fini sections gets a properly alignedMark Kettenis
stack. ok fgsch@
2011-03-30Make sure everything run from .init and .fini sections gets a properly alignedMark Kettenis
stack. ok deraadt@, fgsch@
2010-12-24crtbeginS.o needs to be buit with -fPIC; with -fpic the relocations for theMark Kettenis
gcc3/4 exception handling related symbols will be truncated causing linker failures when building shared libraries. ok drahn@, deraadt@, miod@
2010-09-12Since the stack layout changes from gcc3 to gcc4, change the inline asm toMark Kettenis
deal with this. ok miod@
2010-05-01Sprinkle a few __used markers to prevent gcc4 from throwing away essentialMark Kettenis
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@
2010-02-03Use MACHINE_CPU instead of MACHINE_ARCH to pick the correct machine dependentMiod Vallat
files or directories when applicable. The inspiration and name of MACHINE_CPU come from NetBSD, although the way to provide it to Makefiles is completely different. ok kettenis@
2009-12-10Make sure to use 64 bit instructions in the assembly statements (addi -> daddi)Miod Vallat
in the prologue; this gives a chance for binaries loaded with their stack over 2GB virtual, to run. Who's your daddi now?
2009-10-28rcsid[] and sccsid[] and copyright[] are essentially unmaintained (andTheo de Raadt
unmaintainable). these days, people use source. these id's do not provide any benefit, and do hurt the small install media (the 33,000 line diff is essentially mechanical) ok with the idea millert, ok dms
2009-07-14Don't specify mode(SI) attribute for __EH_FRAME_END__ as we haveJonathan Gray
32 bit ints on OpenBSD. ok kettenis@