autoconf, setjmp.h and sigsetjmp()
Hi,
I'm having a problem with sigsetjmp(). Either I'm missing something,
libc6-dev is broken, ed&es are broken or autoconf is broken.
|19:05:57@hades| ~/temp/ed-0.2 $./configure --prefix=/usr/
|creating cache ./config.cache
|checking whether ln -s works... yes
|
|[...]
|
|checking for setbuffer... yes
|checking for sigsetjmp... no
^^
Like, uh, that's plain wrong, sigsetjmp() does exist in glibc, so what
is autoconf doing? It's trying to compile a program like this:
19:09:19@hades| ~/temp/ed-0.2 $cat > test.c
#include <stdio.h>
int main (int argc, char **argv)
{
printf ("Life sucks.\n");
sigsetjmp(NULL, 1);
return 0;
}
19:10:10@hades| ~/temp/ed-0.2 $gcc -o test test.c
/tmp/cca093561.o: In function `main':
/tmp/cca093561.o(.text+0x15): undefined reference to `sigsetjmp'
19:10:19@hades| ~/temp/ed-0.2 $
And on seeing an error like that assumes libc6 doesn't have
sigsetjmp(). But, if the program's altered thusly:
19:12:09@hades| ~/temp/ed-0.2 $diff -u test.c{~,}
--- test.c~ Sat Mar 28 19:11:14 1998
+++ test.c Sat Mar 28 19:12:07 1998
@@ -1,4 +1,5 @@
#include <stdio.h>
+#include <setjmp.h>
int main (int argc, char **argv)
{
19:12:16@hades| ~/temp/ed-0.2 $gcc -o test test.c
19:12:20@hades| ~/temp/ed-0.2 $
Keine problem. All because sigsetjmp() (and setjmp() for that matter)
is a macro and not a function. This is not good and worthy of a bug
report, except I don't know who to bug. Help?
It's not as if this is anything new either; libc5 also defined
sigsetjmp() as a macro, has autoconf's test for sigsetjmp really been
broken all this time? Or are ed and es using the wrong test?
--
James - confused.
--
To UNSUBSCRIBE, email to debian-devel-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Reply to: