From f5bf21a78027b62197ee88a4813b32b12452316a Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 8 Jan 2003 06:49:39 +0000 Subject: Update. Unify symbols in user namespace exported by libc.so and libc.a. * argp/argp-fmtstream.c: Don't define argp_make_fmtstream, argp_fmtstream_free, and argp_fmtstream_printf. * argp/argp-fs-xinl.c: Don't define argp_fmtstream_putc, argp_fmtstream_puts, argp_fmtstream_write, argp_fmtstream_set_lmargin, argp_fmtstream_set_rmargin, argp_fmtstream_set_wmargin, and argp_fmtstream_point. * gmon/gmon.c: Don't define write_profiling. * libio/genops.c: Don't define _cleanup. * intl/explodename.c (_nl_find_language.c): Mark as static. * intl/loadinfo.h: Remove _nl_find_language prototype. * libio/fileops.c (_IO_file_seekoff_maybe_mmap): Mark as static. * libio/libioP.h: Remove declaration. * libio/iopopen.c (_IO_proc_jumps): Mark as static. * libio/libioP.h: Remove declaration. * sysdeps/generic/unwind-dw2.c: Mark __frame_state_for with STATIC. * sysdeps/generic/framestate.c: Define STATIC before including unwind-dw2.c. --- ChangeLog | 23 ++++++++++++++++++++++ argp/argp-fmtstream.c | 11 ++++++++++- argp/argp-fs-xinl.c | 5 ++++- gmon/gmon.c | 7 +++++++ intl/explodename.c | 6 ++++-- intl/loadinfo.h | 4 +--- libio/fileops.c | 11 ++++------- libio/genops.c | 8 ++------ libio/iopopen.c | 5 +++-- libio/libioP.h | 5 +---- .../unix/sysv/linux/powerpc/powerpc32/Makefile | 3 ++- .../sysv/linux/powerpc/powerpc32/sysdep-cancel.h | 3 +++ sysdeps/generic/framestate.c | 9 ++------- sysdeps/generic/unwind-dw2.c | 16 ++++++++++----- 14 files changed, 77 insertions(+), 39 deletions(-) diff --git a/ChangeLog b/ChangeLog index 877f1dd3e0..f28cc74168 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,28 @@ 2003-01-07 Ulrich Drepper + Unify symbols in user namespace exported by libc.so and libc.a. + * argp/argp-fmtstream.c: Don't define argp_make_fmtstream, + argp_fmtstream_free, and argp_fmtstream_printf. + * argp/argp-fs-xinl.c: Don't define argp_fmtstream_putc, + argp_fmtstream_puts, argp_fmtstream_write, argp_fmtstream_set_lmargin, + argp_fmtstream_set_rmargin, argp_fmtstream_set_wmargin, and + argp_fmtstream_point. + * gmon/gmon.c: Don't define write_profiling. + * libio/genops.c: Don't define _cleanup. + + * intl/explodename.c (_nl_find_language.c): Mark as static. + * intl/loadinfo.h: Remove _nl_find_language prototype. + + * libio/fileops.c (_IO_file_seekoff_maybe_mmap): Mark as static. + * libio/libioP.h: Remove declaration. + + * libio/iopopen.c (_IO_proc_jumps): Mark as static. + * libio/libioP.h: Remove declaration. + + * sysdeps/generic/unwind-dw2.c: Mark __frame_state_for with STATIC. + * sysdeps/generic/framestate.c: Define STATIC before including + unwind-dw2.c. + * time/Versions [GLIBC_2.3.2] (libc): Export strptime_l. 2003-01-06 Philip Blundell diff --git a/argp/argp-fmtstream.c b/argp/argp-fmtstream.c index 6d461aa984..d06ea8453b 100644 --- a/argp/argp-fmtstream.c +++ b/argp/argp-fmtstream.c @@ -1,5 +1,5 @@ /* Word-wrapping and line-truncating streams - Copyright (C) 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc. + Copyright (C) 1997,1998,1999,2001,2002,2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -87,9 +87,12 @@ __argp_make_fmtstream (FILE *stream, return fs; } +#if 0 +/* Not exported. */ #ifdef weak_alias weak_alias (__argp_make_fmtstream, argp_make_fmtstream) #endif +#endif /* Flush FS to its stream, and free it (but don't close the stream). */ void @@ -108,9 +111,12 @@ __argp_fmtstream_free (argp_fmtstream_t fs) free (fs->buf); free (fs); } +#if 0 +/* Not exported. */ #ifdef weak_alias weak_alias (__argp_fmtstream_free, argp_fmtstream_free) #endif +#endif /* Process FS's buffer so that line wrapping is done from POINT_OFFS to the end of its buffer. This code is mostly from glibc stdio/linewrap.c. */ @@ -424,8 +430,11 @@ __argp_fmtstream_printf (struct argp_fmtstream *fs, const char *fmt, ...) return out; } +#if 0 +/* Not exported. */ #ifdef weak_alias weak_alias (__argp_fmtstream_printf, argp_fmtstream_printf) #endif +#endif #endif /* !ARGP_FMTSTREAM_USE_LINEWRAP */ diff --git a/argp/argp-fs-xinl.c b/argp/argp-fs-xinl.c index b61a303e83..21f9bd9f71 100644 --- a/argp/argp-fs-xinl.c +++ b/argp/argp-fs-xinl.c @@ -1,5 +1,5 @@ /* Real definitions for extern inline functions in argp-fmtstream.h - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -27,6 +27,8 @@ #define __OPTIMIZE__ #include "argp-fmtstream.h" +#if 0 +/* Not exported. */ /* Add weak aliases. */ #if _LIBC - 0 && !defined (ARGP_FMTSTREAM_USE_LINEWRAP) && defined (weak_alias) @@ -39,3 +41,4 @@ weak_alias (__argp_fmtstream_set_wmargin, argp_fmtstream_set_wmargin) weak_alias (__argp_fmtstream_point, argp_fmtstream_point) #endif +#endif diff --git a/gmon/gmon.c b/gmon/gmon.c index 72654840fc..889f9ac6a7 100644 --- a/gmon/gmon.c +++ b/gmon/gmon.c @@ -381,7 +381,14 @@ __write_profiling (void) write_gmon (); _gmonparam.state = save; } +#ifndef SHARED +/* This symbol isn't used anywhere in the DSO and it is not exported. + This would normally mean it should be removed to get the same API + in static libraries. But since profiling is special in static libs + anyway we keep it. But not when building the DSO since some + quality assurance tests will otherwise trigger. */ weak_alias (__write_profiling, write_profiling) +#endif void diff --git a/intl/explodename.c b/intl/explodename.c index bfaa5aba53..f7bcfa5ff6 100644 --- a/intl/explodename.c +++ b/intl/explodename.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-1998, 2000, 2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1995-2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1995. @@ -38,7 +38,9 @@ /* @@ end of prolog @@ */ -char * +static char *_nl_find_language PARAMS ((const char *name)); + +static char * _nl_find_language (name) const char *name; { diff --git a/intl/loadinfo.h b/intl/loadinfo.h index 72f1b3e9f1..c2b6971b36 100644 --- a/intl/loadinfo.h +++ b/intl/loadinfo.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1996,1997,1998,1999,2000,2002 Free Software Foundation, Inc. +/* Copyright (C) 1996-2000, 2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -96,6 +96,4 @@ extern int _nl_explode_name PARAMS ((char *name, const char **language, const char **codeset, const char **normalized_codeset)); -extern char *_nl_find_language PARAMS ((const char *name)); - #endif /* loadinfo.h */ diff --git a/libio/fileops.c b/libio/fileops.c index c914e84ce0..5340603476 100644 --- a/libio/fileops.c +++ b/libio/fileops.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1995, 1997-2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1997-2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Per Bothner . @@ -1185,12 +1185,9 @@ _IO_file_seekoff_mmap (fp, offset, dir, mode) return offset; } -_IO_off64_t -_IO_file_seekoff_maybe_mmap (fp, offset, dir, mode) - _IO_FILE *fp; - _IO_off64_t offset; - int dir; - int mode; +static _IO_off64_t +_IO_file_seekoff_maybe_mmap (_IO_FILE *fp, _IO_off64_t offset, int dir, + int mode) { /* We only get here when we haven't tried to read anything yet. So there is nothing more useful for us to do here than just diff --git a/libio/genops.c b/libio/genops.c index 74558807e7..c88a26f5f9 100644 --- a/libio/genops.c +++ b/libio/genops.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993,1995,1997-2001,2002 Free Software Foundation, Inc. +/* Copyright (C) 1993,1995,1997-2002, 2003 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 @@ -1264,10 +1264,6 @@ __io_defs io_defs__; #endif /* TODO */ -#ifdef weak_alias -weak_alias (_IO_cleanup, _cleanup) -#endif - #ifdef text_set_element -text_set_element(__libc_atexit, _cleanup); +text_set_element(__libc_atexit, _IO_cleanup); #endif diff --git a/libio/iopopen.c b/libio/iopopen.c index d6a6f6aa47..80a97f1b64 100644 --- a/libio/iopopen.c +++ b/libio/iopopen.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993,1997-2001,2002 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1997-2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Per Bothner . @@ -104,6 +104,7 @@ struct _IO_proc_file }; typedef struct _IO_proc_file _IO_proc_file; +static struct _IO_jump_t _IO_proc_jumps; static struct _IO_jump_t _IO_wproc_jumps; static struct _IO_proc_file *proc_file_chain; @@ -284,7 +285,7 @@ _IO_new_proc_close (fp) #endif } -struct _IO_jump_t _IO_proc_jumps = { +static struct _IO_jump_t _IO_proc_jumps = { JUMP_INIT_DUMMY, JUMP_INIT(finish, _IO_new_file_finish), JUMP_INIT(overflow, _IO_new_file_overflow), diff --git a/libio/libioP.h b/libio/libioP.h index 760bb1e702..d55bd73902 100644 --- a/libio/libioP.h +++ b/libio/libioP.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1997-2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1997-2002, 2003 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 @@ -457,7 +457,6 @@ extern struct _IO_jump_t _IO_wfile_jumps_mmap attribute_hidden; extern struct _IO_jump_t _IO_wfile_jumps_maybe_mmap attribute_hidden; extern struct _IO_jump_t _IO_old_file_jumps attribute_hidden; extern struct _IO_jump_t _IO_streambuf_jumps; -extern struct _IO_jump_t _IO_proc_jumps attribute_hidden; extern struct _IO_jump_t _IO_old_proc_jumps attribute_hidden; extern struct _IO_jump_t _IO_str_jumps attribute_hidden; extern struct _IO_jump_t _IO_wstr_jumps attribute_hidden; @@ -526,8 +525,6 @@ extern _IO_FILE* _IO_file_setbuf __P ((_IO_FILE *, char *, _IO_ssize_t)); extern _IO_off64_t _IO_file_seekoff __P ((_IO_FILE *, _IO_off64_t, int, int)); extern _IO_off64_t _IO_file_seekoff_mmap __P ((_IO_FILE *, _IO_off64_t, int, int)); -extern _IO_off64_t _IO_file_seekoff_maybe_mmap __P ((_IO_FILE *, _IO_off64_t, - int, int)); extern _IO_size_t _IO_file_xsputn __P ((_IO_FILE *, const void *, _IO_size_t)); extern _IO_size_t _IO_file_xsgetn __P ((_IO_FILE *, void *, _IO_size_t)); extern int _IO_file_stat __P ((_IO_FILE *, void *)); diff --git a/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile b/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile index 57c0e261c0..e98c9bd866 100644 --- a/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile +++ b/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile @@ -1 +1,2 @@ -libpthread-routines += sysdep s_pread64 s_pwrite64 +# pull in __syscall_error routine +libpthread-routines += sysdep diff --git a/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h b/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h index 9a70b64a69..94da65fdb0 100644 --- a/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h +++ b/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h @@ -71,6 +71,9 @@ # define DOCARGS_5 stw 7,36(1); DOCARGS_4 # define UNDOCARGS_5 lwz 7,36(1); UNDOCARGS_4 +# define DOCARGS_6 stw 8,40(1); DOCARGS_5 +# define UNDOCARGS_6 lwz 8,40(1); UNDOCARGS_5 + # ifdef IS_IN_libpthread # define CENABLE bl JUMPTARGET(__pthread_enable_asynccancel) # define CDISABLE bl JUMPTARGET(__pthread_disable_asynccancel) diff --git a/sysdeps/generic/framestate.c b/sysdeps/generic/framestate.c index 31f86034ee..20d9d4596e 100644 --- a/sysdeps/generic/framestate.c +++ b/sysdeps/generic/framestate.c @@ -1,5 +1,5 @@ /* __frame_state_for unwinder helper function wrapper. - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek , 2001. @@ -20,16 +20,11 @@ #include #include +#define STATIC static #define __frame_state_for fallback_frame_state_for #include #undef __frame_state_for -struct frame_state * fallback_frame_state_for (void *, struct frame_state *) -#ifdef _LIBC - attribute_hidden -#endif - ; - typedef struct frame_state * (*framesf)(void *pc, struct frame_state *); struct frame_state *__frame_state_for (void *pc, struct frame_state *frame_state); diff --git a/sysdeps/generic/unwind-dw2.c b/sysdeps/generic/unwind-dw2.c index ca0299468f..3a53156621 100644 --- a/sysdeps/generic/unwind-dw2.c +++ b/sysdeps/generic/unwind-dw2.c @@ -1,5 +1,5 @@ /* DWARF2 exception handling and frame unwind runtime interface routines. - Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 1997,1998,1999,2000,2001,2003 Free Software Foundation, Inc. This file is part of GNU CC. @@ -783,7 +783,7 @@ execute_cfa_program (const unsigned char *insn_ptr, fs->regs.reg[reg].loc.reg = reg2; } break; - + case DW_CFA_remember_state: { struct frame_state_reg_info *new_rs; @@ -852,7 +852,7 @@ execute_cfa_program (const unsigned char *insn_ptr, fs->regs.reg[reg].how = REG_SAVED_OFFSET; fs->regs.reg[reg].loc.offset = offset; break; - + case DW_CFA_def_cfa_sf: insn_ptr = read_uleb128 (insn_ptr, &ptrtmp); fs->cfa_reg = ptrtmp; @@ -971,12 +971,18 @@ typedef struct frame_state char saved[DWARF_FRAME_REGISTERS+1]; } frame_state; +#ifndef STATIC +# define STATIC +#endif + +STATIC struct frame_state * __frame_state_for (void *, struct frame_state *); /* Called from pre-G++ 3.0 __throw to find the registers to restore for a given PC_TARGET. The caller should allocate a local variable of `struct frame_state' and pass its address to STATE_IN. */ +STATIC struct frame_state * __frame_state_for (void *pc_target, struct frame_state *state_in) { @@ -1037,7 +1043,7 @@ uw_update_context_1 (struct _Unwind_Context *context, _Unwind_FrameState *fs) /* Special handling here: Many machines do not use a frame pointer, and track the CFA only through offsets from the stack pointer from one frame to the next. In this case, the stack pointer is never - stored, so it has no saved address in the context. What we do + stored, so it has no saved address in the context. What we do have is the CFA from the previous stack frame. */ if (context->reg[fs->cfa_reg] == NULL) cfa = context->cfa; @@ -1106,7 +1112,7 @@ uw_update_context (struct _Unwind_Context *context, _Unwind_FrameState *fs) /* Fill in CONTEXT for top-of-stack. The only valid registers at this level will be the return address and the CFA. */ - + #define uw_init_context(CONTEXT) \ do { \ /* Do any necessary initialization to access arbitrary stack frames. \ -- cgit 1.4.1