On Thu, Mar 29, 2012 at 08:17:51AM -0400, Dave Reisner wrote: > On Thu, Mar 29, 2012 at 04:42:04AM -0700, Talespin Kit wrote: > > Some improvement over the build by providing --without-gpgme arg to > > ./configure script . > > > > The complete steps is mentioned below > > > > > > $ git clean -xfd; ./autogen.sh && ./configure --without-gpgme && make > > > > .......... > > make[3]: Leaving directory `/home/user/tmp/pacman/lib/libalpm' > > make[2]: Leaving directory `/home/user/tmp/pacman/lib/libalpm' > > Making all in src/util > > make[2]: Entering directory `/home/user/tmp/pacman/src/util' > > CC vercmp.o > > CCLD vercmp > > CC testpkg.o > > CCLD testpkg > > ../../lib/libalpm/.libs/libalpm.so: undefined reference to `MD5_Init' > > ../../lib/libalpm/.libs/libalpm.so: undefined reference to `MD5_Final' > > ../../lib/libalpm/.libs/libalpm.so: undefined reference to `SHA256_Init' > > ../../lib/libalpm/.libs/libalpm.so: undefined reference to `SHA256_Update' > > ../../lib/libalpm/.libs/libalpm.so: undefined reference to `MD5_Update' > > ../../lib/libalpm/.libs/libalpm.so: undefined reference to `SHA256_Final' > > > > > > The actual command executed while tryint to linking is found by running dry > > make (make -n ) > > > > cd pacman/src/util > > > > $ /bin/bash ../../libtool --silent --tag=CC --mode=link gcc -std=gnu99 > > -pedantic -D_GNU_SOURCE -g -O2 -Wall -o testpkg testpkg.o > > ../../lib/libalpm/.libs/libalpm.la -lssl -larchive -lm > > ../../lib/libalpm/.libs/libalpm.so: undefined reference to `MD5_Init' > > ../../lib/libalpm/.libs/libalpm.so: undefined reference to `MD5_Final' > > ../../lib/libalpm/.libs/libalpm.so: undefined reference to `SHA256_Init' > > ../../lib/libalpm/.libs/libalpm.so: undefined reference to `SHA256_Update' > > ../../lib/libalpm/.libs/libalpm.so: undefined reference to `MD5_Update' > > ../../lib/libalpm/.libs/libalpm.so: undefined reference to `SHA256_Final' > > collect2: ld returned 1 exit status > > > > > > Now finding which library contains **MD5_Init** symbol using the below > > > > bash commands > > > > for i in `find /usr/lib -type f -name '*.so.*'`; > > do > > nm -D $i | grep MD5_Init; > > if [ $? -eq 0 ]; > > > > then > > > > echo $i; > > fi; > > done > > > > > > Output:- > > > > ====== > > 00004320 T MD5_Init > > /usr/lib/i386-linux-gnu/libgnutls-openssl.so.26.16.14 > > No, that's the wrong library -- we link against openssl's libcrypto. > Is libssl-dev installed? > > NB: I've yet to be able to build pacman successfully against anything > involving gnutls, and i've even had build failures when libarchive > linked to gnutls (though that may have been resolved by binutils 2.22). > > > > > Now linking with the libgnutls-openssl library > > > > > > $ /bin/bash ../../libtool --silent --tag=CC --mode=link gcc -std=gnu99 > > -pedantic -D_GNU_SOURCE -g -O2 -Wall -o testpkg testpkg.o > > ../../lib/libalpm/.libs/libalpm.la -lssl -larchive -lm -lgnutls-openssl > > ../../lib/libalpm/.libs/libalpm.so: undefined reference to `SHA256_Init' > > ../../lib/libalpm/.libs/libalpm.so: undefined reference to `SHA256_Update' > > ../../lib/libalpm/.libs/libalpm.so: undefined reference to `SHA256_Final' > > collect2: ld returned 1 exit status > > > > > > Only MD5_* symbols are able to find by ld. > > > > Problem with SHA256_* symbols. Finding the **SHA256_Init** symbol > > using the above bash commands outputs. > > > > 00187db0 T SHA256_Init > > /usr/lib/libgs.so.9.04 > > This is ghostscript... I assure you we don't link against this. It > should all be covered by openssl. > > > > > Trying to link with the libgs.so.9.04 library gives the following error. > > > > > > $ /bin/bash ../../libtool --silent --tag=CC --mode=link gcc -std=gnu99 > > -pedantic -D_GNU_SOURCE -g -O2 -Wall -o testpkg testpkg.o > > ../../lib/libalpm/.libs/libalpm.la -lssl -larchive -lm -lgnutls-openssl -lgs > > /usr/bin/ld: cannot find -lgs > > collect2: ld returned 1 exit status > > > > > > No idea why the linker fails to find the libgs library. > >
Ok, so I just compiled this on a 10.04 install... $ ./configure --prefix=/usr --sysconfdir=/etc \ --localstatedir=/var --enable-git-version \ --enable-debug --without-gpgme readelf shows the following linkages: $ readelf -d ./lib/libalpm/.libs/libalpm.so Dynamic section at offset 0x29d58 contains 27 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [libcurl-gnutls.so.4] 0x0000000000000001 (NEEDED) Shared library: [libssl.so.0.9.8] 0x0000000000000001 (NEEDED) Shared library: [libarchive.so.2] 0x0000000000000001 (NEEDED) Shared library: [libm.so.6] 0x0000000000000001 (NEEDED) Shared library: [libpthread.so.0] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] 0x000000000000000e (SONAME) Library soname: [libalpm.so.7] ... $ readelf -d ./src/pacman/.libs/pacman Dynamic section at offset 0x18de0 contains 27 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [libalpm.so.7] 0x0000000000000001 (NEEDED) Shared library: [libcurl-gnutls.so.4] 0x0000000000000001 (NEEDED) Shared library: [libssl.so.0.9.8] 0x0000000000000001 (NEEDED) Shared library: [libarchive.so.2] 0x0000000000000001 (NEEDED) Shared library: [libm.so.6] 0x0000000000000001 (NEEDED) Shared library: [libpthread.so.0] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] ... dave