mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-19 06:23:34 +08:00
100351c3e1
* stdio-common/itowa-digits.c (_itowa_lower_digits): Define as hidden. (_itowa_upper_digits): Likewise. * libio/stdio.c (_IO_stdin, _IO_stdout, _IO_stderr): Define as hidden. * libio/libio.h [_LIBC] (_IO_stdin, _IO_stdout, _IO_stderr): Declare as hidden. * libio/libioP.h: Declare _IO_file_jumps_mmap, _IO_wfile_jumps, _IO_wfile_jumps_mmap, _IO_proc_jumps, _IO_old_proc_jumps, _IO_str_jumps, _IO_wstr_jumps, _IO_file_jumps_internal, _IO_wfile_jumps_internal, and _IO_list_all_internal as hidden. * gmon/gmon.c (__bb_head): Define as hidden. * gmon/bb_exit_func.c (__bb_head): Declare as hidden. * argp/argp-parse.c (_argp_hang): Define as static. * include/libc-symbols.h (_INTVARDEF): Adjust for visibility handling in latest compilers. * inet/in6_addr.c (in6addr_any): Use INTVARDEF not INTDEF to define alias. * libio/fileops.c (_IO_file_jumps): Likewise. * libio/stdfiles.c (_IO_list_all): Likewise. * libio/wfileops.c (_IO_wfile_jumps): Likewise. * malloc/malloc.h: Move __libc_malloc_initialized declaration to include/malloc.h. * include/malloc.h: Add __libc_malloc_initialized declaration here. Mark variable hidden. * malloc/malloc.c: Include <malloc.h> not "malloc.h". * elf/dl-open.c (__libc_argc): Declare as hidden. (__libc_argv): Likewise. * sysdeps/generic/wordexp.c (__libc_argc): Declare as hidden. (__libc_argv): Likewise. * sysdeps/mach/hurd/i386/init-first.c: Define __libc_argc and __libc_argv as hidden. * sysdeps/mach/hurd/mips/init-first.c: Likewise. * sysdeps/mach/hurd/powerpc/init-first.c: Likewise. * sysdeps/unix/sysv/aix/init-first.c: Likewise. * sysdeps/unix/sysv/linux/init-first.c: Likewise.
75 lines
3.1 KiB
C
75 lines
3.1 KiB
C
/* Copyright (C) 1993-1997,1999,2000,2002 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, write to the Free
|
|
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
02111-1307 USA.
|
|
|
|
As a special exception, if you link the code in this file with
|
|
files compiled with a GNU compiler to produce an executable,
|
|
that does not cause the resulting executable to be covered by
|
|
the GNU Lesser General Public License. This exception does not
|
|
however invalidate any other reasons why the executable file
|
|
might be covered by the GNU Lesser General Public License.
|
|
This exception applies to code released by its copyright holders
|
|
in files containing the exception. */
|
|
|
|
|
|
/* This file provides definitions of _IO_stdin, _IO_stdout, and _IO_stderr
|
|
for C code. Compare stdstreams.cc.
|
|
(The difference is that here the vtable field is set to 0,
|
|
so the objects defined are not valid C++ objects. On the other
|
|
hand, we don't need a C++ compiler to build this file.) */
|
|
|
|
#include "libioP.h"
|
|
|
|
#ifdef _IO_MTSAFE_IO
|
|
# if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T
|
|
# define DEF_STDFILE(NAME, FD, CHAIN, FLAGS) \
|
|
static _IO_lock_t _IO_stdfile_##FD##_lock = _IO_lock_initializer; \
|
|
static struct _IO_wide_data _IO_wide_data_##FD \
|
|
= { ._wide_vtable = &INTUSE(_IO_wfile_jumps) }; \
|
|
struct _IO_FILE_plus NAME \
|
|
= {FILEBUF_LITERAL(CHAIN, FLAGS, FD, &_IO_wide_data_##FD), \
|
|
&INTUSE(_IO_file_jumps)};
|
|
# else
|
|
# define DEF_STDFILE(NAME, FD, CHAIN, FLAGS) \
|
|
static _IO_lock_t _IO_stdfile_##FD##_lock = _IO_lock_initializer; \
|
|
struct _IO_FILE_plus NAME \
|
|
= {FILEBUF_LITERAL(CHAIN, FLAGS, FD, NULL), \
|
|
&INTUSE(_IO_file_jumps)};
|
|
# endif
|
|
#else
|
|
# if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T
|
|
# define DEF_STDFILE(NAME, FD, CHAIN, FLAGS) \
|
|
static struct _IO_wide_data _IO_wide_data_##FD \
|
|
= { ._wide_vtable = &INTUSE(_IO_wfile_jumps) }; \
|
|
struct _IO_FILE_plus NAME \
|
|
= {FILEBUF_LITERAL(CHAIN, FLAGS, FD, &_IO_wide_data_##FD), \
|
|
&INTUSE(_IO_file_jumps)};
|
|
# else
|
|
# define DEF_STDFILE(NAME, FD, CHAIN, FLAGS) \
|
|
struct _IO_FILE_plus NAME \
|
|
= {FILEBUF_LITERAL(CHAIN, FLAGS, FD, NULL), \
|
|
&INTUSE(_IO_file_jumps)};
|
|
# endif
|
|
#endif
|
|
|
|
DEF_STDFILE(_IO_2_1_stdin_, 0, 0, _IO_NO_WRITES);
|
|
DEF_STDFILE(_IO_2_1_stdout_, 1, &_IO_2_1_stdin_, _IO_NO_READS);
|
|
DEF_STDFILE(_IO_2_1_stderr_, 2, &_IO_2_1_stdout_, _IO_NO_READS+_IO_UNBUFFERED);
|
|
|
|
struct _IO_FILE_plus *_IO_list_all = &_IO_2_1_stderr_;
|
|
INTVARDEF(_IO_list_all)
|