Two issues prevent the frv-elf port from building after the C99 changes.
First the trampoline code emitted into libgcc has calls to exit, but
no prototype. Adding a trivial prototype for exit() into the macro
fixes that little goof.
Second, frvbegin.c has a call to atexit, so a quick prototype is added
into frvbegin.c to fix that problem.
That's enough to get the compiler building again.
Pushed to the trunk,
Jeff
commit 870b63fe71607b94c0e5b0c6e61cd807e0216ddd
Author: Jeff Law <j...@ventanamicro.com>
Date: Sat Dec 2 21:54:36 2023 -0700
[committed] Fix frv build after C99 changes
Two issues prevent the frv-elf port from building after the C99 changes.
First
the trampoline code emitted into libgcc has calls to exit, but no prototype.
Adding a trivial prototype for exit() into the macro fixes that little goof.
Second, frvbegin.c has a call to atexit, so a quick prototype is added into
frvbegin.c to fix that problem.
That's enough to get the compiler building again.
gcc/
* config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Add prototype for
exit.
libgcc/
* config/frv/frvbegin.c (atexit): Add prototype.
diff --git a/gcc/config/frv/frv.h b/gcc/config/frv/frv.h
index 979561126f8..93a7c6d0fcc 100644
--- a/gcc/config/frv/frv.h
+++ b/gcc/config/frv/frv.h
@@ -1241,6 +1241,7 @@ typedef struct frv_stack {
#if ! __FRV_FDPIC__
#define TRANSFER_FROM_TRAMPOLINE \
extern int Twrite (int, const void *, unsigned); \
+extern void exit (int);
\
\
void \
__trampoline_setup (short * addr, int size, int fnaddr, int sc)
\
@@ -1284,6 +1285,7 @@ __asm__("\n"
\
#else
#define TRANSFER_FROM_TRAMPOLINE \
extern int Twrite (int, const void *, unsigned); \
+extern void exit (int);
\
\
void \
__trampoline_setup (addr, size, fnaddr, sc) \
diff --git a/libgcc/config/frv/frvbegin.c b/libgcc/config/frv/frvbegin.c
index 76b40ec46c6..24ea06b1ae7 100644
--- a/libgcc/config/frv/frvbegin.c
+++ b/libgcc/config/frv/frvbegin.c
@@ -119,6 +119,7 @@ __do_global_dtors (void)
}
}
+int atexit (void (*)(void));
/* Run the global constructors. */
void
__do_global_ctors (void)