Xavier de Gaye added the comment:

In the code review Victor asked the following question:

> I'm a little bit surprised that you need to pass so much options which are 
> specific to the platform. GCC doesn't have a generic option "hello, please 
> compile for my architecture?"

ARM defines two incompatible floating point ABIS that specify the functions 
calling conventions, whether to use integer registers (soft floating point ABI) 
or the floating point registers (hard floating point ABI).  The compiler must 
be told which one to use and whether the hardware FPU may be used if present 
when the soft floating point ABI has been chosen. This last case is set with 
the command line option '-mfloat-abi=softfp'. The following two documents 
describe this feature in details:
  https://wiki.debian.org/ArmHardFloatPort/VfpComparison
  https://wiki.debian.org/ArmHardFloatPort

The following command prints the command line options, including implicitly 
predefined ones of the clang compiler in android-ndk-r13b and shows that the 
default is '-mfloat-abi=soft' for armv7:

$ ./clang -x c < /dev/null -dM -E - -target armv7-none-linux-androideabi -###
Android clang version 3.8.256229  (based on LLVM 3.8.256229)
Target: armv7-none-linux-android
Thread model: posix
InstalledDir: /opt/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/.
 
"/home/opt.symlink/android-ndk-r13b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang"
 "-cc1" "-triple" "armv7-none-linux-android" "-E" "-disable-free" 
"-disable-llvm-verifier" "-main-file-name" "-" "-mrelocation-model" "pic" 
"-pic-level" "1" "-mthread-model" "posix" "-mdisable-fp-elim" "-fmath-errno" 
"-masm-verbose" "-mconstructor-aliases" "-fuse-init-array" "-target-cpu" 
"cortex-a8" "-target-feature" "+soft-float-abi" "-target-abi" "aapcs-linux" 
"-mfloat-abi" "soft" "-target-linker-version" "2.24" "-dwarf-column-info" 
"-debugger-tuning=gdb" "-resource-dir" 
"/home/opt.symlink/android-ndk-r13b/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib64/clang/3.8.256229"
 "-internal-isystem" "/usr/local/include" "-internal-isystem" 
"/home/opt.symlink/android-ndk-r13b/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib64/clang/3.8.256229/include"
 "-internal-externc-isystem" "/include" "-internal-externc-isystem" 
"/usr/include" "-fdebug-compilation-dir" 
"/opt/android-ndk/toolchains/llvm/prebuilt/linu
 x-x86_64/bin" "-ferror-limit" "19" "-fmessage-length" "100" "-femulated-tls" 
"-fallow-half-arguments-and-returns" "-fno-signed-char" "-fobjc-runtime=gcc" 
"-fdiagnostics-show-option" "-fcolor-diagnostics" "-dM" "-o" "-" "-x" "c" "-"

Note that the system libffi must also be compiled with these same flags. The 
bundled libffi is deprecated in 3.6 by issue 27976 and has been removed in 3.7 
by issue 27979.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue26851>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to