mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
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:
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>
|
1998-06-11 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
* libc.map: Don't export argp's fmtstream handling functions.
|
* libc.map: Don't export argp's fmtstream handling functions.
|
||||||
|
@ -429,14 +429,14 @@ changequote([,])dnl
|
|||||||
done
|
done
|
||||||
|
|
||||||
# Add the default directories.
|
# Add the default directories.
|
||||||
|
default_sysnames=sysdeps/generic
|
||||||
if test "$elf" = yes; then
|
if test "$elf" = yes; then
|
||||||
sysnames="$names sysdeps/generic/elf sysdeps/generic"
|
default_sysnames="sysdeps/generic/elf $default_sysnames"
|
||||||
else
|
|
||||||
sysnames="$names sysdeps/generic"
|
|
||||||
fi
|
fi
|
||||||
|
sysnames="$names $default_sysnames"
|
||||||
AC_SUBST(sysnames)
|
AC_SUBST(sysnames)
|
||||||
# The other names were emitted during the scan.
|
# The other names were emitted during the scan.
|
||||||
AC_MSG_RESULT(sysdeps/generic)
|
AC_MSG_RESULT($default_sysnames)
|
||||||
|
|
||||||
|
|
||||||
### Locate tools.
|
### Locate tools.
|
||||||
|
5
io/fts.c
5
io/fts.c
@ -578,8 +578,11 @@ fts_build(sp, type)
|
|||||||
FTSENT *cur, *tail;
|
FTSENT *cur, *tail;
|
||||||
DIR *dirp;
|
DIR *dirp;
|
||||||
void *adjaddr;
|
void *adjaddr;
|
||||||
int cderrno, descend, len, level, maxlen, nlinks, oflag, saved_errno;
|
int cderrno, descend, len, level, maxlen, nlinks, saved_errno;
|
||||||
char *cp;
|
char *cp;
|
||||||
|
#ifdef DTF_HIDEW
|
||||||
|
int oflag;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Set current node pointer. */
|
/* Set current node pointer. */
|
||||||
cur = sp->fts_cur;
|
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.
|
Copyright (C) 1998 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
||||||
@ -21,14 +21,63 @@
|
|||||||
#include <execinfo.h>
|
#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
|
int
|
||||||
__backtrace (array, size)
|
__backtrace (array, size)
|
||||||
void **array;
|
void **array;
|
||||||
int size;
|
int size;
|
||||||
{
|
{
|
||||||
/* We don't generally have the possibility to determine the stack
|
struct layout *current;
|
||||||
trace. Even gcc's `__builtin_return_address' feature cannot help
|
void *top_frame;
|
||||||
since it requires a constant argument. */
|
void *top_stack;
|
||||||
return 0;
|
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)
|
weak_alias (__backtrace, backtrace)
|
||||||
|
@ -37,7 +37,7 @@ char *
|
|||||||
getenv (name)
|
getenv (name)
|
||||||
const char *name;
|
const char *name;
|
||||||
{
|
{
|
||||||
const size_t len = strlen (name);
|
size_t len = strlen (name);
|
||||||
char **ep;
|
char **ep;
|
||||||
uint16_t name_start;
|
uint16_t name_start;
|
||||||
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
/* @(#)w_exp10.c
|
/* @(#)w_exp10.c
|
||||||
* Conversion to exp10 by Ulrich Drepper <drepper@cygnus.com>.
|
* Conversion to exp10 by Ulrich Drepper <drepper@cygnus.com>.
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ====================================================
|
* ====================================================
|
||||||
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
|
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
|
||||||
|
Reference in New Issue
Block a user