From 17427edd1fc510ae6eb7903cc8664e15500490d6 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 20 Nov 2000 09:16:41 +0000 Subject: Update. 2000-11-20 Ulrich Drepper * csu/gmon-start.c: Always have prototype for __gmon_start. * csu/version.c: Add prototypes for __libc_print_version and __libc_main. * iconv/gconv.c: Include gconv_int.h and gconv.h. * iconv/gconv.h (struct __gconv_step): Remove const from __from_name and __to_name. * iconv/gconv_builtin.h: Add ASCII module definitions. * iconv/gconv_conf.c (__gconv_path_elem): Remove const. (add_module): Add cast to avoid warning. Rework construction of strings for new module. * iconv/gconv_db.c (__gconv_alias_compare): Make s1 and s2 const. (derivation_compare): Likewise. * iconv/gconv_dl.c (do_release_shlib): Remove const from nodep. (__gconv_release_shlib): Cast do_release_shlib as parameter for twalk. * iconv/gconv_int.h (__gconv_path_elem): Remove const. (struct gconv_alias): Remove const from fromname and toname. * iconv/gconv_simple.c: Include gconv_builtin.h to get prototypes for loop functions. (internal_ucs4_loop): Use correct const-ness. (ucs4_internal_loop): Likewise. (internal_ucs4le_loop): Likewise. (ucs4le_internal_loop_single): Likewise. * iconv/gconv_trans.c (__gconv_transliterate): Make from_idx, from_tbl, to_idx, to_tbl, winbuf, winbufend const. Change casts in assignments appropriately. (struct known_trans): Remove const from fname. (trans_compare): Make s1 and s2 const. * iconv/loop.c (LOOPFC): Make outend parameter const. Add cast to avoid warning. * iconv/skeleton.c: Remove cast in calls of loop functions. * iconvdata/gconv-modules: Remove US-ASCII definitions. * iconvdata/iso646.c: Remove US_ASCII support. * include/set-hooks.h (DEFINE_HOOK): Also generate prototype. * include/unistd.h: Add __libc_check_standard_fds prototype. * string/bits/string2.h (__mempcpy_args): Add const to casts. * sysdeps/generic/initfini.c: Add prototypes for dummy, _init, and _fini. * sysdeps/generic/libc-start.c: Add prototype for __libc_start_main. * sysdeps/i386/i486/bits/string.h (strcmp): Add const to casts. * sysdeps/unix/sysv/linux/dl-osinfo.h (dl_fatal): Add cast to avoid warning. * sysdeps/unix/sysv/linux/init-first.c: Add prototypes for __libc_init_first and _dl_start. * sysdeps/unix/sysv/linux/mips/clone.S: Fix comments. --- sysdeps/generic/initfini.c | 5 ++++- sysdeps/generic/libc-start.c | 11 +++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) (limited to 'sysdeps/generic') diff --git a/sysdeps/generic/initfini.c b/sysdeps/generic/initfini.c index 836d606..60dcdc0 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 a95ce56..c4b8bc6 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 -- cgit v1.1