Chris Card <
ctc...@hotmail.com> writes:
> I'm trying to build gccgo on Fedora 10.
> First I hit the issue with <linux/user.h> which I replaced by <sys/
> user.h> in mksysinfo.sh, but now I'm getting these errors:
I hope to fix this soon, but in the meantime see this patch from
Martin Capitanio may help.
Ian
svn diff
Index: libgo/go/debug/proc/regs_linux_386.go
===================================================================
--- libgo/go/debug/proc/regs_linux_386.go (revision 154104)
+++ libgo/go/debug/proc/regs_linux_386.go (working copy)
@@ -26,12 +26,12 @@
"esp",
"eip",
"eflags",
- "cs",
- "ss",
- "ds",
- "es",
- "fs",
- "gs",
+ "xcs",
+ "xss",
+ "xds",
+ "xes",
+ "xfs",
+ "xgs",
}
func (r *_386Regs) PC() Word { return Word(r.Eip) }
@@ -80,17 +80,17 @@
case 9:
return Word(uint32(r.Eflags))
case 10:
- return Word(r.Cs)
+ return Word(r.Xcs)
case 11:
- return Word(r.Ss)
+ return Word(r.Xss)
case 12:
- return Word(r.Ds)
+ return Word(r.Xds)
case 13:
- return Word(r.Es)
+ return Word(r.Xes)
case 14:
- return Word(r.Fs)
+ return Word(r.Xfs)
case 15:
- return Word(r.Gs)
+ return Word(r.Xgs)
}
panic("invalid register index ", strconv.Itoa(i));
}
@@ -118,17 +118,17 @@
case 9:
r.Eflags = int32(val)
case 10:
- r.Cs = uint16(val)
+ r.Xcs = int32(val)
case 11:
- r.Ss = uint16(val)
+ r.Xss = int32(val)
case 12:
- r.Ds = uint16(val)
+ r.Xds = int32(val)
case 13:
- r.Es = uint16(val)
+ r.Xes = int32(val)
case 14:
- r.Fs = uint16(val)
+ r.Xfs = int32(val)
case 15:
- r.Gs = uint16(val)
+ r.Xgs = int32(val)
default:
panic("invalid register index ", strconv.Itoa(i))
}
Index: libgo/mksysinfo.sh
===================================================================
--- libgo/mksysinfo.sh (revision 154104)
+++ libgo/mksysinfo.sh (working copy)
@@ -45,11 +45,13 @@
EOF
# FIXME: GNU/Linux specific.
+#include <sys/user.h>
+#include <linux/user.h>
cat >>sysinfo.c <<EOF
-#include <linux/user.h>
+#include <sys/user.h>
EOF
-${CC} -D_GNU_SOURCE -ggo -S -o sysinfo.s sysinfo.c
+${CC} ${CFLAGS} -D_GNU_SOURCE -ggo -S -o sysinfo.s sysinfo.c
echo 'package syscall' > ${OUT}