|
From: Amadeusz S. <sa...@gm...> - 2010-03-09 12:18:26
|
Output of ./configure
...
checking whether we can skip instruction in SIGSEGV handler... no
...
from config.log
...
configure:9849: checking whether we can skip instruction in SIGSEGV
handler
configure:9875: g++ -o conftest -g -O2 conftest.cpp -lrt -lpthread
-lm -lSM -lICE -lX11 -lXext -lXxf86vm >&5
configure:9875: $? = 0
configure:9875: ./conftest
./configure: line 2130: 4065 Segmentation fault
./conftest$ac_exeext
configure:9875: $? = 139
configure: program exited with status 139
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "SheepShaver"
| #define PACKAGE_TARNAME "SheepShaver"
| #define PACKAGE_VERSION "2.3"
| #define PACKAGE_STRING "SheepShaver 2.3"
| #define PACKAGE_BUGREPORT "Chr...@un..."
| #define PACKAGE_URL ""
| #define EMULATED_PPC 1
| #define HAVE_LIBM 1
| #define HAVE_LIBPTHREAD 1
| #define HAVE_PTHREAD_CANCEL 1
| #define HAVE_PTHREAD_COND_INIT 1
| #define HAVE_PTHREAD_TESTCANCEL 1
| #define HAVE_PTHREAD_MUTEXATTR_SETPROTOCOL 1
| #define HAVE_PTHREAD_MUTEXATTR_SETTYPE 1
| #define HAVE_PTHREAD_MUTEXATTR_SETPSHARED 1
| #define HAVE_SEM_INIT 1
| #define HAVE_PTHREADS 1
| #define ENABLE_FBDEV_DGA 1
| #define ENABLE_XF86_VIDMODE 1
| #define ENABLE_GTK 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_MALLOC_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_FCNTL_H 1
| #define HAVE_BYTESWAP_H 1
| #define HAVE_DIRENT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define HAVE_SYS_IOCTL_H 1
| #define HAVE_SYS_BITYPES_H 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_POLL_H 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_ARPA_INET_H 1
| #define HAVE_LINUX_IF_H 1
| #define HAVE_LINUX_IF_TUN_H 1
| #define HAVE_NET_IF_H 1
| #define HAVE_FENV_H 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_VOID_P 8
| #define RETSIGTYPE void
| #define TIME_WITH_SYS_TIME 1
| #define HAVE_SIGNAL_SA_RESTORER 1
| #define HAVE_STRDUP 1
| #define HAVE_STRERROR 1
| #define HAVE_CFMAKERAW 1
| #define HAVE_NANOSLEEP 1
| #define HAVE_SIGACTION 1
| #define HAVE_SIGNAL 1
| #define HAVE_MMAP 1
| #define HAVE_MPROTECT 1
| #define HAVE_MUNMAP 1
| #define HAVE_EXP2F 1
| #define HAVE_LOG2F 1
| #define HAVE_EXP2 1
| #define HAVE_LOG2 1
| #define HAVE_FLOORF 1
| #define HAVE_ROUNDF 1
| #define HAVE_CEILF 1
| #define HAVE_TRUNCF 1
| #define HAVE_FLOOR 1
| #define HAVE_ROUND 1
| #define HAVE_CEIL 1
| #define HAVE_TRUNC 1
| #define HAVE_POLL 1
| #define HAVE_INET_ATON 1
| #define HAVE_CLOCK_GETTIME 1
| #define HAVE_CLOCK_NANOSLEEP 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_PTY_H 1
| #define HAVE_VHANGUP 1
| #define HAVE_SLIRP 1
| #define ENABLE_TUNTAP 1
| #define HAVE_MMAP_VM 1
| #define HAVE_MMAP_ANON 1
| #define HAVE_MMAP_ANONYMOUS 1
| #define HAVE_MMAP_VM 1
| #define HAVE_SIGINFO_T 1
| /* end confdefs.h. */
|
| #define HAVE_SIGSEGV_SKIP_INSTRUCTION 1
| #define CONFIGURE_TEST_SIGSEGV_RECOVERY
| #include "vm_alloc.cpp"
| #include "sigsegv.cpp"
|
configure:9893: result: no
As I mentioned it works on previous versions of gcc(<4.4.3), so it is probably
compiler bug.
Also works if you do something like
volatile int label_hack = 3;
switch (label_hack) {
case 3:
...
case 2:
On Mon, Mar 08, 2010 at 08:37:25PM -0500, Alexei Svitkine wrote:
> What exactly is this fixing?
>
> 2010/3/7 Amadeusz Sławiński <sa...@gm...>:
> > I'm half sure of this fix, because check works with previous versions of
> > gcc (<4.4.3), so it looks like regresion on gcc side.
|