1998-08-14 10:08  Ulrich Drepper  <drepper@cygnus.com>

	* manual/texinfo.tex: Update.

1998-08-07  Geoff Keating  <geoffk@ozemail.com.au>

	* sysdeps/powerpc/backtrace.c: New file.

1998-08-14  Philip Blundell  <pb@nexus.co.uk>

	* sysdeps/arm/fpu/setjmp.S: Correct value of R0 before calling
	sigjmp_save.
	* sysdeps/arm/elf/setjmp.S: Obsolete, deleted.

1998-08-11  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makefile (install-symbolic-link): Fix spelling.

1998-08-11  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elf/elf.h (SHT_HIOS): Fix value.

1998-08-10  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* posix/regex.c (WIDE_CHAR_SUPPORT): Don't generate defined as
	part of the expansion, this is undefined by the standard.
This commit is contained in:
Ulrich Drepper 1998-08-15 02:40:04 +00:00
parent 9d141cae00
commit 409dfcea95
8 changed files with 136 additions and 113 deletions

View File

@ -1,3 +1,30 @@
1998-08-14 10:08 Ulrich Drepper <drepper@cygnus.com>
* manual/texinfo.tex: Update.
1998-08-07 Geoff Keating <geoffk@ozemail.com.au>
* sysdeps/powerpc/backtrace.c: New file.
1998-08-14 Philip Blundell <pb@nexus.co.uk>
* sysdeps/arm/fpu/setjmp.S: Correct value of R0 before calling
sigjmp_save.
* sysdeps/arm/elf/setjmp.S: Obsolete, deleted.
1998-08-11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (install-symbolic-link): Fix spelling.
1998-08-11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/elf.h (SHT_HIOS): Fix value.
1998-08-10 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* posix/regex.c (WIDE_CHAR_SUPPORT): Don't generate defined as
part of the expansion, this is undefined by the standard.
1998-08-13 19:41 Ulrich Drepper <drepper@cygnus.com>
* posix/getconf.c: Add support for systems with incomplete confname.h.

View File

@ -90,9 +90,9 @@ install: subdir_install
# Ignore the error if we cannot update /etc/ld.so.cache.
ifeq (no,$(cross-compiling))
ifeq (yes,$(build-shared))
install: install-symblolic-link
.PHONY: install-symblolic-link
install-symblolic-link: subdir_install
install: install-symbolic-link
.PHONY: install-symbolic-link
install-symbolic-link: subdir_install
$(symbolic-link-prog) $(symbolic-link-list)
install:

View File

@ -267,7 +267,7 @@ typedef struct
#define SHT_GNU_verneed 0x6ffffffe /* Version needs section. */
#define SHT_GNU_versym 0x6fffffff /* Version symbol table. */
#define SHT_HISUNW 0x6fffffff /* Sun-specific high bound. */
#define SHT_HIOS 0x60000000 /* End OS-specific type */
#define SHT_HIOS 0x6fffffff /* End OS-specific type */
#define SHT_LOPROC 0x70000000 /* Start of processor-specific */
#define SHT_HIPROC 0x7fffffff /* End of processor-specific */
#define SHT_LOUSER 0x80000000 /* Start of application-specific */

View File

