aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog27
-rw-r--r--Makefile6
-rw-r--r--elf/elf.h2
-rw-r--r--manual/texinfo.tex63
-rw-r--r--posix/regex.c9
-rw-r--r--sysdeps/arm/elf/setjmp.S76
-rw-r--r--sysdeps/arm/fpu/setjmp.S3
-rw-r--r--sysdeps/powerpc/backtrace.c63
8 files changed, 136 insertions, 113 deletions
diff --git a/ChangeLog b/ChangeLog
index cb43dc5..967f217 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/Makefile b/Makefile
index b558a25..14355f0 100644
--- a/Makefile
+++ b/Makefile
@@ -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:
diff --git a/elf/elf.h b/elf/elf.h
index e149b6f..cc33624 100644
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -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 */
diff --git a/manual/texinfo.tex b/manual/texinfo.tex
index fada53d..0d6e289 100644
--- a/manual/texinfo.tex
+++ b/manual/texinfo.tex
@@ -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{-}
diff --git a/posix/regex.c b/posix/regex.c
index 0543433..98ff8df 100644
--- a/posix/regex.c
+++ b/posix/regex.c
@@ -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;
diff --git a/sysdeps/arm/elf/setjmp.S b/sysdeps/arm/elf/setjmp.S
deleted file mode 100644
index 51572ca..0000000
--- a/sysdeps/arm/elf/setjmp.S
+++ /dev/null
@@ -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)
diff --git a/sysdeps/arm/fpu/setjmp.S b/sysdeps/arm/fpu/setjmp.S
index 790e756..6ee53c5 100644
--- a/sysdeps/arm/fpu/setjmp.S
+++ b/sysdeps/arm/fpu/setjmp.S
@@ -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)
diff --git a/sysdeps/powerpc/backtrace.c b/sysdeps/powerpc/backtrace.c
new file mode 100644
index 0000000..7d71fbd
--- /dev/null
+++ b/sysdeps/powerpc/backtrace.c
@@ -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)