[Numpy-discussion] building 32 bit numpy on 64 bit linux

Charles G. Waldman charles at crunch.io
Fri Dec 13 11:24:49 EST 2013


>>> this might work:
>>>
>>> CC="gcc -m32" LDSHARED="gcc -m32" FF="gfortran -m32" linux32 python
>>> setup.py build

Compiler flags can't be added to CC, they should be in CFLAGS.  (and
ld flags go into LDFLAGS).  Otherwise you are saying to use a program
called "gcc -m32" (with a space in the name).



On Fri, Dec 13, 2013 at 8:02 AM, David Jones <david.jones74 at gmail.com> wrote:
>
> On 12/12/13 16:35, Julian Taylor wrote:
>> On 12.12.2013 20:40, David Jones wrote:
>>> On 12/12/13 15:54, Julian Taylor wrote:
>>>> On 12.12.2013 19:58, David Jones wrote:
>>>>> I'm trying to compile 32-bit numpy on a 64 bit Centos 6 system, but fails with the message:
>>>>>
>>>>> "Broken toolchain: cannot link a simple C program"
>>>>>
>> ...
>>>> this might work:
>>>>
>>>> CC="gcc -m32" LDSHARED="gcc -m32" FF="gfortran -m32" linux32 python
>>>> setup.py build
>>>>
>>> That didn't work. It says it can't find executable "gcc -m32". I tried
>>> changing ccompiler.py, per the stackoverflow post. I got further that
>>> time, but it fails with the message:
>>>
> So this is what ended of working:
>
> CC=gcc-32 LDSHARED=ld-32 LDFLAGS="-m32 -shared -L$LD_LIBRARY_PATH"
> python2.7 setup.py build
>
> Somehow the value of LD_LIBRARY_PATH gets lost along the way. Perhaps
> distutils re-exports it with a different value, prior to calling the linker.
>
> I was getting a gfortran error at one point, but I guess it inherits
> -m32 from gcc-m32, so it doesn't have to be set explicitly.
>
> I still want to look into the code, to see what's going on in there. I
> may just write a custom config module, that allows me to pass in the
> build flags more cleanly.
>>
>> weird it works for me with libpython2.7-dev:i386 installed on amd64
>> Ubuntu 13.10 (multiarch is friggin great :D)
>> But I had to add an additional LDFLAGS="-m32 -shared"
>>
>> CC="gcc -m32" LDSHARED="gcc -m32 -shared" LDFLAGS="-m32 -shared" linux32
>> python setup.py build
>>
>> you should be able to work around this error message by writing small
>> wrapper scripts for the compiler:
>>
>> cat << EOF > gcc-32
>> #!/bin/sh
>> gcc -m32 "$@"
>> EOF
>> ...
>> CC=gcc-32 ....
>>
>> _______________________________________________
>> NumPy-Discussion mailing list
>> NumPy-Discussion at scipy.org
>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion



More information about the NumPy-Discussion mailing list