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

Bug#242122: marked as done (No weak symbol for res_* on amd64.)



Your message dated Sun, 18 Feb 2007 22:59:39 +0100
with message-id <20070218215938.GA8256@amd64.aurel32.net>
and subject line Bug#242122: No weak symbol for res_* on amd64.
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--- Begin Message ---
Package: libc6
Version: 2.3.2.ds1-11

It seems the weak symbols for res_* are missing on amd64.

in resolv/res_data.c there is:
#if SHLIB_COMPAT(libresolv, GLIBC_2_0, GLIBC_2_2)
weak_alias (__res_query, res_query);

It seems the "SHLIB_COMPAT(libresolv, GLIBC_2_0, GLIBC_2_2)"
returns false for some reason.  If I remove that #if then I
properly get the weak symbols.


Kurt



--- End Message ---
--- Begin Message ---
On Mon, Apr 05, 2004 at 11:23:41AM -0400, Daniel Jacobowitz wrote:
> On Mon, Apr 05, 2004 at 08:37:14AM +0200, Kurt Roeckx wrote:
> > On Sun, Apr 04, 2004 at 07:26:18PM -0400, Daniel Jacobowitz wrote:
> > > On Mon, Apr 05, 2004 at 12:32:29AM +0200, Kurt Roeckx wrote:
> > > > 
> > > > It's a problem because configure doesn't find it anymore.  It
> > > > doesn't include resolv.h so it doesn't know that it gets changed
> > > > to __res_*.
> > > 
> > > That's a bug in the affected configure scripts, then.  I believe
> > > autoconf 2.5x is capable of handling this correctly.
> > 
> > Openssh 3.8p1-2 is using autoconf 2.52 and has the problem, krb5
> > 1.3.2 is even using 2.59.
> > 
> > krb5 for instance returns this:
> > checking for res_search... no
> > checking for res_search in -lresolv... no
> > configure: error: Cannot find resolver support routine res_search in -lresolv.
> > make: *** [configure-stamp] Error 1
> > 
> > The test program looks like:
> > | char res_search ();
> > | int
> > | main ()
> > | {
> > | res_search ();
> > |   ;
> > |   return 0;
> > | }
> > 
> > Without resolv.h it will not find __res_search, with resolv.h it
> > will fail to compile because of "too few arguments to function".
> 
> Then write an AC_COMPILE_IFELSE test for it.  This is a fundamental
> limitation of the way autoconf tests for functions that no standard
> requires to be external names - like this one.
> 

As Daniel explained, this is not a bug in the glibc. This symbols are
there on some architectures for compatibility reasons with previous
versions. Those versions have never existed on x86_64.

Closing the bug.

-- 
  .''`.  Aurelien Jarno	            | GPG: 1024D/F1BCDB73
 : :' :  Debian developer           | Electrical Engineer
 `. `'   aurel32@debian.org         | aurelien@aurel32.net
   `-    people.debian.org/~aurel32 | www.aurel32.net

--- End Message ---

Reply to: