From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3) Gecko/20041020 Galeon/1.3.18 Description of problem: The libresolv.so library in the glibc package on x86_64 is missing the res_mkquery symbol which breaks configure scripts on x86_64. This is true for FC3/x86_64, FC2/x86_64 and EL3/x86_64. [root@lisse rpms]# objdump -x /dar/chroot/fc3a/usr/lib64/libresolv.so | grep _mkq 0000000000000000 l df *ABS* 0000000000000000 res_mkquery.c 0000000000007a50 g F .text 00000000000000c4 __res_mkquery [root@lisse rpms]# objdump -x /dar/chroot/fc3i/usr/lib/libresolv.so | grep _mkq 00000000 l df *ABS* 00000000 res_mkquery.c 00006a20 w F .text 00000099 res_mkquery 00006a20 g F .text 00000099 __res_mkquery [root@lisse rpms]# objdump -x /dar/chroot/el3a/usr/lib64/libresolv.so | grep _mkq 0000000000000000 l df *ABS* 0000000000000000 res_mkquery.c 0000000000007830 g F .text 00000000000000c7 __res_mkquery [root@lisse rpms]# objdump -x /dar/chroot/el3i/usr/lib/libresolv.so | grep _mkq 00000000 l df *ABS* 00000000 res_mkquery.c 000065f0 w F .text 0000009f res_mkquery 000065f0 g F .text 0000009f __res_mkquery Version-Release number of selected component (if applicable): glibc-2.3.2-95.27 How reproducible: Always Steps to Reproduce: 1... 2. 3. Additional info:
That's on purpose. res_mkquery is in i386 etc. libresolv.so only for compatibility reasons. For newer architectures (e.g. x86_64, s390x or powerpc64) such compatibility is not needed, therefore just __res_mkquery is provided.
Ok. What is the proper fix for programs (or configure scripts) that require res_mkquery ? Replacing res_mkquery by __res_mkquery makes it work on 64bit, although I don't think I understand why that is required. Do you have a link to some more information about this (Google wasn't much of a help). Thanks in advance.
If you #include <resolv.h>, res_mkquery will be __res_mkquery (it is a #define). Configure tests that test for res_mkquery etc. without #include <resolv.h> are just broken.