Good for me, thanks Alex!
> On 24 May 2023, at 07:08, Alexandre Oliva <ol...@adacore.com> wrote: > > > The sysconf function is only available in rtp mode on vxworks. In > kernel mode, it is not even declared, but the feature test macro in > the testsuite doesn't notice its absence because it's a link test, and > vxworks kernel mode uses partial linking. > > This patch introduces an alternate test on vxworks targets to check > for a declaration and for an often-used sysconf parameter. > > Bootstrapped on x86_64-linux-gnu. Also tested on ppc- and x86-vx7r2 > with gcc-12. > > > for gcc/testsuite/ChangeLog > > * lib/target-supports.exp (check_effective_target_sysconf): > Check for declaration and _SC_PAGESIZE on vxworks. > --- > gcc/testsuite/lib/target-supports.exp | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/gcc/testsuite/lib/target-supports.exp > b/gcc/testsuite/lib/target-supports.exp > index bd9f432e4a761..263ef35a2e4df 100644 > --- a/gcc/testsuite/lib/target-supports.exp > +++ b/gcc/testsuite/lib/target-supports.exp > @@ -1146,6 +1146,17 @@ proc check_effective_target_mmap {} { > # Return 1 if the target supports sysconf, 0 otherwise. > > proc check_effective_target_sysconf {} { > + # VxWorks has sysconf in rtp mode only, but our way to test can't > + # tell kernel mode doesn't, as we're doing partial links for > + # kernel modules. We can tell by checking for a declaration, or > + # for some sysconf parm, because configurations that don't offer > + # sysconf don't have either. > + if { [istarget *-*-vxworks*] } { > + return [check_no_compiler_messages sysconfdecl assembly { > + #include <unistd.h> > + int f() { return sysconf(_SC_PAGESIZE); } > + }]; > + } > return [check_function_available "sysconf"] > } > > > > -- > Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ > Free Software Activist GNU Toolchain Engineer > Disinformation flourishes because many people care deeply about injustice > but very few check the facts. Ask me about <https://stallmansupport.org>