Update.
* intl/finddomain.c: Likewise. * intl/gettextP.h: Likewise. * intl/loadmsgcat.c: Likewise.
This commit is contained in:
parent
b60816b132
commit
d0fc4041fe
@ -25,6 +25,9 @@
|
||||
* elf/dlerror.c: Likewise.
|
||||
* sysdeps/generic/dl-sysdep.c: Likewise.
|
||||
* sysdeps/i386/dl-machine.h: Likewise.
|
||||
* intl/finddomain.c: Likewise.
|
||||
* intl/gettextP.h: Likewise.
|
||||
* intl/loadmsgcat.c: Likewise.
|
||||
|
||||
1998-04-01 17:38 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
|
@ -23,6 +23,7 @@
|
||||
|
||||
|
||||
int
|
||||
internal_function
|
||||
_dl_addr (const void *address, Dl_info *info)
|
||||
{
|
||||
const ElfW(Addr) addr = (ElfW(Addr)) address;
|
||||
|
@ -34,6 +34,7 @@ __libc_lock_define (extern, _dl_load_lock)
|
||||
#define LOSE(s) _dl_signal_error (0, map->l_name, s)
|
||||
|
||||
void
|
||||
internal_function
|
||||
_dl_close (struct link_map *map)
|
||||
{
|
||||
struct link_map **list;
|
||||
|
@ -31,6 +31,7 @@ struct r_debug _r_debug;
|
||||
_r_debug.r_ldbase. Returns the address of _r_debug. */
|
||||
|
||||
struct r_debug *
|
||||
internal_function
|
||||
_dl_debug_initialize (ElfW(Addr) ldbase)
|
||||
{
|
||||
if (_r_debug.r_brk == 0)
|
||||
|
@ -80,6 +80,7 @@ struct list
|
||||
|
||||
|
||||
void
|
||||
internal_function
|
||||
_dl_map_object_deps (struct link_map *map,
|
||||
struct link_map **preloads, unsigned int npreloads,
|
||||
int trace_mode)
|
||||
|
@ -46,6 +46,7 @@ static receiver_fct receiver;
|
||||
|
||||
|
||||
void
|
||||
internal_function
|
||||
_dl_signal_error (int errcode,
|
||||
const char *objname,
|
||||
const char *errstring)
|
||||
@ -94,6 +95,7 @@ _dl_signal_error (int errcode,
|
||||
}
|
||||
|
||||
int
|
||||
internal_function
|
||||
_dl_catch_error (char **errstring,
|
||||
void (*operate) (void *),
|
||||
void *args)
|
||||
@ -125,6 +127,7 @@ _dl_catch_error (char **errstring,
|
||||
}
|
||||
|
||||
void
|
||||
internal_function
|
||||
_dl_receive_error (receiver_fct fct, void (*operate) (void *), void *args)
|
||||
{
|
||||
struct catch *old_catch;
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include <elf/ldsodefs.h>
|
||||
|
||||
void
|
||||
internal_function
|
||||
_dl_fini (void)
|
||||
{
|
||||
struct link_map *l;
|
||||
|
@ -25,6 +25,7 @@
|
||||
order (that is, leaf nodes first). */
|
||||
|
||||
ElfW(Addr)
|
||||
internal_function
|
||||
_dl_init_next (struct link_map *map)
|
||||
{
|
||||
unsigned int i;
|
||||
|
@ -303,6 +303,7 @@ decompose_rpath (const char *rpath, size_t additional_room,
|
||||
|
||||
|
||||
void
|
||||
internal_function
|
||||
_dl_init_paths (const char *llp)
|
||||
{
|
||||
static const char *system_dirs[] =
|
||||
@ -979,6 +980,7 @@ open_path (const char *name, size_t namelen, int preloaded,
|
||||
/* Map in the shared object file NAME. */
|
||||
|
||||
struct link_map *
|
||||
internal_function
|
||||
_dl_map_object (struct link_map *loader, const char *name, int preloaded,
|
||||
int type, int trace_mode)
|
||||
{
|
||||
|
@ -210,6 +210,7 @@ do_lookup (const char *undef_name, unsigned long int hash,
|
||||
UNDEF_NAME. */
|
||||
|
||||
ElfW(Addr)
|
||||
internal_function
|
||||
_dl_lookup_symbol (const char *undef_name, const ElfW(Sym) **ref,
|
||||
struct link_map *symbol_scope[],
|
||||
const char *reference_name,
|
||||
@ -257,6 +258,7 @@ _dl_lookup_symbol (const char *undef_name, const ElfW(Sym) **ref,
|
||||
object. If there are more search lists the object described by
|
||||
SKIP_MAP is only skipped. */
|
||||
ElfW(Addr)
|
||||
internal_function
|
||||
_dl_lookup_symbol_skip (const char *undef_name, const ElfW(Sym) **ref,
|
||||
struct link_map *symbol_scope[],
|
||||
const char *reference_name,
|
||||
@ -305,6 +307,7 @@ _dl_lookup_symbol_skip (const char *undef_name, const ElfW(Sym) **ref,
|
||||
|
||||
XXX We'll see whether we need this separate function. */
|
||||
ElfW(Addr)
|
||||
internal_function
|
||||
_dl_lookup_versioned_symbol (const char *undef_name, const ElfW(Sym) **ref,
|
||||
struct link_map *symbol_scope[],
|
||||
const char *reference_name,
|
||||
@ -369,6 +372,7 @@ _dl_lookup_versioned_symbol (const char *undef_name, const ElfW(Sym) **ref,
|
||||
/* Similar to _dl_lookup_symbol_skip but takes an additional argument
|
||||
with the version we are looking for. */
|
||||
ElfW(Addr)
|
||||
internal_function
|
||||
_dl_lookup_versioned_symbol_skip (const char *undef_name,
|
||||
const ElfW(Sym) **ref,
|
||||
struct link_map *symbol_scope[],
|
||||
@ -429,6 +433,7 @@ _dl_lookup_versioned_symbol_skip (const char *undef_name,
|
||||
/* Cache the location of MAP's hash table. */
|
||||
|
||||
void
|
||||
internal_function
|
||||
_dl_setup_hash (struct link_map *map)
|
||||
{
|
||||
ElfW(Symndx) *hash;
|
||||
|
@ -31,6 +31,7 @@ struct link_map *_dl_default_scope[5];
|
||||
and enter it into the _dl_loaded list. */
|
||||
|
||||
struct link_map *
|
||||
internal_function
|
||||
_dl_new_object (char *realname, const char *libname, int type)
|
||||
{
|
||||
struct link_map *new = malloc (sizeof *new);
|
||||
|
@ -51,6 +51,7 @@ __libc_lock_define_initialized_recursive (, _dl_load_lock)
|
||||
|
||||
|
||||
struct link_map *
|
||||
internal_function
|
||||
_dl_open (const char *file, int mode)
|
||||
{
|
||||
struct link_map *new, *l;
|
||||
|
@ -187,6 +187,7 @@ static int s_scale;
|
||||
/* Set up profiling data to profile object desribed by MAP. The output
|
||||
file is found (or created) in OUTPUT_DIR. */
|
||||
void
|
||||
internal_function
|
||||
_dl_start_profile (struct link_map *map, const char *output_dir)
|
||||
{
|
||||
char *filename;
|
||||
@ -437,6 +438,7 @@ _dl_start_profile (struct link_map *map, const char *output_dir)
|
||||
|
||||
|
||||
void
|
||||
internal_function
|
||||
_dl_mcount (ElfW(Addr) frompc, ElfW(Addr) selfpc)
|
||||
{
|
||||
uint16_t *topcindex;
|
||||
|
@ -27,6 +27,7 @@
|
||||
|
||||
|
||||
void
|
||||
internal_function
|
||||
_dl_relocate_object (struct link_map *l, struct link_map *scope[], int lazy)
|
||||
{
|
||||
if (l->l_relocated)
|
||||
|
@ -31,6 +31,7 @@ struct link_map **_dl_global_scope_end = &_dl_default_scope[3];
|
||||
_dl_global_scope that should be passed to _dl_lookup_symbol for symbol
|
||||
references made in the object L's relocations. */
|
||||
inline struct link_map **
|
||||
internal_function
|
||||
_dl_object_relocation_scope (struct link_map *l)
|
||||
{
|
||||
if (l->l_info[DT_SYMBOLIC])
|
||||
|
@ -23,6 +23,7 @@
|
||||
/* Look up symbol NAME in MAP's scope and return its run-time address. */
|
||||
|
||||
ElfW(Addr)
|
||||
internal_function
|
||||
_dl_symbol_value (struct link_map *map, const char *name)
|
||||
{
|
||||
ElfW(Addr) loadbase;
|
||||
|
@ -71,6 +71,7 @@ find_needed (const char *name, struct link_map *map)
|
||||
|
||||
|
||||
static int
|
||||
internal_function
|
||||
match_symbol (const char *name, ElfW(Word) hash, const char *string,
|
||||
struct link_map *map, int verbose, int weak)
|
||||
{
|
||||
@ -156,6 +157,7 @@ no version information available (required by ",
|
||||
|
||||
|
||||
int
|
||||
internal_function
|
||||
_dl_check_map_versions (struct link_map *map, int verbose)
|
||||
{
|
||||
int result = 0;
|
||||
@ -351,6 +353,7 @@ _dl_check_map_versions (struct link_map *map, int verbose)
|
||||
|
||||
|
||||
int
|
||||
internal_function
|
||||
_dl_check_all_versions (struct link_map *map, int verbose)
|
||||
{
|
||||
struct link_map *l;
|
||||
|
@ -87,6 +87,7 @@ dlerror (void)
|
||||
}
|
||||
|
||||
int
|
||||
internal_function
|
||||
_dlerror_run (void (*operate) (void *), void *args)
|
||||
{
|
||||
__libc_once_define (static, once);
|
||||
|
@ -196,7 +196,8 @@ extern int _dl_secure;
|
||||
problem. */
|
||||
extern void _dl_signal_error (int errcode,
|
||||
const char *object,
|
||||
const char *errstring);
|
||||
const char *errstring)
|
||||
internal_function;
|
||||
|
||||
/* Call OPERATE, catching errors from `dl_signal_error'. If there is no
|
||||
error, *ERRSTRING is set to null. If there is an error, *ERRSTRING is
|
||||
@ -206,21 +207,24 @@ extern void _dl_signal_error (int errcode,
|
||||
ARGS is passed as argument to OPERATE. */
|
||||
extern int _dl_catch_error (char **errstring,
|
||||
void (*operate) (void *),
|
||||
void *args);
|
||||
void *args)
|
||||
internal_function;
|
||||
|
||||
/* Call OPERATE, receiving errors from `dl_signal_error'. Unlike
|
||||
`_dl_catch_error' the operation is resumed after the OPERATE
|
||||
function returns.
|
||||
ARGS is passed as argument to OPERATE. */
|
||||
extern void _dl_receive_error (receiver_fct fct, void (*operate) (void *),
|
||||
void *args);
|
||||
void *args)
|
||||
internal_function;
|
||||
|
||||
|
||||
/* Helper function for <dlfcn.h> functions. Runs the OPERATE function via
|
||||
_dl_catch_error. Returns zero for success, nonzero for failure; and
|
||||
arranges for `dlerror' to return the error details.
|
||||
ARGS is passed as argument to OPERATE. */
|
||||
extern int _dlerror_run (void (*operate) (void *), void *args);
|
||||
extern int _dlerror_run (void (*operate) (void *), void *args)
|
||||
internal_function;
|
||||
|
||||
|
||||
/* Open the shared object NAME and map in its segments.
|
||||
@ -230,7 +234,8 @@ extern int _dlerror_run (void (*operate) (void *), void *args);
|
||||
value to allow additional security checks. */
|
||||
extern struct link_map *_dl_map_object (struct link_map *loader,
|
||||
const char *name, int preloaded,
|
||||
int type, int trace_mode);
|
||||
int type, int trace_mode)
|
||||
internal_function;
|
||||
|
||||
/* Call _dl_map_object on the dependencies of MAP, and set up
|
||||
MAP->l_searchlist. PRELOADS points to a vector of NPRELOADS previously
|
||||
@ -238,19 +243,22 @@ extern struct link_map *_dl_map_object (struct link_map *loader,
|
||||
but before its dependencies. */
|
||||
extern void _dl_map_object_deps (struct link_map *map,
|
||||
struct link_map **preloads,
|
||||
unsigned int npreloads, int trace_mode);
|
||||
unsigned int npreloads, int trace_mode)
|
||||
internal_function;
|
||||
|
||||
/* Cache the locations of MAP's hash table. */
|
||||
extern void _dl_setup_hash (struct link_map *map);
|
||||
extern void _dl_setup_hash (struct link_map *map) internal_function;
|
||||
|
||||
|
||||
/* Open the shared object NAME, relocate it, and run its initializer if it
|
||||
hasn't already been run. MODE is as for `dlopen' (see <dlfcn.h>). If
|
||||
the object is already opened, returns its existing map. */
|
||||
extern struct link_map *_dl_open (const char *name, int mode);
|
||||
extern struct link_map *_dl_open (const char *name, int mode)
|
||||
internal_function;
|
||||
|
||||
/* Close an object previously opened by _dl_open. */
|
||||
extern void _dl_close (struct link_map *map);
|
||||
extern void _dl_close (struct link_map *map)
|
||||
internal_function;
|
||||
|
||||
|
||||
/* Search loaded objects' symbol tables for a definition of the symbol
|
||||
@ -268,7 +276,8 @@ extern ElfW(Addr) _dl_lookup_symbol (const char *undef,
|
||||
const ElfW(Sym) **sym,
|
||||
struct link_map *symbol_scope[],
|
||||
const char *reference_name,
|
||||
int reloc_type);
|
||||
int reloc_type)
|
||||
internal_function;
|
||||
|
||||
/* Lookup versioned symbol. */
|
||||
extern ElfW(Addr) _dl_lookup_versioned_symbol (const char *undef,
|
||||
@ -276,14 +285,16 @@ extern ElfW(Addr) _dl_lookup_versioned_symbol (const char *undef,
|
||||
struct link_map *symbol_scope[],
|
||||
const char *reference_name,
|
||||
const struct r_found_version *version,
|
||||
int reloc_type);
|
||||
int reloc_type)
|
||||
internal_function;
|
||||
|
||||
/* For handling RTLD_NEXT we must be able to skip shared objects. */
|
||||
extern ElfW(Addr) _dl_lookup_symbol_skip (const char *undef,
|
||||
const ElfW(Sym) **sym,
|
||||
struct link_map *symbol_scope[],
|
||||
const char *reference_name,
|
||||
struct link_map *skip_this);
|
||||
struct link_map *skip_this)
|
||||
internal_function;
|
||||
|
||||
/* For handling RTLD_NEXT with versioned symbols we must be able to
|
||||
skip shared objects. */
|
||||
@ -292,13 +303,16 @@ extern ElfW(Addr) _dl_lookup_versioned_symbol_skip (const char *undef,
|
||||
struct link_map *symbol_scope[],
|
||||
const char *reference_name,
|
||||
const struct r_found_version *version,
|
||||
struct link_map *skip_this);
|
||||
struct link_map *skip_this)
|
||||
internal_function;
|
||||
|
||||
/* Locate shared object containing the given address. */
|
||||
extern int _dl_addr (const void *address, Dl_info *info);
|
||||
extern int _dl_addr (const void *address, Dl_info *info)
|
||||
internal_function;
|
||||
|
||||
/* Look up symbol NAME in MAP's scope and return its run-time address. */
|
||||
extern ElfW(Addr) _dl_symbol_value (struct link_map *map, const char *name);
|
||||
extern ElfW(Addr) _dl_symbol_value (struct link_map *map, const char *name)
|
||||
internal_function;
|
||||
|
||||
|
||||
/* Structure describing the dynamic linker itself. */
|
||||
@ -329,38 +343,41 @@ extern size_t _dl_global_scope_alloc; /* Number of slots malloc'd. */
|
||||
/* Hack _dl_global_scope[0] and [1] as necessary, and return a pointer into
|
||||
_dl_global_scope that should be passed to _dl_lookup_symbol for symbol
|
||||
references made in the object MAP's relocations. */
|
||||
extern struct link_map **_dl_object_relocation_scope (struct link_map *map);
|
||||
extern struct link_map **_dl_object_relocation_scope (struct link_map *map)
|
||||
internal_function;
|
||||
|
||||
|
||||
/* Allocate a `struct link_map' for a new object being loaded,
|
||||
and enter it into the _dl_loaded list. */
|
||||
extern struct link_map *_dl_new_object (char *realname, const char *libname,
|
||||
int type);
|
||||
int type) internal_function;
|
||||
|
||||
/* Relocate the given object (if it hasn't already been).
|
||||
SCOPE is passed to _dl_lookup_symbol in symbol lookups.
|
||||
If LAZY is nonzero, don't relocate its PLT. */
|
||||
extern void _dl_relocate_object (struct link_map *map,
|
||||
struct link_map *scope[],
|
||||
int lazy);
|
||||
int lazy) internal_function;
|
||||
|
||||
/* Check the version dependencies of all objects available through
|
||||
MAP. If VERBOSE print some more diagnostics. */
|
||||
extern int _dl_check_all_versions (struct link_map *map, int verbose);
|
||||
extern int _dl_check_all_versions (struct link_map *map, int verbose)
|
||||
internal_function;
|
||||
|
||||
/* Check the version dependencies for MAP. If VERBOSE print some more
|
||||
diagnostics. */
|
||||
extern int _dl_check_map_versions (struct link_map *map, int verbose);
|
||||
extern int _dl_check_map_versions (struct link_map *map, int verbose)
|
||||
internal_function;
|
||||
|
||||
/* Return the address of the next initializer function for MAP or one of
|
||||
its dependencies that has not yet been run. When there are no more
|
||||
initializers to be run, this returns zero. The functions are returned
|
||||
in the order they should be called. */
|
||||
extern ElfW(Addr) _dl_init_next (struct link_map *map);
|
||||
extern ElfW(Addr) _dl_init_next (struct link_map *map) internal_function;
|
||||
|
||||
/* Call the finalizer functions of all shared objects whose
|
||||
initializer functions have completed. */
|
||||
extern void _dl_fini (void);
|
||||
extern void _dl_fini (void) internal_function;
|
||||
|
||||
/* The dynamic linker calls this function before and having changing
|
||||
any shared object mappings. The `r_state' member of `struct r_debug'
|
||||
@ -371,31 +388,35 @@ extern void _dl_debug_state (void);
|
||||
/* Initialize `struct r_debug' if it has not already been done. The
|
||||
argument is the run-time load address of the dynamic linker, to be put
|
||||
in the `r_ldbase' member. Returns the address of the structure. */
|
||||
extern struct r_debug *_dl_debug_initialize (ElfW(Addr) ldbase);
|
||||
extern struct r_debug *_dl_debug_initialize (ElfW(Addr) ldbase)
|
||||
internal_function;
|
||||
|
||||
/* Initialize the basic data structure for the search paths. */
|
||||
extern void _dl_init_paths (const char *library_path);
|
||||
extern void _dl_init_paths (const char *library_path) internal_function;
|
||||
|
||||
/* Gather the information needed to install the profiling tables and start
|
||||
the timers. */
|
||||
extern void _dl_start_profile (struct link_map *map, const char *output_dir);
|
||||
extern void _dl_start_profile (struct link_map *map, const char *output_dir)
|
||||
internal_function;
|
||||
|
||||
/* The actual functions used to keep book on the calls. */
|
||||
extern void _dl_mcount (ElfW(Addr) frompc, ElfW(Addr) selfpc);
|
||||
extern void _dl_mcount (ElfW(Addr) frompc, ElfW(Addr) selfpc)
|
||||
internal_function;
|
||||
|
||||
|
||||
/* Show the members of the auxiliary array passed up from the kernel. */
|
||||
extern void _dl_show_auxv (void);
|
||||
extern void _dl_show_auxv (void) internal_function;
|
||||
|
||||
/* Return all environment variables starting with `LD_', one after the
|
||||
other. */
|
||||
extern char *_dl_next_ld_env_entry (char ***position);
|
||||
extern char *_dl_next_ld_env_entry (char ***position) internal_function;
|
||||
|
||||
/* Return an array with the names of the important hardware capabilities. */
|
||||
extern const struct r_strlenpair *_dl_important_hwcaps (const char *platform,
|
||||
size_t paltform_len,
|
||||
size_t *sz,
|
||||
size_t *max_capstrlen);
|
||||
size_t *max_capstrlen)
|
||||
internal_function;
|
||||
|
||||
__END_DECLS
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Handle list of needed message catalogs
|
||||
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
|
||||
Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
|
||||
|
||||
This file is part of the GNU C Library. Its master source is NOT part of
|
||||
@ -74,6 +74,7 @@ static struct loaded_l10nfile *_nl_loaded_domains;
|
||||
the DOMAINNAME and CATEGORY parameters with respect to the currently
|
||||
established bindings. */
|
||||
struct loaded_l10nfile *
|
||||
internal_function
|
||||
_nl_find_domain (dirname, locale, domainname)
|
||||
const char *dirname;
|
||||
char *locale;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Header describing internals of gettext library
|
||||
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
|
||||
Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@ -32,6 +32,10 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef internal_function
|
||||
# define internal_function
|
||||
#endif
|
||||
|
||||
#ifndef W
|
||||
# define W(flag, data) ((flag) ? SWAP (data) : (data))
|
||||
#endif
|
||||
@ -69,9 +73,12 @@ struct binding
|
||||
|
||||
struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname,
|
||||
char *__locale,
|
||||
const char *__domainname));
|
||||
void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain));
|
||||
void _nl_unload_domain PARAMS ((struct loaded_domain *__domain));
|
||||
const char *__domainname))
|
||||
internal_function;
|
||||
void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain))
|
||||
internal_function;
|
||||
void _nl_unload_domain PARAMS ((struct loaded_domain *__domain))
|
||||
internal_function;
|
||||
|
||||
/* @@ begin of epilog @@ */
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Load needed message catalogs.
|
||||
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of the GNU C Library. Its master source is NOT part of
|
||||
the C library, however.
|
||||
@ -64,6 +64,7 @@ int _nl_msg_cat_cntr = 0;
|
||||
/* Load the message catalogs specified by FILENAME. If it is no valid
|
||||
message catalog do nothing. */
|
||||
void
|
||||
internal_function
|
||||
_nl_load_domain (domain_file)
|
||||
struct loaded_l10nfile *domain_file;
|
||||
{
|
||||
@ -208,6 +209,7 @@ _nl_load_domain (domain_file)
|
||||
|
||||
#ifdef _LIBC
|
||||
void
|
||||
internal_function
|
||||
_nl_unload_domain (domain)
|
||||
struct loaded_domain *domain;
|
||||
{
|
||||
|
@ -171,6 +171,7 @@ _dl_sysdep_start_cleanup (void)
|
||||
}
|
||||
|
||||
void
|
||||
internal_function
|
||||
_dl_show_auxv (void)
|
||||
{
|
||||
char buf[64];
|
||||
@ -252,6 +253,7 @@ _dl_show_auxv (void)
|
||||
/* Walk through the environment of the process and return all entries
|
||||
starting with `LD_'. */
|
||||
char *
|
||||
internal_function
|
||||
_dl_next_ld_env_entry (char ***position)
|
||||
{
|
||||
char **current = *position;
|
||||
@ -277,6 +279,7 @@ _dl_next_ld_env_entry (char ***position)
|
||||
|
||||
/* Return an array of useful/necessary hardware capability names. */
|
||||
const struct r_strlenpair *
|
||||
internal_function
|
||||
_dl_important_hwcaps (const char *platform, size_t platform_len, size_t *sz,
|
||||
size_t *max_capstrlen)
|
||||
{
|
||||
|
@ -224,11 +224,10 @@ _dl_start_user:\n\
|
||||
# Push _dl_default_scope[2] as argument in _dl_init_next call below.\n\
|
||||
movl _dl_default_scope@GOT(%ebx), %eax\n\
|
||||
movl 8(%eax), %esi\n\
|
||||
0: pushl %esi\n\
|
||||
0: movl %esi,%eax\n\
|
||||
# Call _dl_init_next to return the address of an initializer\n\
|
||||
# function to run.\n\
|
||||
call _dl_init_next@PLT\n\
|
||||
addl $4, %esp # Pop argument.\n\
|
||||
# Check for zero return, when out of initializers.\n\
|
||||
testl %eax, %eax\n\
|
||||
jz 1f\n\
|
||||
|
Loading…
Reference in New Issue
Block a user