Extend use of the linkage table to static symbols
authorDavid Lichteblau <david@lichteblau.com>
Tue, 23 Oct 2012 19:55:02 +0000 (21:55 +0200)
committerDavid Lichteblau <david@lichteblau.com>
Fri, 2 Nov 2012 19:43:05 +0000 (20:43 +0100)
commitf057566fe993f008a9b34dc87b026e7c8ef2611d
tree13d79f610b42815ceabac8b50c60abb0b235be77
parent3ea89bab9e4600ba80b6bc931481100fca74fa9d
Extend use of the linkage table to static symbols

  - Formerly static symbols are static no more:

  - Always use the linkage table, even in cross compilation.  The
    runtime retrieves the resulting list of foreign symbols and installs
    linkage table entries before calling into Lisp for the first time.

  - Simplify/remove various win32 foreign symbol special cases.

  - Almost remove scratch().

Conditional on feature SB-DYNAMIC-CORE; required on Windows and optional
on other platforms supporting the linkage table.

With this feature, changes to src/runtime can be built using make,
without requiring a slam.sh step to update core files.

For LINKAGE-TABLE platforms only.  Currently supported on x86 and
x86-64.  (PowerPC does not yet work.)  In the interest of simplicity,
disable this feature permanently on non-SB-THREAD platforms, because
these would require unpleasant changes to allocation macros.

Thanks to Anton Kovalenko.
26 files changed:
contrib/sb-bsd-sockets/defpackage.lisp
make-config.sh
make-target-1.sh
package-data-list.lisp-expr
src/assembly/x86/assem-rtns.lisp
src/code/debug-int.lisp
src/code/foreign-load.lisp
src/code/foreign.lisp
src/code/globals.lisp
src/code/run-program.lisp
src/code/unix.lisp
src/code/warm-lib.lisp [new file with mode: 0644]
src/code/win32-foreign-load.lisp
src/code/win32.lisp
src/cold/warm.lisp
src/compiler/generic/genesis.lisp
src/compiler/generic/parms.lisp
src/compiler/saptran.lisp
src/runtime/Config.x86-win32
src/runtime/os-common.c
src/runtime/os.h
src/runtime/print.c
src/runtime/runtime.c
src/runtime/runtime.h
src/runtime/win32-os.c
tests/external-format.impure.lisp