2002-08-04  Ulrich Drepper  <drepper@redhat.com>

	* stdio-common/psignal.c: Declare _sys_siglist_internal.  Use USEINT
	to access _sys_siglist.
	* string/strsignal.c: Likewise.
	* sysdeps/generic/siglist.c: Add _sys_siglist_internal alias.
	* sysdeps/gnu/siglist.c: Likewise.
	* sysdeps/unix/siglist.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/siglist.c: Likewise.

	* libio/fileops.c: Add missing INTUSEs for _IO_file_jumps.

	* libio/wfileops.c: Add missing INTUSE for _IO_file_close.

	* intl/dcigettext.c: Define _nl_default_dirname_internal as hidden
	alias and use it.
	* intl/bindtextdom.c: Use _nl_default_dirname_internal.

	* include/netinet/in.h: Add declaration of in6addr_loopback_internal.
	* inet/in6_addr.c: Add INTVARDEF for in6addr_loopback.
	* sysdeps/posix/getaddrinfo.c: Use INTUSE for in6addr_loopback access.

	* include/time.h: Add libc_hidden_proto for __gmtime_r.
	* time/gmtime.c (__gmtime_r): Add libc_hidden_def.

	* iconv/Versions: Replace __gconv_alias_db, __gconv_modules_db,
	and __gconv_cache with __gconv_get_alias_db, __gconv_get_modules_db,
	and __gconv_get_cache respectively.
	* iconv/gconv_cache.c (gconv_cache): Renamed for __gconv_cache and
	defined static.  Change all users.
	(__gconv_get_cache): New function.
	* iconv/gconv_db.c (__gconv_get_modules_db): New function.
	(__gconv_get_alias_db): New function.
	* iconv/gconv_int.h (__gconv_alias_db): Declare as hidden.
	(__conv_modules_db): Likewise.
	Add prototypes for __gconv_get_cache, __gconv_get_modules_db,
	and __gconv_get_alias_db.
	* iconv/iconv_prog.c: Use the new functions instead of accessing the
	variables.

	* include/stdlib.h: Add prototype and libc_hidden_proto for
	__default_morecore.
	* sysdeps/generic/morecore.c: Include <stdlib.h>.

	* malloc/obstack.c: Remove fputs macro.

	* malloc/mtrace.c: Remove fopen macro.
This commit is contained in:
Ulrich Drepper 2002-08-04 23:32:14 +00:00
parent 3ba06713f8
commit 230491f02c
31 changed files with 178 additions and 78 deletions

View File

@ -1,3 +1,51 @@
2002-08-04 Ulrich Drepper <drepper@redhat.com>
* stdio-common/psignal.c: Declare _sys_siglist_internal. Use USEINT
to access _sys_siglist.
* string/strsignal.c: Likewise.
* sysdeps/generic/siglist.c: Add _sys_siglist_internal alias.
* sysdeps/gnu/siglist.c: Likewise.
* sysdeps/unix/siglist.c: Likewise.
* sysdeps/unix/sysv/linux/arm/siglist.c: Likewise.
* libio/fileops.c: Add missing INTUSEs for _IO_file_jumps.
* libio/wfileops.c: Add missing INTUSE for _IO_file_close.
* intl/dcigettext.c: Define _nl_default_dirname_internal as hidden
alias and use it.
* intl/bindtextdom.c: Use _nl_default_dirname_internal.
* include/netinet/in.h: Add declaration of in6addr_loopback_internal.
* inet/in6_addr.c: Add INTVARDEF for in6addr_loopback.
* sysdeps/posix/getaddrinfo.c: Use INTUSE for in6addr_loopback access.
* include/time.h: Add libc_hidden_proto for __gmtime_r.
* time/gmtime.c (__gmtime_r): Add libc_hidden_def.
* iconv/Versions: Replace __gconv_alias_db, __gconv_modules_db,
and __gconv_cache with __gconv_get_alias_db, __gconv_get_modules_db,
and __gconv_get_cache respectively.
* iconv/gconv_cache.c (gconv_cache): Renamed for __gconv_cache and
defined static. Change all users.
(__gconv_get_cache): New function.
* iconv/gconv_db.c (__gconv_get_modules_db): New function.
(__gconv_get_alias_db): New function.
* iconv/gconv_int.h (__gconv_alias_db): Declare as hidden.
(__conv_modules_db): Likewise.
Add prototypes for __gconv_get_cache, __gconv_get_modules_db,
and __gconv_get_alias_db.
* iconv/iconv_prog.c: Use the new functions instead of accessing the
variables.
* include/stdlib.h: Add prototype and libc_hidden_proto for
__default_morecore.
* sysdeps/generic/morecore.c: Include <stdlib.h>.
* malloc/obstack.c: Remove fputs macro.
* malloc/mtrace.c: Remove fopen macro.
2002-08-04 Jakub Jelinek <jakub@redhat.com> 2002-08-04 Jakub Jelinek <jakub@redhat.com>
* manual/debug.texi: Fix spelling to programmatically. * manual/debug.texi: Fix spelling to programmatically.

