Re: [rpm-list] problems compiling rpm on solaris

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

 



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

[Index of Archives]     [RPM Ecosystem]     [Linux Kernel]     [Red Hat Install]     [PAM]     [Red Hat Watch]     [Red Hat Development]     [Red Hat]     [Gimp]     [Yosemite News]     [IETF Discussion]

  Powered by Linux