mirror of https://github.com/golang/go.git
runtime, cmd/ld, cmd/5l, run.bash: enable external linking on FreeBSD/ARM.
Update #7331 LGTM=dave, iant R=golang-codereviews, dave, gobot, iant CC=golang-codereviews https://golang.org/cl/89520043
This commit is contained in:
parent
9ba153e3e0
commit
d31d19765b
|
|
@ -62,6 +62,7 @@ archinit(void)
|
|||
sysfatal("cannot use -linkmode=external with -H %s", headstr(HEADTYPE));
|
||||
break;
|
||||
case Hlinux:
|
||||
case Hfreebsd:
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -55,8 +55,8 @@ elfinit(void)
|
|||
|
||||
// 32-bit architectures
|
||||
case '5':
|
||||
// we only use EABI on linux/arm
|
||||
if(HEADTYPE == Hlinux)
|
||||
// we use EABI on both linux/arm and freebsd/arm.
|
||||
if(HEADTYPE == Hlinux || HEADTYPE == Hfreebsd)
|
||||
hdr.flags = 0x5000002; // has entry point, Version5 EABI
|
||||
// fallthrough
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -11,3 +11,8 @@ TEXT _rt0_arm_freebsd(SB),NOSPLIT,$-4
|
|||
MOVW $4(R13), R1 // argv
|
||||
MOVM.DB.W [R0-R1], (R13)
|
||||
B _rt0_go(SB)
|
||||
|
||||
TEXT main(SB),NOSPLIT,$-4
|
||||
MOVM.DB.W [R0-R1], (R13)
|
||||
MOVW $_rt0_go(SB), R4
|
||||
B (R4)
|
||||
|
|
|
|||
|
|
@ -127,13 +127,18 @@ darwin-386 | darwin-amd64)
|
|||
*) go test -ldflags '-linkmode=external' || exit 1;;
|
||||
esac
|
||||
;;
|
||||
dragonfly-386 | dragonfly-amd64 | freebsd-386 | freebsd-amd64 | linux-386 | linux-amd64 | linux-arm | netbsd-386 | netbsd-amd64)
|
||||
dragonfly-386 | dragonfly-amd64 | freebsd-386 | freebsd-amd64 | freebsd-arm | linux-386 | linux-amd64 | linux-arm | netbsd-386 | netbsd-amd64)
|
||||
go test -ldflags '-linkmode=external' || exit 1
|
||||
go test -ldflags '-linkmode=auto' ../testtls || exit 1
|
||||
go test -ldflags '-linkmode=external' ../testtls || exit 1
|
||||
|
||||
case "$GOHOSTOS-$GOARCH" in
|
||||
netbsd-386 | netbsd-amd64) ;; # no static linking
|
||||
freebsd-arm) ;; # -fPIC compiled tls code will use __tls_get_addr instead
|
||||
# of __aeabi_read_tp, however, on FreeBSD/ARM, __tls_get_addr
|
||||
# is implemented in rtld-elf, so -fPIC isn't compatible with
|
||||
# static linking on FreeBSD/ARM with clang. (cgo depends on
|
||||
# -fPIC fundamentally.)
|
||||
*)
|
||||
go test -ldflags '-linkmode=external -extldflags "-static -pthread"' ../testtls || exit 1
|
||||
;;
|
||||
|
|
|
|||
Loading…
Reference in New Issue