Update.
1998-06-11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/generic/getenv.c: Fix last change. 1998-06-10 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/generic/backtrace.c: Provide generic implementation. 1998-06-10 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * configure.in: Give visual feedback of the default directories we added. 1998-06-11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * io/fts.c (fts_build): Define oflag only if needed. 1998-06-11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/libm-ieee754/w_exp10.c: Add missing close comment.
This commit is contained in:
parent
b07d03e000
commit
ecdc196cac
21
ChangeLog
21
ChangeLog
@ -1,3 +1,24 @@
|
||||
1998-06-11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||
|
||||
* sysdeps/generic/getenv.c: Fix last change.
|
||||
|
||||
1998-06-10 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||
|
||||
* sysdeps/generic/backtrace.c: Provide generic implementation.
|
||||
|
||||
1998-06-10 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||
|
||||
* configure.in: Give visual feedback of the default directories we
|
||||
added.
|
||||
|
||||
1998-06-11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||
|
||||
* io/fts.c (fts_build): Define oflag only if needed.
|
||||
|
||||
1998-06-11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||
|
||||
* sysdeps/libm-ieee754/w_exp10.c: Add missing close comment.
|
||||
|
||||
1998-06-11 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* libc.map: Don't export argp's fmtstream handling functions.
|
||||
|
@ -429,14 +429,14 @@ changequote([,])dnl
|
||||
done
|
||||
|
||||
# Add the default directories.
|
||||
default_sysnames=sysdeps/generic
|
||||
if test "$elf" = yes; then
|
||||
sysnames="$names sysdeps/generic/elf sysdeps/generic"
|
||||
else
|
||||
sysnames="$names sysdeps/generic"
|
||||
default_sysnames="sysdeps/generic/elf $default_sysnames"
|
||||
fi
|
||||
sysnames="$names $default_sysnames"
|
||||
AC_SUBST(sysnames)
|
||||
# The other names were emitted during the scan.
|
||||
AC_MSG_RESULT(sysdeps/generic)
|
||||
AC_MSG_RESULT($default_sysnames)
|
||||
|
||||
|
||||
### Locate tools.
|
||||
|
5
io/fts.c
5
io/fts.c
@ -578,8 +578,11 @@ fts_build(sp, type)
|
||||
FTSENT *cur, *tail;
|
||||
DIR *dirp;
|
||||
void *adjaddr;
|
||||
int cderrno, descend, len, level, maxlen, nlinks, oflag, saved_errno;
|
||||
int cderrno, descend, len, level, maxlen, nlinks, saved_errno;
|
||||
char *cp;
|
||||
#ifdef DTF_HIDEW
|
||||
int oflag;
|
||||
#endif
|
||||
|
||||
/* Set current node pointer. */
|
||||
cur = sp->fts_cur;
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Return backtrace of current program state.
|
||||
/* Return backtrace of current program state. Generic version.
|
||||
Copyright (C) 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
||||
@ -21,14 +21,63 @@
|
||||
#include <execinfo.h>
|
||||
|
||||
|
||||
/* This is a global variable set at program start time. It marks the
|
||||
highest used stack address. */
|
||||
extern void *__libc_stack_end;
|
||||
|
||||
|
||||
/* This implementation assumes a stack layout that matches the defaults
|
||||
used by gcc's `__builtin_frame_address' and `__builtin_return_address'
|
||||
(FP is the frame pointer register):
|
||||
|
||||
+-----------------+ +-----------------+
|
||||
FP -> | previous FP --------> | previous FP ------>...
|
||||
| | | |
|
||||
| return address | | return address |
|
||||
+-----------------+ +-----------------+
|
||||
|
||||
*/
|
||||
|
||||
/* Get some notion of the current stack. Need not be exactly the top
|
||||
of the stack, just something somewhere in the current frame. */
|
||||
#ifndef CURRENT_STACK_FRAME
|
||||
# define CURRENT_STACK_FRAME ({ char __csf; &__csf; })
|
||||
#endif
|
||||
|
||||
struct layout
|
||||
{
|
||||
struct layout *next;
|
||||
void *return_address;
|
||||
};
|
||||
|
||||
int
|
||||
__backtrace (array, size)
|
||||
void **array;
|
||||
int size;
|
||||
{
|
||||
/* We don't generally have the possibility to determine the stack
|
||||
trace. Even gcc's `__builtin_return_address' feature cannot help
|
||||
since it requires a constant argument. */
|
||||
return 0;
|
||||
struct layout *current;
|
||||
void *top_frame;
|
||||
void *top_stack;
|
||||
int cnt = 0;
|
||||
|
||||
top_frame = __builtin_frame_address (0);
|
||||
top_stack = CURRENT_STACK_FRAME;
|
||||
|
||||
/* We skip the call to this function, it makes no sense to record it. */
|
||||
current = (struct layout *) top_frame;
|
||||
while (cnt < size)
|
||||
{
|
||||
if ((void *) current < top_stack || (void *) current > __libc_stack_end)
|
||||
/* This means the address is out of range. Note that for the
|
||||
toplevel we see a frame pointer with value NULL which clearly is
|
||||
out of range. */
|
||||
break;
|
||||
|
||||
array[cnt++] = current->return_address;
|
||||
|
||||
current = current->next;
|
||||
}
|
||||
|
||||
return cnt;
|
||||
}
|
||||
weak_alias (__backtrace, backtrace)
|
||||
|
@ -37,7 +37,7 @@ char *
|
||||
getenv (name)
|
||||
const char *name;
|
||||
{
|
||||
const size_t len = strlen (name);
|
||||
size_t len = strlen (name);
|
||||
char **ep;
|
||||
uint16_t name_start;
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
/* @(#)w_exp10.c
|
||||
* Conversion to exp10 by Ulrich Drepper <drepper@cygnus.com>.
|
||||
*/
|
||||
|
||||
/*
|
||||
* ====================================================
|
||||
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
|
||||
|
Loading…
x
Reference in New Issue
Block a user