summaryrefslogtreecommitdiffstats
path: root/lib/csu
Commit message (Collapse)AuthorAgeFilesLines
* C runtime support for FreeBSD/arm.cognet2004-05-144-0/+169
|
* Adjust stack alignment so that when the 'call xxx' functions arepeter2004-03-212-0/+4
| | | | | gathered into the middle of the _init and _fini sections, they get executed with their expected stack alignment.
* The <bsd.files.mk> API seems the best to use here.ru2004-01-201-11/+7
|
* Explicitly specify an alignment for abitag. Without it, gcc specifies apeter2003-10-171-1/+1
| | | | | | | | | | | | | | | | | | | | section alignnment of 16 bytes for amd64 and this breaks file(1). Before: ./cp: ELF 64-bit LSB executable, AMD x86-64, version 1 (FreeBSD), for \ FreeBSD 127.7.9, statically linked, stripped after: ^^^^^^^ ./ls: ELF 64-bit LSB executable, AMD x86-64, version 1 (FreeBSD), for \ FreeBSD 5.0.1, dynamically linked (uses shared libs), stripped The reason for this is that the NOTE sections are not contiguous internally. If the note section has an alignment of 16, then anything that looks for the data is supposed to round up the payload start to the next multiple of the alignment. But FreeBSD/amd64 broke because the structure is declared as a single structure, not a (header,payload) group, where the payload had an explicit alignment roundup. The alternative is to change things like file(1) to ignore the ELF payload alignment rules for the PT_NOTE section only for FreeBSD.
* Fix typo: Passing the first argument to exit() in out2 does not work.marcel2003-07-151-1/+1
| | | | Trust me.
* _start() needed to be written in assembly. See crt1.S.marcel2003-07-141-124/+0
|
* Rewite _start(). We cannot use a C function due to the fact that wemarcel2003-07-132-2/+193
| | | | | | | | | | | | | | | | | don't call it according to the runtime specification and especially WRT to gp this can cause trouble. The gcc 3.3.1 import broke the ia64 runtime because the compiler saved gp prior to us being able to set it properly. Restoring gp after the calls would then invalidate gp and cause segmentation faults later on. By rewriting _start() as an assembly function, we also avoided even more gcc dependences, by trying to use gcc specific features to work around the problem. This version of _start() does not reference _DYNAMIC. We register the cleanup function when it's a non-NULL pointer. The kernel will always pass a NULL pointer and dynamic linkers may pass a non-NULL pointer. The machine independent code to set __progname now unfortunately is written in assembly. So be it.
* MFi386: revision 1.19.ru2003-06-301-3/+1
|
* Removed garbage:bde2003-06-041-3/+1
| | | | | | | - -elf in CFLAGS had no effect except to reduce portability. - -elf in LDFLAGS had even less effect, since LDFLAGS is not used. - -Wall in CFLAGS had no effect except to reduce portability and break overriding of WARNS, since the setting of WARNS implies -Wall.
* This is now Gcc 3.3 WARNS 6 clean.obrien2003-05-041-0/+1
|
* Set abitag __unused.obrien2003-05-041-3/+4
|
* Update for AMD64. repocopied from i386-elf/crt1.c. Deal with regparmpeter2003-04-301-20/+5
| | | | | argument passing rather than stack based args. The kernel passes the base of the argument/env vector in %rdi (arg1).
* Very minor EOL whitespace diff-reducer.markm2003-01-261-1/+1
|
* Missed a bit of cleanup.markm2003-01-261-2/+0
|
* make these more useful for lint(1). Minor diff-reductions while I'mmarkm2003-01-266-1/+7
| | | | about it.
* Remove the get_term() function. It pretty much can't work formarkm2003-01-261-36/+7
| | | | | | | | FreeBSD, and makes ugly diffs with the other crt1.c's. Leave behind a comment (words supplied by Thomas Moestl) that explain the issue. OK'ed by: tmm
* Backed out previous commit (alignment suitable for RELENG_4) as plannedbde2002-12-012-66/+0
| | | | | | | | since it has been MFC'ed. See the log message for the previous commit for more details. The alignment bug in gcc-3 has not been fixed, but it is not very serious and the previous commit just moved it (as intended). Approved by: re (murray)
* Align the stack suitably for the version of gcc in FreeBSD-4 (providedbde2002-09-292-0/+66
| | | | | | | | | | | | | | | | | | | -fomit-frame-pointer is not used). This is mostly moot for -current because gcc-3 does the alignment (slightly incorrectly) in main(). This patch is intended for easy MFC'ing and should be backed out in -current soon since it causes compiler warnings and better fixes are possible in -current. The best fix is to do nothing here and wait for gcc to do stack alignment right. gcc-3 aligns the stack in main(), but does it too late for main()'s local variables and too late for anything called before main(). A misaligned stack is now more than an efficiency problem, since some SSE instructions in some or all (hardware) implementations trap on misaligned operands even if alignment checking is not enabled. PR: 41528: Submitted by: NIIMI Satoshi <sa2c@sa2c.net> (original version) MFC after: 3 days
* Remove a prototype for a function that is no longer called.markm2002-09-201-1/+0
|
* Don't need to install the signal trampoline here anymore.jake2002-09-031-1/+0
|
* Drop support for COPY, -c has been the default mode of install(1)ru2002-07-297-7/+7
| | | | | | for a long time now. Approved by: bde
* The main reason for this is to reduce diffs between all the crt1.c's.markm2002-07-166-91/+140
| | | | | | | | | | | | | | | | | | | Assembler macros are tidied up and made as similar as sanely possible. The macros are translated into C (__inline static) functions for lint. Declaration orders are made the same. Declarations are all ISOfied and tidied up. Comment contents have gratuitous diffs removed. The net result is a bunch of crt1.c's that are 90% the same. It may be possible to now encapsulate the differences in one MD header, and have only one MI crt1.c file (although the macros to do this may be ugly). Helpful comments by: obrien, bde Alpha tested by: des i386-elf tested by: markm
* Whitespace diffs only; this brings this file into the same whitespacemarkm2002-07-032-52/+54
| | | | | | convention as src/lib/csu/*/crt1.c. This will make the follow up diffs easier to see and extract.
* WARNS=6'ify.obrien2002-06-251-7/+5
| | | | Style nits.
* Prototype _start.obrien2002-06-251-2/+4
| | | | | | Submitted by: markm Mark some _start formal parameters __unused.
* Use .rodata section for $FreeBSD$.obrien2002-05-156-12/+20
|
* Fixed CLEANFILES after bsd.lib.mk sweep.ru2002-05-136-0/+12
|
* SOBJS are not used here for a long time, and were justru2002-05-136-24/+12
| | | | pessimising the `install'.
* Major cleanup of bsd.lib.mk.ru2002-05-136-27/+0
| | | | | | | Get rid of the INTERNALSTATICLIB knob and just use plain INTERNALLIB. INTERNALLIB now means to build static library only and don't install anything. Added a NOINSTALLLIB knob for libpam/modules. To not build any library at all, just do not set LIB.
* Revert the last change. The corresponding bsd.lib.mk changes wereru2002-05-126-6/+25
| | | | already backed out.
* Use the simpler NOMAN rather than NOMAN, NOPIC, NOPROFILE, INTERNALLIB.obrien2002-05-116-25/+6
|
* Use the compiler's crt{begin,end}.obrien2002-05-101-2/+1
|
* Fix the copyright dates.obrien2002-05-071-1/+1
|
* Install the libc signal trampoline on startup.jake2002-04-291-0/+2
|
* Removed "-fkeep-inline-functions" from CFLAGS, since it now has no effectbde2002-04-292-2/+2
| | | | | | | | | | | | | except to generate spurious warnings about a system header <sys/param.h> having some inline functions (the bswap family). This backs out the main part of rev.1.5 (which was the only part left). The problem fixed by rev.1.5 of the Makefile went away in rev.1.5 of ../common/crtbegin.c when the references to do_ctors() and do_dtors() in the latter were moved from inline asm to C code. This leaves the problem that implementation details cause warnings. Discussed with: jdp
* Style nit and modernize SCM ID.obrien2002-04-131-8/+2
|
* For now we are using our old crt{begin,end}.obrien2002-04-081-3/+3
|
* Do not use __progname directly (except in [gs]etprogname(3)).markm2002-03-2914-24/+39
| | | | | | Also, make an internal _getprogname() that is used only inside libc. For libc, getprogname(3) is a weak symbol in case a function of the same name is defined in userland.
* Style nit.obrien2002-03-231-3/+3
|
* Remove prototype, no other crt1.c has or needs it.obrien2002-03-231-9/+6
|
* Remove __P() usage.obrien2002-03-221-2/+2
|
* Remove __P() usage.obrien2002-03-211-2/+2
|
* Revert part of rev 1.3 -- we need the calls to _init and _fini.obrien2002-03-161-4/+0
|
* Sync with csu/alpha/Makefile: build crt{i,n}.o.obrien2002-03-101-3/+2
| | | | Leave crtbegin* to the compiler vendor.
* Minor style(9) nit + utilize ELF features for the FreeBSD ID.obrien2002-02-281-6/+2
|
* Minor style(9) nit + utilize ELF features for the FreeBSD ID.obrien2002-02-273-16/+10
|
* We do not support the sparc platform.obrien2002-02-272-129/+0
|
* Minor WS change to improve readability.obrien2002-02-272-6/+6
|
* Initialize the libc user trap handlers before passing control non-startuptmm2002-02-231-0/+2
| | | | code, so that the userland fp emulator will work.
* GC code that moved to crtbrand.c.obrien2002-01-281-4/+0
|
OpenPOWER on IntegriCloud