In regard to: Re: [rpm-list] problems compiling rpm on solaris, Edward...:
Tim,
Thanks for your patience on this. As you suspected, my environment was at
fault because I wasn't exporting my variables. Sorry, total novice mistake I
know!!!
Anyway I reconfigured, and it seems to have got a bit further, but now I get:
gmake[3]: Entering directory `/tmp/rpm-4.4.7/rpmdb'
/bin/bash ../libtool --mode=link --tag=CC cc -Xa -xstrconst -xs -g -mt -KPIC
-D__FUNCTION__=__func__ -I/usr/local/include/beecrypt
-I/usr/local/include/neon -D__FUNCTION__=__func__
-I/usr/local/include/beecrypt -I/usr/local/include/neon -L/opt/rpm/lib
-L/opt/rpm/lib -o rpmdb_archive ../db3/db_archive.o ../db3/util_sig.o
librpmdb.la
cc -Xa -xstrconst -xs -g -mt -KPIC -D__FUNCTION__=__func__
-I/usr/local/include/beecrypt -I/usr/local/include/neon
-D__FUNCTION__=__func__ -I/usr/local/include/beecrypt
-I/usr/local/include/neon -o .libs/rpmdb_archive ../db3/db_archive.o
.../db3/util_sig.o -L/opt/rpm/lib ./.libs/librpmdb.so
/tmp/rpm-4.4.7/rpmio/.libs/librpmio.so -L/usr/local/lib -lm -ldl -lresolv
-lbz2 /tmp/rpm-4.4.7/popt/.libs/libpopt.so -L/usr/ucblib -lpthread -lnsl
-lsocket -lrt -R/opt/rpm/lib
Undefined first referenced
symbol in file
ne_path_compare /tmp/rpm-4.4.7/rpmio/.libs/librpmio.so
I ran into this problem too.
First, what did configure output when it was doing the checks for ne_
functions in libneon? Did it output yes for at least one of the checks?
Mine look like:
checking neon/ne_session.h usability... yes
checking neon/ne_session.h presence... yes
checking for neon/ne_session.h... yes
checking for ne_session_create in -lneon... yes
checking for ne_get_response_header in -lneon... yes
checking for ne_send_request_chunk in -lneon... no
If you got no for all three ne_ checks, configure didn't find your
libneon. Is that the case?
If it is, it's almost certainly because
- neon's configure defaults to building only a static library, libneon.a.
- unlike shared libraries, static libraries don't record what libraries
they might depend on, so the linker won't pull in dependencies
automatically.
- there's no easy way for RPM's configure to guess which set of optional
dependencies (openssl, either expat or libxml2 plus any of their
dependencies) a static libneon.a will require, so RPM's configure will
very often fail to detect libneon because link attempts still result
in missing symbols (from the dependencies).
You have a couple options:
- rebuild libneon, but when you do, force it to --enable-shared, so that
you get both a static and a shared library. Then reconfigure RPM from
scratch. It should then detect libneon, because now the dependencies
will be pulled in automatically at link time.
- Modify rpmio/Makefile so that WITH_NEON_LIB specifies the full path
to the neon libtool archive that's installed on your system:
WITH_NEON_LIB = /usr/local/lib/libneon.la
(with the correct path for you). Then modify librpmio_la_LDFLAGS so
that $(WITH_NEON_LIB) is included, probably before liblua.la
sha512Reset /tmp/rpm-4.4.7/rpmio/.libs/librpmio.so
Based on some of the symbols you're showing, you also appear to be
missing beecrypt. I didn't have any problems with that, because beecrypt
builds a shared library by default and because it doesn't have the mess
of dependencies that libneon does, so if RPM's configure isn't picking
that up, it's some other problem.
Make sure that RPM's configure is finding both the headers and the library
for beecrypt:
checking beecrypt/beecrypt.h usability... yes
checking beecrypt/beecrypt.h presence... yes
checking for beecrypt/beecrypt.h... yes
checking for mpfprintln in -lbeecrypt... yes
checking beecrypt/api.h usability... yes
checking beecrypt/api.h presence... yes
checking for beecrypt/api.h... yes
If it's not, take a look at the top level config.log, and search for
mpfprintln to figure out what's going on. You'll probably see a link
error.
I added the -lneon flag to the LIBS and some of the messages went away.
I also tracked the sha512Update function to the
md5 library, but adding -lmd5 didn't make any difference.
That symbol also is part of libbeecrypt, as are many of the other ones
that you show missing. Make sure configure is finding it.
Tim
--
Tim Mooney mooney@xxxxxxxxxxxxxxxxxxxxxxxxx
Information Technology Services (701) 231-1076 (Voice)
Room 242-J6, IACC Building (701) 231-8541 (Fax)
North Dakota State University, Fargo, ND 58105-5164
_______________________________________________
Rpm-list mailing list
Rpm-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/rpm-list