Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
Merge changes from HEAD that allow the executable feature to work again on FreeBSD.
Rename linker-x86.sh to linker.sh. lisp/elf.h: o Set LINKER_SCRIPT to linker.sh tools/make-main-dist.sh: o Don't copy linker-x86.sh to the distribution anymore. tools/linker.sh: o Copied contents of linker-x86.sh to here.
Change how we build executables for Linux. We no longer need the hairy and fragile linker script. Instead, we can use regular old gcc to do what we need. (Should also work for FreeBSD, but not yet implemented.) lisp/elf.c: o Include validate.h so we can get the starting addresses of the read-only, static, and dynamic spaces. o Add special case for linux to run the linker script correctly. lisp/elf.h: o There's a separate linker script for Linux. lisp/save.c: o Temporarily don't run elf_cleanup so we can have easier testing/debugging. tools/linker.sh: o Don't need BIFLAG anymore. tools/make-main-dist.sh: o Install linker-x86.sh.
Change how Solaris executables set up builtin_image_flag. Instead of having the address of builtin_image_flag set to some (random) address of mapped memory that is non-zero, we add a special file to lisp.a that defines builtin_image_flag to 1. lisp/Config.sparc_common: o Define EXEC_FINAL_OBJ lisp/GNUmakefile: o Make lisp.a depend on EXEC_FINAL_OBJ o On Solaris, add EXEC_FINAL_OBJ to lisp.a. tools/SunOS-cmucl-linker-script: o Remove the line setting the address of builtin_image_flag. tools/linker.sh: o For Solaris, we don't need to define BIFLAG; the builtin_image_flag is automatically set correctly by linking in lisp.a
Need to strip off any directory from the path to get the output file name because we cd to the directory already.
Update previous change for sparc.
lisp/elf.c: o Print out the size of Elf_Ehdr and Elf32_Phdr, for debugging. o Pass the address of main to the linker script. We will use the first word of main as the address of builtin_image_flag. It seems highly unlikely that this would have have the value 0. tools/Linux-cmucl-linker-script: o Hardwire the value of SIZEOF_HEADERS. This is needed on Debian to get the right number of segments. o Comment out some items and/or fix them so that Debian's linker doesn't complain. Doesn't appear to do any harm on openSuSE 11.2. tools/linker.sh: o Update for the additional argument for the address of main to use as the address of builtin_image_flag.
The generated linker script was placed in the wrong directory and ld could not find it. Put it in the same directory as executable, and delete it when done.
Merge dirname fix from trunk.
From A.M.Raportirenko, on cmucl-imp, Sep 25, 2009: dirname destructively modifies its argument. lisp/save.c: o Call dirname once, saving the result, and use it everywhere.
Add support for executable stuff using Sun C on sparc. The executable appears to be created successfully, and you can do things, but it is not usable. lisp/elf.h: o Set C_COMPILER to either "cc" or "gcc". We use gcc everywhere, except if the C compiler is Sun C on sparc. lisp/elf.c: o Print out C_COMPILER as the first arg to the linker script. tools/linker.sh: o Rearrange code so test for number of args is done first. o Look at the first arg to determine the C compiler used. If gcc, use the original code. Add new code to support Sun C.
Remove the sunos-map-file when linker.sh exits.
Add initial support executables on Solaris with gcc. Executables are created and will run, but you can't load new files. Still needs work. src/exec-init.c: o New file that defines builtin_image_flag and initial_function_addr, instead of being defined in lisp.c code/sunos-os.lisp: o Register the :executable feature if needed. lisp/GNUmakefile: o Add exec-init.c to list of src files. o Remove exec-init.o from lisp.a when building on Solaris. lisp/elf.c: o Port the elf code to Solaris. - Basically set up the correct values for the elf header and sections. - The ELF core sections on Solaris don't have valid addresses so we explicitly set them when mapping the core sections. lisp/elf.h o Use SOLARIS instead of sparc. lisp/lisp.c: o builtin_image_flag and initial_function_addr moved to exec-init.c. tools/linker.sh: o Support Solaris tools/make-main-dist.sh: o Support Solaris tools/SunOS-cmucl-linker-script: o New file for SunOS executable.
Add special case for x86_64 to linker.sh.
Simplify finding C runtime object files. Suggested by Ray Toy.
Fix script so it will work with different versions of Linux (with any luck).
Add linker script for building Lisp executables.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.
|Powered by ViewVC 1.1.5|