1
0
mirror of https://github.com/golang/go synced 2024-10-03 06:21:21 -06:00

cmd/dist: support building on debian/kFreeBSD

The debian/kFreeBSD project uses the FreeBSD kernel and the debian userspace. From our point of view, this is freebsd not linux as GOOS talks about the kernel syscall interface, not the userspace (although cgo alters that). As debian/kFreeBSD is experimental at this time, I do not think it is worth the effort of duplicating all the freebsd specific code so this is proposal represents a reasonable workaround.

Currently cgo is not supported, make.bash will detect this and disable cgo automatically during the build.

dfc@debian:~/go/src$ uname -a
GNU/kFreeBSD debian 8.1-1-686 #0 Sat Jul 21 17:02:04 UTC 2012 i686 i386 Intel(R) Core(TM) i5-2415M CPU @ 2.30GHz GNU/kFreeBSD
dfc@debian:~/go/src$ ../bin/go version
go version devel +d05272f402ec Sat Dec 01 15:15:14 2012 -0800

Tested with GOOS=freebsd GOARCH=386

R=golang-dev
CC=golang-dev
https://golang.org/cl/6868046
This commit is contained in:
Dave Cheney 2012-12-04 08:27:30 +11:00
parent b1c4a8efa9
commit 3167c12eb2
2 changed files with 11 additions and 0 deletions

4
src/cmd/dist/unix.c vendored
View File

@ -670,6 +670,10 @@ main(int argc, char **argv)
gohostos = "linux";
#elif defined(__FreeBSD__)
gohostos = "freebsd";
#elif defined(__FreeBSD_kernel__)
// detect debian/kFreeBSD.
// http://wiki.debian.org/Debian_GNU/kFreeBSD_FAQ#Q._How_do_I_detect_kfreebsd_with_preprocessor_directives_in_a_C_program.3F
gohostos = "freebsd";
#elif defined(__OpenBSD__)
gohostos = "openbsd";
#elif defined(__NetBSD__)

View File

@ -77,6 +77,13 @@ do
fi
done
# Test for debian/kFreeBSD.
# cmd/dist will detect kFreeBSD as freebsd/$GOARCH, but we need to
# disable cgo manually.
if [ "$(uname -s)" == "GNU/kFreeBSD" ]; then
export CGO_ENABLED=0
fi
# Clean old generated file that will cause problems in the build.
rm -f ./pkg/runtime/runtime_defs.go