Skip to content

Addressing the hard float ABI support removal from Android NDK #1215

Description

@amiasato-zz

Since the r12 release of the Android NDK, hard float ABIs are no longer supported. This problem was aggravated starting from the r15 version due to the removal of the libm_hard from the development kit.

From what I've gathered, the develop branch already addresses this issue by supporting the ARM_SOFTFP_ABI flag, recently incorporating changes for the arm_soft_fp_abi branch. However, there are still a number of issues such as #1168 and #1145 which show that defaulting to -mfloat-abi=hard flag can provoke a lot of confusion. Also, in #1168 it is highlighted that even though the ARM_SOFTFP_ABI flag is supported, real support is limited to single float operations.

Given this:

  • Does it make sense to change ARMV7 builds, making them use naive C loops just as ARMV5 does? Why does OpenBLAS not support sofftp with ARMv7 #777
  • Or should the ARMV7 only use the naive implementations for double precision, while still benefiting from single precision assembly code?
  • Would there be any difference in performance when explicitly stating to the compiler that we are targeting an ARMV7 arch instead of an ARMV5 for naive implementations?
  • Should the project default the ARM_SOFTFP_ABI to 1?

I'd be very grateful for any comments of people more involved with the project, since I am fairly new to all this cross-compilation stuff.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions