Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 107885 - net-misc/partysip-2.2.3 is missing resolv Lib
Summary: net-misc/partysip-2.2.3 is missing resolv Lib
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Stefan Knoblich (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-10-02 05:44 UTC by White
Modified: 2005-10-02 11:00 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
fix this missing lib. Dont know how to make it clean... (partysip-2.2.3-resolvlib.diff,1023 bytes, patch)
2005-10-02 05:45 UTC, White
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description White 2005-10-02 05:44:44 UTC
in ebuild partysip-2.2.3.ebuild the lib -lresov is missing in some Makefile.am

Reproducible: Always
Steps to Reproduce:
1. ebuild partysip on a amd64 with gcc3.4.4
2.
3.




adding the following Patch fix it with an workaround:
--- partysip-2.2.3/src/Makefile.am.orig 2005-10-02 14:13:30.000000000 +0200
+++ partysip-2.2.3/src/Makefile.am      2005-10-02 14:04:23.000000000 +0200
@@ -16,7 +16,7 @@
 partysip_LDFLAGS = -L$(prefix)/lib -losip2 -avoid-version -export-dynamic

 partysip_LDADD = $(top_builddir)/ppl/unix/libppl.la \
-$(PARTYSIP_LIB)  $(PTHREAD_LIBS)
+$(PARTYSIP_LIB)  $(PTHREAD_LIBS) -lresolv

 INCLUDES =  -I$(top_srcdir)/partysip -I$(top_srcdir)/ppl/unix/ \
 -I$(top_srcdir) -I$(prefix)/include
--- partysip-2.2.3/tools/Makefile.am.orig       2005-10-02 14:24:44.000000000 +0200
+++ partysip-2.2.3/tools/Makefile.am    2005-10-02 14:25:00.000000000 +0200
@@ -4,7 +4,7 @@

 psp_users_SOURCES = psp_users.c

-psp_users_LDFLAGS = -O -L$(prefix)/lib -losip2 -module -avoid-version
-export-dynamic
+psp_users_LDFLAGS = -O -L$(prefix)/lib -losip2 -module -avoid-version
-export-dynamic -lresolv
 psp_users_LDADD = $(top_builddir)/ppl/unix/libppl.la \
 $(PARTYSIP_LIB)  $(PTHREAD_LIBS) $(top_builddir)/src/psp_config.o
$(top_builddir)/src/psp_utils.o
Comment 1 White 2005-10-02 05:45:57 UTC
Created attachment 69715 [details, diff]
fix this missing lib. Dont know how to make it clean...
Comment 2 Stefan Knoblich (RETIRED) gentoo-dev 2005-10-02 10:33:00 UTC
Configure's resolv check:

  *)
     CHECK_INADDR_NONE
     AC_CHECK_LIB(resolv,res_query,[PARTYSIP_LIB="$PARTYSIP_LIB -lresolv"])
     AC_CHECK_LIB(resolv,res_query,[PPL_LIB="$PPL_LIB -lresolv"])
     ;;
esac

fails because libresolv is a "little" different on x86 (+others) and amd64:

AMD64:
ast01@64 partysip $ readelf -s /lib64/libresolv-2.3.5.so | grep "res_query"
37: 0000000000007220   167 FUNC    GLOBAL DEFAULT   12
__res_querydomain@@GLIBC_2.2.5
148: 0000000000006f90   186 FUNC    GLOBAL DEFAULT   12 __res_query@@GLIBC_2.2.5

x86:
ast04@32 asterisk # readelf -s /lib/libresolv.so.2 | grep "res_query"
    35: 000061c0   130 FUNC    GLOBAL DEFAULT   12 __res_querydomain@@GLIBC_2.2
    70: 000061c0   130 FUNC    WEAK   DEFAULT   12 res_querydomain@@GLIBC_2.0
   103: 00006330   123 FUNC    WEAK   DEFAULT   12 res_query@@GLIBC_2.0
   151: 00006330   123 FUNC    GLOBAL DEFAULT   12 __res_query@@GLIBC_2.2
    98: 00000000     0 FILE    LOCAL  DEFAULT  ABS res_query.c
   257: 000061c0   130 FUNC    GLOBAL DEFAULT   12 __res_querydomain
   292: 000061c0   130 FUNC    WEAK   DEFAULT   12 res_querydomain
   325: 00006330   123 FUNC    WEAK   DEFAULT   12 res_query
   373: 00006330   123 FUNC    GLOBAL DEFAULT   12 __res_query

res_query and dn_expand are only #define alias names for the internal functions
(and slightly differently handled on x86 though, that's why they show up as weak
references in the x86 libresolv)

so the real fix here is to check for the internal names in configure, instead of
the exported aliases:

--- partysip-2.2.3/configure.in.orig    2005-10-02 19:37:55.000000000 +0000
+++ partysip-2.2.3/configure.in 2005-10-02 19:38:50.000000000 +0000
@@ -209,8 +209,10 @@
      ;;
   *)
      CHECK_INADDR_NONE
-     AC_CHECK_LIB(resolv,res_query,[PARTYSIP_LIB="$PARTYSIP_LIB -lresolv"])
-     AC_CHECK_LIB(resolv,res_query,[PPL_LIB="$PPL_LIB -lresolv"])
+     # check for the internal names here, because they are the only ones
+     # showing up on amd64
+     AC_CHECK_LIB(resolv,__res_query,[PARTYSIP_LIB="$PARTYSIP_LIB -lresolv"])
+     AC_CHECK_LIB(resolv,__res_query,[PPL_LIB="$PPL_LIB -lresolv"])
      ;;
 esac
Comment 3 White 2005-10-02 10:36:26 UTC
good to know... :) thx.
Comment 4 Stefan Knoblich (RETIRED) gentoo-dev 2005-10-02 11:00:37 UTC
fixed in cvs