Hi! aarch64 for some strange reason unconditionally enables -Werror for libgcc building and this particular file for some strange reason contains a useless static forward declaration of a function only defined in the #if defined __sun__ && defined __svr4__ block and not otherwise (with __attribute__((constructor))). And we warn (with -Werror error) in the non-__sun__/__svr4__ case because it declares a static function that is never defined. The forward declaration makes no sense to me, for static functions forward declarations shouldn't be needed even for -Wstrict-prototypes, and AFAIK we don't warn on static __attribute__((constructor)) void foo (void) {} being unused. And the function isn't used before being defined.
So, the following patch just removes the forward declaration. Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? 2025-08-06 Jakub Jelinek <ja...@redhat.com> PR libgcc/121397 * enable-execute-stack-mprotect.c (check_enabling): Remove useless forward declaration. --- libgcc/enable-execute-stack-mprotect.c.jj 2025-04-08 14:09:53.630413475 +0200 +++ libgcc/enable-execute-stack-mprotect.c 2025-08-05 19:21:26.780914701 +0200 @@ -30,7 +30,6 @@ static int need_enable_exec_stack; -static void check_enabling (void) __attribute__ ((unused)); extern void __enable_execute_stack (void *); #if defined __sun__ && defined __svr4__ Jakub