-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
According to Bernard Leak on 12/13/2006 12:44 PM:
> Dear List,
I assume you meant to CC the list, so I took the liberty to reply there...
> my apologies to Eric Blake if he felt I was flaming him.
> It wasn't my intention - and I certainly don't want to discourage him
> from submitting bug reports or patches! It does look in this case as
> though he was led astray by a very odd message.
That's okay. It was surprising to me to see the failure, too.
>
> My own, ruthlessly "normal" i686/Linux builds of gcc complain about
> the mismatched type, as expected, and don't produce the weird "lvalue"
> complaint. I tried with 3.3.6, 3.4.5 and 4.1.1 . My guess, Mr. Blake, is
> that the culprit is your headers (which are presumably not the same for
> cygwin as they are for my glibc-2.4 rig). Before this turns into a bug
> report
> for gcc, what does your <setjmp.buf> give as the type of setjmp_buf, and
> what prototype does it give for sigsetjmp()?
>
#define _JBLEN (13 * 4)
/* POSIX sigsetjmp/siglongjmp macros */
typedef int sigjmp_buf[_JBLEN+2];
#define sigsetjmp(env, savemask) \
__extension__ \
({ \
sigjmp_buf *_sjbuf = &(env); \
((*_sjbuf)[_SAVEMASK] = savemask,\
sigprocmask (SIG_SETMASK, 0, (sigset_t *)((*_sjbuf) +
_SIGMASK)),\
setjmp (*_sjbuf)); \
})
That macro expansion explains why cygwin's configure check failed when you
used the wrong type (it was '&(&bf)' that was invalid).
And cygwin's implementation choice is valid, since POSIX states that
sigsetjmp is like setjmp, and "It is unspecified whether setjmp() is a
macro or a function. If a macro definition is suppressed in order to
access an actual function, or a program defines an external identifier
with the name setjmp, the behavior is undefined." That is, testing that
sigsetjmp will link is wrong, all you can reliably do in ./configure is
check whether it is declared.
But thanks for making me investigate further. I learned something in the
process. And I think that autogen should quit checking whether sigsetjmp
links okay, since that violates POSIX.
- --
Life is short - so eat dessert first!
Eric Blake [EMAIL PROTECTED]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFFgM8o84KuGfSFAYARAn/bAKCU3q5zS0GRo5awFbwphvUYwCm4zQCfTBpE
uuUXujB1mWfLY8NNHIf3tnI=
=eg3l
-----END PGP SIGNATURE-----
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Autogen-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/autogen-users