openbsd-ports/lang/go/Makefile
jsing 4d26e08575 Stop using sigreturn from the Go openbsd/386 signal trampoline - the
sigreturn syscall is going away in future versions of OpenBSD and its
use for Go is already broken due to the trampoline return checks. Instead
just return directly from the signal trampoline (as we have always done
for Go openbsd/amd64).

Also fix a bug in the Go openbsd/386 linker, which results in symbols in
the dynamic symbol table being emitted with a size of zero. With a current
ld.so, this results in symbol mismatch warnings.

Unbreaks the Go port on openbsd/386, however it still fails to pass regress
due to the PT_TLS changes.
2016-05-13 13:49:26 +00:00

102 lines
2.1 KiB
Makefile

# $OpenBSD: Makefile,v 1.32 2016/05/13 13:49:26 jsing Exp $
ONLY_FOR_ARCHS = ${GO_ARCHS}
COMMENT = Go programming language
VERSION = 1.6
EXTRACT_SUFX = .src.tar.gz
DISTNAME = go${VERSION}
PKGNAME = go-${VERSION}
REVISION = 1
CATEGORIES = lang
HOMEPAGE = https://golang.org/
MAINTAINER = Joel Sing <jsing@openbsd.org>
# software: BSD, documentation: CC-BY-3.0
PERMIT_PACKAGE_CDROM = Yes
WANTLIB = c m pthread
MASTER_SITES = https://golang.org/dl/
BUILD_DEPENDS = lang/go-bootstrap shells/bash
SEPARATE_BUILD = simple
CONFIGURE_STYLE = None
SUBST_VARS = GOCFG
WRKDIST = ${WRKDIR}/go
WRKSRC = ${WRKDIST}/src
INSTALL_STRIP =
GOOS = openbsd
GOARCH = unknown
GOROOT = ${PREFIX}/go
GOROOT_BOOTSTRAP = ${PREFIX}/go/bootstrap
.if ${MACHINE_ARCH} == "amd64"
GOARCH = amd64
.elif ${MACHINE_ARCH} == "i386"
GOARCH = 386
.endif
GOCFG = /${GOOS}_${GOARCH}
do-configure:
. if ${GOARCH} == "unknown"
@echo "Unable to determine GOARCH for ${MACHINE_ARCH}."
@exit 1
. endif
do-build:
@cd ${WRKSRC} && \
CC="${CC}" \
CXX="${CXX}" \
GOROOT=${WRKDIST} \
GOBIN=${WRKDIST}/bin \
GOROOT_FINAL=${GOROOT} \
GOROOT_BOOTSTRAP=${GOROOT_BOOTSTRAP} ./make.bash --no-banner
do-test:
@cd ${WRKSRC} && \
ulimit -n 256 -d 2097152 && \
PATH=${WRKDIST}/bin:${PATH} GOROOT=${WRKDIST} ./run.bash
do-install:
${INSTALL_PROGRAM_DIR} ${GOROOT}
${INSTALL_PROGRAM_DIR} ${GOROOT}/bin
${INSTALL_PROGRAM} -p ${WRKDIST}/bin/go{,fmt} ${GOROOT}/bin
@cd ${PREFIX}/bin && \
ln -s ../go/bin/go go
@cd ${PREFIX}/bin && \
ln -s ../go/bin/gofmt gofmt
@cd ${WRKDIST} && \
find . -type f -maxdepth 1 \
-exec ${INSTALL_DATA} -p {} \
${GOROOT} \;
. for dir in api doc lib misc src pkg/include pkg/obj pkg/${GOCFG} test
@cd ${WRKDIST} && \
find ${dir} -type d \
-exec ${INSTALL_DATA_DIR} \
${GOROOT}/{} \;
@cd ${WRKDIST} && \
find ${dir} ! -name \*.orig -type f \
-exec ${INSTALL_DATA} -p {} \
${GOROOT}/{} \;
. endfor
${INSTALL_PROGRAM_DIR} ${GOROOT}/pkg/tool/${GOOS}_${GOARCH}
${INSTALL_PROGRAM} -p ${WRKDIST}/pkg/tool/${GOOS}_${GOARCH}/* \
${GOROOT}/pkg/tool/${GOOS}_${GOARCH}
.include <bsd.port.mk>