Bug 197938 - my beloved lookup_hesiod.so is gone
Summary: my beloved lookup_hesiod.so is gone
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: autofs
Version: rawhide
Hardware: x86_64
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jeff Moyer
QA Contact: Brock Organ
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2006-07-07 14:20 UTC by Nalin Dahyabhai
Modified: 2007-11-30 22:11 UTC (History)
1 user (show)

Fixed In Version: 5.0.0_beta6-6
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2006-07-07 20:40:29 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Nalin Dahyabhai 2006-07-07 14:20:24 UTC
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 Jeff Moyer 2006-07-07 14:35:00 UTC
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 15:40:45 UTC
(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 17:20:18 UTC
(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 17:48:36 UTC
(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 Jeff Moyer 2006-07-07 17:53:01 UTC
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 18:07:34 UTC
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 19:41:58 UTC
(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 20:40:29 UTC
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.