We have moved to a new Sailfish OS Forum. Please start new discussions there.
3

Difference between armv7hl & armhf?

asked 2016-05-18 23:45:46 +0300

lpr gravatar image

updated 2016-06-01 17:56:49 +0300

palikao gravatar image

is there any difference between armv7hl (Sailfish, openSuSE, fedora...) and armhf? I'm asking because zypper will not let me install armhf-packages and rpm is doing it only with the ignorearch switch...

edit retag flag offensive close delete

Comments

There's no point in adding the tag file-format repeatedly, because the file-format of armhf packages is .deb and the one of armv7hl is .rpm which can be converted into each other by using scripts (e.g. alien). But this is not really part of the question! The question is more about build-targets of executables and why zypper does not like packages with binaries made for target armhf...

lpr ( 2016-06-01 16:04:00 +0300 )edit

2 Answers

Sort by » oldest newest most voted
4

answered 2016-05-31 16:47:29 +0300

lpr gravatar image

updated 2016-09-13 19:48:03 +0300

my experience so far is: executing armhf binaries works pretty well. They even seem to be more restrictive than Jollas armv7hl implementation. Running an armhf compiler on device, i'm not able to use the VFPv4 extensions, nor all 32 64-bit floating point registers. Only 16 of them are accessible, like the minimum hardware requirements of armhf are telling you...

> readelf -A some-armhf-executable
Tag_CPU_name: "7-A"
Tag_CPU_arch: v7
Tag_CPU_arch_profile: Application
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-2
Tag_FP_arch: VFPv3-D16

for an app built with Jolla SDK this looks:

> readelf -A jollaSDK-armv7hl-executable
Tag_CPU_name: "7-A"
Tag_CPU_arch: v7
Tag_CPU_arch_profile: Application
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-2
Tag_FP_arch: VFPv3
Tag_Advanced_SIMD_arch: NEONv1
Tag_ABI_PCS_wchar_t: 4
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Tag_ABI_FP_number_model: IEEE 754
Tag_ABI_align_needed: 8-byte
Tag_ABI_align_preserved: 8-byte, except leaf SP
Tag_ABI_enum_size: int
Tag_ABI_HardFP_use: SP and DP
Tag_ABI_VFP_args: VFP registers
Tag_CPU_unaligned_access: v6

for an application build on Jolla1 with CFLAGS=-mtune=cortex-a15 -mfpu=neon-vfpv4 you get some changes:

> readelf -A jolla1-ondevicebuild-armv7hl-executable
...
Tag_FP_arch: VFPv4
Tag_Advanced_SIMD_arch: NEONv1 with Fused-MAC
...
Tag_MPextension_use: Allowed
Tag_DIV_use: Allowed in v7-A with integer division extension
Tag_Virtualization_use: TrustZone and Virtualization Extensions
edit flag offensive delete publish link more
0

answered 2016-05-19 23:19:37 +0300

Maus gravatar image

armv7hl seems to have less hardware requirements than armhf, which seems to require a VFP3. If both ABIs are similar enough (FP parameter calling conventions), armhf binaries may run on armv7hl hardware, and if it does not make use of VFP3 features, it may even work correctly. I would not rely on that; recompilation preferred.

edit flag offensive delete publish link more

Comments

1

@Maus that's not correct: armv7hl requires VPF3, https://wiki.merproject.org/wiki/OBS_architecture_naming and uses hardfp ABI, so it should work even with VFP3 features https://lists.debian.org/debian-arm/2012/03/msg00004.html ... and since armv7hl equals armv7tnhl Thumb2 and NEON should not be a problem either

lpr ( 2016-05-20 13:47:39 +0300 )edit

@veskuh despite the problems thumb2-mode has itself until 3.4.112

lpr ( 2016-05-20 15:34:14 +0300 )edit
Login/Signup to Answer

Question tools

Follow
3 followers

Stats

Asked: 2016-05-18 23:45:46 +0300

Seen: 8,874 times

Last updated: Sep 13 '16