- Add a permissions fix from sthen@
- Remove patches as they are not needed now
Tested on amd64, arm64, armv7 and i386 (ty sthen!).
armv7 has an intermittent issue with tests.
OK sthen, jsing
- De-duplicate our .mod and .zip files.
- Move chdir to a child process.
- Break MODGO_MODULES and MODGO_MODFILES values into their own lines
for easier reading.
using MODGO_MODNAME.
This is needed to work around this issue:
https://github.com/golang/go/issues/27455
which makes `make clean` because of the restrictive permissions.
input and corrections from sthen@ and jca@
ok sthen@ jca@ espie@
With this a port can be easily generated for Go applications that support Go
modules (there will be a go.mod file in the root of the project).
For example: https://github.com/jrick/domain/blob/master/go.mod
The mod file lists "github.com/jrick/domain" as the module name, so a portgen
command to build the above tool would be:
portgen go github.com/jrick/domain
OK afresh1@ kmos@
All except some of the most recent arm64 processors have a speculative
execution flaw that occurs across a syscall boundary, which cannot be
mitigated in the kernel. In order to protect against this leak a
speculation barrier needs to be placed after an svc instruction.
In order to avoid the performance impact of these instructions, the kernel
will soon start returning execution two instructions past the svc call.
For now two hardware no ops are added, which allows syscalls to work with
both old and new kernels. Once the kernel is cut over the no ops can be
replaced with actual speculation barriers.
Discussed at length with deraadt@
binaries appropriate for the build machine. This doesn't work for
package builds where packages are produced on a machine with SSE
but are expected to work on machines without. Set GO386=387 during
the build to disable this. OK/improved comment from jsing@.
the same arch conversion list as done in the lang/go port itself; add
a comment reminding to keep them in-sync). unbreaks packaging of the
few golang ports that actually build on aarch64.
like the rest of the ports tree. This also allows removing a bunch of
manual setting of PATH="${PORTPATH}" HOME="${PORTHOME}" done in various
ports etc. This also makes sure CFLAGS is passed through (not everything
honours it but it does improve at least some ports).
Remove NO_CCACHE from www/honk that was added because the above problem
resulted in ccache variables not being passed through correctly breaking
the cc calls in this.
ok kmos@
When -mretpoline is enabled with clang, a __llvm_retpoline_r11 weak symbol
is emitted in each compilation unit. This results in the Go linker
complaining when processing a package archive that contains cgo linkages,
since it finds the same weak symbol defined in multiple object files.
Relax the duplicate symbol detection such that weak symbols are permitted
to be duplicated. This makes it possible to build Go with clang again and
addresses a similar duplicate weak symbol issue that results from retguard.
Also backport an upstream commit that corrects the handling of libgcc vs
libcompiler_rt. Combined with the above fix `make regress` now passes with
both gcc and clang.
ago, output from this is really very noisy.
since the build with no flags is silent, add -v as a middle ground by
defaulot, so you can see that something is happening during the build,
but without so much console spam.
ok jasper@