#3350 closed defect (fixed)
libvirt-glib does not build on LFS 7.1
Reported by: | Wayne Blaszczyk | Owned by: | |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | BOOK | Version: | SVN |
Severity: | normal | Keywords: | |
Cc: |
Description
Similar to Ticket 3341. The following error occurs during make.
/bin/grep: /lib/libtirpc.la: No such file or directory
/bin/sed: can't read /lib/libtirpc.la: No such file or directory
libtool: link: `/lib/libtirpc.la' is not a valid libtool archive
make[2]: * [libvirt-glib-1.0.la] Error 1
make[2]: Leaving directory `/sources/libvirt-glib-0.0.7/libvirt-glib'
make[1]: * [all-recursive] Error 1
make[1]: Leaving directory `/sources/libvirt-glib-0.0.7'
make: * [all] Error 2
It seems that this is related to an instruction in libtirpc which moves the static libraries from /lib to /usr/lib.
Change History (9)
comment:1 by , 12 years ago
comment:2 by , 12 years ago
Some progress. /usr/lib64/libvirt.la has:
dependency_libs=' -L/lib -ldevmapper -ltirpc -L/usr/lib /usr/lib/libgnutls.la /usr/lib/libtasn1.la -lnettle -lhogweed /usr/lib/libgmp.la /usr/lib/libgcrypt.la /usr/lib/libgpg-error.la /usr/lib/libsasl2.la -lresolv /usr/lib/libcurl.la -lssl -lcrypto -lrt -lpcap /lib/libtirpc.la -lutil /usr/lib/libxml2.la -lz -lm -ldl /lib/libtirpc.la -lnsl -lpthread'
Somehow libvirt.la is picking up /lib/libtirpc.la (twice)
comment:3 by , 12 years ago
Not sure if this is significant, but in /usr/lib/libtirpc.la, libdir is set to '/lib'. I don't know enough about these files to know if this is correct or not.
comment:4 by , 12 years ago
/usr/lib/libtirpc.la needs to point to /lib because that's where libtirpc.so.1.0.10 is located.
This stuff is buried way down in libtool. I don't know why it's getting it wrong, but we need to do something like the following in libvirt:
sed -i -e 's:/lib/libtirpc.la:/usr&:g' /usr/lib/libvirt{,-qemu}.la
With that, libvirt-glib builds OK.
follow-up: 6 comment:5 by , 12 years ago
Bruce you are wrong. "lib" from .la file needs to point where .so is located, in this case to /usr/lib. We had same problems with acl and attr not so long ago. One more reason why I don't have any single of those .la files.
comment:6 by , 12 years ago
Replying to Krejzi:
Bruce you are wrong. "lib" from .la file needs to point where .so is located, in this case to /usr/lib. We had same problems with acl and attr not so long ago. One more reason why I don't have any single of those .la files.
I think you misunderstand the sed. It updates the line 'dependency_libs', not 'libdir' in the .la files.
comment:7 by , 12 years ago
I fully understand the sed. However problem still lies at libtirpc whose .so and .la files are moved into /usr/lib, but .la file still lists /lib as libdir, but should list /usr/lib instead. If that is corrected before libvirt has been compiled, the problem would not exist at all with libvirt nor libvirt-glib.
Again, we had same problem with acl and attr (see their pages for the right sed)
comment:8 by , 12 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
I have changed libtirpc instructions. You can recompile libvirt against libtirpc built with new instructions. Everything should be correct then. If the problem persists, reopen this bug. Fixed in r10115
I can reproduce this. The grep and sed commands are in libtool.sh, a 10,000 line shell script. I'm going to try to track down what is going on. It shouldn't be looking for any .la file in /lib.