diff mbox series

Add missing vxworks filters to lib/target-supports.exp functions

Message ID orft3xil17.fsf@lxoliva.fsfla.org
State New
Headers show
Series Add missing vxworks filters to lib/target-supports.exp functions | expand

Commit Message

Alexandre Oliva Dec. 22, 2020, 9:32 p.m. UTC
Explicitly disable some vxworks-missing features in the testsuite, that
the current feature tests detect as present.

Regstrapped on x86_64-linux-gnu, and tested with -x-arm-wrs-vxworks7r2.
Ok to install?


from Olivier Hainque <hainque@adacore.com>
for  gcc/testsuite/ChangeLog

	* lib/target-supports.exp (check_weak_available,
	check_fork_available, check_effective_target_lto,
	check_effective_target_mempcpy): Add vxworks filters.
---
 gcc/testsuite/lib/target-supports.exp |   21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

Comments

Richard Sandiford Dec. 29, 2020, 10:26 a.m. UTC | #1
Alexandre Oliva <oliva@adacore.com> writes:
> Explicitly disable some vxworks-missing features in the testsuite, that
> the current feature tests detect as present.
>
> Regstrapped on x86_64-linux-gnu, and tested with -x-arm-wrs-vxworks7r2.
> Ok to install?
>
>
> from Olivier Hainque <hainque@adacore.com>
> for  gcc/testsuite/ChangeLog
>
> 	* lib/target-supports.exp (check_weak_available,
> 	check_fork_available, check_effective_target_lto,
> 	check_effective_target_mempcpy): Add vxworks filters.

This comes under Olivier's maintainership, but LGTM.

Richard

> ---
>  gcc/testsuite/lib/target-supports.exp |   21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)
>
> diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
> index 11343d0192fcb..6b1d13b105da7 100644
> --- a/gcc/testsuite/lib/target-supports.exp
> +++ b/gcc/testsuite/lib/target-supports.exp
> @@ -326,6 +326,12 @@ proc check_weak_available { } {
>  	return 0
>      }
>  
> +    # VxWorks hardly supports it (vx7 RTPs only)
> +
> +    if { [istarget *-*-vxworks*] } {
> +	return 0
> +    }
> +
>      # ELF and ECOFF support it. a.out does with gas/gld but may also with
>      # other linkers, so we should try it
>  
> @@ -2606,6 +2612,11 @@ proc check_function_available { function } {
>  # Returns true iff "fork" is available on the target system.
>  
>  proc check_fork_available {} {
> +    if { [istarget *-*-vxworks*] } {
> +	# VxWorks doesn't have fork but our way to test can't
> +	# tell as we're doing partial links for kernel modules.
> +	return 0
> +     }    
>      return [check_function_available "fork"]
>  }
>  
> @@ -9295,6 +9306,11 @@ proc check_effective_target_gld { } {
>  # (LTO) support.
>  
>  proc check_effective_target_lto { } {
> +    if { [istarget *-*-vxworks*] } {
> +	# No LTO on VxWorks, with kernel modules
> +	# built with partial links
> +	return 0
> +    }
>      if { [istarget nvptx-*-*]
>  	 || [istarget amdgcn-*-*] } {
>  	return 0;
> @@ -9514,6 +9530,11 @@ proc check_effective_target_run_expensive_tests { } {
>  # Returns 1 if "mempcpy" is available on the target system.
>  
>  proc check_effective_target_mempcpy {} {
> +    if { [istarget *-*-vxworks*] } {
> +	# VxWorks doesn't have mempcpy but our way to test fails
> +	# to detect as we're doing partial links for kernel modules.
> +	return 0
> +     }
>      return [check_function_available "mempcpy"]
>  }
Olivier Hainque Jan. 11, 2021, 8:23 a.m. UTC | #2
> On 29 Dec 2020, at 11:26, Richard Sandiford via Gcc-patches <gcc-patches@gcc.gnu.org> wrote:
> 
> Alexandre Oliva <oliva@adacore.com> writes:
>> Explicitly disable some vxworks-missing features in the testsuite, that
>> the current feature tests detect as present.
>> 
>> Regstrapped on x86_64-linux-gnu, and tested with -x-arm-wrs-vxworks7r2.
>> Ok to install?
>> 
>> 
>> from Olivier Hainque <hainque@adacore.com>
>> for  gcc/testsuite/ChangeLog
>> 
>> 	* lib/target-supports.exp (check_weak_available,
>> 	check_fork_available, check_effective_target_lto,
>> 	check_effective_target_mempcpy): Add vxworks filters.
> 
> This comes under Olivier's maintainership, but LGTM.

(With a bit of delay after the end-of-year break and
backlog + activity recovery ...)

Thanks for your input on this Richard.

We're discussing possible ways to improve symbol availability
detection, so we could get rid of the bits like:

>> proc check_effective_target_mempcpy {} {
>> +    if { [istarget *-*-vxworks*] } {
>> +	# VxWorks doesn't have mempcpy but our way to test fails
>> +	# to detect as we're doing partial links for kernel modules.
>> +	return 0
>> +     }
>>     return [check_function_available "mempcpy"]
>> }

Olivier
diff mbox series

Patch

diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 11343d0192fcb..6b1d13b105da7 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -326,6 +326,12 @@  proc check_weak_available { } {
 	return 0
     }
 
+    # VxWorks hardly supports it (vx7 RTPs only)
+
+    if { [istarget *-*-vxworks*] } {
+	return 0
+    }
+
     # ELF and ECOFF support it. a.out does with gas/gld but may also with
     # other linkers, so we should try it
 
@@ -2606,6 +2612,11 @@  proc check_function_available { function } {
 # Returns true iff "fork" is available on the target system.
 
 proc check_fork_available {} {
+    if { [istarget *-*-vxworks*] } {
+	# VxWorks doesn't have fork but our way to test can't
+	# tell as we're doing partial links for kernel modules.
+	return 0
+     }    
     return [check_function_available "fork"]
 }
 
@@ -9295,6 +9306,11 @@  proc check_effective_target_gld { } {
 # (LTO) support.
 
 proc check_effective_target_lto { } {
+    if { [istarget *-*-vxworks*] } {
+	# No LTO on VxWorks, with kernel modules
+	# built with partial links
+	return 0
+    }
     if { [istarget nvptx-*-*]
 	 || [istarget amdgcn-*-*] } {
 	return 0;
@@ -9514,6 +9530,11 @@  proc check_effective_target_run_expensive_tests { } {
 # Returns 1 if "mempcpy" is available on the target system.
 
 proc check_effective_target_mempcpy {} {
+    if { [istarget *-*-vxworks*] } {
+	# VxWorks doesn't have mempcpy but our way to test fails
+	# to detect as we're doing partial links for kernel modules.
+	return 0
+     }
     return [check_function_available "mempcpy"]
 }