subversion-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Richard G." <sk...@iSKUNK.ORG>
Subject [BUG] Configure script fails to detect serf library due to ignored dependencies
Date Sun, 25 Aug 2013 22:12:05 GMT
I am building Subversion 1.8.1 on Solaris. The dependent libraries
(APR, APR-util, Serf) are built, specified, and ready to go, and yet
this happens:

configure: serf library configuration via prefix
checking serf.h usability... yes
checking serf.h presence... yes
checking for serf.h... yes
checking for serf_context_create in -lserf-1... no
configure: serf library configuration via pkg-config
checking for serf-2 library... sh: gnome-config: not found
no
checking for serf-1 library... sh: gnome-config: not found
no
checking was serf enabled... no

An appropriate version of serf could not be found, so libsvn_ra_serf
will not be built.  If you want to build libsvn_ra_serf, please
install serf 1.2.1 or newer.

configure: error: Serf was explicitly enabled but an appropriate version was not found.


Here is the relevant excerpt from config.log:

configure:5283: checking for serf_context_create in -lserf-1
configure:5308: cc -o conftest -Xa -v -xstrconst -i -mt -xtarget=opteron -xarch=amd64 -xbuiltin
-xO5   -D__EXTENSIONS__ -D_REENTRANT    -DSOLARIS2=10 -D_POSIX_PTHREAD_SEMANTICS  -I/tmp/apr-build/_install/include/apr-1
  -I/tmp/apr-util-build/_install/include/apr-1 -I/nfs/freeport/arch/sunos_x86_64/include -I/nfs/freeport/src/subversion/subversion--1.8.1/apr-util/xml/expat/lib
-I/tmp/serf-build/_install/include/serf-1   -L/nfs/freeport/arch/sunos_x86_64/lib -L/tmp/serf-build/_install/lib
conftest.c -lserf-1 -L/tmp/apr-util-build/_install/lib -laprutil-1 -L/tmp/apr-build/_install/lib
-lapr-1 -lz  >&5
"conftest.c", line 33: warning: statement not reached
Undefined			first referenced
 symbol  			    in file
bind                                /tmp/apr-build/_install/lib/libapr-1.a(sockets.o)
sendfilev                           /tmp/apr-build/_install/lib/libapr-1.a(sendrecv.o)
getservbyname_r                     /tmp/apr-build/_install/lib/libapr-1.a(sockaddr.o)
getsockname                         /tmp/apr-build/_install/lib/libapr-1.a(sockaddr.o)
accept                              /tmp/apr-build/_install/lib/libapr-1.a(sockets.o)
listen                              /tmp/apr-build/_install/lib/libapr-1.a(sockets.o)
sendto                              /tmp/apr-build/_install/lib/libapr-1.a(sendrecv.o)
socket                              /tmp/apr-build/_install/lib/libapr-1.a(sockets.o)
getnameinfo                         /tmp/apr-build/_install/lib/libapr-1.a(sockaddr.o)
uuid_generate                       /tmp/apr-build/_install/lib/libapr-1.a(rand.o)
setsockopt                          /tmp/apr-build/_install/lib/libapr-1.a(sockopt.o)
getsockopt                          /tmp/apr-build/_install/lib/libapr-1.a(sockets.o)
connect                             /tmp/apr-build/_install/lib/libapr-1.a(sockets.o)
getaddrinfo                         /tmp/apr-build/_install/lib/libapr-1.a(sockaddr.o)
hstrerror                           /tmp/apr-build/_install/lib/libapr-1.a(errorcodes.o)
getpeername                         /tmp/apr-build/_install/lib/libapr-1.a(sockaddr.o)
recvfrom                            /tmp/apr-build/_install/lib/libapr-1.a(sendrecv.o)
freeaddrinfo                        /tmp/apr-build/_install/lib/libapr-1.a(sockaddr.o)
gai_strerror                        /tmp/apr-build/_install/lib/libapr-1.a(errorcodes.o)
h_errno                             /tmp/apr-build/_install/lib/libapr-1.a(sockaddr.o)
shutdown                            /tmp/apr-build/_install/lib/libapr-1.a(sockets.o)
ld: fatal: Symbol referencing errors. No output written to conftest
configure:5308: $? = 1


These symbols are defined in various Solaris support libraries, and if I
configure with LIBS="-luuid -lresolv -lsocket -lnsl -lsendfile", the
link test succeeds and Subversion uses the library.

The problem, however, is that...

    $ grep ^dep /tmp/apr-build/_install/lib/libapr-1.la
    dependency_libs=' -lresolv -luuid -lsendfile -lrt -lsocket -lnsl -lpthread'

    $ grep ^Libs: /tmp/apr-build/_install/lib/pkgconfig/apr-1.pc
    Libs: -L${libdir} -lapr-${APR_MAJOR_VERSION} -lresolv -luuid -lsendfile -lrt -lsocket
-lnsl  -lpthread

...this dependency information is already contained in the Libtool and
pkg-config metadata for libapr, yet Subversion's configure script is
not using it. Setting LIBS should not be necessary.

This isn't just a Solaris thing, either. On Linux, uuid_generate() also
lives in a separate -luuid library---so I get the same error when
configuring, only LIBS="-luuid" is enough to get past it:

/tmp/apr-build/_install/lib/libapr-1.a(rand.o)(.text+0xc): In function `apr_os_uuid_get':
: undefined reference to `uuid_generate'
collect2: error: ld returned 1 exit status
configure:5308: $? = 1


--Daniel


-- 
Daniel Richard G. || skunk@iSKUNK.ORG
My ASCII-art .sig got a bad case of Times New Roman.

Mime
View raw message