View File

@ -4,7 +4,7 @@ libc {
iconv_open; iconv; iconv_close; iconv_open; iconv; iconv_close;
} }
GLIBC_PRIVATE { GLIBC_PRIVATE {
# variables shared with iconv program # functions shared with iconv program
__gconv_alias_db; __gconv_modules_db; __gconv_cache; __gconv_get_alias_db; __gconv_get_modules_db; __gconv_get_cache;
} }
} }

View File

@ -1,5 +1,5 @@
/* Cache handling for iconv modules. /* Cache handling for iconv modules.
Copyright (C) 2001 Free Software Foundation, Inc. Copyright (C) 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 2001. Contributed by Ulrich Drepper <drepper@cygnus.com>, 2001.
@ -31,11 +31,18 @@
#include "../intl/hash-string.h" #include "../intl/hash-string.h"
void *__gconv_cache; static void *gconv_cache;
static size_t cache_size; static size_t cache_size;
static int cache_malloced; static int cache_malloced;
void *
__gconv_get_cache (void)
{
return gconv_cache;
}
int int
internal_function internal_function
__gconv_load_cache (void) __gconv_load_cache (void)
@ -70,25 +77,25 @@ __gconv_load_cache (void)
/* Make the file content available. */ /* Make the file content available. */
cache_size = st.st_size; cache_size = st.st_size;
#ifdef _POSIX_MAPPED_FILES #ifdef _POSIX_MAPPED_FILES
__gconv_cache = __mmap (NULL, cache_size, PROT_READ, MAP_SHARED, fd, 0); gconv_cache = __mmap (NULL, cache_size, PROT_READ, MAP_SHARED, fd, 0);
if (__builtin_expect (__gconv_cache == MAP_FAILED, 0)) if (__builtin_expect (gconv_cache == MAP_FAILED, 0))
#endif #endif
{ {
size_t already_read; size_t already_read;
__gconv_cache = malloc (cache_size); gconv_cache = malloc (cache_size);
if (__gconv_cache == NULL) if (gconv_cache == NULL)
goto close_and_exit; goto close_and_exit;
already_read = 0; already_read = 0;
do do
{ {
ssize_t n = __read (fd, (char *) __gconv_cache + already_read, ssize_t n = __read (fd, (char *) gconv_cache + already_read,
cache_size - already_read); cache_size - already_read);
if (__builtin_expect (n, 0) == -1) if (__builtin_expect (n, 0) == -1)
{ {
free (__gconv_cache); free (gconv_cache);
__gconv_cache = NULL; gconv_cache = NULL;
goto close_and_exit; goto close_and_exit;
} }
@ -103,7 +110,7 @@ __gconv_load_cache (void)
__close (fd); __close (fd);
/* Check the consistency. */ /* Check the consistency. */
header = (struct gconvcache_header *) __gconv_cache; header = (struct gconvcache_header *) gconv_cache;
if (__builtin_expect (header->magic, GCONVCACHE_MAGIC) != GCONVCACHE_MAGIC if (__builtin_expect (header->magic, GCONVCACHE_MAGIC) != GCONVCACHE_MAGIC
|| __builtin_expect (header->string_offset >= cache_size, 0) || __builtin_expect (header->string_offset >= cache_size, 0)
|| __builtin_expect (header->hash_offset >= cache_size, 0) || __builtin_expect (header->hash_offset >= cache_size, 0)
@ -116,14 +123,14 @@ __gconv_load_cache (void)
{ {
if (cache_malloced) if (cache_malloced)
{ {
free (__gconv_cache); free (gconv_cache);
cache_malloced = 0; cache_malloced = 0;
} }
#ifdef _POSIX_MAPPED_FILES #ifdef _POSIX_MAPPED_FILES
else else
__munmap (__gconv_cache, cache_size); __munmap (gconv_cache, cache_size);
#endif #endif
__gconv_cache = NULL; gconv_cache = NULL;
return -1; return -1;
} }
@ -145,9 +152,9 @@ find_module_idx (const char *str, size_t *idxp)
const struct hash_entry *hashtab; const struct hash_entry *hashtab;
unsigned int limit; unsigned int limit;
header = (const struct gconvcache_header *) __gconv_cache; header = (const struct gconvcache_header *) gconv_cache;
strtab = (char *) __gconv_cache + header->string_offset; strtab = (char *) gconv_cache + header->string_offset;
hashtab = (struct hash_entry *) ((char *) __gconv_cache hashtab = (struct hash_entry *) ((char *) gconv_cache
+ header->hash_offset); + header->hash_offset);
hval = hash_string (str); hval = hash_string (str);
@ -211,7 +218,7 @@ __gconv_compare_alias_cache (const char *name1, const char *name2, int *result)
size_t name1_idx; size_t name1_idx;
size_t name2_idx; size_t name2_idx;
if (__gconv_cache == NULL) if (gconv_cache == NULL)
return -1; return -1;
if (find_module_idx (name1, &name1_idx) != 0 if (find_module_idx (name1, &name1_idx) != 0
@ -238,13 +245,13 @@ __gconv_lookup_cache (const char *toset, const char *fromset,
const struct module_entry *to_module; const struct module_entry *to_module;
struct __gconv_step *result; struct __gconv_step *result;
if (__gconv_cache == NULL) if (gconv_cache == NULL)
/* We have no cache available. */ /* We have no cache available. */
return __GCONV_NODB; return __GCONV_NODB;
header = (const struct gconvcache_header *) __gconv_cache; header = (const struct gconvcache_header *) gconv_cache;
strtab = (char *) __gconv_cache + header->string_offset; strtab = (char *) gconv_cache + header->string_offset;
modtab = (const struct module_entry *) ((char *) __gconv_cache modtab = (const struct module_entry *) ((char *) gconv_cache
+ header->module_offset); + header->module_offset);
if (find_module_idx (fromset, &fromidx) != 0 if (find_module_idx (fromset, &fromidx) != 0
@ -273,7 +280,7 @@ __gconv_lookup_cache (const char *toset, const char *fromset,
/* Note the -1. This is due to the offset added in iconvconfig. /* Note the -1. This is due to the offset added in iconvconfig.
See there for more explanations. */ See there for more explanations. */
extra = (const struct extra_entry *) ((char *) __gconv_cache extra = (const struct extra_entry *) ((char *) gconv_cache
+ header->otherconv_offset + header->otherconv_offset
+ from_module->extra_offset - 1); + from_module->extra_offset - 1);
while (extra->module_cnt != 0 while (extra->module_cnt != 0
@ -430,7 +437,7 @@ void
internal_function internal_function
__gconv_release_cache (struct __gconv_step *steps, size_t nsteps) __gconv_release_cache (struct __gconv_step *steps, size_t nsteps)
{ {
if (__gconv_cache != NULL) if (gconv_cache != NULL)
/* The only thing we have to deallocate is the record with the /* The only thing we have to deallocate is the record with the
steps. */ steps. */
free (steps); free (steps);
@ -442,10 +449,10 @@ static void __attribute__ ((unused))
free_mem (void) free_mem (void)
{ {
if (cache_malloced) if (cache_malloced)
free (__gconv_cache); free (gconv_cache);
#ifdef _POSIX_MAPPED_FILES #ifdef _POSIX_MAPPED_FILES
else else
__munmap (__gconv_cache, cache_size); __munmap (gconv_cache, cache_size);
#endif #endif
} }

View File

@ -1,5 +1,5 @@
/* Provide access to the collection of available transformation modules. /* Provide access to the collection of available transformation modules.
Copyright (C) 1997,98,99,2000,2001 Free Software Foundation, Inc. Copyright (C) 1997,98,99,2000,2001,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@ -41,6 +41,20 @@ struct gconv_module *__gconv_modules_db;
__libc_lock_define_initialized (static, lock) __libc_lock_define_initialized (static, lock)
/* Provide access to module database. */
struct gconv_module *
__gconv_get_modules_db (void)
{
return __gconv_modules_db;
}
void *
__gconv_get_alias_db (void)
{
return __gconv_alias_db;
}
/* Function for searching alias. */ /* Function for searching alias. */
int int
__gconv_alias_compare (const void *p1, const void *p2) __gconv_alias_compare (const void *p1, const void *p2)

View File

@ -114,11 +114,11 @@ enum
/* Global variables. */ /* Global variables. */
/* Database of alias names. */ /* Database of alias names. */
extern void *__gconv_alias_db; extern void *__gconv_alias_db attribute_hidden;
/* Array with available modules. */ /* Array with available modules. */
extern size_t __gconv_nmodules; extern size_t __gconv_nmodules;
extern struct gconv_module *__gconv_modules_db; extern struct gconv_module *__gconv_modules_db attribute_hidden;
/* Value of the GCONV_PATH environment variable. */ /* Value of the GCONV_PATH environment variable. */
extern const char *__gconv_path_envvar attribute_hidden; extern const char *__gconv_path_envvar attribute_hidden;
@ -204,6 +204,15 @@ extern void __gconv_read_conf (void) attribute_hidden;
/* Try to read module cache file. */ /* Try to read module cache file. */
extern int __gconv_load_cache (void) internal_function; extern int __gconv_load_cache (void) internal_function;
/* Retrieve pointer to internal cache. */
extern void *__gconv_get_cache (void);
/* Retrieve pointer to internal module database. */
extern struct gconv_module *__gconv_get_modules_db (void);
/* Retrieve pointer to internal alias database. */
extern void *__gconv_get_alias_db (void);
/* Determine the directories we are looking in. */ /* Determine the directories we are looking in. */
extern void __gconv_get_path (void) internal_function; extern void __gconv_get_path (void) internal_function;

View File

@ -47,9 +47,6 @@
#define PACKAGE _libc_intl_domainname #define PACKAGE _libc_intl_domainname
/* Defined in gconv_cache.c. */
extern void *__gconv_cache;
/* Name and version of program. */ /* Name and version of program. */
static void print_version (FILE *stream, struct argp_state *state); static void print_version (FILE *stream, struct argp_state *state);
void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version; void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version;
@ -668,10 +665,9 @@ insert_cache (void)
const struct hash_entry *hashtab; const struct hash_entry *hashtab;
size_t cnt; size_t cnt;
header = (const struct gconvcache_header *) __gconv_cache; header = (const struct gconvcache_header *) __gconv_get_cache ();
strtab = (char *) __gconv_cache + header->string_offset; strtab = (char *) header + header->string_offset;
hashtab = (struct hash_entry *) ((char *) __gconv_cache hashtab = (struct hash_entry *) ((char *) header + header->hash_offset);
+ header->hash_offset);
for (cnt = 0; cnt < header->hash_size; ++cnt) for (cnt = 0; cnt < header->hash_size; ++cnt)
if (hashtab[cnt].string_offset != 0) if (hashtab[cnt].string_offset != 0)
@ -689,24 +685,29 @@ internal_function
print_known_names (void) print_known_names (void)
{ {
iconv_t h; iconv_t h;
void *cache;
/* We must initialize the internal databases first. */ /* We must initialize the internal databases first. */
h = iconv_open ("L1", "L1"); h = iconv_open ("L1", "L1");
iconv_close (h); iconv_close (h);
/* See whether we have a cache. */ /* See whether we have a cache. */
if (__gconv_cache != NULL) cache = __gconv_get_cache ();
if (cache != NULL)
/* Yep, use only this information. */ /* Yep, use only this information. */
insert_cache (); insert_cache ();
else else
{ {
struct gconv_module *modules;
/* No, then use the information read from the gconv-modules file. /* No, then use the information read from the gconv-modules file.
First add the aliases. */ First add the aliases. */
twalk (__gconv_alias_db, insert_print_list); twalk (__gconv_get_alias_db (), insert_print_list);
/* Add the from- and to-names from the known modules. */ /* Add the from- and to-names from the known modules. */
if (__gconv_modules_db != NULL) modules = __gconv_get_modules_db ();
add_known_names (__gconv_modules_db); if (modules != NULL)
add_known_names (modules);
} }
fputs (_("\ fputs (_("\

View File

@ -1,6 +1,7 @@
#include <inet/netinet/in.h> #include <inet/netinet/in.h>
extern const struct in6_addr in6addr_any_internal attribute_hidden; extern const struct in6_addr in6addr_any_internal attribute_hidden;
extern const struct in6_addr in6addr_loopback_internal attribute_hidden;
/* Bind socket to a privileged IP port. */ /* Bind socket to a privileged IP port. */
extern int bindresvport_internal (int __sockfd, extern int bindresvport_internal (int __sockfd,

View File

@ -4,6 +4,7 @@
#define __Need_M_And_C #define __Need_M_And_C
#endif #endif
#include <stddef.h>
#include <stdlib/stdlib.h> #include <stdlib/stdlib.h>
/* Now define the internal interfaces. */ /* Now define the internal interfaces. */
@ -185,6 +186,10 @@ __strtoull_l (__const char * __restrict __nptr, char **__restrict __endptr,
# endif # endif
#endif #endif
extern void * __default_morecore (ptrdiff_t);
libc_hidden_proto (__default_morecore)
#undef __Need_M_And_C #undef __Need_M_And_C
#endif /* include/stdlib.h */ #endif /* include/stdlib.h */

View File

@ -50,6 +50,7 @@ extern struct tm *__localtime_r (__const time_t *__timer,
extern struct tm *__gmtime_r (__const time_t *__restrict __timer, extern struct tm *__gmtime_r (__const time_t *__restrict __timer,
struct tm *__restrict __tp); struct tm *__restrict __tp);
libc_hidden_proto (__gmtime_r)
/* Compute the `struct tm' representation of *T, /* Compute the `struct tm' representation of *T,
offset OFFSET seconds east of UTC, offset OFFSET seconds east of UTC,

View File

@ -24,3 +24,4 @@ const struct in6_addr in6addr_any =
INTVARDEF(in6addr_any) INTVARDEF(in6addr_any)
const struct in6_addr in6addr_loopback = const struct in6_addr in6addr_loopback =
{ { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } }; { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } };
INTVARDEF(in6addr_loopback)

View File

@ -59,6 +59,11 @@
/* Contains the default location of the message catalogs. */ /* Contains the default location of the message catalogs. */
extern const char _nl_default_dirname[]; extern const char _nl_default_dirname[];
#ifdef _LIBC
extern const char _nl_default_dirname_internal[] attribute_hidden;
#else
# define INTUSE(name) name
#endif
/* List with bindings of specific domains. */ /* List with bindings of specific domains. */
extern struct binding *_nl_domain_bindings; extern struct binding *_nl_domain_bindings;
@ -147,8 +152,8 @@ set_binding_values (domainname, dirnamep, codesetp)
char *result = binding->dirname; char *result = binding->dirname;
if (strcmp (dirname, result) != 0) if (strcmp (dirname, result) != 0)
{ {
if (strcmp (dirname, _nl_default_dirname) == 0) if (strcmp (dirname, INTUSE(_nl_default_dirname)) == 0)
result = (char *) _nl_default_dirname; result = (char *) INTUSE(_nl_default_dirname);
else else
{ {
#if defined _LIBC || defined HAVE_STRDUP #if defined _LIBC || defined HAVE_STRDUP
@ -163,7 +168,7 @@ set_binding_values (domainname, dirnamep, codesetp)
if (__builtin_expect (result != NULL, 1)) if (__builtin_expect (result != NULL, 1))
{ {
if (binding->dirname != _nl_default_dirname) if (binding->dirname != INTUSE(_nl_default_dirname))
free (binding->dirname); free (binding->dirname);
binding->dirname = result; binding->dirname = result;
@ -217,7 +222,7 @@ set_binding_values (domainname, dirnamep, codesetp)
{ {
/* Simply return the default values. */ /* Simply return the default values. */
if (dirnamep) if (dirnamep)
*dirnamep = _nl_default_dirname; *dirnamep = INTUSE(_nl_default_dirname);
if (codesetp) if (codesetp)
*codesetp = NULL; *codesetp = NULL;
} }
@ -239,11 +244,11 @@ set_binding_values (domainname, dirnamep, codesetp)
if (dirname == NULL) if (dirname == NULL)
/* The default value. */ /* The default value. */
dirname = _nl_default_dirname; dirname = INTUSE(_nl_default_dirname);
else else
{ {
if (strcmp (dirname, _nl_default_dirname) == 0) if (strcmp (dirname, INTUSE(_nl_default_dirname)) == 0)
dirname = _nl_default_dirname; dirname = INTUSE(_nl_default_dirname);
else else
{ {
char *result; char *result;
@ -266,7 +271,7 @@ set_binding_values (domainname, dirnamep, codesetp)
} }
else else
/* The default value. */ /* The default value. */
new_binding->dirname = (char *) _nl_default_dirname; new_binding->dirname = (char *) INTUSE(_nl_default_dirname);
new_binding->codeset_cntr = 0; new_binding->codeset_cntr = 0;
@ -322,7 +327,7 @@ set_binding_values (domainname, dirnamep, codesetp)
if (0) if (0)
{ {
failed_codeset: failed_codeset:
if (new_binding->dirname != _nl_default_dirname) if (new_binding->dirname != INTUSE(_nl_default_dirname))
free (new_binding->dirname); free (new_binding->dirname);
failed_dirname: failed_dirname:
free (new_binding); free (new_binding);

View File

@ -236,6 +236,13 @@ transcmp (p1, p2)
} }
#endif #endif
#ifndef INTVARDEF
# define INTVARDEF
#endif
#ifndef INTUSE
# define INTUSE(name) name
#endif
/* Name of the default domain used for gettext(3) prior any call to /* Name of the default domain used for gettext(3) prior any call to
textdomain(3). The default value for this is "messages". */ textdomain(3). The default value for this is "messages". */
const char _nl_default_default_domain[] attribute_hidden = "messages"; const char _nl_default_default_domain[] attribute_hidden = "messages";
@ -246,6 +253,7 @@ const char *_nl_current_default_domain attribute_hidden
/* Contains the default location of the message catalogs. */ /* Contains the default location of the message catalogs. */
const char _nl_default_dirname[] = LOCALEDIR; const char _nl_default_dirname[] = LOCALEDIR;
INTVARDEF (_nl_default_dirname)
/* List with bindings of specific domains created by bindtextdomain() /* List with bindings of specific domains created by bindtextdomain()
calls. */ calls. */
@ -439,7 +447,7 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)
} }
if (binding == NULL) if (binding == NULL)
dirname = (char *) _nl_default_dirname; dirname = (char *) INTUSE(_nl_default_dirname);
else if (binding->dirname[0] == '/') else if (binding->dirname[0] == '/')
dirname = binding->dirname; dirname = binding->dirname;
else else
@ -1109,7 +1117,7 @@ free_mem (void)
{ {
struct binding *oldp = _nl_domain_bindings; struct binding *oldp = _nl_domain_bindings;
_nl_domain_bindings = _nl_domain_bindings->next; _nl_domain_bindings = _nl_domain_bindings->next;
if (oldp->dirname != _nl_default_dirname) if (oldp->dirname != INTUSE(_nl_default_dirname))
/* Yes, this is a pointer comparison. */ /* Yes, this is a pointer comparison. */
free (oldp->dirname); free (oldp->dirname);
free (oldp->codeset); free (oldp->codeset);

View File

@ -450,7 +450,7 @@ _IO_file_setbuf_mmap (fp, p, len)
_IO_FILE *result; _IO_FILE *result;
/* Change the function table. */ /* Change the function table. */
_IO_JUMPS ((struct _IO_FILE_plus *) fp) = &_IO_file_jumps; _IO_JUMPS ((struct _IO_FILE_plus *) fp) = &INTUSE(_IO_file_jumps);
fp->_wide_data->_wide_vtable = &_IO_wfile_jumps; fp->_wide_data->_wide_vtable = &_IO_wfile_jumps;
/* And perform the normal operation. */ /* And perform the normal operation. */
@ -693,7 +693,7 @@ mmap_remap_check (_IO_FILE *fp)
fp->_IO_buf_base = fp->_IO_buf_end = NULL; fp->_IO_buf_base = fp->_IO_buf_end = NULL;
_IO_setg (fp, NULL, NULL, NULL); _IO_setg (fp, NULL, NULL, NULL);
if (fp->_mode <= 0) if (fp->_mode <= 0)
_IO_JUMPS ((struct _IO_FILE_plus *) fp) = &_IO_file_jumps; _IO_JUMPS ((struct _IO_FILE_plus *) fp) = &INTUSE(_IO_file_jumps);
else else
_IO_JUMPS ((struct _IO_FILE_plus *) fp) = &_IO_wfile_jumps; _IO_JUMPS ((struct _IO_FILE_plus *) fp) = &_IO_wfile_jumps;
fp->_wide_data->_wide_vtable = &_IO_wfile_jumps; fp->_wide_data->_wide_vtable = &_IO_wfile_jumps;
@ -786,7 +786,7 @@ decide_maybe_mmap (_IO_FILE *fp)
/* We couldn't use mmap, so revert to the vanilla file operations. */ /* We couldn't use mmap, so revert to the vanilla file operations. */
if (fp->_mode <= 0) if (fp->_mode <= 0)
_IO_JUMPS ((struct _IO_FILE_plus *) fp) = &_IO_file_jumps; _IO_JUMPS ((struct _IO_FILE_plus *) fp) = &INTUSE(_IO_file_jumps);
else else
_IO_JUMPS ((struct _IO_FILE_plus *) fp) = &_IO_wfile_jumps; _IO_JUMPS ((struct _IO_FILE_plus *) fp) = &_IO_wfile_jumps;
fp->_wide_data->_wide_vtable = &_IO_wfile_jumps; fp->_wide_data->_wide_vtable = &_IO_wfile_jumps;

View File

@ -925,7 +925,7 @@ struct _IO_jump_t _IO_wfile_jumps_maybe_mmap =
JUMP_INIT(read, INTUSE(_IO_file_read)), JUMP_INIT(read, INTUSE(_IO_file_read)),
JUMP_INIT(write, _IO_new_file_write), JUMP_INIT(write, _IO_new_file_write),
JUMP_INIT(seek, INTUSE(_IO_file_seek)), JUMP_INIT(seek, INTUSE(_IO_file_seek)),
JUMP_INIT(close, _IO_file_close), JUMP_INIT(close, INTUSE(_IO_file_close)),
JUMP_INIT(stat, INTUSE(_IO_file_stat)), JUMP_INIT(stat, INTUSE(_IO_file_stat)),
JUMP_INIT(showmanyc, _IO_default_showmanyc), JUMP_INIT(showmanyc, _IO_default_showmanyc),
JUMP_INIT(imbue, _IO_default_imbue) JUMP_INIT(imbue, _IO_default_imbue)

View File

@ -36,11 +36,8 @@
#ifdef _LIBC #ifdef _LIBC
# include <libc-internal.h> # include <libc-internal.h>
#endif
#ifdef USE_IN_LIBIO
# include <libio/iolibio.h> # include <libio/iolibio.h>
# define fopen(f, n) _IO_fopen64 (f, n)
# define setvbuf(s, b, f, l) INTUSE(_IO_setvbuf) (s, b, f, l) # define setvbuf(s, b, f, l) INTUSE(_IO_setvbuf) (s, b, f, l)
# define fwrite(buf, size, count, fp) _IO_fwrite (buf, size, count, fp) # define fwrite(buf, size, count, fp) _IO_fwrite (buf, size, count, fp)
#endif #endif

View File

@ -475,9 +475,8 @@ _obstack_memory_used (h)
# define _(Str) (Str) # define _(Str) (Str)
# endif # endif
# endif # endif
# if defined _LIBC && defined USE_IN_LIBIO # ifdef _LIBC
# include <libio/iolibio.h> # include <libio/iolibio.h>
# define fputs(s, f) _IO_fputs (s, f)
# endif # endif
# ifndef __attribute__ # ifndef __attribute__

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991,1992,1995,1996,1997,2001 Free Software Foundation, Inc. /* Copyright (C) 1991,1992,1995-1997,2001,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -31,6 +31,7 @@
/* Defined in sys_siglist.c. */ /* Defined in sys_siglist.c. */
extern const char *const _sys_siglist[]; extern const char *const _sys_siglist[];
extern const char *const _sys_siglist_internal[] attribute_hidden;
/* Print out on stderr a line consisting of the test in S, a colon, a space, /* Print out on stderr a line consisting of the test in S, a colon, a space,
@ -46,7 +47,7 @@ psignal (int sig, const char *s)
else else
colon = ": "; colon = ": ";
if (sig >= 0 && sig < NSIG && (desc = _sys_siglist[sig]) != NULL) if (sig >= 0 && sig < NSIG && (desc = INTUSE(_sys_siglist)[sig]) != NULL)
{ {
#ifdef USE_IN_LIBIO #ifdef USE_IN_LIBIO
if (_IO_fwide (stderr, 0) > 0) if (_IO_fwide (stderr, 0) > 0)

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1994-2000, 2001 Free Software Foundation, Inc. /* Copyright (C) 1991, 1994-2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -30,6 +30,7 @@
/* Defined in siglist.c. */ /* Defined in siglist.c. */
extern const char *const _sys_siglist[]; extern const char *const _sys_siglist[];
extern const char *const _sys_siglist_internal[] attribute_hidden;
static __libc_key_t key; static __libc_key_t key;
/* If nonzero the key allocation failed and we should better use a /* If nonzero the key allocation failed and we should better use a
@ -58,7 +59,8 @@ strsignal (int signum)
#ifdef SIGRTMIN #ifdef SIGRTMIN
(signum >= SIGRTMIN && signum <= SIGRTMAX) || (signum >= SIGRTMIN && signum <= SIGRTMAX) ||
#endif #endif
signum < 0 || signum >= NSIG || (desc = _sys_siglist[signum]) == NULL) signum < 0 || signum >= NSIG
|| (desc = INTUSE(_sys_siglist)[signum]) == NULL)
{ {
char *buffer = getbuffer (); char *buffer = getbuffer ();
int len; int len;

View File

@ -45,7 +45,6 @@ static char sccsid[] = "@(#)clnt_perror.c 1.15 87/10/07 Copyr 1984 Sun Micro";
#ifdef USE_IN_LIBIO #ifdef USE_IN_LIBIO
# include <wchar.h> # include <wchar.h>
# include <libio/iolibio.h> # include <libio/iolibio.h>
# define fputs(s, f) INTUSE(_IO_fputs) (s, f)
#endif #endif
static char *auth_errmsg (enum auth_stat stat) internal_function; static char *auth_errmsg (enum auth_stat stat) internal_function;

View File

@ -50,7 +50,6 @@ static char sccsid[] = "@(#)svc_simple.c 1.18 87/08/11 Copyr 1984 Sun Micro";
#ifdef USE_IN_LIBIO #ifdef USE_IN_LIBIO
# include <wchar.h> # include <wchar.h>
# include <libio/iolibio.h> # include <libio/iolibio.h>
# define fputs(s, f) INTUSE(_IO_fputs) (s, f)
#endif #endif
struct proglst_ struct proglst_

View File

@ -54,7 +54,6 @@ static char sccsid[] = "@(#)svc_tcp.c 1.21 87/08/11 Copyr 1984 Sun Micro";
#ifdef USE_IN_LIBIO #ifdef USE_IN_LIBIO
# include <wchar.h> # include <wchar.h>
# include <libio/iolibio.h> # include <libio/iolibio.h>
# define fputs(s, f) INTUSE(_IO_fputs) (s, f)
#endif #endif
/* /*

View File

@ -54,7 +54,6 @@ static char sccsid[] = "@(#)svc_udp.c 1.24 87/08/11 Copyr 1984 Sun Micro";
#ifdef USE_IN_LIBIO #ifdef USE_IN_LIBIO
# include <wchar.h> # include <wchar.h>
# include <libio/iolibio.h> # include <libio/iolibio.h>
# define fputs(s, f) INTUSE(_IO_fputs) (s, f)
#endif #endif
#define rpc_buffer(xprt) ((xprt)->xp_p1) #define rpc_buffer(xprt) ((xprt)->xp_p1)

View File

@ -53,7 +53,6 @@
#ifdef USE_IN_LIBIO #ifdef USE_IN_LIBIO
# include <wchar.h> # include <wchar.h>
# include <libio/iolibio.h> # include <libio/iolibio.h>
# define fputs(s, f) INTUSE(_IO_fputs) (s, f)
#endif #endif
static bool_t xdrrec_getlong (XDR *, long *); static bool_t xdrrec_getlong (XDR *, long *);

View File

@ -49,7 +49,6 @@ static char sccsid[] = "@(#)xdr_reference.c 1.11 87/08/11 SMI";
#ifdef USE_IN_LIBIO #ifdef USE_IN_LIBIO
# include <wchar.h> # include <wchar.h>
# include <libio/iolibio.h> # include <libio/iolibio.h>
# define fputs(s, f) INTUSE(_IO_fputs) (s, f)
#endif #endif
#define LASTUNSIGNED ((u_int)0-1) #define LASTUNSIGNED ((u_int)0-1)

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 92, 93, 94, 95, 97 Free Software Foundation, Inc. /* Copyright (C) 1991, 92, 93, 94, 95, 97, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -30,6 +30,7 @@
systems with potentially hostile include files. */ systems with potentially hostile include files. */
#include <stddef.h> #include <stddef.h>
#include <stdlib.h>
extern __malloc_ptr_t __sbrk __P ((ptrdiff_t increment)); extern __malloc_ptr_t __sbrk __P ((ptrdiff_t increment));
libc_hidden_proto (__sbrk) libc_hidden_proto (__sbrk)
#endif #endif

View File

@ -1,5 +1,5 @@
/* Define list of all signal numbers and their names. /* Define list of all signal numbers and their names.
Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -27,6 +27,7 @@ const char *const _sys_siglist[NSIG] =
#include <siglist.h> #include <siglist.h>
#undef init_sig #undef init_sig
}; };
strong_alias (_sys_siglist, _sys_siglist_internal)
const char *const _sys_sigabbrev[NSIG] = const char *const _sys_sigabbrev[NSIG] =

View File

@ -1,5 +1,5 @@
/* Define list of all signal numbers and their names. /* Define list of all signal numbers and their names.
Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc. Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -42,6 +42,7 @@ const char *const __new_sys_siglist[NSIG] =
#include <siglist.h> #include <siglist.h>
#undef init_sig #undef init_sig
}; };
strong_alias (__new_sys_siglist, _sys_siglist_internal)
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1) #if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
asm (".type __old_sys_siglist,@object\n\t.size __old_sys_siglist," asm (".type __old_sys_siglist,@object\n\t.size __old_sys_siglist,"

View File

@ -539,7 +539,8 @@ gaih_inet (const char *name, const struct gaih_service *service,
{ {
at->family = AF_INET6; at->family = AF_INET6;
if ((req->ai_flags & AI_PASSIVE) == 0) if ((req->ai_flags & AI_PASSIVE) == 0)
memcpy (at->addr, &in6addr_loopback, sizeof (struct in6_addr)); memcpy (at->addr, &INTUSE(in6addr_loopback),
sizeof (struct in6_addr));
atr = at->next; atr = at->next;
} }

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. /* Copyright (C) 1996, 1997, 1998, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -57,5 +57,6 @@ const char *const _sys_siglist[] =
N_("User defined signal 2"), N_("User defined signal 2"),
NULL NULL
}; };
strong_alias (_sys_siglist, _sys_siglist_internal)
weak_alias (_sys_siglist, sys_siglist) weak_alias (_sys_siglist, sys_siglist)

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc. /* Copyright (C) 1997, 1998, 2000, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -32,6 +32,7 @@ const char *const __new_sys_siglist[NSIG] =
#include "siglist.h" #include "siglist.h"
#undef init_sig #undef init_sig
}; };
strong_alias (__new_sys_siglist, _sys_siglist_internal)
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1) #if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
asm (".type __old_sys_siglist,%object;.size __old_sys_siglist," asm (".type __old_sys_siglist,%object;.size __old_sys_siglist,"

View File

@ -1,5 +1,5 @@
/* Convert `time_t' to `struct tm' in UTC. /* Convert `time_t' to `struct tm' in UTC.
Copyright (C) 1991, 93, 95, 96, 97, 98 Free Software Foundation, Inc. Copyright (C) 1991, 93, 95, 96, 97, 98, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -28,6 +28,7 @@ __gmtime_r (t, tp)
{ {
return __tz_convert (t, 0, tp); return __tz_convert (t, 0, tp);
} }
libc_hidden_def (__gmtime_r)
weak_alias (__gmtime_r, gmtime_r) weak_alias (__gmtime_r, gmtime_r)