• Giles Lean's avatar
    syscall: Create syscall_bsd.go for code used by Darwin and other *BSDs · ad73de2f
    Giles Lean authored
    In this change I'd like to combine the common code that is
    present in syscall_darwin.go and syscall_freebsd.go.  I
    have three reasons for wanting to do this now:
    
    1. reducing code duplication is nearly always good :-)
    2. the duplication will get worse if I duplicate this code
       a third time for the NetBSD port I'm working on, which
       I need to do almost immediately
    3. by making this change all in one lump and ignoring any
       commonality with the syscall_linux*.go files the diff
       is long but, I think, readable
    
    In future it may be possible to cherry pick functions that
    also apply to Linux and put them in (say) syscall_unix.go,
    and of course some functions may diverge in future and have
    to move out to OS or architecture specific files, but today
    I want just the low hanging fruit.
    
    Tested and passed on:
    
      Darwin (Snow Leopard, 10.6): amd64 and 386
      FreeBSD (8.0-RELEASE):       386 only(*)
    
    (*) All my virtualisation software has stopped playing nice
    with FreeBSD for the moment, so I don't have facilities to
    test the amd64 port.  As the OS X port is OK and the diff
    looks all right to my eyes I shall keep my fingers crossed.
    If someone with a FreeBSD/amd64 system cares to test and
    report I would be appreciative.
    
    2010-03-27 update: I have replaced my virtualisation software, and have working FreeBSD/i386 and FreeBSD/amd64 virtual machines again.
    
    As I hoped (and expected -- programmers are optimists :-) the code built and passed all but the two currently known to fail tests on FreeBSD/amd64. I rechecked FreeBSD/i386 too: same results.
    
    R=rsc
    CC=golang-dev
    https://golang.org/cl/751041
    ad73de2f
Name
Last commit
Last update
..
cmd Loading commit data...
lib9 Loading commit data...
libbio Loading commit data...
libcgo Loading commit data...
libmach Loading commit data...
pkg Loading commit data...
Make.386 Loading commit data...
Make.amd64 Loading commit data...
Make.arm Loading commit data...
Make.cmd Loading commit data...
Make.common Loading commit data...
Make.conf Loading commit data...
Make.pkg Loading commit data...
all-arm.bash Loading commit data...
all-nacl.bash Loading commit data...
all.bash Loading commit data...
clean.bash Loading commit data...
make.bash Loading commit data...
quietgcc.bash Loading commit data...
run.bash Loading commit data...
sudo.bash Loading commit data...
version.bash Loading commit data...