summaryrefslogtreecommitdiffstats
path: root/lib/csu
Commit message (Collapse)AuthorAgeFilesLines
* Add rcsid's.obrien2001-01-043-9/+23
|
* The instructions on doing something with src/lib/csu/powerpc.obrien2001-01-041-0/+26
|
* PowerPC version of the C runtime support.obrien2001-01-041-0/+124
| | | | | This is an amalgamation of the NetBSD macppc crt0.c (which the copyright reflects) and the FreeBSD/Alpha crt1.c.
* PowerPC verions of the crt initialization and finalization files requiredobrien2001-01-042-0/+91
| | | | by the ELF ABI.
* Alpha verions of the crt initialization and finalization files requiredobrien2000-10-303-2/+96
| | | | by the ELF ABI.
* * Bring back the guts of crt{i,n}.S. This allows C++ exceptions to workobrien2000-10-2814-44/+99
| | | | | | | | | | | | | | | | | | | when using the egcs and gcc-devel ports, along with GCC built from stock public FSF sources. With out this change, FreeBSD will be removed from the list of systems GCC 3.0 must be evaluated on before release. With the effort some of us put into getting FreeBSD on this list, we should not turn this effort into a waste, else we might not be worth fighting for in the future. (note that Alpha and IA-64 versions of crt{i,n}.S are needed) * Switch from our own crt{begin,in} to those created from GCC's crtstuff.c. This will allow us to switch to DWARF2 exceptions in the future, along with staying in sync with any future GCC requirements. * Break out our ELF branding bits into a seperate file. Currently this is now included by our crt1.c files (since this functionality was part of our native crtbegin.c). Later crtbrand.o will be merged in the creation of crti.o.
* CSU code for ia64.dfr2000-10-141-0/+115
|
* Use the new machine-independent versions of crtbegin and crtendobrien2000-05-242-7/+5
| | | | from the "common" directory.
* Use the new machine-independent versions of crtbegin and crtendjdp2000-05-233-108/+2
| | | | | | | | from the "common" directory. As a side-effect, this also fixes a bug in the ordering of global constructors and destructors on the Alpha. See revision 1.3 of "../common/crtbegin.c" for details.
* Take crtbegin.c and crtend.c from the new machine-independentjdp2000-05-204-135/+4
| | | | "common" sister directory.
* This is step 1 in an effort to unify the start-up files for thejdp2000-05-196-78/+120
| | | | | | | | | | | | | | | | | various architectures. Now all the work is done in crtbegin.c. It doesn't contain any assembly language code, so it should work fine on all architectures. (I have tested it on the i386 and the alpha.) The old assembly language files crt[in].S are now empty shells that generate no code or data. They should not be removed any time soon, because the various versions of gcc in src and ports expect them to exist. Next I will move crtbegin.c into a new common machine-independent directory, and adjust the i386-elf Makefile to use that version. After that I will adjust the alpha Makefile to use the common version too. Requested by: obrien
* CSU source for IA-64. Current we use the ../Alpha sources.obrien2000-04-191-0/+28
|
* Use ${.ALLSRC} in Makefile so that it is a better candidate for copying.obrien2000-04-192-2/+2
| | | | Also allows the soruce to live somewhere else.
* CSU source for the Sparc copied over from the FreeBSD/Alpha sources.steve2000-04-194-0/+237
|
* Change our ELF binary branding to something more acceptable to the Binutilsobrien2000-04-182-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | maintainers. After we established our branding method of writing upto 8 characters of the OS name into the ELF header in the padding; the Binutils maintainers and/or SCO (as USL) decided that instead the ELF header should grow two new fields -- EI_OSABI and EI_ABIVERSION. Each of these are an 8-bit unsigned integer. SCO has assigned official values for the EI_OSABI field. In addition to this, the Binutils maintainers and NetBSD decided that a better ELF branding method was to include ABI information in a ".note" ELF section. With this set of changes, we will now create ELF binaries branded using both "official" methods. Due to the complexity of adding a section to a binary, binaries branded with ``brandelf'' will only brand using the EI_OSABI method. Also due to the complexity of pulling a section out of an ELF file vs. poking around in the ELF header, our image activator only looks at the EI_OSABI header field. Note that a new kernel can still properly load old binaries except for Linux static binaries branded in our old method. * * For a short period of time, ``ld'' will also brand ELF binaries * using our old method. This is so people can still use kernel.old * with a new world. This support will be removed before 5.0-RELEASE, * and may not last anywhere upto the actual release. My expiration * time for this is about 6mo. *
* $Id$ -> $FreeBSD$peter1999-08-2819-19/+19
|
* Enable gcrt1.o.simokawa1999-07-162-2/+25
|
* Call do_ctors() and do_dtors() using indirect calls through functionjdp1999-06-061-3/+12
| | | | | | | pointers. The calls are in different sections from the functions being called, and they can potentially be far away. On a very large program, the 21-bit displacement field of the BSR instruction overflowed at link time.
* Remove some left-over stuff from NetBSD that we don't need. Thisjdp1999-04-242-29/+7
| | | | | eliminates the need to include the dynamic linker's private header file, as well as two other headers from <sys>.
* Ugh. I didn't know this Makefile was reaching over into the dynamicjdp1999-04-091-2/+4
| | | | | linker sources for some of its header files. Add a -I flag to pick up a new directory over there.
* Add "-fkeep-inline-functions" to CFLAGS so that higher optimizationjdp1999-03-152-6/+4
| | | | | | | | levels (-O3 and above) won't remove essential code. Many thanks to Dmitrij Tejblum <dima@tejblum.dnttm.rssi.ru> for pointing out that it was the optimizer's removal of this code that caused make world with -O3 to break. With this change, make buildworld now completes.
* Reverse the order of processing object files within an executable orjdp1999-03-132-6/+6
| | | | | | | | | | | | | shared library when invoking global constructors and destructors. For constructors, the object files used to be processed from first to last; now they're done from last to first. (Destructors are done in the opposite order, as required by the C++ standard.) This makes us consistent with standard gcc and egcs compilers. It also eliminates ordering differences between dynamic and static executables. Bump the value of __FreeBSD_version to 400002 to reflect this change.
* Move the code for the ".init" and ".fini" sections outside of ajdp1999-03-126-30/+30
| | | | | | | | | C function so the compiler won't try to emit line numbers for it with "-g", breaking the build. This has the nice side-effect of making crtbegin.o and crtbeginS.o a little bit smaller. Remove "-Wno-unused" from the Makefile. Replace it with "__unused" on particular function and variable declarations.
* Initialize __progname by argv[0] before striping leading path,simokawa1999-01-191-1/+2
| | | | otherwise we always get empty name.
* Switch to using ".So" as the extension for PIC object files ratherjdp1999-01-093-9/+9
| | | | | | | | than ".so". The old extension conflicted with well-established naming conventions for dynamically loadable modules. The "clean" targets continue to remove ".so" files too, to deal with old systems.
* Strip the leading path from __progname.steve1999-01-071-3/+7
| | | | Ok'd by: jdp
* Fixed type mismatches in args to __syscall(). One for mmap() broke onbde1998-12-271-5/+5
| | | | | i386's with 64-bit longs -- the padding between mmap()'s 5th and 6th is an int, not a long. The other mismatches were benign.
* Avoid using ld -O (as in bsd.lib.mk).bde1998-12-271-7/+16
| | | | Fixed `make cleandepend'. The default is null because SRCS is null.
* Strip the leading path from __progname as is done in the a.out case. Alsosteve1998-12-242-6/+18
| | | | | | | bring in stddef.h so we can use NULL instead of 0 for pointer comparisons. Hinted at by: Bruce Evans Reviewed by: John Polstra
* Make profiling work for ELF. gprof now autodetects the format ofjdp1998-09-074-4/+50
| | | | | | | | | | | the executable file, so it will work for both a.out and ELF format files. I have split the object format specific code into separate source files. It's cleaner than it was before, but it's still pretty crufty. Don't cheat on your make world for this update. A lot of things have to be rebuilt for it to work, including the compiler and all of the profiled libraries.
* Remove the bootstrap hack that prevented the use of the rtld.jb1998-08-202-24/+3
|
* Fixed double slashes in pathnames.bde1998-05-311-2/+2
|
* ELF preparation step 2:sos1998-05-261-2/+2
| | | | | | | | | | | | | | Move a.out libraries to /usr/lib/aout to make space for ELF libs. Make rtld usr /usr/lib/aout as default library path. Make ldconfig reject /usr/lib as an a.out library path. Fix various Makefiles for LIBDIR!=/usr/lib breakage. This will after a make world & reboot give a system that no longer uses /usr/lib/*, infact one could remove all the old libraries there, they are not used anymore. We are getting close to an ELF make world, but I'll let this all settle for a week or two...
* Force BOOTSTRAP mode all the time while the headers are broken on alphajb1998-05-041-1/+5
| | | | as the result of i386 changes.
* Temporary fix for problems that occur if CFLAGS=-g is added tojb1998-04-011-1/+2
| | | | | /etc/make.conf. The tools can't handle generating debug code where we fiddle with the ELF segments.
* Bring these back from the dead.jb1998-03-112-0/+99
|
* Don't share sources with i386-elf. That was too difficult. 8-(jb1998-03-111-4/+7
| | | | | | | | Add a bootstrap mode so that non-rtld versions of these objects can be built when bootstrapping the system with NetBSD tools, headers and libraries. Once the FreeBSD tools are built, the FreeBSD headers are installed and *then* these objects can be recompiled with the rtld references. Phew.
* This commit was generated by cvs2svn to compensate for changes in r34484,jb1998-03-111-20/+68
|\ | | | | | | which included commits to RCS files with non-trunk default branches.
| * Sharing the crt sources with i386-elf wasn't too successful. The crtijb1998-03-113-108/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | asm code didn't link the way it was supposed to and the calling convention for the entry "function" turned out to be very different. On alpha it's a true function, but on i386 it's a fudge. Blech. So jdp suggested keeping separate sets of source and avoiding lots of #ifdefs. These files are based on his i386-elf code, with crt1.c borrowing code from NetBSD's crt0. The copyright reflects that. Complicating matters, the code turned out to be difficult to bootstrap build using NetBSD tools. To compile against the FreeBSD rtld header requires FreeBSD specific headers, but these can't be installed until the tools are built, and they can't be built without the FreeBSD crt objects. Anal retentive. So I introduced a HAVE_RTLD #define that isn't set during the build process until all the tools are built and the headers installed.
* | Trash startup sources from NetBSD in favour of jdp's FreeBSD sourcejb1998-03-104-419/+23
| | | | | | | | | | | | | | | | | | now that has been committed. The makefile is derived from the i386-elf version, modified to pick up most of the source (except crt1.c) from i386-elf. With minor changes to i386-elf/crt1.c, this directory can be combined with i386-elf to be a single csu/elf directory for all seasons.
* | This commit was generated by cvs2svn to compensate for changes in r34452,jb1998-03-101-0/+63
|\ \ | |/ | | | | which included commits to RCS files with non-trunk default branches.
| * Import a sanitized version of jdp's crt1.c from i386-elf. I have removedjb1998-03-101-0/+63
| | | | | | | | | | | | | | the rtld code pending implementation on the alpha. The csu/i386-elf should be renamed as csu/elf and this directory trashed. Consider this a temporary implementation.
| * This commit was manufactured by cvs2svn to create branch 'jb'.cvs2svn1998-01-117-1182/+0
| |
* | This commit was generated by cvs2svn to compensate for changes in r34198,jdp1998-03-076-0/+263
|\ \ | | | | | | | | | which included commits to RCS files with non-trunk default branches.
| * | Import C startup files for ELF support.jdp1998-03-076-0/+263
| / | | | | | | Submitted by: John Polstra <jdp@polstra.com>
* | Import C startup files for ELF support.jdp1998-03-076-0/+263
| | | | | | | | Submitted by: John Polstra <jdp@polstra.com>
* | Remove the include of <dlfcn.h> from crt0.c; it is not needed nowjdp1998-02-113-79/+3
| | | | | | | | | | | | | | that the dl* trampolines have been moved into libc. Move dlfcn.h from src/lib/csu/i386 into src/include. Nothing in src/lib/csu/i386 uses it any more.
* | Move the trampolines for dlopen and related functions from crt0.ojdp1998-02-094-481/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into libc. This reduces the size of every dynamically linked executable by 248 bytes, and it reduces the size of static executables by a lesser amount. It also eliminates some global namespace pollution. With this change in place, the source for dlfcn.h should probably be moved to "/usr/src/include". I'll save that for another day. Compatibility note: Programs which use dlopen, if compiled on systems with this change, will not run on systems with a libc from prior to this change. Very few programs use dlopen, so I think that is OK.
* | Implement dladdr.jdp1998-02-064-13/+169
| |
* | ${TARGET} -> ${.TARGET}eivind1998-01-121-2/+2
|/ | | | Tiny pointed hat goes to: Our Makefile-meister.
OpenPOWER on IntegriCloud