On Fri, 2014-04-18 at 10:03 +0200, Samuel Thibault wrote: > Samuel Thibault, le Thu 17 Apr 2014 00:03:45 +0200, a écrit : > > Thomas Schwinge, le Wed 09 Apr 2014 09:36:42 +0200, a écrit : > > > Well, the first step is to verify that TARGET_THREAD_SPLIT_STACK_OFFSET > > > and similar configury is correct for the Hurd, > > > > I have added the corresponding field, so we can just use the same offset > > as on Linux. > > I have uploaded packages on http://people.debian.org/~sthibault/tmp/ so > Svante can try setting TARGET_THREAD_SPLIT_STACK_OFFSET to 0x30 with > them.
Status report: - Without split stack enabled around 70 libgo tests pass and 50 fails, most of them with a segfault. - Enabling split stack and using the libc Samuel built all 122 libgo tests fail with a segfault. - In both cases simple go programs work, like hello+sqrt.go below. - The segfault seems to be located at the same code piece according to gdb (maybe due to exception handling) cat hello+sqrt.go package main import ( "fmt" ) func main() { fmt.Printf("Hello, world. Sqrt(2) = %v\n", Sqrt(2)) } I have not been able to use a local go library function, e.g. package newmath, and the go frontend is not yet available for GNU/Hurd. However, it seems that something triggers the segfaults when running make -C build/i486-gnu/libgo check (both with and w/o split-stack) while setting the keep parameter in ./src/libgo/testsuite/gotest and running them manually some of them work?? As a first glance, about the same number of tests succeeds with and w/o split stack :) Some of the failing tests still seems random, sometimes they pass, sometimes they fail.