@ -1,5 +1,5 @@
% texinfo.tex -- TeX macros to handle Texinfo files.
% $Id: texinfo.tex,v 2.218 1998/07/22 10:59:56 drepper Exp $
% $Id: texinfo.tex,v 2.219 1998/08/15 02:38:13 drepper Exp $
%
% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98
% Free Software Foundation, Inc.
@ -27,10 +27,10 @@
% reports; you can get the latest version from:
% ftp://ftp.gnu.org/pub/gnu/texinfo.tex
% /home/gd/gnu/doc/texinfo.tex on the GNU machines.
% (and all GNU mirrors, see ftp://ftp.gnu.org/pub/gnu/README.mirrors)
% (and all GNU mirrors, see ftp://ftp.gnu.org/pub/gnu/GNUinfo/FTP)
% ftp://tug.org/tex/texinfo.tex
% ftp://ctan.org/macros/texinfo/texinfo.tex
% (and all CTAN mirrors, finger ctan@tug.org for a list).
% (and all CTAN mirrors, finger ctan@ctan.org for a list).
% The texinfo.tex in the texinfo distribution itself could well be out
% of date, so if that's what you're using, please check.
%
@ -40,7 +40,7 @@
%
% To process a Texinfo manual with TeX, it's most reliable to use the
% texi2dvi shell script that comes with the distribution. For simple
% manuals, you can get away with:
% manuals, however, you can get away with:
% tex foo.texi
% texindex foo.??
% tex foo.texi
@ -58,7 +58,7 @@
% This automatically updates the version number based on RCS.
\def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}}
\deftexinfoversion$Revision: 2.218 $
\deftexinfoversion$Revision: 2.219 $
\message{Loading texinfo package [Version \texinfoversion]:}
% If in a .fmt file, print the version number
@ -959,9 +959,17 @@ where each line of input produces a line of output.}
% @value{foo} gets the text saved in variable foo.
%
\def\value{\begingroup
\catcode`\-=12 \catcode`\_=12 % Allow - and _ in VAR.
\valuexxx}
{
\catcode`\_ = \active
%
% We might end up with active _ or - characters in the argument if
% we're called from @code, as @code{@value{foo-bar_}}. So \let any
% such active characters to their normal equivalents.
\gdef\value{\begingroup
\catcode`\-=12 \catcode`\_=12
\indexbreaks \let_\normalunderscore
\valuexxx}
}
\def\valuexxx#1{\expandablevalue{#1}\endgroup}
% We have this subroutine so that we can handle at least some @value's
@ -1190,8 +1198,8 @@ where each line of input produces a line of output.}
\setfont\ninett\ttshape{9}{1000}
\setfont\ninettsl\ttslshape{10}{900}
\setfont\indrm\rmshape{9}{1000}
\setfont\indit\slshape{9}{1000}
\let\indsl=\indit
\setfont\indit\itshape{9}{1000}
\setfont\indsl\slshape{9}{1000}
\let\indtt=\ninett
\let\indttsl=\ninettsl
\let\indsf=\indrm
@ -1340,13 +1348,14 @@ where each line of input produces a line of output.}
% \smartitalic{ARG} outputs arg in italics, followed by an italic correction
% unless the following character is such as not to need one.
\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi}
\def\smartitalic#1{{\sl #1}\futurelet\next\smartitalicx}
\def\smartslanted#1{{\sl #1}\futurelet\next\smartitalicx}
\def\smartitalic#1{{\it #1}\futurelet\next\smartitalicx}
\let\i=\smartitalic
\let\var=\smartitalic
\let\dfn=\smartitalic
\let\var=\smartslanted
\let\dfn=\smartslanted
\let\emph=\smartitalic
\let\cite=\smartitalic
\let\cite=\smartslanted
\def\b#1{{\bf #1}}
\let\strong=\b
@ -1413,20 +1422,18 @@ where each line of input produces a line of output.}
% and arrange explicitly to hyphenate at a dash.
% -- rms.
{
\catcode`\-=\active
\catcode`\_=\active
\catcode`\|=\active
\global\def\code{\begingroup \catcode`\-=\active \let-\codedash \catcode`\_=\active \let_\codeunder \codex}
% The following is used by \doprintindex to insure that long function names
% wrap around. It is necessary for - and _ to be active before the index is
% read from the file, as \entry parses the arguments long before \code is
% ever called. -- mycroft
% _ is always active; and it shouldn't be \let = to an _ that is a
% subscript character anyway. Then, @cindex @samp{_} (for example)
% fails. --karl
\global\def\indexbreaks{%
\catcode`\-=\active \let-\realdash
}
\catcode`\-=\active
\catcode`\_=\active
%
\global\def\code{\begingroup
\catcode`\-=\active \let-\codedash
\catcode`\_=\active \let_\codeunder
\codex
}
%
% If we end up with any active - characters when handling the index,
% just treat them as a normal -.
\global\def\indexbreaks{\catcode`\-=\active \let-\realdash}
}
\def\realdash{-}

View File

