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

autoconf breakage on x86_64.



I don't know the right way to fix this, but something is definitely broken; and something needs to be fixed, one way or the other. The question is what exactly needs to be fixed.

Consider something like this:

LIBS="-lresolv $LIBS"
AC_TRY_LINK_FUNC(res_query, AC_MSG_RESULT(yes), AC_MSG_RESULT(no))

Here's what happens on x86_64:

gcc -o conftest -g -O2 -Wall -I.. -I./..   conftest.c -lresolv  >&5
/tmp/ccW7EeDX.o(.text+0x7): In function `main':
/home/mrsam/src/courier/authlib/configure:5160: undefined reference to `res_query'
collect2: ld returned 1 exit status
configure:5147: $? = 1
configure: failed program was:

[ blah blah blah ]

| /* We use char because int might match the return type of a gcc2
|    builtin and then its argument prototype would still apply.  */
| char res_query ();
| int
| main ()
| {
| res_query ();
|   ;
|   return 0;
| }


The same exact test on FC1 x86 will work.

The reason appears to be that you have to #include <resolv.conf> on x86_64 in order to succesfully pull res_query() out of libresolv.so. You don't need to do this on x86, and the test program generated by AC_TRY_LINK_FUNC does not include any headers, but uses a manual prototype.

So, what now?


Attachment: pgpT9xFoY6xtg.pgp
Description: PGP signature


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