http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46795

--- Comment #1 from kargl at gcc dot gnu.org 2010-12-10 22:19:14 UTC ---
(In reply to comment #0)
> gmake[3]: Entering directory
> `/usr/home/kargl/gcc/obj4x/i386-unknown-freebsd9.0/libgo'
> gmake[4]: Entering directory
> `/usr/home/kargl/gcc/obj4x/i386-unknown-freebsd9.0/libgo'
> /bin/sh ../../../gcc4x/libgo/mksysinfo.sh
> gmake[4]: *** [sysinfo.go] Error 1
> gmake[4]: Leaving directory
> `/usr/home/kargl/gcc/obj4x/i386-unknown-freebsd9.0/libgo'
> gmake[3]: *** [all-recursive] Error 1
> gmake[3]: Leaving directory
> `/usr/home/kargl/gcc/obj4x/i386-unknown-freebsd9.0/libgo'
> gmake[2]: *** [all] Error 2
> gmake[2]: Leaving directory
> `/usr/home/kargl/gcc/obj4x/i386-unknown-freebsd9.0/libgo'
> gmake[1]: *** [all-target-libgo] Error 2
> gmake[1]: Leaving directory `/usr/home/kargl/gcc/obj4x'
> gmake: *** [all] Error 2

A little debugging shows the build dies in mksysinfo.go at
line 201, which is at

# The registers returned by PTRACE_GETREGS.  This is probably
# GNU/Linux specific.
regs=`grep '^type _user_regs_struct struct' gen-sysinfo.go`

So, yes, building gccgo is linux specific.  

Looking in gen-sysinfo.go, one finds the following

type _reg struct { r_r15 int64; r_r14 int64; r_r13 int64; r_r12 int64; r_r11
int64; r_r10 int64; r_r9 int64; r_r8 int64; r_rdi int64; r_rsi int64; r_rbp
int64; r_rbx int64; r_rdx int64; r_rcx int64; r_rax int64; r_trapno uint32;
r_fs uint16; r_gs uint16; r_err uint32; r_es uint16; r_ds uint16; r_rip int64;
r_cs int64; r_rflags int64; r_rsp int64; r_ss int64; }

which is probably the required list of registers.


Given that building gccgo appears to be restricted to linux, 
why was configure successful?  Should configure have errored
out stating that gccgo is not supported on FreeBSD?

Reply via email to