32 bit libraries are built incorrectly
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu |
Invalid
|
Medium
|
Tollef Fog Heen |
Bug Description
Many of the 32-bit libraries that are installed on the 64bit Ubuntu Linux
(5.0.4) are built incorrectly. For example, /usr/X11R6/
refers to /usr/X11R6/
/usr/X11R6/
inside that directory which contains *.so files. The current way libX11.so.6 is
built will cause the 64-bit version to load, thus causing many 32bit
applications to fail.
The libX11.so.6 is just one example. There are many libraries in /usr/lib32 and
/lib32 which refer to /usr/lib and /lib respectively. They should refer to
/usr/lib32 and /lib32 when looking for additional files so that they can refer
to the correct versions of the .so's.
Other examples are /usr/lib32/
/usr/lib32/
In that last one, it attempts to find configuration files in /etc/gtk-2.0. So
both 64bit and 32bit versions of the library look for config files in
/etc/gtk-2.0. However the config files in /etc/gtk-2.0 lists the names of the
shared objects that libgdk_pixbuf needs to link with. Since there is only one
version of each config file, the 32-bit libgdk_pixbuf ends up linking with
64-bit ones. There should be an /etc/gtk-2.0-32 where the config files for the
32-bit libgdk_pixbuf needs to reside.
Yet another problem is /lib32/
when it should really refer to /usr/lib32/gconv.
There are many other 32bit libraries in this distribution that have similar
problems that prevent 32-bit programs from running on the 64bit OS.
This needs to be fixed to give a better user experience. Without it, I have to
jump through hoops to get 32 bit applications to run since some of the
(commercial) applications I use are only available in 32 bit mode.
They're not built on amd64 at all, they're just repackaged libraries and this
is the way it'll be until we have proper multiarch.