summaryrefslogtreecommitdiff
path: root/lib/csu
AgeCommit message (Collapse)Author
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@
2009-06-21fix rcs ids. ok sthen@Martynas Venckus
2009-06-16Do not break gcc -Z on powerpc. mprotect the got only if it is padded.Dale Rahn
Diff written and tweaked by kurt@ and myself. ok kurt@, now is agood time deraadt@
2009-04-13Add gcj java class registration hooks for gcc3 elf archs. From NetBSDKurt Miller
with minor differences. okay kettenis@ drahn@
2009-03-06Work-around a gcc3 -g bug causing debug ld.so to crash.Kurt Miller
okay kettenis@ drahn@
2009-02-04Tag ELF shared libraries as OpenBSD.Mark Kettenis
ok kurt@, drahn@, miod@
2009-01-14Re-enable pie support on macppc (still off by default but usableKurt Miller
again). Due to the way executable sections are loaded by the kernel, a one page .got section with the blrl instruction may be in the data cache and not flushed causing random crashes upon process startup. Flush the data cache before ___start() jumps there. Also mprotect the .got section to be read/exec instead of read/write/exec. ld.so knows how to cope and static binaries don't write to .got. written by and okay drahn@
2008-11-21revert -fpie for now, it produces crashing executablesOtto Moerbeek
2008-11-13fix rcs tag.Jonathan Gray
From patrick keshishian <sidster@boxsoft.com>
2008-11-11Compile crt0.o, crtbegin.o and crtend.o with -fpie/-fPIE. This requiresKurt Miller
gcc with pie support to be built first. ok kettenis@