diff options
Diffstat (limited to 'sysdeps/generic')
-rw-r--r-- | sysdeps/generic/initfini.c | 5 | ||||
-rw-r--r-- | sysdeps/generic/libc-start.c | 11 |
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 |