Opened 17 years ago
Closed 13 years ago
#473 closed defect (wontfix)
Cannot compile Feisty AMD64 (incompatible libXt.so)
Reported by: | Adam Bolte | Owned by: | |
---|---|---|---|
Component: | other | Version: | VirtualBox 1.4.0 |
Keywords: | compile amd64 ubuntu libXt.so | Cc: | |
Guest type: | other | Host type: | Linux |
Description
Following the instructions (http://virtualbox.org/wiki/Linux%20build%20instructions), compilation always fails on the AMD64 Feisty distribution (using a Intel C2D 2Ghz CPU). Subversion and source for 1.4.0 produce the same result.
abolte@sphinx:~/downloads/applications/virtualbox-ose-svn/vbox$ ./configure --with-gcc=/usr/bin/gcc-3.4 --with-g++=/usr/bin/g++-3.4 Checking for environment: Determined linux.amd64, OK. Checking for kBuild: found, OK. Checking for gcc: found version 3.4.6, OK. Checking for as86: found version 0.16.14, OK. Checking for bcc: found version 0.16.14, OK. Checking for iasl: found version 20060912, OK. Checking for xslt: found, OK. Checking for pthread: found, OK. Checking for xalan: found version 1.10.0, OK. Checking for xerces: found version 2.7.0, OK. Checking for libIDL: found version 0.8.7, OK. Checking for zlib: found version 1.2.3, OK. Checking for SDL: found version 1.2.11, OK. Checking for X libraries: found, OK. Checking for Xcursor: found, OK. Checking for Qt: found version 3.3.7, OK. Checking for Qt devtools: found version 3.3.7, OK. Checking for Linux kernel sources: found version 2.6.20, OK. Checking for ALSA: found version 1.0.13, OK. Checking for compiler.h: compiler.h not found, OK. Checking for libhal: found version 0.5.8.1, OK. Successfully generated 'AutoConfig.kmk' and 'env.sh'. Source 'env.sh' once before you start to build VBox: source env.sh kmk To compile the kernel module, do: cd ./out/linux.amd64/release/bin/src make Enjoy! abolte@sphinx:~/downloads/applications/virtualbox-ose-svn/vbox$ source env.sh abolte@sphinx:~/downloads/applications/virtualbox-ose-svn/vbox$ kmk ... kBuild: Linking vboxadd-xclient /usr/bin/ld: skipping incompatible /usr/bin/../lib/libXt.so when searching for -lXt /usr/bin/ld: skipping incompatible /usr/bin/../lib/libXt.a when searching for -lXt /usr/bin/ld: skipping incompatible /usr/lib/libXt.so when searching for -lXt /usr/bin/ld: skipping incompatible /usr/lib/libXt.a when searching for -lXt /usr/bin/ld: cannot find -lXt collect2: ld returned 1 exit status kmk[5]: *** [/home/abolte/downloads/applications/virtualbox-ose-svn/vbox/out/linux.amd64/release/obj/src/VBox/Additions/linux/xclient/vboxadd-xclient/vboxadd-xclient] Error 1 The failing command: @g++ -m32 -o /home/abolte/downloads/applications/virtualbox-ose-svn/vbox/out/linux.amd64/release/obj/src/VBox/Additions/linux/xclient/vboxadd-xclient/vboxadd-xclient /home/abolte/downloads/applications/virtualbox-ose-svn/vbox/out/linux.amd64/release/obj/src/VBox/Additions/linux/xclient/vboxadd-xclient/clipboard.o -L/home/abolte/downloads/applications/virtualbox-ose-svn/vbox/out/linux.amd64/release/obj/src/VBox/Additions/linux/xclient/vboxadd-xclient -L/usr/X11R6/lib32 -L/usr/X11R6/lib /home/abolte/downloads/applications/virtualbox-ose-svn/vbox/out/linux.amd64/release/lib/RuntimeLnx32GuestR3.a -lpthread -lrt -lXt -lX11 -Wl,-Map -Wl,/home/abolte/downloads/applications/virtualbox-ose-svn/vbox/out/linux.amd64/release/obj/src/VBox/Additions/linux/xclient/vboxadd-xclient/vboxadd-xclient.map -Wl,--cref kmk[5]: Leaving directory `/home/abolte/downloads/applications/virtualbox-ose-svn/vbox/src/VBox/Additions/linux/xclient' kmk[4]: *** [pass_binaries_before] Error 2 kmk[4]: Leaving directory `/home/abolte/downloads/applications/virtualbox-ose-svn/vbox/src/VBox/Additions/linux' kmk[3]: *** [pass_binaries_before] Error 2 kmk[3]: Leaving directory `/home/abolte/downloads/applications/virtualbox-ose-svn/vbox/src/VBox/Additions' kmk[2]: *** [pass_binaries_before] Error 2 kmk[2]: Leaving directory `/home/abolte/downloads/applications/virtualbox-ose-svn/vbox/src/VBox' kmk[1]: *** [pass_binaries_before] Error 2 kmk[1]: Leaving directory `/home/abolte/downloads/applications/virtualbox-ose-svn/vbox/src' kmk: *** [pass_binaries_before] Error 2 abolte@sphinx:~/downloads/applications/virtualbox-ose-svn/vbox$ uname -a Linux sphinx 2.6.20-16-generic #2 SMP Thu Jun 7 19:00:28 UTC 2007 x86_64 GNU/Linux abolte@sphinx:~/downloads/applications/virtualbox-ose-svn/vbox$
Attachments (1)
Change History (17)
by , 17 years ago
Attachment: | compile_output.log added |
---|
comment:1 by , 17 years ago
comment:2 by , 17 years ago
Details regarding the incompatible version of libxt-dev used:
abolte@sphinx:~$ apt-cache show libxt-dev | head -n 16 Package: libxt-dev Priority: optional Section: libdevel Installed-Size: 1500 Maintainer: Ubuntu Core Developers <ubuntu-devel@lists.ubuntu.com> Original-Maintainer: Debian X Strike Force <debian-x@lists.debian.org> Architecture: amd64 Source: libxt Version: 1:1.0.5-1 Depends: libc6 (>= 2.5-0ubuntu1), libxt6 (= 1:1.0.5-1), libx11-dev, x11proto-core-dev, libsm-dev Pre-Depends: x11-common (>= 1:7.0.0) Filename: pool/main/libx/libxt/libxt-dev_1.0.5-1_amd64.deb Size: 513060 MD5sum: 345c16e2a1b5c95bd8dee2b818fcb338 SHA1: ed055e4a6f228b680622fe01a944fa811f09102c SHA256: 5a46cdd824c750257c00869bc4b0cccfbd95ebac5936c3383c9e8d61120e9fe4 abolte@sphinx:~$
comment:3 by , 17 years ago
Also tested with the --with-gcc=/usr/bin/gcc-3.3 and --with-gcc=/usr/bin/g++-3.3 options (which uses gcc 3.3.6 for Ubuntu). The errors (again the same for both 1.4.0 and SVN 3302) are:
kBuild: Linking RuntimeR3NoCRTGCC kBuild: Installing RuntimeR3NoCRTGCC => /home/abolte/downloads/applications/virtualbox-ose-svn/vbox/out/linux.amd64/release/lib/RuntimeR3NoCRTGCC.a kBuild: Compiling RuntimeR0Drv - misc/sanity-c.c cc1: error: unrecognized option `-Wdeclaration-after-statement' cc1: error: unrecognized option `-funit-at-a-time' kmk[3]: *** [/home/abolte/downloads/applications/virtualbox-ose-svn/vbox/out/linux.amd64/release/obj/src/VBox/Runtime/RuntimeR0Drv/misc/sanity-c.o] Error 1 The failing command: @/usr/bin/gcc-3.3 -c -O2 -nostdinc -iwithprefix include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-omit-frame-pointer -fno-strict-aliasing -fno-common -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-reorder-blocks -ffreestanding -fno-asynchronous-unwind-tables -funit-at-a-time -Wno-sign-compare -Wdeclaration-after-statement -Ir0drv/linux -I/home/abolte/downloads/applications/virtualbox-ose-svn/vbox/src/VBox/Runtime -I/lib/modules/2.6.20-16-generic/build/include -I/home/abolte/downloads/applications/virtualbox-ose-svn/vbox/include -I/home/abolte/downloads/applications/virtualbox-ose-svn/vbox/out/linux.amd64/release -Iinclude -DVBOX -DVBOX_OSE -D__LINUX__ -D_FILE_OFFSET_BITS=64 -D__AMD64__ -D__KERNEL__ -DMODULE -DIN_RING0 -DIN_RT_R0 -DIN_RT_R0 -DRT_WITH_VBOX -DRT_WITHOUT_NOCRT_WRAPPERS -DMODULE -DKBUILD_MODNAME=KBUILD_STR\(vboxdrv\) -DKBUILD_BASENAME=KBUILD_STR\(vboxdrv\) -DIN_SUP_R0 -Wp,-MD,/home/abolte/downloads/applications/virtualbox-ose-svn/vbox/out/linux.amd64/release/obj/src/VBox/Runtime/RuntimeR0Drv/misc/sanity-c.o.dep -Wp,-MT,/home/abolte/downloads/applications/virtualbox-ose-svn/vbox/out/linux.amd64/release/obj/src/VBox/Runtime/RuntimeR0Drv/misc/sanity-c.o -Wp,-MP -o /home/abolte/downloads/applications/virtualbox-ose-svn/vbox/out/linux.amd64/release/obj/src/VBox/Runtime/RuntimeR0Drv/misc/sanity-c.o /home/abolte/downloads/applications/virtualbox-ose-svn/vbox/src/VBox/Runtime/misc/sanity-c.c kmk[3]: Leaving directory `/home/abolte/downloads/applications/virtualbox-ose-svn/vbox/src/VBox/Runtime' kmk[2]: *** [pass_libraries_before] Error 2 kmk[2]: Leaving directory `/home/abolte/downloads/applications/virtualbox-ose-svn/vbox/src/VBox' kmk[1]: *** [pass_libraries_before] Error 2 kmk[1]: Leaving directory `/home/abolte/downloads/applications/virtualbox-ose-svn/vbox/src' kmk: *** [pass_libraries_before] Error 2 abolte@sphinx:~/downloads/applications/virtualbox-ose-svn/vbox$
A different compilation error, but the gcc version should be compatible according to the build instructions ("3.2.3 or later").
comment:4 by , 17 years ago
As a workaround for the libXt problem, create a symlink from libXt.so.6.0.0 to libXt.so. You will have to do the same for libX11.so.
comment:5 by , 17 years ago
No! Please install the package ia32-libs. I will add an appropriate check to configure.
comment:6 by , 17 years ago
Howdy!
Some useful output:
abolte@sphinx:/usr/lib$ sudo apt-get install ia32-libs Reading package lists... Done Building dependency tree Reading state information... Done ia32-libs is already the newest version. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. abolte@sphinx:/usr/lib$ apt-cache show ia32-libs | head -n 8 Package: ia32-libs Priority: optional Section: libs Installed-Size: 47668 Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Bdale Garbee <bdale@gag.com> Architecture: amd64 Version: 1.5ubuntu9 abolte@sphinx:/usr/lib$ ls -l libXt.so* lrwxrwxrwx 1 root root 14 2007-04-25 10:41 libXt.so -> libXt.so.6.0.0 lrwxrwxrwx 1 root root 14 2007-04-21 13:58 libXt.so.6 -> libXt.so.6.0.0 -rw-r--r-- 1 root root 396376 2007-02-17 04:44 libXt.so.6.0.0 abolte@sphinx:/usr/lib$ cd ../lib32/ abolte@sphinx:/usr/lib32$ ls -l libXt.so* lrwxrwxrwx 1 root root 14 2007-05-03 14:29 libXt.so.6 -> libXt.so.6.0.0 -rw-r--r-- 1 root root 326500 2007-02-17 04:42 libXt.so.6.0.0 abolte@sphinx:/usr/lib32$
So it sounds like the ia32-libs version is being used, but ia32-libs does not include the system link you expect. I'll add the system link in /usr/lib32 to libXt.so and see how I go. Thanks guys.
comment:7 by , 17 years ago
I also created a system link for libX11.so, and the thing compiled. Thanks again!
comment:8 by , 17 years ago
Michael is right, the link is mandatory. I have no idea why the ia32-libs package does not contain that link.
comment:9 by , 17 years ago
priority: | blocker → minor |
---|
comment:10 by , 17 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:11 by , 17 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
I'm building VirtualBox-1.5.4_OSE in a Gutsy AMD64 and had the same problem. This ticket led me to the error (missing symlinks) and I've to add two of them manually to complet the build without errors:
root@<my_server>:/usr/lib32# ln -s libX11.so.6.2.0 libX11.so root@<my_server>:/usr/lib32# ln -s libXTrap.so.6.4.0 libXTrap.so
You're doing a good work - thanks!
Fernando
comment:12 by , 17 years ago
Actually I forgot to mention two other necessary symlinks. Here's the complet list :
ln -s libX11.so.6.2.0 libX11.so
ln -s libXTrap.so.6.4.0 libXTrap.so
ln -s libXt.so.6.0.0 libXt.so
ln -s libXtst.so.6.1.0 libXtst.so
comment:13 by , 17 years ago
Creating the soft links mentioned above is a bad practice. There is a very good reason why shared objects have a version number suffix: this allows multiple binary incompatible shared objects to coexist on the same system. The problem is in the VirtualBox OSE makefiles: these makefiles should link on libX11.so.6 instead of libX11.so.
comment:14 by , 17 years ago
I don't agree. Every normal shared library for x86_64 on Ubuntu has these links installed. Linking is normally done with -lX11 and this works well if the link exists. And the version dependency for the library the link is pointing to is added by ld when doing this as well.
comment:15 by , 16 years ago
Host type: | other → Linux |
---|
I have also tested without the --with-gcc/gxx options (which uses gcc version 4.1.2 by default). Although the build instructions mention not to use gcc4, the error when used is the same. Tested again on both SVN 3302 and 1.4.0.