mirror of
git://sourceware.org/git/glibc.git
synced 2024-12-09 04:11:27 +08:00
783e641fba
On !ELF_INITFINI architectures, _init is no longer called by the dynamic linker. We can use an ELF constructor instead because the constructor order does not matter. (The other constructors are used to set up libio vtable bypasses and do not depend on this initialization routine.)
56 lines
2.0 KiB
C
56 lines
2.0 KiB
C
/* Internal prototype declarations that don't fit anywhere else.
|
|
Copyright (C) 2000-2020 Free Software Foundation, Inc.
|
|
This file is part of the GNU C Library.
|
|
|
|
The GNU C Library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Lesser General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2.1 of the License, or (at your option) any later version.
|
|
|
|
The GNU C Library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public
|
|
License along with the GNU C Library; if not, see
|
|
<https://www.gnu.org/licenses/>. */
|
|
|
|
#ifndef _LIBC_INTERNAL
|
|
# define _LIBC_INTERNAL 1
|
|
|
|
#include <hp-timing.h>
|
|
|
|
/* Initialize the `__libc_enable_secure' flag. */
|
|
extern void __libc_init_secure (void);
|
|
|
|
/* This function will be called from _init_first in init-first.c. */
|
|
extern void __libc_global_ctors (void);
|
|
|
|
/* Discover the tick frequency of the machine if something goes wrong,
|
|
we return 0, an impossible hertz. */
|
|
extern int __profile_frequency (void);
|
|
libc_hidden_proto (__profile_frequency)
|
|
|
|
/* Hooks for the instrumenting functions. */
|
|
extern void __cyg_profile_func_enter (void *this_fn, void *call_site);
|
|
extern void __cyg_profile_func_exit (void *this_fn, void *call_site);
|
|
|
|
/* Free all allocated resources. */
|
|
extern void __libc_freeres (void);
|
|
libc_hidden_proto (__libc_freeres)
|
|
|
|
/* Free resources stored in thread-local variables on thread exit. */
|
|
extern void __libc_thread_freeres (void);
|
|
|
|
/* Define and initialize `__progname' et. al. */
|
|
extern void __init_misc (int, char **, char **) attribute_hidden;
|
|
|
|
# if IS_IN (rtld) && !defined NO_RTLD_HIDDEN
|
|
extern __typeof (__profile_frequency) __profile_frequency attribute_hidden;
|
|
# endif
|
|
|
|
extern int __libc_multiple_libcs attribute_hidden;
|
|
|
|
#endif /* _LIBC_INTERNAL */
|