On Wed, Apr 16, 2014 at 5:26 AM, Russ Cox <
r...@golang.org> wrote:
> It looks like the original proposal was that we drop support for FreeBSD <
> 10, but then we backed down to doing something that would work on 10 but
> also keep working on older systems.
Ah, I thought that my original proposal meant just adding support for
FreeBSD 10. It just asked how to fill the gap between versions (I
preferred changing a few exposed structures/constants in syscall
package) and got feedback like "let's keep old version stuff as much
as possible".
> What is the minimum required FreeBSD version for Go, for each architecture?
> Is this different than in Go 1.2? Are there different minimums for using
> certain fringe functionality (like enumerating network interfaces)?
Required versions must be:
freebsd/amd64: from 8.0 through 10.0 (or any version from 8-STABLE
through 10-STABLE), probably it works well on 11-CURRENT but not
tested,
freebsd/386: ditto,
freebsd/arm: 10.0 (or any version from 10-STABLE), probably it works
well on 11-CURRENT but not tested.
It's almost the same as Go 1.2 except freebsd/arm. I guess go1.2
doesn't work perfectly on freebsd10/arm because of the lack of
ARM-EABI patches and syscall argument gaps between freebsd10 and prior
to 10.
Hope this helps.
---
Note:
* Basic support for freebsd10/arm
- in go1.2 cycle minux decided to support only arm-eabi versions so
the rest work is just adapting runtime/syscall packages for arm-eabi;
regenerating eabi conformed go structures using godefs and fixing
broken arm assembly fragments
- also minux enables cgo on freebsd10/arm
* Basic support for freebsd10/{amd64,386,arm}
- there's no plan to introduce a cross compile feature for multiple os
versions to build tools so just reuse existing syscall structures and
constants with a internal plumbing work; checking the running kernel
version and filling the gap between versions in syscall package
- as a consequence, a few syscall structures and constants are
incompatible with 10.0 and beyond:
-- constants: SIOCAIFADDR, SIOCSIFPHYADDR (not used in standard library)
-- syscall numbers: SYS_CAP_NEW,SYS_CAP_GETRIGHTS,
SYS_CAP_ENTER,SYS_CAP_GETMODE (not used in standard library)
-- constants: SizeofIfData, SizeofIfMsghdr
-- structures: IfData, IfMsghdr
- other non-conflicted structures and constants are updated
* Additional support for freebsd{8.3-,9,10}/{amd64,386} and freebsd10/arm
- 10.0 (or 10-stable) allows to use the close-on-exec socket creation
feature so enables it in net package
- 8.3 and beyond allow to use the close-on-exec file creation feature
so enables it in os package