Hi, I dug a little bit into the code and it seems that the problem is caused by this macro defined in Utilities/hdf5/H5detect.c:
#if defined(H5_HAVE_LONGJMP) && defined(H5_HAVE_SIGNAL) #define ALIGNMENT(TYPE,INFO) { \ char *volatile _buf=NULL; \ volatile TYPE _val=1; \ volatile TYPE _val2; \ volatile size_t _ano=0; \ void (*_handler)(int) = signal(SIGBUS, sigbus_handler); \ void (*_handler2)(int) = signal(SIGSEGV, sigsegv_handler); \ \ _buf = (char*)malloc(sizeof(TYPE)+align_g[NELMTS(align_g)-1]); \ if (setjmp(jbuf_g)) _ano++; \ if (_ano<NELMTS(align_g)) { \ *((TYPE*)(_buf+align_g[_ano])) = _val; /*possible SIGBUS or SEGSEGV*/ \ _val2 = *((TYPE*)(_buf+align_g[_ano])); /*possible SIGBUS or SEGSEGV*/ \ [...] It tries to set the signal handlers for SIGBUS and SIGSEGV and then try various casts in an attempt to detect the alignment requirements. So, SIGBUS/SIGSEGV appears to be intentional, except that they are supposed to be caught by signal handlers, and not terminate the build. The signal(2) man page includes the following information: The only portable use of signal() is to set a signal's disposition to SIG_DFL or SIG_IGN. The semantics when using signal() to establish a signal handler vary across systems (and POSIX.1 explicitly permits this variation); do not use it for this purpose. Current theory is that setting signal handlers via signal() does not work in Debian for some reason. I'll try to rewrite this code using sigaction interface to see if it helps. Cheers. -- Jurij Smakov [EMAIL PROTECTED] Key: http://www.wooyd.org/pgpkey/ KeyID: C99E03CC -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]