On Thu, Mar 26, 2026 at 6:39 PM Alexandre Oliva <[email protected]> wrote: > > > In RTP mode, defining TLS_DELETE_HOOK_ARG as NULL AKA 0 elicits a > warning, that casting it to TASK_ID avoids. > > objLibP.h defines an inline function that, depending on the > configuration, will have unused parameters. Allow warnings about > them. > > vxTas calls are supposed to take __vx_tas_t, but upon passing it that > on aarch64, we get warnings about discarding volatile qualifiers, that > not even explicit type casts avoid. So, allow the warnings. > > Regstrapped on x86_64-linux-gnu. Also tested with ppc-vx7r2, > ppc64-vx7r2, arm-vx7r2, and aarch64-vx7r2. Ok to install?
Ok. > > > for libgcc/ChangeLog > > * config/gthr-vworks-tls.c (TLS_DELETE_HOOK_ARG): Type-cast > NULL constant to avoid warning. > * config/t-vxworks (LIBGCC2_CFLAGS): Tolerate unused-parameter > and discarded-qualifiers errors. > --- > libgcc/config/gthr-vxworks-tls.c | 2 +- > libgcc/config/t-vxworks | 13 +++++++++++++ > 2 files changed, 14 insertions(+), 1 deletion(-) > > diff --git a/libgcc/config/gthr-vxworks-tls.c > b/libgcc/config/gthr-vxworks-tls.c > index 0c09604204a69..2ca69cf040062 100644 > --- a/libgcc/config/gthr-vxworks-tls.c > +++ b/libgcc/config/gthr-vxworks-tls.c > @@ -174,7 +174,7 @@ static __gthread_once_t tls_init_guard = > __GTHREAD_ONCE_INIT; > > #ifdef __RTP__ > #define TLS_DELETE_HOOK_ARG_DECL TASK_ID tcb ATTRIBUTE_UNUSED > -#define TLS_DELETE_HOOK_ARG NULL > +#define TLS_DELETE_HOOK_ARG ((TASK_ID)0) > #else > #define TLS_DELETE_HOOK_ARG_DECL void > #define TLS_DELETE_HOOK_ARG > diff --git a/libgcc/config/t-vxworks b/libgcc/config/t-vxworks > index ca0d0cfcb6a2e..3967e0065469b 100644 > --- a/libgcc/config/t-vxworks > +++ b/libgcc/config/t-vxworks > @@ -37,6 +37,19 @@ LIBGCC2_INCLUDES = -nostdinc -include vxworks-predef.h -I. > \ > -isystem $(MULTIBUILDTOP)../../gcc/include-fixed$(MULTISUBDIR) \ > -isystem $(MULTIBUILDTOP)../../gcc/include > > +# The aarch64-vx7r2 objLibP.h defines an inline function with unused > +# parameters. Ideally using -isystem instead of -I above would work > +# around that, but then we get conflicts between GCC's and VxWorks' > +# regs.h. > + > +LIBGCC2_CFLAGS += -Wno-error=unused-parameter > + > +# aarch64-vx7r2 also gets complaints about dropping volatile > +# qualifiers in vxTas calls taking a pointer to __vx_tas_t. > +# An explicit cast doesn't avoid the warning, alas. > + > +LIBGCC2_CFLAGS += -Wno-error=discarded-qualifiers > + > # Use these also for the vxcrstuff objects (.e.g for version.h), on top of > # the options possibly already set specifically for the target: > CRTSTUFF_T_CFLAGS += $(LIBGCC2_INCLUDES) > > -- > Alexandre Oliva, happy hacker https://blog.lx.oliva.nom.br/ > Free Software Activist FSFLA co-founder GNU Toolchain Engineer > More tolerance and less prejudice are key for inclusion and diversity. > Excluding neuro-others for not behaving ""normal"" is *not* inclusive!
