Comment 2 for bug 751142

Revision history for this message
Carsten Haitzler (raster-rasterman) wrote :

well first... just take a look at the .la file. it's obviously wrong. the actual location of it doesn't match what the .la internally states. that wrongness DOES create bugs.

evas fails to build because the .la file GENERATED for eet (which evas links to), is linked to libgcrypt, and libtool automatically includes dependencies in the .la files it generates based on the content of dependent .la files, so it happens one level down from the thing that links to gcrypt.

i.e.
evas ---LINK---> eet ---LINK---> gcrypt

evas fails as the .la file for eet (libeet.la) in its dependencies lists the gcrypt... which points to the wrong place. relevant logs and snippets of files here:

-------------------
...
make[5]: Entering directory `/home/raster/C/svn/ssh+svn/e/trunk/evas/src/lib/include'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/home/raster/C/svn/ssh+svn/e/trunk/evas/src/lib/include'
make[5]: Entering directory `/home/raster/C/svn/ssh+svn/e/trunk/evas/src/lib'
  CC main.lo
  CCLD libevas.la
/bin/sed: can't read /lib/i386-linux-gnu/libgcrypt.la: No such file or directory
libtool: link: `/lib/i386-linux-gnu/libgcrypt.la' is not a valid libtool archive
make[5]: *** [libevas.la] Error 1
...
 6:22PM ~/C > ls /lib/i386-linux-gnu/libgcrypt.la
ls: cannot access /lib/i386-linux-gnu/libgcrypt.la: No such file or directory
 6:22PM ~/C > ls /usr/lib/i386-linux-gnu/libgcrypt.la
4.0K /usr/lib/i386-linux-gnu/libgcrypt.la
 6:22PM ~/C > grep libdir /usr/lib/i386-linux-gnu/libgcrypt.la
libdir='/lib/i386-linux-gnu'
 6:22PM ~/C > grep /lib/i386-linux-gnu/libgcrypt.la /usr/local/lib/libeet.la
dependency_libs=' -L/usr/lib/i386-linux-gnu /usr/lib/i386-linux-gnu/libgnutls.la -L/lib/i386-linux-gnu /lib/i386-linux-gnu/libgcrypt.la -L/usr/local/lib /usr/local/lib/libeina.la -lrt -ldl -lz /usr/lib/i386-linux-gnu/libjpeg.la -lm'
-----------

notice the libeet.la in the dependency_libs has taken the /lib/i386-linux-gnu/libgcrypt.la which is based on the libgcrypt.la file name plus its erroneous libdir entry. that is standard (correct) behavior for libtool, but the supplied data in the libgcrypt.la file is wrong, thus the problem. fix libdir to be /usr/lib/i386-linux-gnu and it's all hunky dory.