@ -46,12 +46,11 @@
# include <sys/types.h>
#endif
#define WIDE_CHAR_SUPPORT \
defined _LIBC || (HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_BTOWC)
#define WIDE_CHAR_SUPPORT (HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_BTOWC)
/* For platform which support the ISO C amendement 1 functionality we
support user defined character classes. */
#if WIDE_CHAR_SUPPORT
#if defined _LIBC || WIDE_CHAR_SUPPORT
/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. */
# include <wchar.h>
# include <wctype.h>
@ -1719,7 +1718,7 @@ typedef struct
} \
}
#if WIDE_CHAR_SUPPORT
#if defined _LIBC || WIDE_CHAR_SUPPORT
/* The GNU C library provides support for user-defined character classes
and the functions from ISO C amendement 1. */
# ifdef CHARCLASS_NAME_MAX
@ -2223,7 +2222,7 @@ regex_compile (pattern, size, syntax, bufp)
the leading `:' and `[' (but set bits for them). */
if (c == ':' && *p == ']')
{
#if WIDE_CHAR_SUPPORT
#if defined _LIBC || WIDE_CHAR_SUPPORT
boolean is_lower = STREQ (str, "lower");
boolean is_upper = STREQ (str, "upper");
wctype_t wt;

View File

@ -1,76 +0,0 @@
/* setjmp for arm, ELF version.
Copyright (C) 1995, 1996, 1997, 1998 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <sysdep.h>
#define _ASM
#define _SETJMP_H
#include <bits/setjmp.h>
/* We include the BSD entry points here as well but we make
them weak. */
ENTRY (setjmp)
.weak C_SYMBOL_NAME (setjmp)
@ call comes here with
@ lr = return pc
@ r0 = &jump_buf
@ add a second argument into the fray
mov r1, #1
@ call the common code
b __sigsetjmp(PLT)
END (setjmp)
/* Binary compatibility entry point. */
ENTRY (_setjmp)
.weak C_SYMBOL_NAME (_setjmp)
ENTRY (__setjmp)
@ call comes here with
@ lr = return pc
@ r0 = &jump_buf
@ add a second argument into the fray
mov r1, #1
@ fall through to the common code....
ENTRY (__sigsetjmp)
@ save the registers into the jmp_buf....
stmia r0, {r1-r6, sl, fp, sp, lr}
/* Make a tail call to __sigjmp_save; it takes the same args. */
#ifdef PIC
/* We cannot use the PLT, because it requires that sl==r10 be set, but
we can't save and restore our caller's value. Instead, we do an
indirect jump through the GOT, using for the temporary register
ip, which is call-clobbered. */
ldr ip, 1f
add ip, ip, pc
2: @ get the address of __sigjmp_save
ldr r1, 3f
ldr ip, [ip, r1]
@ restore r1
ldr r1, [r0]
@ jump to *__sigjmp_save
mov pc, ip
1: .word _GLOBAL_OFFSET_TABLE_ - 2b - 4
3: .word __sigjmp_save(GOT)
#else
b __sigjmp_save
#endif
END (__sigsetjmp)

View File

@ -30,6 +30,9 @@ ENTRY (__sigsetjmp)
sfmea f4, 4, [r0]!
stmia r0, {v1-v6, sl, fp, sp, lr}
/* Restore pointer to jmp_buf */
sub r0, r0, #48
/* Make a tail call to __sigjmp_save; it takes the same args. */
B PLTJMP(C_SYMBOL_NAME(__sigjmp_save))
END (__setjmp)

View File

@ -0,0 +1,63 @@
/* Return backtrace of current program state.
Copyright (C) 1998 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 Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <execinfo.h>
/* This is the stack layout we see with every stack frame.
Note that every routine is required by the ABI to lay out the stack
like this.
+----------------+ +-----------------+
%r1 -> | %r1 last frame--------> | %r1 last frame--->... --> NULL
| | | |
| (unused) | | return address |
+----------------+ +-----------------+
*/
struct layout
{
struct layout *next;
void *return_address;
};
int
__backtrace (void **array, int size)
{
struct layout *current;
int count;
/* Force gcc to spill LR. */
asm volatile ("" : "=l"(current));
/* Get the address on top-of-stack. */
asm volatile ("lwz %0,0(1)" : "=r"(current));
for ( count = 0;
current != NULL && count < size;
current = current->next, count++)
array[count] = current->return_address;
/* It's possible the second-last stack frame can't return
(that is, it's __libc_start_main), in which case
the CRT startup code will have set its LR to 'NULL'. */
if (count > 0 && array[count-1] == NULL)
count--;
return count;
}
weak_alias (__backtrace, backtrace)