aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/generic
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/generic')
-rw-r--r--sysdeps/generic/initfini.c5
-rw-r--r--sysdeps/generic/libc-start.c11
2 files changed, 13 insertions, 3 deletions
diff --git a/sysdeps/generic/initfini.c b/sysdeps/generic/initfini.c
index 836d606cfd..60dcdc0564 100644
--- a/sysdeps/generic/initfini.c
+++ b/sysdeps/generic/initfini.c
@@ -50,6 +50,7 @@ asm ("\n/*@HEADER_ENDS*/");
/* To determine whether we need .end and .align: */
asm ("\n/*@TESTS_BEGIN*/");
+extern void dummy (void (*foo) (void));
void
dummy (void (*foo) (void))
{
@@ -68,10 +69,11 @@ call_gmon_start(void)
void (*gmon_start) (void) = __gmon_start__;
if (gmon_start)
- gmon_start ();
+ gmon_start ();
}
SECTION (".init");
+extern void _init (void);
void
_init (void)
{
@@ -97,6 +99,7 @@ asm ("\n/*@_init_EPILOG_ENDS*/");
asm ("\n/*@_fini_PROLOG_BEGINS*/");
SECTION (".fini");
+extern void _fini (void);
void
_fini (void)
{
diff --git a/sysdeps/generic/libc-start.c b/sysdeps/generic/libc-start.c
index a95ce56d2b..c4b8bc6809 100644
--- a/sysdeps/generic/libc-start.c
+++ b/sysdeps/generic/libc-start.c
@@ -33,8 +33,15 @@ extern void *__libc_stack_end;
extern void __pthread_initialize_minimal (void) __attribute__ ((weak));
#endif
-/* Prototype for local function. */
-extern void __libc_check_standard_fds (void);
+
+extern int BP_SYM (__libc_start_main) (int (*main) (int, char **, char **),
+ int argc,
+ char *__unbounded *__unbounded ubp_av,
+ void (*init) (void),
+ void (*fini) (void),
+ void (*rtld_fini) (void),
+ void *__unbounded stack_end)
+ __attribute__ ((noreturn));
int
/* GKM FIXME: GCC: this should get __BP_ prefix by virtue of the