Skip to content
Snippets Groups Projects
Forked from cmucl / cmucl
Source project has a limited visibility.
  • moore's avatar
    bf84be07
    · bf84be07
    moore authored
    On x86 FreeBSD and Linux, change the way foreign symbol addresses are resolved.
    They now go through a table -- effectively a new space in the core file.
    Function references are resolved lazily, data references are resolved on startup
    and when a .so is loaded.  The end result is that cores can be dumped that
    contain references to symbols in shared libraries.  Also, the dependence of the core on addresses in the Lisp runtime is broken.
    
    The linkage table feature is controlled by :linkage-table and LINKAGE_TABLE in C
    runtime.  Several foreign symbols are now Lisp static symbols, so a cross
    compile is required whether or not the new stuff is used.  I've checked in
    boot4-cross-foreign-linkage.lisp that builds the compiler for linkage table; do whatever you usually do for the non-linkage table case:)  Seriously, lets start
    a discussion on standardizing "cross compilation," not to mention the general
    build procedure.
    bf84be07
    History
    moore authored
    On x86 FreeBSD and Linux, change the way foreign symbol addresses are resolved.
    They now go through a table -- effectively a new space in the core file.
    Function references are resolved lazily, data references are resolved on startup
    and when a .so is loaded.  The end result is that cores can be dumped that
    contain references to symbols in shared libraries.  Also, the dependence of the core on addresses in the Lisp runtime is broken.
    
    The linkage table feature is controlled by :linkage-table and LINKAGE_TABLE in C
    runtime.  Several foreign symbols are now Lisp static symbols, so a cross
    compile is required whether or not the new stuff is used.  I've checked in
    boot4-cross-foreign-linkage.lisp that builds the compiler for linkage table; do whatever you usually do for the non-linkage table case:)  Seriously, lets start
    a discussion on standardizing "cross compilation," not to mention the general
    build procedure.