How to build 32-bit builds on 64-bit Ubuntu

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Tue Oct 30 06:10:07 PDT 2012


On 2012-10-30 05:03, David Holmes wrote:
> Hi Magnus,
>
> On 30/10/2012 1:59 AM, Magnus Ihse Bursie wrote:
>> I was asked to document how to build 32-bit builds on 64-bit Ubuntu.
>>
>> You need to install three packages:
>> sudo apt-get install libc6-dev-i386 lib32stdc++6 ia32-libs
>
> We also had to do:
>
> apt-get install libxext-dev:i386 libxrender-dev:i386 libxtst-dev:i386
>
> for X11. But these are the 32-bit libs that broke their 64-bit 
> counterparts. I don't know exactly which one is to blame, or whether 
> it has now been fixed upstream. We have had a lot of problems trying 
> to install 32-bit libraries on these Ubuntu systems.
Yeah, I can imagine. If I understand apt-get correctly, you are forcing 
install of 32-bit libraries as if it were a 32-bit system you installed on.

The libxext and libxtst packages seems to provide two .a files. Are 
these really needed? libxrender-dev provides libXrender.so, but the 
32-bit version is provided in usr/lib32/libXrender.so by the package 
ia32-libs. That was all that I needed to install to be able to build for 
X11. (Without it, I could still build headless only).

This might of course have changed from one Ubuntu release to another. I 
am using 11.04 Natty. (I know, it's really old, but I haven't been 
comfortable switching to Unity.)


>
>> However, these are broken, and do not place proper symlinks. (This is a
>> bug that should probably be reported upstream to Ubuntu, if anyone
>> bothers...). Therefore, you also need to do:
>> sudo ln -s /usr/lib32/libstdc++.so.6 /usr/lib32/libstdc++.so
>> sudo ln -s /usr/lib32/libasound.so.2 /usr/lib32/libasound.so
>
> We have not had to do this AFAIK for our servers. At least for 
> libasound there is an asound-dev package that has to be installed. It 
> may be lib32asound-dev (can't check as the build servers are offline 
> due to the storm).

You are indeed correct, I had installed lib32asound2 and forgot about 
it. I also have lib32gcc1 installed, but I don't remember if I did that 
manually to support building reduced OpenJDK builds.

/Magnus




More information about the build-infra-dev mailing list