dmd on ubuntu 64: how to unittest phobos with -m32?

Andrei Alexandrescu via Digitalmars-d digitalmars-d at puremagic.com
Thu Aug 6 09:06:31 PDT 2015


On 8/6/15 10:30 AM, Jacob Carlborg wrote:
> On 06/08/15 16:18, Andrei Alexandrescu wrote:
>> So I am trying to unittest phobos in its 32-bit build on a Ubuntu64
>> machine. I installed these additional packages:
>>
>> sudo apt-get install libc6-dev-i386 libcurl3:i386
>>
>> When I try to unittest a phobos module, e.g.:
>>
>> make -f posix.mak MODEL=32 std/conv.test
>>
>> I get:
>>
>> /usr/bin/ld: cannot find -lcurl
>>
>> What do I need to do to link libcurl/32 properly on my 64-bit platform?
>> I've searched around for a while, no avail.
>
> Is the path were the 32bit libraries are installed in the standard
> search path? Otherwise add them, I'm guessing it's /usr/lib32 or
> something like that.

I've added -L-L/usr/lib/i386-linux-gnu, where the 32-bit libs are on 
Ubuntu. Ultimately the command that fails is:

gcc /tmp/parallelism.o -o /tmp/dmd_runqdeQbJ -g -m32 
-L/usr/lib/i386-linux-gnu -lcurl generated/linux/debug/32/libphobos2.a 
-lpthread -lm -lrt

Indeed some but not all of the libcurl paraphernalia does seem to be there:

ls /usr/lib/i386-linux-gnu/libcurl*
/usr/lib/i386-linux-gnu/libcurl.so.3 
/usr/lib/i386-linux-gnu/libcurl.so.4 
/usr/lib/i386-linux-gnu/libcurl.so.4.3.0

So the .a file is missing. How do I install it?

> BTW, the :i386 packages have never worked properly for me (they ended up
> uninstalling the whole GUI). I install the "ia32-libs" and
> "gcc-multilib" packages.

gcc-multilib was already installed, and:

E: Package 'ia32-libs' has no installation candidate


Thanks,

Andrei



More information about the Digitalmars-d mailing list