Bug 197938 - my beloved lookup_hesiod.so is gone
my beloved lookup_hesiod.so is gone
Status: CLOSED RAWHIDE
Product: Fedora
Classification: Fedora
Component: autofs (Show other bugs)
rawhide
x86_64 Linux
medium Severity medium
: ---
: ---
Assigned To: Jeffrey Moyer
Brock Organ
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2006-07-07 10:20 EDT by Nalin Dahyabhai
Modified: 2007-11-30 17:11 EST (History)
1 user (show)

See Also:
Fixed In Version: 5.0.0_beta6-6
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2006-07-07 16:40:29 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Nalin Dahyabhai 2006-07-07 10:20:24 EDT
Description of problem:
autofs on x86_64 systems is missing the lookup_hesiod.so module

Version-Release number of selected component (if applicable):
5.0.0_beta6-5

How reproducible:
Always

Steps to Reproduce:
1. Use authconfig to turn on hesiod support.  This adds 'hesiod' to the
'automount' setting in /etc/nsswitch.conf.
2. Restart autofs.
  
Actual results:
Jul  7 10:13:25 axe automount[20962]: open_lookup: cannot open lookup module
hesiod (/usr/lib64/autofs/lookup_hesiod.so: cannot open shared object file: No
such file or directory)

Expected results:
No log entry?  Hesiod doesn't have either enumeration or support for more than
one map, so I don't expect anything useful to happen.
Comment 1 Jeffrey Moyer 2006-07-07 10:35:00 EDT
Ian, we looked at the build logs and it showed that the configure script did not
find hes_resolve in any library.  So, I guess that's where we start.
Comment 2 Ian Kent 2006-07-07 11:40:45 EDT
(In reply to comment #1)
> Ian, we looked at the build logs and it showed that the configure script did not
> find hes_resolve in any library.  So, I guess that's where we start.

Oh wow.
I haven't changed any of that for ages.
I'll hunt for the build logs and have a look also.
Comment 3 Ian Kent 2006-07-07 13:20:18 EDT
(In reply to comment #0)
> Description of problem:
> autofs on x86_64 systems is missing the lookup_hesiod.so module

Nalin I think mybe you can help here.

Only on x86_64 in configure I'm getting :

/usr/lib/gcc/x86_64-redhat-linux/4.1.1/../../../../lib64/libhesiod.so: undefined
reference to `__dn_skipname'
/usr/lib/gcc/x86_64-redhat-linux/4.1.1/../../../../lib64/libhesiod.so: undefined
reference to `__res_mkquery'
/usr/lib/gcc/x86_64-redhat-linux/4.1.1/../../../../lib64/libhesiod.so: undefined
reference to `__res_send'

and nm confirms these symbols sren't in libresolve:
[raven@raven lib64]$ nm libhesiod.a|egrep -e
'(__res_send|__res_mkquery|__dn_skipname)'
                 U __dn_skipname
                 U __res_mkquery
                 U __res_send

version is current Rawhide 3.1.0-5.

Any thoughts?

Ian
Comment 4 Nalin Dahyabhai 2006-07-07 13:48:36 EDT
(In reply to comment #3)

> and nm confirms these symbols sren't in libresolve:
> [raven@raven lib64]$ nm libhesiod.a|egrep -e
> '(__res_send|__res_mkquery|__dn_skipname)'
>                  U __dn_skipname
>                  U __res_mkquery
>                  U __res_send

Those symbols are in libresolv (you scanned libhesiod :).  Turns out libhesiod
links with libresolv on i386 but not on x86_64, so while the configure test for
libresolv in autofs is probably not quite right, the shared library dependency
was masking it on i386.
Comment 5 Jeffrey Moyer 2006-07-07 13:53:01 EDT
How do you figure the checks in the autofs configure script are wrong?

AC_CHECK_LIB(resolv, res_query, LIBRESOLV="-lresolv")
AC_SUBST(LIBRESOLV)

AC_CHECK_LIB(hesiod, hesiod_resolve, HAVE_HESIOD=1 LIBHESIOD="$LIBHESIOD
-lhesiod", ,
		     $LIBRESOLV)

results in:

checking for res_query in -lresolv... no
checking for hesiod_resolve in -lhesiod... no

So, what, in particular, do you see wrong with that?
Comment 6 Nalin Dahyabhai 2006-07-07 14:07:34 EDT
AC_CHECK_LIB can't take into account that <resolv.h> does this:
  #define res_mkquery __res_mkquery
so I'd suggest using the AC_TRY_LINK macro to attempt to compile and link a
simple program which includes the header and attempts to use the function, and
having configure call it in the "else" part of the AC_CHECK_LIB call.
Comment 7 Ian Kent 2006-07-07 15:41:58 EDT
(In reply to comment #6)
> AC_CHECK_LIB can't take into account that <resolv.h> does this:
>   #define res_mkquery __res_mkquery
> so I'd suggest using the AC_TRY_LINK macro to attempt to compile and link a
> simple program which includes the header and attempts to use the function, and
> having configure call it in the "else" part of the AC_CHECK_LIB call.
> 

Nalin can you try autofs-5.0.0_beta6-6 in brewroot (task 96262 was x86_64)
and let me know if it resolves this problem.

Ian
Comment 8 Nalin Dahyabhai 2006-07-07 16:40:29 EDT
The module's built and in the package, so I think we're done here.  Closing.

Note You need to log in before you can comment on or make changes to this bug.