On Tue, 2014-05-06 at 15:26 +0200, Samuel Thibault wrote:
> Svante Signell, le Tue 06 May 2014 15:25:38 +0200, a écrit :
> > On Tue, 2014-05-06 at 15:07 +0200, Samuel Thibault wrote:
> > > Svante Signell, le Tue 06 May 2014 15:05:20 +0200, a écrit :
> > > > On Tue, 2014-05-06 at 14:51 +0200, Samuel Thibault wrote:
> > > > > Just to explicitly ask for it:
> > > > >
> > > > > Svante Signell, le Tue 06 May 2014 10:06:49 +0200, a écrit :
> > > > > > For some (yet) unknown reason all libgo tests fails with a segfault
> > > > > > when
> > > > > > run in the build tree: make, sh or something else, the test
> > > > > > commands are
> > > > > > rather hard to track.
> > > > >
> > > > > Doesn't that dump a core? Do you have /servers/crash properly
> > > > > pointing
> > > > > to /servers/crash-dump-core and ulimit -u set to unlimited?
More good news:
- Installing the modified libpthread.so.0.3 made the segfault go away. I
could now run the check from the build tree :-)
- Adding
#define TARGET_THREAD_SSP_OFFSET 0x14
to patch1.diff and building gcc-4.9.0-2 the test results are summarised
as follows :-)
=== libgo Summary ===
# of expected passes 101
# of unexpected failures 21
I think some of the remaining failures are rather easy to fix.
Attached is an updated patch1.diff.
Remains to solve the problem with patch8.diff: Adding arch specific code
to: src/libgo/mksysinfo.sh
--- a/src/gcc/config/i386/gnu.h
+++ b/src/gcc/config/i386/gnu.h
@@ -37,11 +37,14 @@
#ifdef TARGET_LIBC_PROVIDES_SSP
-/* Not supported yet. */
-# undef TARGET_THREAD_SSP_OFFSET
-
-/* Not supported yet. */
-# undef TARGET_CAN_SPLIT_STACK
-# undef TARGET_THREAD_SPLIT_STACK_OFFSET
+/* i386 glibc provides __stack_chk_guard in %gs:0x14. */
+#define TARGET_THREAD_SSP_OFFSET 0x14
+/* We only build the -fsplit-stack support in libgcc if the
+ assembler has full support for the CFI directives. */
+#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
+#define TARGET_CAN_SPLIT_STACK
+#endif
+/* We steal the last transactional memory word. */
+#define TARGET_THREAD_SPLIT_STACK_OFFSET 0x30
#endif