New issue 2218: Cross-translating on 64 bit host: recompile with -fPIC and -m32
https://bitbucket.org/pypy/pypy/issues/2218/cross-translating-on-64-bit-host-recompile

mzakharo:

When cross-translating  pypy 4.0.1 for 32-bit ARM on a 64 bit host (Ubuntu 
14.04),  the translation task:

```
#!bash
pypy <path to rpython>/rpython/bin/rpython -Ojit --platform=arm 
--gcrootfinder=shadowstack --jit-backend=arm targetpypystandalone.py
```

fails  with:

[platform:Error] /usr/bin/ld: 
/tmp/usession-release-4.0.1-59/rpython/translator/c/src/signals.o: relocation 
R_X86_64_32 against `pypysig_counter' can not be used when making a shared 
object; recompile with -fPIC
[platform:Error] 
/tmp/usession-release-4.0.1-59/rpython/translator/c/src/signals.o: error adding 
symbols: Bad value
[platform:Error] collect2: error: ld returned 1 exit status

when I add the -fPIC, the error changes to:

translation:ERROR] OSError: Cannot load library 
/tmp/usession-release-4.0.1-60/shared_cache/externmod.so: 
/tmp/usession-release-4.0.1-60/shared_cache/externmod.so: wrong ELF class: 
ELFCLASS64

Finally, The attached patch adds -m32 to args_for_shared() and 
get_shared_only_compile_flags(), which which fixes the problem for me.

 The patch is *hackish*  - could someone please advise on what the correct 
solution  would look like?




_______________________________________________
pypy-issue mailing list
pypy-issue@python.org
https://mail.python.org/mailman/listinfo/pypy-issue

Reply via email to