-----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

Reply via email to