Bug#242122: No weak symbol for res_* on amd64.

2004-04-05 Thread Daniel Jacobowitz
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.

-- 
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Bug#242122: No weak symbol for res_* on amd64.

2004-04-04 Thread Kurt Roeckx
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".


Kurt



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Bug#242122: No weak symbol for res_* on amd64.

2004-04-04 Thread Daniel Jacobowitz
On Mon, Apr 05, 2004 at 12:32:29AM +0200, Kurt Roeckx wrote:
> On Sun, Apr 04, 2004 at 06:22:57PM -0400, Daniel Jacobowitz wrote:
> > On Sun, Apr 04, 2004 at 11:50:15PM +0200, Kurt Roeckx wrote:
> > > 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.
> > 
> > Why do you believe the weak symbols should be there?
> 
> 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_*.
> 
> I see 2 ways of fixing this, either fix all packages that depend
> on libresolv or add the weak symbols.
> 
> 
> PS: I've also found this post:
> http://mail.gnu.org/archive/html/bug-hurd/2002-05/msg00256.html

That's a bug in the affected configure scripts, then.  I believe
autoconf 2.5x is capable of handling this correctly.

-- 
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Bug#242122: No weak symbol for res_* on amd64.

2004-04-04 Thread Kurt Roeckx
On Sun, Apr 04, 2004 at 06:22:57PM -0400, Daniel Jacobowitz wrote:
> On Sun, Apr 04, 2004 at 11:50:15PM +0200, Kurt Roeckx wrote:
> > 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.
> 
> Why do you believe the weak symbols should be there?

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_*.

I see 2 ways of fixing this, either fix all packages that depend
on libresolv or add the weak symbols.


PS: I've also found this post:
http://mail.gnu.org/archive/html/bug-hurd/2002-05/msg00256.html


Kurt



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Bug#242122: No weak symbol for res_* on amd64.

2004-04-04 Thread Daniel Jacobowitz
On Sun, Apr 04, 2004 at 11:50:15PM +0200, Kurt Roeckx wrote:
> 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.

Why do you believe the weak symbols should be there?

-- 
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Bug#242122: No weak symbol for res_* on amd64.

2004-04-04 Thread Kurt Roeckx
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



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]