public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH, ARM/testsuite 6/7] Force soft float in ARMv6-M and ARMv8-M Baseline options
@ 2016-09-22 13:52 Thomas Preudhomme
  2016-09-22 14:55 ` Thomas Preudhomme
  0 siblings, 1 reply; 14+ messages in thread
From: Thomas Preudhomme @ 2016-09-22 13:52 UTC (permalink / raw)
  To: gcc-patches, Kyrill Tkachov, Ramana Radhakrishnan, Richard Earnshaw

[-- Attachment #1: Type: text/plain, Size: 676 bytes --]

Hi,

ARMv6-M and ARMv8-M Baseline only support soft float ABI. Therefore, the 
arm_arch_v8m_base add option should pass -mfloat-abi=soft, much like -mthumb is 
passed for architectures that only support Thumb instruction set. This patch 
adds -mfloat-abi=soft to both arm_arch_v6m and arm_arch_v8m_base add options. 
Patch is in attachment.

ChangeLog entry is as follows:

*** gcc/testsuite/ChangeLog ***

2016-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>

         * lib/target-supports.exp (add_options_for_arm_arch_v6m): Add
         -mfloat-abi=soft option.
         (add_options_for_arm_arch_v8m_base): Likewise.


Is this ok for trunk?

Best regards,

Thomas

[-- Attachment #2: 6_softfloat_testing_v6m_v8m_baseline.patch --]
[-- Type: text/x-patch, Size: 2499 bytes --]

diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 0dabea0850124947a7fe333e0b94c4077434f278..a9629210fbf33262d9db26ec30bf1d44a95a15ba 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -3540,24 +3540,25 @@ proc check_effective_target_arm_fp16_hw { } {
 # Usage: /* { dg-require-effective-target arm_arch_v5_ok } */
 #        /* { dg-add-options arm_arch_v5 } */
 #	 /* { dg-require-effective-target arm_arch_v5_multilib } */
-foreach { armfunc armflag armdef } { v4 "-march=armv4 -marm" __ARM_ARCH_4__
-				     v4t "-march=armv4t" __ARM_ARCH_4T__
-				     v5 "-march=armv5 -marm" __ARM_ARCH_5__
-				     v5t "-march=armv5t" __ARM_ARCH_5T__
-				     v5te "-march=armv5te" __ARM_ARCH_5TE__
-				     v6 "-march=armv6" __ARM_ARCH_6__
-				     v6k "-march=armv6k" __ARM_ARCH_6K__
-				     v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
-				     v6z "-march=armv6z" __ARM_ARCH_6Z__
-				     v6m "-march=armv6-m -mthumb" __ARM_ARCH_6M__
-				     v7a "-march=armv7-a" __ARM_ARCH_7A__
-				     v7r "-march=armv7-r" __ARM_ARCH_7R__
-				     v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
-				     v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
-				     v8a "-march=armv8-a" __ARM_ARCH_8A__
-				     v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
-				     v8m_base "-march=armv8-m.base -mthumb" __ARM_ARCH_8M_BASE__
-				     v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
+foreach { armfunc armflag armdef } {
+	v4 "-march=armv4 -marm" __ARM_ARCH_4__
+	v4t "-march=armv4t" __ARM_ARCH_4T__
+	v5 "-march=armv5 -marm" __ARM_ARCH_5__
+	v5t "-march=armv5t" __ARM_ARCH_5T__
+	v5te "-march=armv5te" __ARM_ARCH_5TE__
+	v6 "-march=armv6" __ARM_ARCH_6__
+	v6k "-march=armv6k" __ARM_ARCH_6K__
+	v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
+	v6z "-march=armv6z" __ARM_ARCH_6Z__
+	v6m "-march=armv6-m -mthumb -mfloat-abi=soft" __ARM_ARCH_6M__
+	v7a "-march=armv7-a" __ARM_ARCH_7A__
+	v7r "-march=armv7-r" __ARM_ARCH_7R__
+	v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
+	v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
+	v8a "-march=armv8-a" __ARM_ARCH_8A__
+	v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
+	v8m_base "-march=armv8-m.base -mthumb" __ARM_ARCH_8M_BASE__
+	v8m_main "-march=armv8-m.main -mthumb -mfloat-abi=soft" __ARM_ARCH_8M_MAIN__ } {
     eval [string map [list FUNC $armfunc FLAG $armflag DEF $armdef ] {
 	proc check_effective_target_arm_arch_FUNC_ok { } {
 	    if { [ string match "*-marm*" "FLAG" ] &&

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH, ARM/testsuite 6/7] Force soft float in ARMv6-M and ARMv8-M Baseline options
  2016-09-22 13:52 [PATCH, ARM/testsuite 6/7] Force soft float in ARMv6-M and ARMv8-M Baseline options Thomas Preudhomme
@ 2016-09-22 14:55 ` Thomas Preudhomme
  2016-09-22 16:15   ` Richard Earnshaw (lists)
  2016-09-22 16:44   ` [arm-embedded] " Thomas Preudhomme
  0 siblings, 2 replies; 14+ messages in thread
From: Thomas Preudhomme @ 2016-09-22 14:55 UTC (permalink / raw)
  To: gcc-patches, Kyrill Tkachov, Ramana Radhakrishnan, Richard Earnshaw

