VirtualBox

Opened 17 years ago

Closed 12 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)

compile_output.log (9.8 KB ) - added by Adam Bolte 17 years ago.

Download all attachments as: .zip

Change History (17)

by Adam Bolte, 17 years ago

Attachment: compile_output.log added

comment:1 by Adam Bolte, 17 years ago

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.

comment:2 by Adam Bolte, 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 Adam Bolte, 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 Michael Thayer, 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 Frank Mehnert, 17 years ago

No! Please install the package ia32-libs. I will add an appropriate check to configure.

comment:6 by Adam Bolte, 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 Adam Bolte, 17 years ago

I also created a system link for libX11.so, and the thing compiled. Thanks again!

comment:8 by Frank Mehnert, 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 Sander van Leeuwen, 17 years ago

priority: blockerminor

comment:10 by Sander van Leeuwen, 17 years ago

Resolution: fixed
Status: newclosed

comment:11 by fernando, 16 years ago

Resolution: fixed
Status: closedreopened

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 fernando, 16 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 Bart, 16 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 Frank Mehnert, 16 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 Frank Mehnert, 16 years ago

Host type: otherLinux

comment:16 by Frank Mehnert, 12 years ago

Resolution: wontfix
Status: reopenedclosed

Obsolete.

Note: See TracTickets for help on using tickets.

© 2023 Oracle
ContactPrivacy policyTerms of Use