• Russ Cox's avatar
    cmd/ld: support for linking with host linker · 0cb0f6d0
    Russ Cox authored
    A step toward a fix for issue 4069.
    
    To allow linking with arbitrary host object files, add a linker mode
    that can generate a host object file instead of an executable.
    Then the host linker can be invoked to generate the final executable.
    
    This CL adds a new -hostobj flag that instructs the linker to write
    a host object file instead of an executable.
    
    That is, this works:
    
            go tool 6g x.go
            go tool 6l -hostobj -o x.o x.6
            ld -e _rt0_amd64_linux x.o
            ./a.out
    
    as does:
    
            go tool 8g x.go
            go tool 8l -hostld ignored -o x.o x.8
            ld -m elf_i386 -e _rt0_386_linux x.o
            ./a.out
    
    Because 5l was never updated to use the standard relocation scheme,
    it will take more work to get this working on ARM.
    
    This is a checkpoint of the basic functionality. It does not work
    with cgo yet, and cgo is the main reason for the change.
    The command-line interface will likely change too.
    The gc linker has other information that needs to be returned to
    the caller for use when invoking the host linker besides the single
    object file.
    
    R=iant, iant
    CC=golang-dev
    https://golang.org/cl/7060044
    0cb0f6d0
Name
Last commit
Last update
api Loading commit data...
doc Loading commit data...
include Loading commit data...
lib Loading commit data...
misc Loading commit data...
src Loading commit data...
test Loading commit data...
.hgignore Loading commit data...
.hgtags Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTORS Loading commit data...
LICENSE Loading commit data...
PATENTS Loading commit data...
README Loading commit data...
favicon.ico Loading commit data...
robots.txt Loading commit data...