Skip to contentSkip to conversation

arch/arm: VFP and Thumb1 are not compatible

PATCH New Yann E. MORIN 3 participants 3 messages Nov 2, 2015 – Nov 3, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 arch/arm: VFP and Thumb1 are not compatible

gcc will refuse to build with both --with-mode=thumb and --with-fpu=vfp, with error messages during ./configure, like:

checking for suffix of object files... configure: error: in `/home/ymor in/dev/buildroot/O/build/host-gcc-initial-4.9.3/build/arm-buildroot-lin ux-uclibcgnueabihf/libgcc':
configure: error: cannot compute suffix of object files: cannot compile See `config.log' for more details.

And config.log informatively contains:

sorry, unimplemented: Thumb-1 hard-float VFP ABI

This is an error message that comes deep from gcc source files.

If gcc says it does not support VFP with Thumb1, then let's disable that combination in our menuconfig.

Prefer VFP over Thumb1, i.e. hide Thumb1 when we're not soft-float.

Cc Gustavo Zacarias <[email protected]>
Cc Thomas Petazzoni <[email protected]>
---
 arch/Config.in.arm | 6 ++++++
 1 file changed, 6 insertions(+)
arch/Config.in.arm +6 -0
index db7b8f2..67ff384 100644
@@ -377,12 +377,18 @@ config BR2_ARM_INSTRUCTIONS_ARM
 config BR2_ARM_INSTRUCTIONS_THUMB
 	bool "Thumb"
 	depends on BR2_ARM_CPU_HAS_THUMB
+	# Thumb-1 and VFP are not compatible
+	depends on BR2_ARM_SOFT_FLOAT
 	help
 	  This option instructions the compiler to generate Thumb
 	  instructions, which allows to mix 16 bits instructions and
 	  32 bits instructions. This generally provides a much smaller
 	  compiled binary size.
 
+comment "Thumb1 is not compatible with VFP"
+	depends on BR2_ARM_CPU_HAS_THUMB
+	depends on !BR2_ARM_SOFT_FLOAT
+
 config BR2_ARM_INSTRUCTIONS_THUMB2
 	bool "Thumb2"
 	depends on BR2_ARM_CPU_HAS_THUMB2
Signature · 1 line
1.9.1
#1 lore raw

PATCH 1/1 arch/arm: VFP and Thumb1 are not compatible

Quoted 15 lines · Yann E. MORIN

gcc will refuse to build with both --with-mode=thumb and --with-fpu=vfp, with error messages during ./configure, like:

checking for suffix of object files... configure: error: in `/home/ymor in/dev/buildroot/O/build/host-gcc-initial-4.9.3/build/arm-buildroot-lin ux-uclibcgnueabihf/libgcc':
configure: error: cannot compute suffix of object files: cannot compile See `config.log' for more details.

And config.log informatively contains:

sorry, unimplemented: Thumb-1 hard-float VFP ABI

This is an error message that comes deep from gcc source files.

Quoted 8 lines

If gcc says it does not support VFP with Thumb1, then let's disable that combination in our menuconfig.

Prefer VFP over Thumb1, i.e. hide Thumb1 when we're not soft-float.

Cc Gustavo Zacarias <[email protected]>
Cc Thomas Petazzoni <[email protected]>

Regards,
Arnout

Quoted 28 lines
---
 arch/Config.in.arm | 6 ++++++
 1 file changed, 6 insertions(+)
arch/Config.in.arm +6 -0
index db7b8f2..67ff384 100644
@@ -377,12 +377,18 @@ config BR2_ARM_INSTRUCTIONS_ARM
 config BR2_ARM_INSTRUCTIONS_THUMB
 	bool "Thumb"
 	depends on BR2_ARM_CPU_HAS_THUMB
+	# Thumb-1 and VFP are not compatible
+	depends on BR2_ARM_SOFT_FLOAT
 	help
 	  This option instructions the compiler to generate Thumb
 	  instructions, which allows to mix 16 bits instructions and
 	  32 bits instructions. This generally provides a much smaller
 	  compiled binary size.
 
+comment "Thumb1 is not compatible with VFP"
+	depends on BR2_ARM_CPU_HAS_THUMB
+	depends on !BR2_ARM_SOFT_FLOAT
+
 config BR2_ARM_INSTRUCTIONS_THUMB2
 	bool "Thumb2"
 	depends on BR2_ARM_CPU_HAS_THUMB2
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#2 lore raw

PATCH 1/1 arch/arm: VFP and Thumb1 are not compatible

In reply to Yann E. MORIN

Dear Yann E. MORIN,

Quoted 18 lines · Yann E. MORIN

gcc will refuse to build with both --with-mode=thumb and --with-fpu=vfp, with error messages during ./configure, like:

checking for suffix of object files... configure: error: in `/home/ymor in/dev/buildroot/O/build/host-gcc-initial-4.9.3/build/arm-buildroot-lin ux-uclibcgnueabihf/libgcc':
configure: error: cannot compute suffix of object files: cannot compile See `config.log' for more details.

And config.log informatively contains:

sorry, unimplemented: Thumb-1 hard-float VFP ABI

This is an error message that comes deep from gcc source files.

If gcc says it does not support VFP with Thumb1, then let's disable that combination in our menuconfig.

Quoted 8 lines

Prefer VFP over Thumb1, i.e. hide Thumb1 when we're not soft-float.

Cc Gustavo Zacarias <[email protected]>
Cc Thomas Petazzoni <[email protected]>
---
 arch/Config.in.arm | 6 ++++++
 1 file changed, 6 insertions(+)

Applied, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com