Message ID | orft3xil17.fsf@lxoliva.fsfla.org |
---|---|
State | New |
Headers | show |
Series | Add missing vxworks filters to lib/target-supports.exp functions | expand |
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"] > }
> 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 --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"] }