[-- Attachment #1: Type: text/plain, Size: 918 bytes --]

Sorry, noticed an error in the patch. It was not caught during testing because 
GCC was built with --with-mode=thumb. Correct patch attached.

Best regards,

Thomas

On 22/09/16 14:49, Thomas Preudhomme wrote:
> Hi,
>
> ARMv6-M and ARMv8-M Baseline only support soft float ABI. Therefore, the
> arm_arch_v8m_base add option should pass -mfloat-abi=soft, much like -mthumb is
> passed for architectures that only support Thumb instruction set. This patch
> adds -mfloat-abi=soft to both arm_arch_v6m and arm_arch_v8m_base add options.
> Patch is in attachment.
>
> ChangeLog entry is as follows:
>
> *** gcc/testsuite/ChangeLog ***
>
> 2016-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
>
>         * lib/target-supports.exp (add_options_for_arm_arch_v6m): Add
>         -mfloat-abi=soft option.
>         (add_options_for_arm_arch_v8m_base): Likewise.
>
>
> Is this ok for trunk?
>
> Best regards,
>
> Thomas

[-- Attachment #2: 6_softfloat_testing_v6m_v8m_baseline.patch --]
[-- Type: text/x-patch, Size: 2499 bytes --]

diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 0dabea0850124947a7fe333e0b94c4077434f278..b5d72f1283be6a6e4736a1d20936e169c1384398 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -3540,24 +3540,25 @@ proc check_effective_target_arm_fp16_hw { } {
 # Usage: /* { dg-require-effective-target arm_arch_v5_ok } */
 #        /* { dg-add-options arm_arch_v5 } */
 #	 /* { dg-require-effective-target arm_arch_v5_multilib } */
-foreach { armfunc armflag armdef } { v4 "-march=armv4 -marm" __ARM_ARCH_4__
-				     v4t "-march=armv4t" __ARM_ARCH_4T__
-				     v5 "-march=armv5 -marm" __ARM_ARCH_5__
-				     v5t "-march=armv5t" __ARM_ARCH_5T__
-				     v5te "-march=armv5te" __ARM_ARCH_5TE__
-				     v6 "-march=armv6" __ARM_ARCH_6__
-				     v6k "-march=armv6k" __ARM_ARCH_6K__
-				     v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
-				     v6z "-march=armv6z" __ARM_ARCH_6Z__
-				     v6m "-march=armv6-m -mthumb" __ARM_ARCH_6M__
-				     v7a "-march=armv7-a" __ARM_ARCH_7A__
-				     v7r "-march=armv7-r" __ARM_ARCH_7R__
-				     v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
-				     v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
-				     v8a "-march=armv8-a" __ARM_ARCH_8A__
-				     v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
-				     v8m_base "-march=armv8-m.base -mthumb" __ARM_ARCH_8M_BASE__
-				     v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
+foreach { armfunc armflag armdef } {
+	v4 "-march=armv4 -marm" __ARM_ARCH_4__
+	v4t "-march=armv4t" __ARM_ARCH_4T__
+	v5 "-march=armv5 -marm" __ARM_ARCH_5__
+	v5t "-march=armv5t" __ARM_ARCH_5T__
+	v5te "-march=armv5te" __ARM_ARCH_5TE__
+	v6 "-march=armv6" __ARM_ARCH_6__
+	v6k "-march=armv6k" __ARM_ARCH_6K__
+	v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
+	v6z "-march=armv6z" __ARM_ARCH_6Z__
+	v6m "-march=armv6-m -mthumb -mfloat-abi=soft" __ARM_ARCH_6M__
+	v7a "-march=armv7-a" __ARM_ARCH_7A__
+	v7r "-march=armv7-r" __ARM_ARCH_7R__
+	v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
+	v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
+	v8a "-march=armv8-a" __ARM_ARCH_8A__
+	v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
+	v8m_base "-march=armv8-m.base -mthumb -mfloat-abi=soft" __ARM_ARCH_8M_BASE__
+	v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
     eval [string map [list FUNC $armfunc FLAG $armflag DEF $armdef ] {
 	proc check_effective_target_arm_arch_FUNC_ok { } {
 	    if { [ string match "*-marm*" "FLAG" ] &&

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH, ARM/testsuite 6/7] Force soft float in ARMv6-M and ARMv8-M Baseline options
  2016-09-22 14:55 ` Thomas Preudhomme
@ 2016-09-22 16:15   ` Richard Earnshaw (lists)
  2016-09-22 16:41     ` Thomas Preudhomme
  2016-10-28  9:49     ` [PATCH, ARM/testsuite 6/7] " Thomas Preudhomme
  2016-09-22 16:44   ` [arm-embedded] " Thomas Preudhomme
  1 sibling, 2 replies; 14+ messages in thread
From: Richard Earnshaw (lists) @ 2016-09-22 16:15 UTC (permalink / raw)
  To: Thomas Preudhomme, gcc-patches, Kyrill Tkachov, Ramana Radhakrishnan

On 22/09/16 15:51, Thomas Preudhomme wrote:
> Sorry, noticed an error in the patch. It was not caught during testing
> because GCC was built with --with-mode=thumb. Correct patch attached.
> 
> Best regards,
> 
> Thomas
> 
> On 22/09/16 14:49, Thomas Preudhomme wrote:
>> Hi,
>>
>> ARMv6-M and ARMv8-M Baseline only support soft float ABI. Therefore, the
>> arm_arch_v8m_base add option should pass -mfloat-abi=soft, much like
>> -mthumb is
>> passed for architectures that only support Thumb instruction set. This
>> patch
>> adds -mfloat-abi=soft to both arm_arch_v6m and arm_arch_v8m_base add
>> options.
>> Patch is in attachment.
>>
>> ChangeLog entry is as follows:
>>
>> *** gcc/testsuite/ChangeLog ***
>>
>> 2016-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
>>
>>         * lib/target-supports.exp (add_options_for_arm_arch_v6m): Add
>>         -mfloat-abi=soft option.
>>         (add_options_for_arm_arch_v8m_base): Likewise.
>>
>>
>> Is this ok for trunk?
>>
>> Best regards,
>>
>> Thomas
> 
> 6_softfloat_testing_v6m_v8m_baseline.patch
> 
> 
> diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
> index 0dabea0850124947a7fe333e0b94c4077434f278..b5d72f1283be6a6e4736a1d20936e169c1384398 100644
> --- a/gcc/testsuite/lib/target-supports.exp
> +++ b/gcc/testsuite/lib/target-supports.exp
> @@ -3540,24 +3540,25 @@ proc check_effective_target_arm_fp16_hw { } {
>  # Usage: /* { dg-require-effective-target arm_arch_v5_ok } */
>  #        /* { dg-add-options arm_arch_v5 } */
>  #	 /* { dg-require-effective-target arm_arch_v5_multilib } */
> -foreach { armfunc armflag armdef } { v4 "-march=armv4 -marm" __ARM_ARCH_4__
> -				     v4t "-march=armv4t" __ARM_ARCH_4T__
> -				     v5 "-march=armv5 -marm" __ARM_ARCH_5__
> -				     v5t "-march=armv5t" __ARM_ARCH_5T__
> -				     v5te "-march=armv5te" __ARM_ARCH_5TE__
> -				     v6 "-march=armv6" __ARM_ARCH_6__
> -				     v6k "-march=armv6k" __ARM_ARCH_6K__
> -				     v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
> -				     v6z "-march=armv6z" __ARM_ARCH_6Z__
> -				     v6m "-march=armv6-m -mthumb" __ARM_ARCH_6M__
> -				     v7a "-march=armv7-a" __ARM_ARCH_7A__
> -				     v7r "-march=armv7-r" __ARM_ARCH_7R__
> -				     v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
> -				     v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
> -				     v8a "-march=armv8-a" __ARM_ARCH_8A__
> -				     v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
> -				     v8m_base "-march=armv8-m.base -mthumb" __ARM_ARCH_8M_BASE__
> -				     v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
> +foreach { armfunc armflag armdef } {
> +	v4 "-march=armv4 -marm" __ARM_ARCH_4__
> +	v4t "-march=armv4t" __ARM_ARCH_4T__
> +	v5 "-march=armv5 -marm" __ARM_ARCH_5__
> +	v5t "-march=armv5t" __ARM_ARCH_5T__
> +	v5te "-march=armv5te" __ARM_ARCH_5TE__
> +	v6 "-march=armv6" __ARM_ARCH_6__
> +	v6k "-march=armv6k" __ARM_ARCH_6K__
> +	v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
> +	v6z "-march=armv6z" __ARM_ARCH_6Z__
> +	v6m "-march=armv6-m -mthumb -mfloat-abi=soft" __ARM_ARCH_6M__
> +	v7a "-march=armv7-a" __ARM_ARCH_7A__
> +	v7r "-march=armv7-r" __ARM_ARCH_7R__
> +	v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
> +	v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
> +	v8a "-march=armv8-a" __ARM_ARCH_8A__
> +	v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
> +	v8m_base "-march=armv8-m.base -mthumb -mfloat-abi=soft" __ARM_ARCH_8M_BASE__
> +	v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
>      eval [string map [list FUNC $armfunc FLAG $armflag DEF $armdef ] {
>  	proc check_effective_target_arm_arch_FUNC_ok { } {
>  	    if { [ string match "*-marm*" "FLAG" ] &&
> 

I think if you're going to do this you need to also check that changing
the ABI in this way isn't incompatible with other aspects of how the
user has invoked dejagnu.

R.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH, ARM/testsuite 6/7] Force soft float in ARMv6-M and ARMv8-M Baseline options
  2016-09-22 16:15   ` Richard Earnshaw (lists)
@ 2016-09-22 16:41     ` Thomas Preudhomme
  2016-10-03 16:46       ` [PATCH, ARM/testsuite 6/7, ping] " Thomas Preudhomme
  2016-10-28  9:49     ` [PATCH, ARM/testsuite 6/7] " Thomas Preudhomme
  1 sibling, 1 reply; 14+ messages in thread
From: Thomas Preudhomme @ 2016-09-22 16:41 UTC (permalink / raw)
  To: Richard Earnshaw (lists),
	gcc-patches, Kyrill Tkachov, Ramana Radhakrishnan

On 22/09/16 16:47, Richard Earnshaw (lists) wrote:
> On 22/09/16 15:51, Thomas Preudhomme wrote:
>> Sorry, noticed an error in the patch. It was not caught during testing
>> because GCC was built with --with-mode=thumb. Correct patch attached.
>>
>> Best regards,
>>
>> Thomas
>>
>> On 22/09/16 14:49, Thomas Preudhomme wrote:
>>> Hi,
>>>
>>> ARMv6-M and ARMv8-M Baseline only support soft float ABI. Therefore, the
>>> arm_arch_v8m_base add option should pass -mfloat-abi=soft, much like
>>> -mthumb is
>>> passed for architectures that only support Thumb instruction set. This
>>> patch
>>> adds -mfloat-abi=soft to both arm_arch_v6m and arm_arch_v8m_base add
>>> options.
>>> Patch is in attachment.
>>>
>>> ChangeLog entry is as follows:
>>>
>>> *** gcc/testsuite/ChangeLog ***
>>>
>>> 2016-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
>>>
>>>         * lib/target-supports.exp (add_options_for_arm_arch_v6m): Add
>>>         -mfloat-abi=soft option.
>>>         (add_options_for_arm_arch_v8m_base): Likewise.
>>>
>>>
>>> Is this ok for trunk?
>>>
>>> Best regards,
>>>
>>> Thomas
>>
>> 6_softfloat_testing_v6m_v8m_baseline.patch
>>
>>
>> diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
>> index 0dabea0850124947a7fe333e0b94c4077434f278..b5d72f1283be6a6e4736a1d20936e169c1384398 100644
>> --- a/gcc/testsuite/lib/target-supports.exp
>> +++ b/gcc/testsuite/lib/target-supports.exp
>> @@ -3540,24 +3540,25 @@ proc check_effective_target_arm_fp16_hw { } {
>>  # Usage: /* { dg-require-effective-target arm_arch_v5_ok } */
>>  #        /* { dg-add-options arm_arch_v5 } */
>>  #	 /* { dg-require-effective-target arm_arch_v5_multilib } */
>> -foreach { armfunc armflag armdef } { v4 "-march=armv4 -marm" __ARM_ARCH_4__
>> -				     v4t "-march=armv4t" __ARM_ARCH_4T__
>> -				     v5 "-march=armv5 -marm" __ARM_ARCH_5__
>> -				     v5t "-march=armv5t" __ARM_ARCH_5T__
>> -				     v5te "-march=armv5te" __ARM_ARCH_5TE__
>> -				     v6 "-march=armv6" __ARM_ARCH_6__
>> -				     v6k "-march=armv6k" __ARM_ARCH_6K__
>> -				     v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
>> -				     v6z "-march=armv6z" __ARM_ARCH_6Z__
>> -				     v6m "-march=armv6-m -mthumb" __ARM_ARCH_6M__
>> -				     v7a "-march=armv7-a" __ARM_ARCH_7A__
>> -				     v7r "-march=armv7-r" __ARM_ARCH_7R__
>> -				     v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
>> -				     v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
>> -				     v8a "-march=armv8-a" __ARM_ARCH_8A__
>> -				     v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
>> -				     v8m_base "-march=armv8-m.base -mthumb" __ARM_ARCH_8M_BASE__
>> -				     v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
>> +foreach { armfunc armflag armdef } {
>> +	v4 "-march=armv4 -marm" __ARM_ARCH_4__
>> +	v4t "-march=armv4t" __ARM_ARCH_4T__
>> +	v5 "-march=armv5 -marm" __ARM_ARCH_5__
>> +	v5t "-march=armv5t" __ARM_ARCH_5T__
>> +	v5te "-march=armv5te" __ARM_ARCH_5TE__
>> +	v6 "-march=armv6" __ARM_ARCH_6__
>> +	v6k "-march=armv6k" __ARM_ARCH_6K__
>> +	v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
>> +	v6z "-march=armv6z" __ARM_ARCH_6Z__
>> +	v6m "-march=armv6-m -mthumb -mfloat-abi=soft" __ARM_ARCH_6M__
>> +	v7a "-march=armv7-a" __ARM_ARCH_7A__
>> +	v7r "-march=armv7-r" __ARM_ARCH_7R__
>> +	v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
>> +	v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
>> +	v8a "-march=armv8-a" __ARM_ARCH_8A__
>> +	v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
>> +	v8m_base "-march=armv8-m.base -mthumb -mfloat-abi=soft" __ARM_ARCH_8M_BASE__
>> +	v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
>>      eval [string map [list FUNC $armfunc FLAG $armflag DEF $armdef ] {
>>  	proc check_effective_target_arm_arch_FUNC_ok { } {
>>  	    if { [ string match "*-marm*" "FLAG" ] &&
>>
>
> I think if you're going to do this you need to also check that changing
> the ABI in this way isn't incompatible with other aspects of how the
> user has invoked dejagnu.

So should this check also be done for all the target for which -mthumb is passed 
or is there a difference between the two situations?

Best regards,

Thomas

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [arm-embedded] [PATCH, ARM/testsuite 6/7] Force soft float in ARMv6-M and ARMv8-M Baseline options
  2016-09-22 14:55 ` Thomas Preudhomme
  2016-09-22 16:15   ` Richard Earnshaw (lists)
@ 2016-09-22 16:44   ` Thomas Preudhomme
  2016-10-27 12:57     ` Thomas Preudhomme
  1 sibling, 1 reply; 14+ messages in thread
From: Thomas Preudhomme @ 2016-09-22 16:44 UTC (permalink / raw)
  To: gcc-patches

[-- Attachment #1: Type: text/plain, Size: 97 bytes --]

Hi,

We've decided to apply the following patch to ARM/embedded-6-branch.

Best regards,

Thomas

[-- Attachment #2: Re: [PATCH, ARM/testsuite 6/7] Force soft float in ARMv6-M and ARMv8-M Baseline options.eml --]
[-- Type: message/rfc822, Size: 4701 bytes --]

[-- Attachment #2.1.1: Type: text/plain, Size: 918 bytes --]

Sorry, noticed an error in the patch. It was not caught during testing because 
GCC was built with --with-mode=thumb. Correct patch attached.

Best regards,

Thomas

On 22/09/16 14:49, Thomas Preudhomme wrote:
> Hi,
>
> ARMv6-M and ARMv8-M Baseline only support soft float ABI. Therefore, the
> arm_arch_v8m_base add option should pass -mfloat-abi=soft, much like -mthumb is
> passed for architectures that only support Thumb instruction set. This patch
> adds -mfloat-abi=soft to both arm_arch_v6m and arm_arch_v8m_base add options.
> Patch is in attachment.
>
> ChangeLog entry is as follows:
>
> *** gcc/testsuite/ChangeLog ***
>
> 2016-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
>
>         * lib/target-supports.exp (add_options_for_arm_arch_v6m): Add
>         -mfloat-abi=soft option.
>         (add_options_for_arm_arch_v8m_base): Likewise.
>
>
> Is this ok for trunk?
>
> Best regards,
>
> Thomas

[-- Attachment #2.1.2: 6_softfloat_testing_v6m_v8m_baseline.patch --]
[-- Type: text/x-patch, Size: 2499 bytes --]

diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 0dabea0850124947a7fe333e0b94c4077434f278..b5d72f1283be6a6e4736a1d20936e169c1384398 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -3540,24 +3540,25 @@ proc check_effective_target_arm_fp16_hw { } {
 # Usage: /* { dg-require-effective-target arm_arch_v5_ok } */
 #        /* { dg-add-options arm_arch_v5 } */
 #	 /* { dg-require-effective-target arm_arch_v5_multilib } */
-foreach { armfunc armflag armdef } { v4 "-march=armv4 -marm" __ARM_ARCH_4__
-				     v4t "-march=armv4t" __ARM_ARCH_4T__
-				     v5 "-march=armv5 -marm" __ARM_ARCH_5__
-				     v5t "-march=armv5t" __ARM_ARCH_5T__
-				     v5te "-march=armv5te" __ARM_ARCH_5TE__
-				     v6 "-march=armv6" __ARM_ARCH_6__
-				     v6k "-march=armv6k" __ARM_ARCH_6K__
-				     v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
-				     v6z "-march=armv6z" __ARM_ARCH_6Z__
-				     v6m "-march=armv6-m -mthumb" __ARM_ARCH_6M__
-				     v7a "-march=armv7-a" __ARM_ARCH_7A__
-				     v7r "-march=armv7-r" __ARM_ARCH_7R__
-				     v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
-				     v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
-				     v8a "-march=armv8-a" __ARM_ARCH_8A__
-				     v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
-				     v8m_base "-march=armv8-m.base -mthumb" __ARM_ARCH_8M_BASE__
-				     v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
+foreach { armfunc armflag armdef } {
+	v4 "-march=armv4 -marm" __ARM_ARCH_4__
+	v4t "-march=armv4t" __ARM_ARCH_4T__
+	v5 "-march=armv5 -marm" __ARM_ARCH_5__
+	v5t "-march=armv5t" __ARM_ARCH_5T__
+	v5te "-march=armv5te" __ARM_ARCH_5TE__
+	v6 "-march=armv6" __ARM_ARCH_6__
+	v6k "-march=armv6k" __ARM_ARCH_6K__
+	v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
+	v6z "-march=armv6z" __ARM_ARCH_6Z__
+	v6m "-march=armv6-m -mthumb -mfloat-abi=soft" __ARM_ARCH_6M__
+	v7a "-march=armv7-a" __ARM_ARCH_7A__
+	v7r "-march=armv7-r" __ARM_ARCH_7R__
+	v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
+	v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
+	v8a "-march=armv8-a" __ARM_ARCH_8A__
+	v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
+	v8m_base "-march=armv8-m.base -mthumb -mfloat-abi=soft" __ARM_ARCH_8M_BASE__
+	v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
     eval [string map [list FUNC $armfunc FLAG $armflag DEF $armdef ] {
 	proc check_effective_target_arm_arch_FUNC_ok { } {
 	    if { [ string match "*-marm*" "FLAG" ] &&

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH, ARM/testsuite 6/7, ping] Force soft float in ARMv6-M and ARMv8-M Baseline options
  2016-09-22 16:41     ` Thomas Preudhomme
@ 2016-10-03 16:46       ` Thomas Preudhomme
  0 siblings, 0 replies; 14+ messages in thread
From: Thomas Preudhomme @ 2016-10-03 16:46 UTC (permalink / raw)
  To: Richard Earnshaw (lists),
	gcc-patches, Kyrill Tkachov, Ramana Radhakrishnan

On 22/09/16 17:15, Thomas Preudhomme wrote:
> On 22/09/16 16:47, Richard Earnshaw (lists) wrote:
>> On 22/09/16 15:51, Thomas Preudhomme wrote:
>>> Sorry, noticed an error in the patch. It was not caught during testing
>>> because GCC was built with --with-mode=thumb. Correct patch attached.
>>>
>>> Best regards,
>>>
>>> Thomas
>>>
>>> On 22/09/16 14:49, Thomas Preudhomme wrote:
>>>> Hi,
>>>>
>>>> ARMv6-M and ARMv8-M Baseline only support soft float ABI. Therefore, the
>>>> arm_arch_v8m_base add option should pass -mfloat-abi=soft, much like
>>>> -mthumb is
>>>> passed for architectures that only support Thumb instruction set. This
>>>> patch
>>>> adds -mfloat-abi=soft to both arm_arch_v6m and arm_arch_v8m_base add
>>>> options.
>>>> Patch is in attachment.
>>>>
>>>> ChangeLog entry is as follows:
>>>>
>>>> *** gcc/testsuite/ChangeLog ***
>>>>
>>>> 2016-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
>>>>
>>>>         * lib/target-supports.exp (add_options_for_arm_arch_v6m): Add
>>>>         -mfloat-abi=soft option.
>>>>         (add_options_for_arm_arch_v8m_base): Likewise.
>>>>
>>>>
>>>> Is this ok for trunk?
>>>>
>>>> Best regards,
>>>>
>>>> Thomas
>>>
>>> 6_softfloat_testing_v6m_v8m_baseline.patch
>>>
>>>
>>> diff --git a/gcc/testsuite/lib/target-supports.exp
>>> b/gcc/testsuite/lib/target-supports.exp
>>> index
>>> 0dabea0850124947a7fe333e0b94c4077434f278..b5d72f1283be6a6e4736a1d20936e169c1384398
>>> 100644
>>> --- a/gcc/testsuite/lib/target-supports.exp
>>> +++ b/gcc/testsuite/lib/target-supports.exp
>>> @@ -3540,24 +3540,25 @@ proc check_effective_target_arm_fp16_hw { } {
>>>  # Usage: /* { dg-require-effective-target arm_arch_v5_ok } */
>>>  #        /* { dg-add-options arm_arch_v5 } */
>>>  #     /* { dg-require-effective-target arm_arch_v5_multilib } */
>>> -foreach { armfunc armflag armdef } { v4 "-march=armv4 -marm" __ARM_ARCH_4__
>>> -                     v4t "-march=armv4t" __ARM_ARCH_4T__
>>> -                     v5 "-march=armv5 -marm" __ARM_ARCH_5__
>>> -                     v5t "-march=armv5t" __ARM_ARCH_5T__
>>> -                     v5te "-march=armv5te" __ARM_ARCH_5TE__
>>> -                     v6 "-march=armv6" __ARM_ARCH_6__
>>> -                     v6k "-march=armv6k" __ARM_ARCH_6K__
>>> -                     v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
>>> -                     v6z "-march=armv6z" __ARM_ARCH_6Z__
>>> -                     v6m "-march=armv6-m -mthumb" __ARM_ARCH_6M__
>>> -                     v7a "-march=armv7-a" __ARM_ARCH_7A__
>>> -                     v7r "-march=armv7-r" __ARM_ARCH_7R__
>>> -                     v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
>>> -                     v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
>>> -                     v8a "-march=armv8-a" __ARM_ARCH_8A__
>>> -                     v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
>>> -                     v8m_base "-march=armv8-m.base -mthumb"
>>> __ARM_ARCH_8M_BASE__
>>> -                     v8m_main "-march=armv8-m.main -mthumb"
>>> __ARM_ARCH_8M_MAIN__ } {
>>> +foreach { armfunc armflag armdef } {
>>> +    v4 "-march=armv4 -marm" __ARM_ARCH_4__
>>> +    v4t "-march=armv4t" __ARM_ARCH_4T__
>>> +    v5 "-march=armv5 -marm" __ARM_ARCH_5__
>>> +    v5t "-march=armv5t" __ARM_ARCH_5T__
>>> +    v5te "-march=armv5te" __ARM_ARCH_5TE__
>>> +    v6 "-march=armv6" __ARM_ARCH_6__
>>> +    v6k "-march=armv6k" __ARM_ARCH_6K__
>>> +    v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
>>> +    v6z "-march=armv6z" __ARM_ARCH_6Z__
>>> +    v6m "-march=armv6-m -mthumb -mfloat-abi=soft" __ARM_ARCH_6M__
>>> +    v7a "-march=armv7-a" __ARM_ARCH_7A__
>>> +    v7r "-march=armv7-r" __ARM_ARCH_7R__
>>> +    v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
>>> +    v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
>>> +    v8a "-march=armv8-a" __ARM_ARCH_8A__
>>> +    v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
>>> +    v8m_base "-march=armv8-m.base -mthumb -mfloat-abi=soft"
>>> __ARM_ARCH_8M_BASE__
>>> +    v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
>>>      eval [string map [list FUNC $armfunc FLAG $armflag DEF $armdef ] {
>>>      proc check_effective_target_arm_arch_FUNC_ok { } {
>>>          if { [ string match "*-marm*" "FLAG" ] &&
>>>
>>
>> I think if you're going to do this you need to also check that changing
>> the ABI in this way isn't incompatible with other aspects of how the
>> user has invoked dejagnu.
>
> So should this check also be done for all the target for which -mthumb is passed
> or is there a difference between the two situations?

Ping?

Best regards,

Thomas

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [arm-embedded] [PATCH, ARM/testsuite 6/7] Force soft float in ARMv6-M and ARMv8-M Baseline options
  2016-09-22 16:44   ` [arm-embedded] " Thomas Preudhomme
@ 2016-10-27 12:57     ` Thomas Preudhomme
  0 siblings, 0 replies; 14+ messages in thread
From: Thomas Preudhomme @ 2016-10-27 12:57 UTC (permalink / raw)
  To: gcc-patches

On 22/09/16 17:42, Thomas Preudhomme wrote:
> Hi,
>
> We've decided to apply the following patch to ARM/embedded-6-branch.

Sorry, I meant ARM/embedded-5-branch.

Best regards,

Thomas

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH, ARM/testsuite 6/7] Force soft float in ARMv6-M and ARMv8-M Baseline options
  2016-09-22 16:15   ` Richard Earnshaw (lists)
  2016-09-22 16:41     ` Thomas Preudhomme
@ 2016-10-28  9:49     ` Thomas Preudhomme
  2016-11-02 10:05       ` [PATCH, ARM/testsuite 6/7, ping] " Thomas Preudhomme
  2016-12-01 10:10       ` Fwd: Re: [PATCH, ARM/testsuite 6/7] " Thomas Preudhomme
  1 sibling, 2 replies; 14+ messages in thread
From: Thomas Preudhomme @ 2016-10-28  9:49 UTC (permalink / raw)
  To: Richard Earnshaw (lists),
	gcc-patches, Kyrill Tkachov, Ramana Radhakrishnan

[-- Attachment #1: Type: text/plain, Size: 5024 bytes --]

On 22/09/16 16:47, Richard Earnshaw (lists) wrote:
> On 22/09/16 15:51, Thomas Preudhomme wrote:
>> Sorry, noticed an error in the patch. It was not caught during testing
>> because GCC was built with --with-mode=thumb. Correct patch attached.
>>
>> Best regards,
>>
>> Thomas
>>
>> On 22/09/16 14:49, Thomas Preudhomme wrote:
>>> Hi,
>>>
>>> ARMv6-M and ARMv8-M Baseline only support soft float ABI. Therefore, the
>>> arm_arch_v8m_base add option should pass -mfloat-abi=soft, much like
>>> -mthumb is
>>> passed for architectures that only support Thumb instruction set. This
>>> patch
>>> adds -mfloat-abi=soft to both arm_arch_v6m and arm_arch_v8m_base add
>>> options.
>>> Patch is in attachment.
>>>
>>> ChangeLog entry is as follows:
>>>
>>> *** gcc/testsuite/ChangeLog ***
>>>
>>> 2016-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
>>>
>>>         * lib/target-supports.exp (add_options_for_arm_arch_v6m): Add
>>>         -mfloat-abi=soft option.
>>>         (add_options_for_arm_arch_v8m_base): Likewise.
>>>
>>>
>>> Is this ok for trunk?
>>>
>>> Best regards,
>>>
>>> Thomas
>>
>> 6_softfloat_testing_v6m_v8m_baseline.patch
>>
>>
>> diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
>> index 0dabea0850124947a7fe333e0b94c4077434f278..b5d72f1283be6a6e4736a1d20936e169c1384398 100644
>> --- a/gcc/testsuite/lib/target-supports.exp
>> +++ b/gcc/testsuite/lib/target-supports.exp
>> @@ -3540,24 +3540,25 @@ proc check_effective_target_arm_fp16_hw { } {
>>  # Usage: /* { dg-require-effective-target arm_arch_v5_ok } */
>>  #        /* { dg-add-options arm_arch_v5 } */
>>  #	 /* { dg-require-effective-target arm_arch_v5_multilib } */
>> -foreach { armfunc armflag armdef } { v4 "-march=armv4 -marm" __ARM_ARCH_4__
>> -				     v4t "-march=armv4t" __ARM_ARCH_4T__
>> -				     v5 "-march=armv5 -marm" __ARM_ARCH_5__
>> -				     v5t "-march=armv5t" __ARM_ARCH_5T__
>> -				     v5te "-march=armv5te" __ARM_ARCH_5TE__
>> -				     v6 "-march=armv6" __ARM_ARCH_6__
>> -				     v6k "-march=armv6k" __ARM_ARCH_6K__
>> -				     v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
>> -				     v6z "-march=armv6z" __ARM_ARCH_6Z__
>> -				     v6m "-march=armv6-m -mthumb" __ARM_ARCH_6M__
>> -				     v7a "-march=armv7-a" __ARM_ARCH_7A__
>> -				     v7r "-march=armv7-r" __ARM_ARCH_7R__
>> -				     v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
>> -				     v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
>> -				     v8a "-march=armv8-a" __ARM_ARCH_8A__
>> -				     v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
>> -				     v8m_base "-march=armv8-m.base -mthumb" __ARM_ARCH_8M_BASE__
>> -				     v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
>> +foreach { armfunc armflag armdef } {
>> +	v4 "-march=armv4 -marm" __ARM_ARCH_4__
>> +	v4t "-march=armv4t" __ARM_ARCH_4T__
>> +	v5 "-march=armv5 -marm" __ARM_ARCH_5__
>> +	v5t "-march=armv5t" __ARM_ARCH_5T__
>> +	v5te "-march=armv5te" __ARM_ARCH_5TE__
>> +	v6 "-march=armv6" __ARM_ARCH_6__
>> +	v6k "-march=armv6k" __ARM_ARCH_6K__
>> +	v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
>> +	v6z "-march=armv6z" __ARM_ARCH_6Z__
>> +	v6m "-march=armv6-m -mthumb -mfloat-abi=soft" __ARM_ARCH_6M__
>> +	v7a "-march=armv7-a" __ARM_ARCH_7A__
>> +	v7r "-march=armv7-r" __ARM_ARCH_7R__
>> +	v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
>> +	v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
>> +	v8a "-march=armv8-a" __ARM_ARCH_8A__
>> +	v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
>> +	v8m_base "-march=armv8-m.base -mthumb -mfloat-abi=soft" __ARM_ARCH_8M_BASE__
>> +	v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
>>      eval [string map [list FUNC $armfunc FLAG $armflag DEF $armdef ] {
>>  	proc check_effective_target_arm_arch_FUNC_ok { } {
>>  	    if { [ string match "*-marm*" "FLAG" ] &&
>>
>
> I think if you're going to do this you need to also check that changing
> the ABI in this way isn't incompatible with other aspects of how the
> user has invoked dejagnu.

The reason this patch was made is that without it dg-require-effective-target 
arm_arch_v8m_base_ok evaluates to true for an arm-none-linux-gnueabihf toolchain 
but then any testcase containing a function for such a target (such as the 
atomic-op-* in gcc.target/arm) will error out because ARMv8-M Baseline does not 
support hard float ABI.

I see 2 ways to fix this:

1) the approach taken in this patch, ie saying that to select ARMv8-M baseline 
architecture you need the right -march, -mthumb but also the right float ABI.

Note that the comment at the top of that procedure says:
# Creates a series of routines that return 1 if the given architecture
# can be selected and a routine to give the flags to select that architecture

2) Add a function to the assembly that is used to test support for the architecture.

The reason I favor the first one is that it enables more test while the second 
test would just skip ARMv6-M and ARMv8-M Baseline tests for 
arm-none-linux-gnueabihf toolchains.

Is this patch ok for trunk?

Best regards,

Thomas

[-- Attachment #2: 6_softfloat_testing_v6m_v8m_baseline.patch --]
[-- Type: text/x-patch, Size: 2591 bytes --]

diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index b5a9faab5a47d01371c6402a5b07d34071dbc34b..ce2fc0af116a4ffbec272642dff21ed5797a3028 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -3679,25 +3679,26 @@ proc check_effective_target_arm_fp16_hw { } {
 # Usage: /* { dg-require-effective-target arm_arch_v5_ok } */
 #        /* { dg-add-options arm_arch_v5 } */
 #	 /* { dg-require-effective-target arm_arch_v5_multilib } */
-foreach { armfunc armflag armdef } { v4 "-march=armv4 -marm" __ARM_ARCH_4__
-				     v4t "-march=armv4t" __ARM_ARCH_4T__
-				     v5 "-march=armv5 -marm" __ARM_ARCH_5__
-				     v5t "-march=armv5t" __ARM_ARCH_5T__
-				     v5te "-march=armv5te" __ARM_ARCH_5TE__
-				     v6 "-march=armv6" __ARM_ARCH_6__
-				     v6k "-march=armv6k" __ARM_ARCH_6K__
-				     v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
-				     v6z "-march=armv6z" __ARM_ARCH_6Z__
-				     v6m "-march=armv6-m -mthumb" __ARM_ARCH_6M__
-				     v7a "-march=armv7-a" __ARM_ARCH_7A__
-				     v7r "-march=armv7-r" __ARM_ARCH_7R__
-				     v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
-				     v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
-				     v8a "-march=armv8-a" __ARM_ARCH_8A__
-				     v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
-				     v8_2a "-march=armv8.2a" __ARM_ARCH_8A__
-				     v8m_base "-march=armv8-m.base -mthumb" __ARM_ARCH_8M_BASE__
-				     v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
+foreach { armfunc armflag armdef } {
+	v4 "-march=armv4 -marm" __ARM_ARCH_4__
+	v4t "-march=armv4t" __ARM_ARCH_4T__
+	v5 "-march=armv5 -marm" __ARM_ARCH_5__
+	v5t "-march=armv5t" __ARM_ARCH_5T__
+	v5te "-march=armv5te" __ARM_ARCH_5TE__
+	v6 "-march=armv6" __ARM_ARCH_6__
+	v6k "-march=armv6k" __ARM_ARCH_6K__
+	v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
+	v6z "-march=armv6z" __ARM_ARCH_6Z__
+	v6m "-march=armv6-m -mthumb -mfloat-abi=soft" __ARM_ARCH_6M__
+	v7a "-march=armv7-a" __ARM_ARCH_7A__
+	v7r "-march=armv7-r" __ARM_ARCH_7R__
+	v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
+	v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
+	v8a "-march=armv8-a" __ARM_ARCH_8A__
+	v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
+	v8_2a "-march=armv8.2a" __ARM_ARCH_8A__
+	v8m_base "-march=armv8-m.base -mthumb -mfloat-abi=soft" __ARM_ARCH_8M_BASE__
+	v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
     eval [string map [list FUNC $armfunc FLAG $armflag DEF $armdef ] {
 	proc check_effective_target_arm_arch_FUNC_ok { } {
 	    if { [ string match "*-marm*" "FLAG" ] &&

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH, ARM/testsuite 6/7, ping] Force soft float in ARMv6-M and ARMv8-M Baseline options
  2016-10-28  9:49     ` [PATCH, ARM/testsuite 6/7] " Thomas Preudhomme
@ 2016-11-02 10:05       ` Thomas Preudhomme
  2016-11-08 13:35         ` [PATCH, ARM/testsuite 6/7, ping2] " Thomas Preudhomme
  2016-12-01 10:10       ` Fwd: Re: [PATCH, ARM/testsuite 6/7] " Thomas Preudhomme
  1 sibling, 1 reply; 14+ messages in thread
From: Thomas Preudhomme @ 2016-11-02 10:05 UTC (permalink / raw)
  To: Richard Earnshaw (lists),
	gcc-patches, Kyrill Tkachov, Ramana Radhakrishnan

[-- Attachment #1: Type: text/plain, Size: 5524 bytes --]

Ping?

Best regards,

Thomas

On 28/10/16 10:49, Thomas Preudhomme wrote:
> On 22/09/16 16:47, Richard Earnshaw (lists) wrote:
>> On 22/09/16 15:51, Thomas Preudhomme wrote:
>>> Sorry, noticed an error in the patch. It was not caught during testing
>>> because GCC was built with --with-mode=thumb. Correct patch attached.
>>>
>>> Best regards,
>>>
>>> Thomas
>>>
>>> On 22/09/16 14:49, Thomas Preudhomme wrote:
>>>> Hi,
>>>>
>>>> ARMv6-M and ARMv8-M Baseline only support soft float ABI. Therefore, the
>>>> arm_arch_v8m_base add option should pass -mfloat-abi=soft, much like
>>>> -mthumb is
>>>> passed for architectures that only support Thumb instruction set. This
>>>> patch
>>>> adds -mfloat-abi=soft to both arm_arch_v6m and arm_arch_v8m_base add
>>>> options.
>>>> Patch is in attachment.
>>>>
>>>> ChangeLog entry is as follows:
>>>>
>>>> *** gcc/testsuite/ChangeLog ***
>>>>
>>>> 2016-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
>>>>
>>>>         * lib/target-supports.exp (add_options_for_arm_arch_v6m): Add
>>>>         -mfloat-abi=soft option.
>>>>         (add_options_for_arm_arch_v8m_base): Likewise.
>>>>
>>>>
>>>> Is this ok for trunk?
>>>>
>>>> Best regards,
>>>>
>>>> Thomas
>>>
>>> 6_softfloat_testing_v6m_v8m_baseline.patch
>>>
>>>
>>> diff --git a/gcc/testsuite/lib/target-supports.exp
>>> b/gcc/testsuite/lib/target-supports.exp
>>> index
>>> 0dabea0850124947a7fe333e0b94c4077434f278..b5d72f1283be6a6e4736a1d20936e169c1384398
>>> 100644
>>> --- a/gcc/testsuite/lib/target-supports.exp
>>> +++ b/gcc/testsuite/lib/target-supports.exp
>>> @@ -3540,24 +3540,25 @@ proc check_effective_target_arm_fp16_hw { } {
>>>  # Usage: /* { dg-require-effective-target arm_arch_v5_ok } */
>>>  #        /* { dg-add-options arm_arch_v5 } */
>>>  #     /* { dg-require-effective-target arm_arch_v5_multilib } */
>>> -foreach { armfunc armflag armdef } { v4 "-march=armv4 -marm" __ARM_ARCH_4__
>>> -                     v4t "-march=armv4t" __ARM_ARCH_4T__
>>> -                     v5 "-march=armv5 -marm" __ARM_ARCH_5__
>>> -                     v5t "-march=armv5t" __ARM_ARCH_5T__
>>> -                     v5te "-march=armv5te" __ARM_ARCH_5TE__
>>> -                     v6 "-march=armv6" __ARM_ARCH_6__
>>> -                     v6k "-march=armv6k" __ARM_ARCH_6K__
>>> -                     v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
>>> -                     v6z "-march=armv6z" __ARM_ARCH_6Z__
>>> -                     v6m "-march=armv6-m -mthumb" __ARM_ARCH_6M__
>>> -                     v7a "-march=armv7-a" __ARM_ARCH_7A__
>>> -                     v7r "-march=armv7-r" __ARM_ARCH_7R__
>>> -                     v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
>>> -                     v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
>>> -                     v8a "-march=armv8-a" __ARM_ARCH_8A__
>>> -                     v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
>>> -                     v8m_base "-march=armv8-m.base -mthumb"
>>> __ARM_ARCH_8M_BASE__
>>> -                     v8m_main "-march=armv8-m.main -mthumb"
>>> __ARM_ARCH_8M_MAIN__ } {
>>> +foreach { armfunc armflag armdef } {
>>> +    v4 "-march=armv4 -marm" __ARM_ARCH_4__
>>> +    v4t "-march=armv4t" __ARM_ARCH_4T__
>>> +    v5 "-march=armv5 -marm" __ARM_ARCH_5__
>>> +    v5t "-march=armv5t" __ARM_ARCH_5T__
>>> +    v5te "-march=armv5te" __ARM_ARCH_5TE__
>>> +    v6 "-march=armv6" __ARM_ARCH_6__
>>> +    v6k "-march=armv6k" __ARM_ARCH_6K__
>>> +    v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
>>> +    v6z "-march=armv6z" __ARM_ARCH_6Z__
>>> +    v6m "-march=armv6-m -mthumb -mfloat-abi=soft" __ARM_ARCH_6M__
>>> +    v7a "-march=armv7-a" __ARM_ARCH_7A__
>>> +    v7r "-march=armv7-r" __ARM_ARCH_7R__
>>> +    v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
>>> +    v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
>>> +    v8a "-march=armv8-a" __ARM_ARCH_8A__
>>> +    v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
>>> +    v8m_base "-march=armv8-m.base -mthumb -mfloat-abi=soft"
>>> __ARM_ARCH_8M_BASE__
>>> +    v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
>>>      eval [string map [list FUNC $armfunc FLAG $armflag DEF $armdef ] {
>>>      proc check_effective_target_arm_arch_FUNC_ok { } {
>>>          if { [ string match "*-marm*" "FLAG" ] &&
>>>
>>
>> I think if you're going to do this you need to also check that changing
>> the ABI in this way isn't incompatible with other aspects of how the
>> user has invoked dejagnu.
>
> The reason this patch was made is that without it dg-require-effective-target
> arm_arch_v8m_base_ok evaluates to true for an arm-none-linux-gnueabihf toolchain
> but then any testcase containing a function for such a target (such as the
> atomic-op-* in gcc.target/arm) will error out because ARMv8-M Baseline does not
> support hard float ABI.
>
> I see 2 ways to fix this:
>
> 1) the approach taken in this patch, ie saying that to select ARMv8-M baseline
> architecture you need the right -march, -mthumb but also the right float ABI.
>
> Note that the comment at the top of that procedure says:
> # Creates a series of routines that return 1 if the given architecture
> # can be selected and a routine to give the flags to select that architecture
>
> 2) Add a function to the assembly that is used to test support for the
> architecture.
>
> The reason I favor the first one is that it enables more test while the second
> test would just skip ARMv6-M and ARMv8-M Baseline tests for
> arm-none-linux-gnueabihf toolchains.
>
> Is this patch ok for trunk?
>
> Best regards,
>
> Thomas

[-- Attachment #2: 6_softfloat_testing_v6m_v8m_baseline.patch --]
[-- Type: text/x-patch, Size: 2591 bytes --]

diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index b5a9faab5a47d01371c6402a5b07d34071dbc34b..ce2fc0af116a4ffbec272642dff21ed5797a3028 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -3679,25 +3679,26 @@ proc check_effective_target_arm_fp16_hw { } {
 # Usage: /* { dg-require-effective-target arm_arch_v5_ok } */
 #        /* { dg-add-options arm_arch_v5 } */
 #	 /* { dg-require-effective-target arm_arch_v5_multilib } */
-foreach { armfunc armflag armdef } { v4 "-march=armv4 -marm" __ARM_ARCH_4__
-				     v4t "-march=armv4t" __ARM_ARCH_4T__
-				     v5 "-march=armv5 -marm" __ARM_ARCH_5__
-				     v5t "-march=armv5t" __ARM_ARCH_5T__
-				     v5te "-march=armv5te" __ARM_ARCH_5TE__
-				     v6 "-march=armv6" __ARM_ARCH_6__
-				     v6k "-march=armv6k" __ARM_ARCH_6K__
-				     v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
-				     v6z "-march=armv6z" __ARM_ARCH_6Z__
-				     v6m "-march=armv6-m -mthumb" __ARM_ARCH_6M__
-				     v7a "-march=armv7-a" __ARM_ARCH_7A__
-				     v7r "-march=armv7-r" __ARM_ARCH_7R__
-				     v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
-				     v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
-				     v8a "-march=armv8-a" __ARM_ARCH_8A__
-				     v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
-				     v8_2a "-march=armv8.2a" __ARM_ARCH_8A__
-				     v8m_base "-march=armv8-m.base -mthumb" __ARM_ARCH_8M_BASE__
-				     v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
+foreach { armfunc armflag armdef } {
+	v4 "-march=armv4 -marm" __ARM_ARCH_4__
+	v4t "-march=armv4t" __ARM_ARCH_4T__
+	v5 "-march=armv5 -marm" __ARM_ARCH_5__
+	v5t "-march=armv5t" __ARM_ARCH_5T__
+	v5te "-march=armv5te" __ARM_ARCH_5TE__
+	v6 "-march=armv6" __ARM_ARCH_6__
+	v6k "-march=armv6k" __ARM_ARCH_6K__
+	v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
+	v6z "-march=armv6z" __ARM_ARCH_6Z__
+	v6m "-march=armv6-m -mthumb -mfloat-abi=soft" __ARM_ARCH_6M__
+	v7a "-march=armv7-a" __ARM_ARCH_7A__
+	v7r "-march=armv7-r" __ARM_ARCH_7R__
+	v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
+	v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
+	v8a "-march=armv8-a" __ARM_ARCH_8A__
+	v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
+	v8_2a "-march=armv8.2a" __ARM_ARCH_8A__
+	v8m_base "-march=armv8-m.base -mthumb -mfloat-abi=soft" __ARM_ARCH_8M_BASE__
+	v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
     eval [string map [list FUNC $armfunc FLAG $armflag DEF $armdef ] {
 	proc check_effective_target_arm_arch_FUNC_ok { } {
 	    if { [ string match "*-marm*" "FLAG" ] &&

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH, ARM/testsuite 6/7, ping2] Force soft float in ARMv6-M and ARMv8-M Baseline options
  2016-11-02 10:05       ` [PATCH, ARM/testsuite 6/7, ping] " Thomas Preudhomme
@ 2016-11-08 13:35         ` Thomas Preudhomme
  2016-11-17 20:42           ` [PATCH, ARM/testsuite 6/7, ping3] " Thomas Preudhomme
  0 siblings, 1 reply; 14+ messages in thread
From: Thomas Preudhomme @ 2016-11-08 13:35 UTC (permalink / raw)
  To: Richard Earnshaw (lists),
	gcc-patches, Kyrill Tkachov, Ramana Radhakrishnan

[-- Attachment #1: Type: text/plain, Size: 5742 bytes --]

Ping,

Best regards,

Thomas

On 02/11/16 10:04, Thomas Preudhomme wrote:
> Ping?
>
> Best regards,
>
> Thomas
>
> On 28/10/16 10:49, Thomas Preudhomme wrote:
>> On 22/09/16 16:47, Richard Earnshaw (lists) wrote:
>>> On 22/09/16 15:51, Thomas Preudhomme wrote:
>>>> Sorry, noticed an error in the patch. It was not caught during testing
>>>> because GCC was built with --with-mode=thumb. Correct patch attached.
>>>>
>>>> Best regards,
>>>>
>>>> Thomas
>>>>
>>>> On 22/09/16 14:49, Thomas Preudhomme wrote:
>>>>> Hi,
>>>>>
>>>>> ARMv6-M and ARMv8-M Baseline only support soft float ABI. Therefore, the
>>>>> arm_arch_v8m_base add option should pass -mfloat-abi=soft, much like
>>>>> -mthumb is
>>>>> passed for architectures that only support Thumb instruction set. This
>>>>> patch
>>>>> adds -mfloat-abi=soft to both arm_arch_v6m and arm_arch_v8m_base add
>>>>> options.
>>>>> Patch is in attachment.
>>>>>
>>>>> ChangeLog entry is as follows:
>>>>>
>>>>> *** gcc/testsuite/ChangeLog ***
>>>>>
>>>>> 2016-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
>>>>>
>>>>>         * lib/target-supports.exp (add_options_for_arm_arch_v6m): Add
>>>>>         -mfloat-abi=soft option.
>>>>>         (add_options_for_arm_arch_v8m_base): Likewise.
>>>>>
>>>>>
>>>>> Is this ok for trunk?
>>>>>
>>>>> Best regards,
>>>>>
>>>>> Thomas
>>>>
>>>> 6_softfloat_testing_v6m_v8m_baseline.patch
>>>>
>>>>
>>>> diff --git a/gcc/testsuite/lib/target-supports.exp
>>>> b/gcc/testsuite/lib/target-supports.exp
>>>> index
>>>> 0dabea0850124947a7fe333e0b94c4077434f278..b5d72f1283be6a6e4736a1d20936e169c1384398
>>>>
>>>> 100644
>>>> --- a/gcc/testsuite/lib/target-supports.exp
>>>> +++ b/gcc/testsuite/lib/target-supports.exp
>>>> @@ -3540,24 +3540,25 @@ proc check_effective_target_arm_fp16_hw { } {
>>>>  # Usage: /* { dg-require-effective-target arm_arch_v5_ok } */
>>>>  #        /* { dg-add-options arm_arch_v5 } */
>>>>  #     /* { dg-require-effective-target arm_arch_v5_multilib } */
>>>> -foreach { armfunc armflag armdef } { v4 "-march=armv4 -marm" __ARM_ARCH_4__
>>>> -                     v4t "-march=armv4t" __ARM_ARCH_4T__
>>>> -                     v5 "-march=armv5 -marm" __ARM_ARCH_5__
>>>> -                     v5t "-march=armv5t" __ARM_ARCH_5T__
>>>> -                     v5te "-march=armv5te" __ARM_ARCH_5TE__
>>>> -                     v6 "-march=armv6" __ARM_ARCH_6__
>>>> -                     v6k "-march=armv6k" __ARM_ARCH_6K__
>>>> -                     v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
>>>> -                     v6z "-march=armv6z" __ARM_ARCH_6Z__
>>>> -                     v6m "-march=armv6-m -mthumb" __ARM_ARCH_6M__
>>>> -                     v7a "-march=armv7-a" __ARM_ARCH_7A__
>>>> -                     v7r "-march=armv7-r" __ARM_ARCH_7R__
>>>> -                     v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
>>>> -                     v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
>>>> -                     v8a "-march=armv8-a" __ARM_ARCH_8A__
>>>> -                     v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
>>>> -                     v8m_base "-march=armv8-m.base -mthumb"
>>>> __ARM_ARCH_8M_BASE__
>>>> -                     v8m_main "-march=armv8-m.main -mthumb"
>>>> __ARM_ARCH_8M_MAIN__ } {
>>>> +foreach { armfunc armflag armdef } {
>>>> +    v4 "-march=armv4 -marm" __ARM_ARCH_4__
>>>> +    v4t "-march=armv4t" __ARM_ARCH_4T__
>>>> +    v5 "-march=armv5 -marm" __ARM_ARCH_5__
>>>> +    v5t "-march=armv5t" __ARM_ARCH_5T__
>>>> +    v5te "-march=armv5te" __ARM_ARCH_5TE__
>>>> +    v6 "-march=armv6" __ARM_ARCH_6__
>>>> +    v6k "-march=armv6k" __ARM_ARCH_6K__
>>>> +    v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
>>>> +    v6z "-march=armv6z" __ARM_ARCH_6Z__
>>>> +    v6m "-march=armv6-m -mthumb -mfloat-abi=soft" __ARM_ARCH_6M__
>>>> +    v7a "-march=armv7-a" __ARM_ARCH_7A__
>>>> +    v7r "-march=armv7-r" __ARM_ARCH_7R__
>>>> +    v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
>>>> +    v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
>>>> +    v8a "-march=armv8-a" __ARM_ARCH_8A__
>>>> +    v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
>>>> +    v8m_base "-march=armv8-m.base -mthumb -mfloat-abi=soft"
>>>> __ARM_ARCH_8M_BASE__
>>>> +    v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
>>>>      eval [string map [list FUNC $armfunc FLAG $armflag DEF $armdef ] {
>>>>      proc check_effective_target_arm_arch_FUNC_ok { } {
>>>>          if { [ string match "*-marm*" "FLAG" ] &&
>>>>
>>>
>>> I think if you're going to do this you need to also check that changing
>>> the ABI in this way isn't incompatible with other aspects of how the
>>> user has invoked dejagnu.
>>
>> The reason this patch was made is that without it dg-require-effective-target
>> arm_arch_v8m_base_ok evaluates to true for an arm-none-linux-gnueabihf toolchain
>> but then any testcase containing a function for such a target (such as the
>> atomic-op-* in gcc.target/arm) will error out because ARMv8-M Baseline does not
>> support hard float ABI.
>>
>> I see 2 ways to fix this:
>>
>> 1) the approach taken in this patch, ie saying that to select ARMv8-M baseline
>> architecture you need the right -march, -mthumb but also the right float ABI.
>>
>> Note that the comment at the top of that procedure says:
>> # Creates a series of routines that return 1 if the given architecture
>> # can be selected and a routine to give the flags to select that architecture
>>
>> 2) Add a function to the assembly that is used to test support for the
>> architecture.
>>
>> The reason I favor the first one is that it enables more test while the second
>> test would just skip ARMv6-M and ARMv8-M Baseline tests for
>> arm-none-linux-gnueabihf toolchains.
>>
>> Is this patch ok for trunk?
>>
>> Best regards,
>>
>> Thomas

[-- Attachment #2: 6_softfloat_testing_v6m_v8m_baseline.patch --]
[-- Type: text/x-patch, Size: 2591 bytes --]

diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index b5a9faab5a47d01371c6402a5b07d34071dbc34b..ce2fc0af116a4ffbec272642dff21ed5797a3028 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -3679,25 +3679,26 @@ proc check_effective_target_arm_fp16_hw { } {
 # Usage: /* { dg-require-effective-target arm_arch_v5_ok } */
 #        /* { dg-add-options arm_arch_v5 } */
 #	 /* { dg-require-effective-target arm_arch_v5_multilib } */
-foreach { armfunc armflag armdef } { v4 "-march=armv4 -marm" __ARM_ARCH_4__
-				     v4t "-march=armv4t" __ARM_ARCH_4T__
-				     v5 "-march=armv5 -marm" __ARM_ARCH_5__
-				     v5t "-march=armv5t" __ARM_ARCH_5T__
-				     v5te "-march=armv5te" __ARM_ARCH_5TE__
-				     v6 "-march=armv6" __ARM_ARCH_6__
-				     v6k "-march=armv6k" __ARM_ARCH_6K__
-				     v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
-				     v6z "-march=armv6z" __ARM_ARCH_6Z__
-				     v6m "-march=armv6-m -mthumb" __ARM_ARCH_6M__
-				     v7a "-march=armv7-a" __ARM_ARCH_7A__
-				     v7r "-march=armv7-r" __ARM_ARCH_7R__
-				     v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
-				     v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
-				     v8a "-march=armv8-a" __ARM_ARCH_8A__
-				     v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
-				     v8_2a "-march=armv8.2a" __ARM_ARCH_8A__
-				     v8m_base "-march=armv8-m.base -mthumb" __ARM_ARCH_8M_BASE__
-				     v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
+foreach { armfunc armflag armdef } {
+	v4 "-march=armv4 -marm" __ARM_ARCH_4__
+	v4t "-march=armv4t" __ARM_ARCH_4T__
+	v5 "-march=armv5 -marm" __ARM_ARCH_5__
+	v5t "-march=armv5t" __ARM_ARCH_5T__
+	v5te "-march=armv5te" __ARM_ARCH_5TE__
+	v6 "-march=armv6" __ARM_ARCH_6__
+	v6k "-march=armv6k" __ARM_ARCH_6K__
+	v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
+	v6z "-march=armv6z" __ARM_ARCH_6Z__
+	v6m "-march=armv6-m -mthumb -mfloat-abi=soft" __ARM_ARCH_6M__
+	v7a "-march=armv7-a" __ARM_ARCH_7A__
+	v7r "-march=armv7-r" __ARM_ARCH_7R__
+	v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
+	v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
+	v8a "-march=armv8-a" __ARM_ARCH_8A__
+	v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
+	v8_2a "-march=armv8.2a" __ARM_ARCH_8A__
+	v8m_base "-march=armv8-m.base -mthumb -mfloat-abi=soft" __ARM_ARCH_8M_BASE__
+	v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
     eval [string map [list FUNC $armfunc FLAG $armflag DEF $armdef ] {
 	proc check_effective_target_arm_arch_FUNC_ok { } {
 	    if { [ string match "*-marm*" "FLAG" ] &&

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH, ARM/testsuite 6/7, ping3] Force soft float in ARMv6-M and ARMv8-M Baseline options
  2016-11-08 13:35         ` [PATCH, ARM/testsuite 6/7, ping2] " Thomas Preudhomme
@ 2016-11-17 20:42           ` Thomas Preudhomme
  2016-11-28 16:52             ` [PATCH, ARM/testsuite 6/7, ping4] " Thomas Preudhomme
  0 siblings, 1 reply; 14+ messages in thread
From: Thomas Preudhomme @ 2016-11-17 20:42 UTC (permalink / raw)
  To: Richard Earnshaw (lists),
	gcc-patches, Kyrill Tkachov, Ramana Radhakrishnan

[-- Attachment #1: Type: text/plain, Size: 5969 bytes --]

Ping?

Best regards,

Thomas

On 08/11/16 13:35, Thomas Preudhomme wrote:
> Ping,
>
> Best regards,
>
> Thomas
>
> On 02/11/16 10:04, Thomas Preudhomme wrote:
>> Ping?
>>
>> Best regards,
>>
>> Thomas
>>
>> On 28/10/16 10:49, Thomas Preudhomme wrote:
>>> On 22/09/16 16:47, Richard Earnshaw (lists) wrote:
>>>> On 22/09/16 15:51, Thomas Preudhomme wrote:
>>>>> Sorry, noticed an error in the patch. It was not caught during testing
>>>>> because GCC was built with --with-mode=thumb. Correct patch attached.
>>>>>
>>>>> Best regards,
>>>>>
>>>>> Thomas
>>>>>
>>>>> On 22/09/16 14:49, Thomas Preudhomme wrote:
>>>>>> Hi,
>>>>>>
>>>>>> ARMv6-M and ARMv8-M Baseline only support soft float ABI. Therefore, the
>>>>>> arm_arch_v8m_base add option should pass -mfloat-abi=soft, much like
>>>>>> -mthumb is
>>>>>> passed for architectures that only support Thumb instruction set. This
>>>>>> patch
>>>>>> adds -mfloat-abi=soft to both arm_arch_v6m and arm_arch_v8m_base add
>>>>>> options.
>>>>>> Patch is in attachment.
>>>>>>
>>>>>> ChangeLog entry is as follows:
>>>>>>
>>>>>> *** gcc/testsuite/ChangeLog ***
>>>>>>
>>>>>> 2016-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
>>>>>>
>>>>>>         * lib/target-supports.exp (add_options_for_arm_arch_v6m): Add
>>>>>>         -mfloat-abi=soft option.
>>>>>>         (add_options_for_arm_arch_v8m_base): Likewise.
>>>>>>
>>>>>>
>>>>>> Is this ok for trunk?
>>>>>>
>>>>>> Best regards,
>>>>>>
>>>>>> Thomas
>>>>>
>>>>> 6_softfloat_testing_v6m_v8m_baseline.patch
>>>>>
>>>>>
>>>>> diff --git a/gcc/testsuite/lib/target-supports.exp
>>>>> b/gcc/testsuite/lib/target-supports.exp
>>>>> index
>>>>> 0dabea0850124947a7fe333e0b94c4077434f278..b5d72f1283be6a6e4736a1d20936e169c1384398
>>>>>
>>>>>
>>>>> 100644
>>>>> --- a/gcc/testsuite/lib/target-supports.exp
>>>>> +++ b/gcc/testsuite/lib/target-supports.exp
>>>>> @@ -3540,24 +3540,25 @@ proc check_effective_target_arm_fp16_hw { } {
>>>>>  # Usage: /* { dg-require-effective-target arm_arch_v5_ok } */
>>>>>  #        /* { dg-add-options arm_arch_v5 } */
>>>>>  #     /* { dg-require-effective-target arm_arch_v5_multilib } */
>>>>> -foreach { armfunc armflag armdef } { v4 "-march=armv4 -marm" __ARM_ARCH_4__
>>>>> -                     v4t "-march=armv4t" __ARM_ARCH_4T__
>>>>> -                     v5 "-march=armv5 -marm" __ARM_ARCH_5__
>>>>> -                     v5t "-march=armv5t" __ARM_ARCH_5T__
>>>>> -                     v5te "-march=armv5te" __ARM_ARCH_5TE__
>>>>> -                     v6 "-march=armv6" __ARM_ARCH_6__
>>>>> -                     v6k "-march=armv6k" __ARM_ARCH_6K__
>>>>> -                     v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
>>>>> -                     v6z "-march=armv6z" __ARM_ARCH_6Z__
>>>>> -                     v6m "-march=armv6-m -mthumb" __ARM_ARCH_6M__
>>>>> -                     v7a "-march=armv7-a" __ARM_ARCH_7A__
>>>>> -                     v7r "-march=armv7-r" __ARM_ARCH_7R__
>>>>> -                     v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
>>>>> -                     v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
>>>>> -                     v8a "-march=armv8-a" __ARM_ARCH_8A__
>>>>> -                     v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
>>>>> -                     v8m_base "-march=armv8-m.base -mthumb"
>>>>> __ARM_ARCH_8M_BASE__
>>>>> -                     v8m_main "-march=armv8-m.main -mthumb"
>>>>> __ARM_ARCH_8M_MAIN__ } {
>>>>> +foreach { armfunc armflag armdef } {
>>>>> +    v4 "-march=armv4 -marm" __ARM_ARCH_4__
>>>>> +    v4t "-march=armv4t" __ARM_ARCH_4T__
>>>>> +    v5 "-march=armv5 -marm" __ARM_ARCH_5__
>>>>> +    v5t "-march=armv5t" __ARM_ARCH_5T__
>>>>> +    v5te "-march=armv5te" __ARM_ARCH_5TE__
>>>>> +    v6 "-march=armv6" __ARM_ARCH_6__
>>>>> +    v6k "-march=armv6k" __ARM_ARCH_6K__
>>>>> +    v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
>>>>> +    v6z "-march=armv6z" __ARM_ARCH_6Z__
>>>>> +    v6m "-march=armv6-m -mthumb -mfloat-abi=soft" __ARM_ARCH_6M__
>>>>> +    v7a "-march=armv7-a" __ARM_ARCH_7A__
>>>>> +    v7r "-march=armv7-r" __ARM_ARCH_7R__
>>>>> +    v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
>>>>> +    v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
>>>>> +    v8a "-march=armv8-a" __ARM_ARCH_8A__
>>>>> +    v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
>>>>> +    v8m_base "-march=armv8-m.base -mthumb -mfloat-abi=soft"
>>>>> __ARM_ARCH_8M_BASE__
>>>>> +    v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
>>>>>      eval [string map [list FUNC $armfunc FLAG $armflag DEF $armdef ] {
>>>>>      proc check_effective_target_arm_arch_FUNC_ok { } {
>>>>>          if { [ string match "*-marm*" "FLAG" ] &&
>>>>>
>>>>
>>>> I think if you're going to do this you need to also check that changing
>>>> the ABI in this way isn't incompatible with other aspects of how the
>>>> user has invoked dejagnu.
>>>
>>> The reason this patch was made is that without it dg-require-effective-target
>>> arm_arch_v8m_base_ok evaluates to true for an arm-none-linux-gnueabihf toolchain
>>> but then any testcase containing a function for such a target (such as the
>>> atomic-op-* in gcc.target/arm) will error out because ARMv8-M Baseline does not
>>> support hard float ABI.
>>>
>>> I see 2 ways to fix this:
>>>
>>> 1) the approach taken in this patch, ie saying that to select ARMv8-M baseline
>>> architecture you need the right -march, -mthumb but also the right float ABI.
>>>
>>> Note that the comment at the top of that procedure says:
>>> # Creates a series of routines that return 1 if the given architecture
>>> # can be selected and a routine to give the flags to select that architecture
>>>
>>> 2) Add a function to the assembly that is used to test support for the
>>> architecture.
>>>
>>> The reason I favor the first one is that it enables more test while the second
>>> test would just skip ARMv6-M and ARMv8-M Baseline tests for
>>> arm-none-linux-gnueabihf toolchains.
>>>
>>> Is this patch ok for trunk?
>>>
>>> Best regards,
>>>
>>> Thomas

[-- Attachment #2: 6_softfloat_testing_v6m_v8m_baseline.patch --]
[-- Type: text/x-patch, Size: 2591 bytes --]

diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index b5a9faab5a47d01371c6402a5b07d34071dbc34b..ce2fc0af116a4ffbec272642dff21ed5797a3028 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -3679,25 +3679,26 @@ proc check_effective_target_arm_fp16_hw { } {
 # Usage: /* { dg-require-effective-target arm_arch_v5_ok } */
 #        /* { dg-add-options arm_arch_v5 } */
 #	 /* { dg-require-effective-target arm_arch_v5_multilib } */
-foreach { armfunc armflag armdef } { v4 "-march=armv4 -marm" __ARM_ARCH_4__
-				     v4t "-march=armv4t" __ARM_ARCH_4T__
-				     v5 "-march=armv5 -marm" __ARM_ARCH_5__
-				     v5t "-march=armv5t" __ARM_ARCH_5T__
-				     v5te "-march=armv5te" __ARM_ARCH_5TE__
-				     v6 "-march=armv6" __ARM_ARCH_6__
-				     v6k "-march=armv6k" __ARM_ARCH_6K__
-				     v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
-				     v6z "-march=armv6z" __ARM_ARCH_6Z__
-				     v6m "-march=armv6-m -mthumb" __ARM_ARCH_6M__
-				     v7a "-march=armv7-a" __ARM_ARCH_7A__
-				     v7r "-march=armv7-r" __ARM_ARCH_7R__
-				     v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
-				     v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
-				     v8a "-march=armv8-a" __ARM_ARCH_8A__
-				     v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
-				     v8_2a "-march=armv8.2a" __ARM_ARCH_8A__
-				     v8m_base "-march=armv8-m.base -mthumb" __ARM_ARCH_8M_BASE__
-				     v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
+foreach { armfunc armflag armdef } {
+	v4 "-march=armv4 -marm" __ARM_ARCH_4__
+	v4t "-march=armv4t" __ARM_ARCH_4T__
+	v5 "-march=armv5 -marm" __ARM_ARCH_5__
+	v5t "-march=armv5t" __ARM_ARCH_5T__
+	v5te "-march=armv5te" __ARM_ARCH_5TE__
+	v6 "-march=armv6" __ARM_ARCH_6__
+	v6k "-march=armv6k" __ARM_ARCH_6K__
+	v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
+	v6z "-march=armv6z" __ARM_ARCH_6Z__
+	v6m "-march=armv6-m -mthumb -mfloat-abi=soft" __ARM_ARCH_6M__
+	v7a "-march=armv7-a" __ARM_ARCH_7A__
+	v7r "-march=armv7-r" __ARM_ARCH_7R__
+	v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
+	v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
+	v8a "-march=armv8-a" __ARM_ARCH_8A__
+	v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
+	v8_2a "-march=armv8.2a" __ARM_ARCH_8A__
+	v8m_base "-march=armv8-m.base -mthumb -mfloat-abi=soft" __ARM_ARCH_8M_BASE__
+	v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
     eval [string map [list FUNC $armfunc FLAG $armflag DEF $armdef ] {
 	proc check_effective_target_arm_arch_FUNC_ok { } {
 	    if { [ string match "*-marm*" "FLAG" ] &&

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH, ARM/testsuite 6/7, ping4] Force soft float in ARMv6-M and ARMv8-M Baseline options
  2016-11-17 20:42           ` [PATCH, ARM/testsuite 6/7, ping3] " Thomas Preudhomme
@ 2016-11-28 16:52             ` Thomas Preudhomme
  2016-11-28 19:01               ` Mike Stump
  0 siblings, 1 reply; 14+ messages in thread
From: Thomas Preudhomme @ 2016-11-28 16:52 UTC (permalink / raw)
  To: Richard Earnshaw (lists),
	gcc-patches, Kyrill Tkachov, Ramana Radhakrishnan

[-- Attachment #1: Type: text/plain, Size: 6223 bytes --]

Hi Richard,

Ping?

Best regards,

Thomas

On 17/11/16 20:42, Thomas Preudhomme wrote:
> Ping?
>
> Best regards,
>
> Thomas
>
> On 08/11/16 13:35, Thomas Preudhomme wrote:
>> Ping,
>>
>> Best regards,
>>
>> Thomas
>>
>> On 02/11/16 10:04, Thomas Preudhomme wrote:
>>> Ping?
>>>
>>> Best regards,
>>>
>>> Thomas
>>>
>>> On 28/10/16 10:49, Thomas Preudhomme wrote:
>>>> On 22/09/16 16:47, Richard Earnshaw (lists) wrote:
>>>>> On 22/09/16 15:51, Thomas Preudhomme wrote:
>>>>>> Sorry, noticed an error in the patch. It was not caught during testing
>>>>>> because GCC was built with --with-mode=thumb. Correct patch attached.
>>>>>>
>>>>>> Best regards,
>>>>>>
>>>>>> Thomas
>>>>>>
>>>>>> On 22/09/16 14:49, Thomas Preudhomme wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> ARMv6-M and ARMv8-M Baseline only support soft float ABI. Therefore, the
>>>>>>> arm_arch_v8m_base add option should pass -mfloat-abi=soft, much like
>>>>>>> -mthumb is
>>>>>>> passed for architectures that only support Thumb instruction set. This
>>>>>>> patch
>>>>>>> adds -mfloat-abi=soft to both arm_arch_v6m and arm_arch_v8m_base add
>>>>>>> options.
>>>>>>> Patch is in attachment.
>>>>>>>
>>>>>>> ChangeLog entry is as follows:
>>>>>>>
>>>>>>> *** gcc/testsuite/ChangeLog ***
>>>>>>>
>>>>>>> 2016-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
>>>>>>>
>>>>>>>         * lib/target-supports.exp (add_options_for_arm_arch_v6m): Add
>>>>>>>         -mfloat-abi=soft option.
>>>>>>>         (add_options_for_arm_arch_v8m_base): Likewise.
>>>>>>>
>>>>>>>
>>>>>>> Is this ok for trunk?
>>>>>>>
>>>>>>> Best regards,
>>>>>>>
>>>>>>> Thomas
>>>>>>
>>>>>> 6_softfloat_testing_v6m_v8m_baseline.patch
>>>>>>
>>>>>>
>>>>>> diff --git a/gcc/testsuite/lib/target-supports.exp
>>>>>> b/gcc/testsuite/lib/target-supports.exp
>>>>>> index
>>>>>> 0dabea0850124947a7fe333e0b94c4077434f278..b5d72f1283be6a6e4736a1d20936e169c1384398
>>>>>>
>>>>>>
>>>>>>
>>>>>> 100644
>>>>>> --- a/gcc/testsuite/lib/target-supports.exp
>>>>>> +++ b/gcc/testsuite/lib/target-supports.exp
>>>>>> @@ -3540,24 +3540,25 @@ proc check_effective_target_arm_fp16_hw { } {
>>>>>>  # Usage: /* { dg-require-effective-target arm_arch_v5_ok } */
>>>>>>  #        /* { dg-add-options arm_arch_v5 } */
>>>>>>  #     /* { dg-require-effective-target arm_arch_v5_multilib } */
>>>>>> -foreach { armfunc armflag armdef } { v4 "-march=armv4 -marm" __ARM_ARCH_4__
>>>>>> -                     v4t "-march=armv4t" __ARM_ARCH_4T__
>>>>>> -                     v5 "-march=armv5 -marm" __ARM_ARCH_5__
>>>>>> -                     v5t "-march=armv5t" __ARM_ARCH_5T__
>>>>>> -                     v5te "-march=armv5te" __ARM_ARCH_5TE__
>>>>>> -                     v6 "-march=armv6" __ARM_ARCH_6__
>>>>>> -                     v6k "-march=armv6k" __ARM_ARCH_6K__
>>>>>> -                     v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
>>>>>> -                     v6z "-march=armv6z" __ARM_ARCH_6Z__
>>>>>> -                     v6m "-march=armv6-m -mthumb" __ARM_ARCH_6M__
>>>>>> -                     v7a "-march=armv7-a" __ARM_ARCH_7A__
>>>>>> -                     v7r "-march=armv7-r" __ARM_ARCH_7R__
>>>>>> -                     v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
>>>>>> -                     v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
>>>>>> -                     v8a "-march=armv8-a" __ARM_ARCH_8A__
>>>>>> -                     v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
>>>>>> -                     v8m_base "-march=armv8-m.base -mthumb"
>>>>>> __ARM_ARCH_8M_BASE__
>>>>>> -                     v8m_main "-march=armv8-m.main -mthumb"
>>>>>> __ARM_ARCH_8M_MAIN__ } {
>>>>>> +foreach { armfunc armflag armdef } {
>>>>>> +    v4 "-march=armv4 -marm" __ARM_ARCH_4__
>>>>>> +    v4t "-march=armv4t" __ARM_ARCH_4T__
>>>>>> +    v5 "-march=armv5 -marm" __ARM_ARCH_5__
>>>>>> +    v5t "-march=armv5t" __ARM_ARCH_5T__
>>>>>> +    v5te "-march=armv5te" __ARM_ARCH_5TE__
>>>>>> +    v6 "-march=armv6" __ARM_ARCH_6__
>>>>>> +    v6k "-march=armv6k" __ARM_ARCH_6K__
>>>>>> +    v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
>>>>>> +    v6z "-march=armv6z" __ARM_ARCH_6Z__
>>>>>> +    v6m "-march=armv6-m -mthumb -mfloat-abi=soft" __ARM_ARCH_6M__
>>>>>> +    v7a "-march=armv7-a" __ARM_ARCH_7A__
>>>>>> +    v7r "-march=armv7-r" __ARM_ARCH_7R__
>>>>>> +    v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
>>>>>> +    v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
>>>>>> +    v8a "-march=armv8-a" __ARM_ARCH_8A__
>>>>>> +    v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
>>>>>> +    v8m_base "-march=armv8-m.base -mthumb -mfloat-abi=soft"
>>>>>> __ARM_ARCH_8M_BASE__
>>>>>> +    v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
>>>>>>      eval [string map [list FUNC $armfunc FLAG $armflag DEF $armdef ] {
>>>>>>      proc check_effective_target_arm_arch_FUNC_ok { } {
>>>>>>          if { [ string match "*-marm*" "FLAG" ] &&
>>>>>>
>>>>>
>>>>> I think if you're going to do this you need to also check that changing
>>>>> the ABI in this way isn't incompatible with other aspects of how the
>>>>> user has invoked dejagnu.
>>>>
>>>> The reason this patch was made is that without it dg-require-effective-target
>>>> arm_arch_v8m_base_ok evaluates to true for an arm-none-linux-gnueabihf
>>>> toolchain
>>>> but then any testcase containing a function for such a target (such as the
>>>> atomic-op-* in gcc.target/arm) will error out because ARMv8-M Baseline does not
>>>> support hard float ABI.
>>>>
>>>> I see 2 ways to fix this:
>>>>
>>>> 1) the approach taken in this patch, ie saying that to select ARMv8-M baseline
>>>> architecture you need the right -march, -mthumb but also the right float ABI.
>>>>
>>>> Note that the comment at the top of that procedure says:
>>>> # Creates a series of routines that return 1 if the given architecture
>>>> # can be selected and a routine to give the flags to select that architecture
>>>>
>>>> 2) Add a function to the assembly that is used to test support for the
>>>> architecture.
>>>>
>>>> The reason I favor the first one is that it enables more test while the second
>>>> test would just skip ARMv6-M and ARMv8-M Baseline tests for
>>>> arm-none-linux-gnueabihf toolchains.
>>>>
>>>> Is this patch ok for trunk?
>>>>
>>>> Best regards,
>>>>
>>>> Thomas

[-- Attachment #2: 6_softfloat_testing_v6m_v8m_baseline.patch --]
[-- Type: text/x-patch, Size: 2591 bytes --]

diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index b5a9faab5a47d01371c6402a5b07d34071dbc34b..ce2fc0af116a4ffbec272642dff21ed5797a3028 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -3679,25 +3679,26 @@ proc check_effective_target_arm_fp16_hw { } {
 # Usage: /* { dg-require-effective-target arm_arch_v5_ok } */
 #        /* { dg-add-options arm_arch_v5 } */
 #	 /* { dg-require-effective-target arm_arch_v5_multilib } */
-foreach { armfunc armflag armdef } { v4 "-march=armv4 -marm" __ARM_ARCH_4__
-				     v4t "-march=armv4t" __ARM_ARCH_4T__
-				     v5 "-march=armv5 -marm" __ARM_ARCH_5__
-				     v5t "-march=armv5t" __ARM_ARCH_5T__
-				     v5te "-march=armv5te" __ARM_ARCH_5TE__
-				     v6 "-march=armv6" __ARM_ARCH_6__
-				     v6k "-march=armv6k" __ARM_ARCH_6K__
-				     v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
-				     v6z "-march=armv6z" __ARM_ARCH_6Z__
-				     v6m "-march=armv6-m -mthumb" __ARM_ARCH_6M__
-				     v7a "-march=armv7-a" __ARM_ARCH_7A__
-				     v7r "-march=armv7-r" __ARM_ARCH_7R__
-				     v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
-				     v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
-				     v8a "-march=armv8-a" __ARM_ARCH_8A__
-				     v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
-				     v8_2a "-march=armv8.2a" __ARM_ARCH_8A__
-				     v8m_base "-march=armv8-m.base -mthumb" __ARM_ARCH_8M_BASE__
-				     v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
+foreach { armfunc armflag armdef } {
+	v4 "-march=armv4 -marm" __ARM_ARCH_4__
+	v4t "-march=armv4t" __ARM_ARCH_4T__
+	v5 "-march=armv5 -marm" __ARM_ARCH_5__
+	v5t "-march=armv5t" __ARM_ARCH_5T__
+	v5te "-march=armv5te" __ARM_ARCH_5TE__
+	v6 "-march=armv6" __ARM_ARCH_6__
+	v6k "-march=armv6k" __ARM_ARCH_6K__
+	v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
+	v6z "-march=armv6z" __ARM_ARCH_6Z__
+	v6m "-march=armv6-m -mthumb -mfloat-abi=soft" __ARM_ARCH_6M__
+	v7a "-march=armv7-a" __ARM_ARCH_7A__
+	v7r "-march=armv7-r" __ARM_ARCH_7R__
+	v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
+	v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
+	v8a "-march=armv8-a" __ARM_ARCH_8A__
+	v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
+	v8_2a "-march=armv8.2a" __ARM_ARCH_8A__
+	v8m_base "-march=armv8-m.base -mthumb -mfloat-abi=soft" __ARM_ARCH_8M_BASE__
+	v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
     eval [string map [list FUNC $armfunc FLAG $armflag DEF $armdef ] {
 	proc check_effective_target_arm_arch_FUNC_ok { } {
 	    if { [ string match "*-marm*" "FLAG" ] &&

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH, ARM/testsuite 6/7, ping4] Force soft float in ARMv6-M and ARMv8-M Baseline options
  2016-11-28 16:52             ` [PATCH, ARM/testsuite 6/7, ping4] " Thomas Preudhomme
@ 2016-11-28 19:01               ` Mike Stump
  0 siblings, 0 replies; 14+ messages in thread
From: Mike Stump @ 2016-11-28 19:01 UTC (permalink / raw)
  To: Thomas Preudhomme
  Cc: Richard Earnshaw (lists),
	gcc-patches, Kyrill Tkachov, Ramana Radhakrishnan

On Nov 28, 2016, at 8:52 AM, Thomas Preudhomme <thomas.preudhomme@foss.arm.com> wrote:
> 
> Ping?

Ok.

> On 17/11/16 20:42, Thomas Preudhomme wrote:
>> Ping?
>> 
>> Best regards,
>> 
>> Thomas
>> 
>> On 08/11/16 13:35, Thomas Preudhomme wrote:
>>> Ping,
>>> 
>>> Best regards,
>>> 
>>> Thomas
>>> 
>>> On 02/11/16 10:04, Thomas Preudhomme wrote:
>>>> Ping?
>>>> 
>>>> Best regards,
>>>> 
>>>> Thomas
>>>> 
>>>> On 28/10/16 10:49, Thomas Preudhomme wrote:
>>>>> On 22/09/16 16:47, Richard Earnshaw (lists) wrote:
>>>>>> On 22/09/16 15:51, Thomas Preudhomme wrote:
>>>>>>> Sorry, noticed an error in the patch. It was not caught during testing
>>>>>>> because GCC was built with --with-mode=thumb. Correct patch attached.
>>>>>>> 
>>>>>>> Best regards,
>>>>>>> 
>>>>>>> Thomas
>>>>>>> 
>>>>>>> On 22/09/16 14:49, Thomas Preudhomme wrote:
>>>>>>>> Hi,
>>>>>>>> 
>>>>>>>> ARMv6-M and ARMv8-M Baseline only support soft float ABI. Therefore, the
>>>>>>>> arm_arch_v8m_base add option should pass -mfloat-abi=soft, much like
>>>>>>>> -mthumb is
>>>>>>>> passed for architectures that only support Thumb instruction set. This
>>>>>>>> patch
>>>>>>>> adds -mfloat-abi=soft to both arm_arch_v6m and arm_arch_v8m_base add
>>>>>>>> options.
>>>>>>>> Patch is in attachment.
>>>>>>>> 
>>>>>>>> ChangeLog entry is as follows:
>>>>>>>> 
>>>>>>>> *** gcc/testsuite/ChangeLog ***
>>>>>>>> 
>>>>>>>> 2016-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
>>>>>>>> 
>>>>>>>>        * lib/target-supports.exp (add_options_for_arm_arch_v6m): Add
>>>>>>>>        -mfloat-abi=soft option.
>>>>>>>>        (add_options_for_arm_arch_v8m_base): Likewise.
>>>>>>>> 
>>>>>>>> 
>>>>>>>> Is this ok for trunk?
>>>>>>>> 
>>>>>>>> Best regards,
>>>>>>>> 
>>>>>>>> Thomas
>>>>>>> 
>>>>>>> 6_softfloat_testing_v6m_v8m_baseline.patch
>>>>>>> 
>>>>>>> 
>>>>>>> diff --git a/gcc/testsuite/lib/target-supports.exp
>>>>>>> b/gcc/testsuite/lib/target-supports.exp
>>>>>>> index
>>>>>>> 0dabea0850124947a7fe333e0b94c4077434f278..b5d72f1283be6a6e4736a1d20936e169c1384398
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 100644
>>>>>>> --- a/gcc/testsuite/lib/target-supports.exp
>>>>>>> +++ b/gcc/testsuite/lib/target-supports.exp
>>>>>>> @@ -3540,24 +3540,25 @@ proc check_effective_target_arm_fp16_hw { } {
>>>>>>> # Usage: /* { dg-require-effective-target arm_arch_v5_ok } */
>>>>>>> #        /* { dg-add-options arm_arch_v5 } */
>>>>>>> #     /* { dg-require-effective-target arm_arch_v5_multilib } */
>>>>>>> -foreach { armfunc armflag armdef } { v4 "-march=armv4 -marm" __ARM_ARCH_4__
>>>>>>> -                     v4t "-march=armv4t" __ARM_ARCH_4T__
>>>>>>> -                     v5 "-march=armv5 -marm" __ARM_ARCH_5__
>>>>>>> -                     v5t "-march=armv5t" __ARM_ARCH_5T__
>>>>>>> -                     v5te "-march=armv5te" __ARM_ARCH_5TE__
>>>>>>> -                     v6 "-march=armv6" __ARM_ARCH_6__
>>>>>>> -                     v6k "-march=armv6k" __ARM_ARCH_6K__
>>>>>>> -                     v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
>>>>>>> -                     v6z "-march=armv6z" __ARM_ARCH_6Z__
>>>>>>> -                     v6m "-march=armv6-m -mthumb" __ARM_ARCH_6M__
>>>>>>> -                     v7a "-march=armv7-a" __ARM_ARCH_7A__
>>>>>>> -                     v7r "-march=armv7-r" __ARM_ARCH_7R__
>>>>>>> -                     v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
>>>>>>> -                     v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
>>>>>>> -                     v8a "-march=armv8-a" __ARM_ARCH_8A__
>>>>>>> -                     v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
>>>>>>> -                     v8m_base "-march=armv8-m.base -mthumb"
>>>>>>> __ARM_ARCH_8M_BASE__
>>>>>>> -                     v8m_main "-march=armv8-m.main -mthumb"
>>>>>>> __ARM_ARCH_8M_MAIN__ } {
>>>>>>> +foreach { armfunc armflag armdef } {
>>>>>>> +    v4 "-march=armv4 -marm" __ARM_ARCH_4__
>>>>>>> +    v4t "-march=armv4t" __ARM_ARCH_4T__
>>>>>>> +    v5 "-march=armv5 -marm" __ARM_ARCH_5__
>>>>>>> +    v5t "-march=armv5t" __ARM_ARCH_5T__
>>>>>>> +    v5te "-march=armv5te" __ARM_ARCH_5TE__
>>>>>>> +    v6 "-march=armv6" __ARM_ARCH_6__
>>>>>>> +    v6k "-march=armv6k" __ARM_ARCH_6K__
>>>>>>> +    v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
>>>>>>> +    v6z "-march=armv6z" __ARM_ARCH_6Z__
>>>>>>> +    v6m "-march=armv6-m -mthumb -mfloat-abi=soft" __ARM_ARCH_6M__
>>>>>>> +    v7a "-march=armv7-a" __ARM_ARCH_7A__
>>>>>>> +    v7r "-march=armv7-r" __ARM_ARCH_7R__
>>>>>>> +    v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
>>>>>>> +    v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
>>>>>>> +    v8a "-march=armv8-a" __ARM_ARCH_8A__
>>>>>>> +    v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
>>>>>>> +    v8m_base "-march=armv8-m.base -mthumb -mfloat-abi=soft"
>>>>>>> __ARM_ARCH_8M_BASE__
>>>>>>> +    v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
>>>>>>>     eval [string map [list FUNC $armfunc FLAG $armflag DEF $armdef ] {
>>>>>>>     proc check_effective_target_arm_arch_FUNC_ok { } {
>>>>>>>         if { [ string match "*-marm*" "FLAG" ] &&
>>>>>>> 
>>>>>> 
>>>>>> I think if you're going to do this you need to also check that changing
>>>>>> the ABI in this way isn't incompatible with other aspects of how the
>>>>>> user has invoked dejagnu.
>>>>> 
>>>>> The reason this patch was made is that without it dg-require-effective-target
>>>>> arm_arch_v8m_base_ok evaluates to true for an arm-none-linux-gnueabihf
>>>>> toolchain
>>>>> but then any testcase containing a function for such a target (such as the
>>>>> atomic-op-* in gcc.target/arm) will error out because ARMv8-M Baseline does not
>>>>> support hard float ABI.
>>>>> 
>>>>> I see 2 ways to fix this:
>>>>> 
>>>>> 1) the approach taken in this patch, ie saying that to select ARMv8-M baseline
>>>>> architecture you need the right -march, -mthumb but also the right float ABI.
>>>>> 
>>>>> Note that the comment at the top of that procedure says:
>>>>> # Creates a series of routines that return 1 if the given architecture
>>>>> # can be selected and a routine to give the flags to select that architecture
>>>>> 
>>>>> 2) Add a function to the assembly that is used to test support for the
>>>>> architecture.
>>>>> 
>>>>> The reason I favor the first one is that it enables more test while the second
>>>>> test would just skip ARMv6-M and ARMv8-M Baseline tests for
>>>>> arm-none-linux-gnueabihf toolchains.
>>>>> 
>>>>> Is this patch ok for trunk?
>>>>> 
>>>>> Best regards,
>>>>> 
>>>>> Thomas

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Fwd: Re: [PATCH, ARM/testsuite 6/7] Force soft float in ARMv6-M and ARMv8-M Baseline options
  2016-10-28  9:49     ` [PATCH, ARM/testsuite 6/7] " Thomas Preudhomme
  2016-11-02 10:05       ` [PATCH, ARM/testsuite 6/7, ping] " Thomas Preudhomme
@ 2016-12-01 10:10       ` Thomas Preudhomme
  1 sibling, 0 replies; 14+ messages in thread
From: Thomas Preudhomme @ 2016-12-01 10:10 UTC (permalink / raw)
  To: gcc-patches

[-- Attachment #1: Type: text/plain, Size: 388 bytes --]

Hi,

We have decided to backport this patch fixing testing for ARMv8-M Baseline to 
our embedded-6-branch.


*** gcc/testsuite/ChangeLog ***

2016-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>

         * lib/target-supports.exp (add_options_for_arm_arch_v6m): Add
         -mfloat-abi=soft option.
         (add_options_for_arm_arch_v8m_base): Likewise.


Best regards,

Thomas

[-- Attachment #2: Re: [PATCH, ARM/testsuite 6/7] Force soft float in ARMv6-M and ARMv8-M Baseline options.eml --]
[-- Type: message/rfc822, Size: 11869 bytes --]

[-- Attachment #2.1.1: Type: text/plain, Size: 5024 bytes --]

On 22/09/16 16:47, Richard Earnshaw (lists) wrote:
> On 22/09/16 15:51, Thomas Preudhomme wrote:
>> Sorry, noticed an error in the patch. It was not caught during testing
>> because GCC was built with --with-mode=thumb. Correct patch attached.
>>
>> Best regards,
>>
>> Thomas
>>
>> On 22/09/16 14:49, Thomas Preudhomme wrote:
>>> Hi,
>>>
>>> ARMv6-M and ARMv8-M Baseline only support soft float ABI. Therefore, the
>>> arm_arch_v8m_base add option should pass -mfloat-abi=soft, much like
>>> -mthumb is
>>> passed for architectures that only support Thumb instruction set. This
>>> patch
>>> adds -mfloat-abi=soft to both arm_arch_v6m and arm_arch_v8m_base add
>>> options.
>>> Patch is in attachment.
>>>
>>> ChangeLog entry is as follows:
>>>
>>> *** gcc/testsuite/ChangeLog ***
>>>
>>> 2016-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
>>>
>>>         * lib/target-supports.exp (add_options_for_arm_arch_v6m): Add
>>>         -mfloat-abi=soft option.
>>>         (add_options_for_arm_arch_v8m_base): Likewise.
>>>
>>>
>>> Is this ok for trunk?
>>>
>>> Best regards,
>>>
>>> Thomas
>>
>> 6_softfloat_testing_v6m_v8m_baseline.patch
>>
>>
>> diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
>> index 0dabea0850124947a7fe333e0b94c4077434f278..b5d72f1283be6a6e4736a1d20936e169c1384398 100644
>> --- a/gcc/testsuite/lib/target-supports.exp
>> +++ b/gcc/testsuite/lib/target-supports.exp
>> @@ -3540,24 +3540,25 @@ proc check_effective_target_arm_fp16_hw { } {
>>  # Usage: /* { dg-require-effective-target arm_arch_v5_ok } */
>>  #        /* { dg-add-options arm_arch_v5 } */
>>  #	 /* { dg-require-effective-target arm_arch_v5_multilib } */
>> -foreach { armfunc armflag armdef } { v4 "-march=armv4 -marm" __ARM_ARCH_4__
>> -				     v4t "-march=armv4t" __ARM_ARCH_4T__
>> -				     v5 "-march=armv5 -marm" __ARM_ARCH_5__
>> -				     v5t "-march=armv5t" __ARM_ARCH_5T__
>> -				     v5te "-march=armv5te" __ARM_ARCH_5TE__
>> -				     v6 "-march=armv6" __ARM_ARCH_6__
>> -				     v6k "-march=armv6k" __ARM_ARCH_6K__
>> -				     v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
>> -				     v6z "-march=armv6z" __ARM_ARCH_6Z__
>> -				     v6m "-march=armv6-m -mthumb" __ARM_ARCH_6M__
>> -				     v7a "-march=armv7-a" __ARM_ARCH_7A__
>> -				     v7r "-march=armv7-r" __ARM_ARCH_7R__
>> -				     v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
>> -				     v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
>> -				     v8a "-march=armv8-a" __ARM_ARCH_8A__
>> -				     v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
>> -				     v8m_base "-march=armv8-m.base -mthumb" __ARM_ARCH_8M_BASE__
>> -				     v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
>> +foreach { armfunc armflag armdef } {
>> +	v4 "-march=armv4 -marm" __ARM_ARCH_4__
>> +	v4t "-march=armv4t" __ARM_ARCH_4T__
>> +	v5 "-march=armv5 -marm" __ARM_ARCH_5__
>> +	v5t "-march=armv5t" __ARM_ARCH_5T__
>> +	v5te "-march=armv5te" __ARM_ARCH_5TE__
>> +	v6 "-march=armv6" __ARM_ARCH_6__
>> +	v6k "-march=armv6k" __ARM_ARCH_6K__
>> +	v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
>> +	v6z "-march=armv6z" __ARM_ARCH_6Z__
>> +	v6m "-march=armv6-m -mthumb -mfloat-abi=soft" __ARM_ARCH_6M__
>> +	v7a "-march=armv7-a" __ARM_ARCH_7A__
>> +	v7r "-march=armv7-r" __ARM_ARCH_7R__
>> +	v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
>> +	v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
>> +	v8a "-march=armv8-a" __ARM_ARCH_8A__
>> +	v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
>> +	v8m_base "-march=armv8-m.base -mthumb -mfloat-abi=soft" __ARM_ARCH_8M_BASE__
>> +	v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
>>      eval [string map [list FUNC $armfunc FLAG $armflag DEF $armdef ] {
>>  	proc check_effective_target_arm_arch_FUNC_ok { } {
>>  	    if { [ string match "*-marm*" "FLAG" ] &&
>>
>
> I think if you're going to do this you need to also check that changing
> the ABI in this way isn't incompatible with other aspects of how the
> user has invoked dejagnu.

The reason this patch was made is that without it dg-require-effective-target 
arm_arch_v8m_base_ok evaluates to true for an arm-none-linux-gnueabihf toolchain 
but then any testcase containing a function for such a target (such as the 
atomic-op-* in gcc.target/arm) will error out because ARMv8-M Baseline does not 
support hard float ABI.

I see 2 ways to fix this:

1) the approach taken in this patch, ie saying that to select ARMv8-M baseline 
architecture you need the right -march, -mthumb but also the right float ABI.

Note that the comment at the top of that procedure says:
# Creates a series of routines that return 1 if the given architecture
# can be selected and a routine to give the flags to select that architecture

2) Add a function to the assembly that is used to test support for the architecture.

The reason I favor the first one is that it enables more test while the second 
test would just skip ARMv6-M and ARMv8-M Baseline tests for 
arm-none-linux-gnueabihf toolchains.

Is this patch ok for trunk?

Best regards,

Thomas

[-- Attachment #2.1.2: 6_softfloat_testing_v6m_v8m_baseline.patch --]
[-- Type: text/x-patch, Size: 2591 bytes --]

diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index b5a9faab5a47d01371c6402a5b07d34071dbc34b..ce2fc0af116a4ffbec272642dff21ed5797a3028 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -3679,25 +3679,26 @@ proc check_effective_target_arm_fp16_hw { } {
 # Usage: /* { dg-require-effective-target arm_arch_v5_ok } */
 #        /* { dg-add-options arm_arch_v5 } */
 #	 /* { dg-require-effective-target arm_arch_v5_multilib } */
-foreach { armfunc armflag armdef } { v4 "-march=armv4 -marm" __ARM_ARCH_4__
-				     v4t "-march=armv4t" __ARM_ARCH_4T__
-				     v5 "-march=armv5 -marm" __ARM_ARCH_5__
-				     v5t "-march=armv5t" __ARM_ARCH_5T__
-				     v5te "-march=armv5te" __ARM_ARCH_5TE__
-				     v6 "-march=armv6" __ARM_ARCH_6__
-				     v6k "-march=armv6k" __ARM_ARCH_6K__
-				     v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
-				     v6z "-march=armv6z" __ARM_ARCH_6Z__
-				     v6m "-march=armv6-m -mthumb" __ARM_ARCH_6M__
-				     v7a "-march=armv7-a" __ARM_ARCH_7A__
-				     v7r "-march=armv7-r" __ARM_ARCH_7R__
-				     v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
-				     v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
-				     v8a "-march=armv8-a" __ARM_ARCH_8A__
-				     v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
-				     v8_2a "-march=armv8.2a" __ARM_ARCH_8A__
-				     v8m_base "-march=armv8-m.base -mthumb" __ARM_ARCH_8M_BASE__
-				     v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
+foreach { armfunc armflag armdef } {
+	v4 "-march=armv4 -marm" __ARM_ARCH_4__
+	v4t "-march=armv4t" __ARM_ARCH_4T__
+	v5 "-march=armv5 -marm" __ARM_ARCH_5__
+	v5t "-march=armv5t" __ARM_ARCH_5T__
+	v5te "-march=armv5te" __ARM_ARCH_5TE__
+	v6 "-march=armv6" __ARM_ARCH_6__
+	v6k "-march=armv6k" __ARM_ARCH_6K__
+	v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
+	v6z "-march=armv6z" __ARM_ARCH_6Z__
+	v6m "-march=armv6-m -mthumb -mfloat-abi=soft" __ARM_ARCH_6M__
+	v7a "-march=armv7-a" __ARM_ARCH_7A__
+	v7r "-march=armv7-r" __ARM_ARCH_7R__
+	v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
+	v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
+	v8a "-march=armv8-a" __ARM_ARCH_8A__
+	v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
+	v8_2a "-march=armv8.2a" __ARM_ARCH_8A__
+	v8m_base "-march=armv8-m.base -mthumb -mfloat-abi=soft" __ARM_ARCH_8M_BASE__
+	v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
     eval [string map [list FUNC $armfunc FLAG $armflag DEF $armdef ] {
 	proc check_effective_target_arm_arch_FUNC_ok { } {
 	    if { [ string match "*-marm*" "FLAG" ] &&

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2016-12-01 10:10 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-22 13:52 [PATCH, ARM/testsuite 6/7] Force soft float in ARMv6-M and ARMv8-M Baseline options Thomas Preudhomme
2016-09-22 14:55 ` Thomas Preudhomme
2016-09-22 16:15   ` Richard Earnshaw (lists)
2016-09-22 16:41     ` Thomas Preudhomme
2016-10-03 16:46       ` [PATCH, ARM/testsuite 6/7, ping] " Thomas Preudhomme
2016-10-28  9:49     ` [PATCH, ARM/testsuite 6/7] " Thomas Preudhomme
2016-11-02 10:05       ` [PATCH, ARM/testsuite 6/7, ping] " Thomas Preudhomme
2016-11-08 13:35         ` [PATCH, ARM/testsuite 6/7, ping2] " Thomas Preudhomme
2016-11-17 20:42           ` [PATCH, ARM/testsuite 6/7, ping3] " Thomas Preudhomme
2016-11-28 16:52             ` [PATCH, ARM/testsuite 6/7, ping4] " Thomas Preudhomme
2016-11-28 19:01               ` Mike Stump
2016-12-01 10:10       ` Fwd: Re: [PATCH, ARM/testsuite 6/7] " Thomas Preudhomme
2016-09-22 16:44   ` [arm-embedded] " Thomas Preudhomme
2016-10-27 12:57     ` Thomas Preudhomme

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).