pkgsrc/lang/go/Makefile
bsiegert 6f21ac1847 Update Go to 1.9.
The latest Go release, version 1.9, arrives six months after Go 1.8 and
is the tenth release in the Go 1.x series. There are two changes to the
language: adding support for type aliases and defining when
implementations may fuse floating point operations. Most of the changes
are in the implementation of the toolchain, runtime, and libraries. As
always, the release maintains the Go 1 promise of compatibility. We
expect almost all Go programs to continue to compile and run as before.

The release adds transparent monotonic time support, parallelizes
compilation of functions within a package, better supports test helper
functions, includes a new bit manipulation package, and has a new
concurrent map type.


There are some instabilities on FreeBSD that are known but not
understood. These can lead to program crashes in rare cases. See issue
15658. Any help in solving this FreeBSD-specific issue would be
appreciated.

Go stopped running NetBSD builders during the Go 1.9 development cycle
due to NetBSD kernel crashes, up to and including NetBSD 7.1. As Go 1.9
is being released, NetBSD 7.1.1 is being released with a fix. However,
at this time we have no NetBSD builders passing our test suite. Any help
investigating the various NetBSD issues would be appreciated.
2017-09-03 07:12:07 +00:00

109 lines
3.4 KiB
Makefile

# $NetBSD: Makefile,v 1.54 2017/09/03 07:12:07 bsiegert Exp $
.include "version.mk"
DISTNAME= go${GO_VERSION}.src
PKGNAME= go-${GO_VERSION}
CATEGORIES= lang
MASTER_SITES= https://storage.googleapis.com/golang/
MAINTAINER= bsiegert@NetBSD.org
HOMEPAGE= http://golang.org/
COMMENT= The Go programming language
LICENSE= modified-bsd
WRKSRC= ${WRKDIR}/go
USE_TOOLS+= bash:run perl:run pax
# uses ulimit -T
# BUILD_DEPENDS+= bash>=4.2nb3:../../shells/bash
# cgo compiles under TMPDIR
TMPDIR?= /tmp
BUILDLINK_PASSTHRU_DIRS+= ${TMPDIR}
GOROOT_FINAL= ${PREFIX}/go
INSTALLATION_DIRS= bin
REPLACE_BASH+= doc/articles/wiki/test.bash
REPLACE_BASH+= doc/codewalk/run
REPLACE_BASH+= lib/time/update.bash
REPLACE_BASH+= misc/arm/a
REPLACE_BASH+= misc/benchcmp
REPLACE_BASH+= misc/cgo/errors/test.bash
REPLACE_BASH+= misc/cgo/fortran/test.bash
REPLACE_BASH+= misc/cgo/testcarchive/test.bash
REPLACE_BASH+= misc/cgo/testcshared/test.bash
REPLACE_BASH+= misc/cgo/testgodefs/test.bash
REPLACE_BASH+= misc/cgo/testplugin/test.bash
REPLACE_BASH+= misc/cgo/testsanitizers/test.bash
REPLACE_BASH+= misc/nacl/go_nacl_386_exec
REPLACE_BASH+= misc/nacl/go_nacl_amd64p32_exec
REPLACE_BASH+= misc/nacl/go_nacl_arm_exec
REPLACE_BASH+= src/all.bash
REPLACE_BASH+= src/androidtest.bash
REPLACE_BASH+= src/bootstrap.bash
REPLACE_BASH+= src/buildall.bash
REPLACE_BASH+= src/clean.bash
REPLACE_BASH+= src/cmd/compile/internal/big/vendor.bash
REPLACE_BASH+= src/cmd/dist/mkdeps.bash
REPLACE_BASH+= src/cmd/go/mkalldocs.sh
REPLACE_BASH+= src/internal/trace/mkcanned.bash
REPLACE_BASH+= src/iostest.bash
REPLACE_BASH+= src/make.bash
REPLACE_BASH+= src/naclmake.bash
REPLACE_BASH+= src/nacltest.bash
REPLACE_BASH+= src/race.bash
REPLACE_BASH+= src/run.bash
REPLACE_BASH+= src/runtime/mknacl.sh
REPLACE_BASH+= src/syscall/mkall.sh
REPLACE_BASH+= src/syscall/mkerrors.sh
REPLACE_BASH+= src/syscall/mksysnum_plan9.sh
REPLACE_PERL+= src/net/http/cgi/testdata/test.cgi
REPLACE_PERL+= src/regexp/syntax/make_perl_groups.pl
REPLACE_PERL+= src/syscall/*.pl
REPLACE_PERL+= test/errchk
# uses own linker, which does not support relro on NetBSD
CHECK_RELRO_SKIP+= go/bin/go
CHECK_RELRO_SKIP+= go/bin/gofmt
CHECK_RELRO_SKIP+= go/pkg/bootstrap/bin/asm
CHECK_RELRO_SKIP+= go/pkg/bootstrap/bin/compile
CHECK_RELRO_SKIP+= go/pkg/bootstrap/bin/link
# uses /bin/rc (for Plan 9)
CHECK_INTERPRETER_SKIP+= go/include/plan9/mklibc.rc
CHECK_INTERPRETER_SKIP+= go/src/all.rc
CHECK_INTERPRETER_SKIP+= go/src/clean.rc
CHECK_INTERPRETER_SKIP+= go/src/make.rc
CHECK_INTERPRETER_SKIP+= go/src/run.rc
BUILD_DEPENDS+= go14-1.4*:../../lang/go14
GOROOT_BOOTSTRAP= ${PREFIX}/go14
.include "../../mk/bsd.prefs.mk"
PLIST_VARS+= route
.if ${OPSYS} != "Linux" && ${OPSYS} != "SunOS"
PLIST.route= yes
.endif
do-build:
cd ${WRKSRC}/src && env GOROOT_BOOTSTRAP=${GOROOT_BOOTSTRAP:Q} GOROOT_FINAL=${GOROOT_FINAL:Q} ${BASH} ./make.bash
# for RELRO build:
# cd ${WRKSRC}/src && env GOROOT_BOOTSTRAP=${GOROOT_BOOTSTRAP:Q} GOROOT_FINAL=${GOROOT_FINAL:Q} GO_LDFLAGS="-buildmode=pie" ${BASH} ./make.bash
do-install:
cd ${WRKSRC} && rm -rf .hgignore .hgtags pkg/obj
cd ${WRKDIR} && pax -rw go ${DESTDIR}${PREFIX}
find ${DESTDIR}${PREFIX}/go -name \*.orig -exec rm {} \;
.for cmd in go gofmt
cd ${DESTDIR}${PREFIX}/bin && ln -sf ../go/bin/${cmd} ${cmd}
.endfor
do-test:
cd ${WRKSRC}/src && GOROOT=${WRKSRC} PATH=${WRKSRC}/bin:${PATH} ${BASH} run.bash --no-rebuild --banner ""
.include "../../mk/bsd.pkg.mk"