• Ian Lance Taylor's avatar
    cmd/link, cmd/go, cmd/dist: use copy of libgcc.a for internal linking · 754f707f
    Ian Lance Taylor authored
    Change the linker to use a copy of the C compiler support library,
    libgcc.a, when doing internal linking.  This will be used to satisfy any
    undefined symbols referenced by host objects.
    
    Change the dist tool to copy the support library into a new directory
    tree under GOROOT/pkg/libgcc.  This ensures that libgcc is available
    even when building Go programs on a system that has no C compiler.  The
    C compiler is required when building the Go installation in the first
    place, but is not required thereafter.
    
    Change the go tool to not link libgcc into cgo objects.
    
    Correct the linker handling of a weak symbol in an ELF input object to
    not always create a new symbol, but to use an existing symbol if there
    is one; this is necessary on freebsd-amd64, where libgcc contains a weak
    definition of compilerrt_abort_impl.
    
    Fixes #9510.
    
    Change-Id: I1ab28182263238d9bcaf6a42804e5da2a87d8778
    Reviewed-on: https://go-review.googlesource.com/16741Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
    754f707f
Name
Last commit
Last update
..
archive Loading commit data...
bufio Loading commit data...
builtin Loading commit data...
bytes Loading commit data...
cmd Loading commit data...
compress Loading commit data...
container Loading commit data...
crypto Loading commit data...
database/sql Loading commit data...
debug Loading commit data...
encoding Loading commit data...
errors Loading commit data...
expvar Loading commit data...
flag Loading commit data...
fmt Loading commit data...
go Loading commit data...
hash Loading commit data...
html Loading commit data...
image Loading commit data...
index/suffixarray Loading commit data...
internal Loading commit data...
io Loading commit data...
log Loading commit data...
math Loading commit data...
mime Loading commit data...
net Loading commit data...
os Loading commit data...
path Loading commit data...
reflect Loading commit data...
regexp Loading commit data...
runtime Loading commit data...
sort Loading commit data...
strconv Loading commit data...
strings Loading commit data...
sync Loading commit data...
syscall Loading commit data...
testing Loading commit data...
text Loading commit data...
time Loading commit data...
unicode Loading commit data...
unsafe Loading commit data...
vendor/golang.org/x/net/http2/hpack Loading commit data...
Make.dist Loading commit data...
all.bash Loading commit data...
all.bat Loading commit data...
all.rc Loading commit data...
androidtest.bash Loading commit data...
bootstrap.bash Loading commit data...
buildall.bash Loading commit data...
clean.bash Loading commit data...
clean.bat Loading commit data...
clean.rc Loading commit data...
iostest.bash Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc Loading commit data...
nacltest.bash Loading commit data...
race.bash Loading commit data...
race.bat Loading commit data...
run.bash Loading commit data...
run.bat Loading commit data...
run.rc Loading commit data...