[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: