mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-07 06:43:00 +03:00
Update.
2001-04-10 Ulrich Drepper <drepper@redhat.com> * sysdeps/i386/fpu/libm-test-ulps: Add deltas for tgamma to help the lousy AMD FPU. 2001-04-10 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> * sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h: New file. * sysdeps/unix/sysv/linux/powerpc/Dist: Add sys/ptrace.h. * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h: Delete wrong stuff. * sysdeps/unix/sysv/linux/powerpc/sys/procfs.h: Correct typedefs. 2001-04-10 Ulrich Drepper <drepper@redhat.com> * elf/dl-deps.c (_dl_map_object_deps): Provide complete error message. Based on a patch by HJ Lu.
This commit is contained in:
17
ChangeLog
17
ChangeLog
@@ -1,3 +1,20 @@
|
|||||||
|
2001-04-10 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* sysdeps/i386/fpu/libm-test-ulps: Add deltas for tgamma to help
|
||||||
|
the lousy AMD FPU.
|
||||||
|
|
||||||
|
2001-04-10 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h: New file.
|
||||||
|
* sysdeps/unix/sysv/linux/powerpc/Dist: Add sys/ptrace.h.
|
||||||
|
* sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h: Delete wrong stuff.
|
||||||
|
* sysdeps/unix/sysv/linux/powerpc/sys/procfs.h: Correct typedefs.
|
||||||
|
|
||||||
|
2001-04-10 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* elf/dl-deps.c (_dl_map_object_deps): Provide complete error
|
||||||
|
message. Based on a patch by HJ Lu.
|
||||||
|
|
||||||
2001-04-10 Andreas Schwab <schwab@suse.de>
|
2001-04-10 Andreas Schwab <schwab@suse.de>
|
||||||
|
|
||||||
* math/libm-test.inc (csinh_test): Don't require the invalid
|
* math/libm-test.inc (csinh_test): Don't require the invalid
|
||||||
|
@@ -145,6 +145,7 @@ _dl_map_object_deps (struct link_map *map,
|
|||||||
const char *name;
|
const char *name;
|
||||||
int errno_saved;
|
int errno_saved;
|
||||||
int errno_reason;
|
int errno_reason;
|
||||||
|
const char *errstring;
|
||||||
|
|
||||||
auto inline void preload (struct link_map *map);
|
auto inline void preload (struct link_map *map);
|
||||||
|
|
||||||
@@ -198,6 +199,7 @@ _dl_map_object_deps (struct link_map *map,
|
|||||||
alloca means we cannot use recursive function calls. */
|
alloca means we cannot use recursive function calls. */
|
||||||
errno_saved = errno;
|
errno_saved = errno;
|
||||||
errno_reason = 0;
|
errno_reason = 0;
|
||||||
|
errstring = NULL;
|
||||||
errno = 0;
|
errno = 0;
|
||||||
name = NULL;
|
name = NULL;
|
||||||
for (runp = known; runp; )
|
for (runp = known; runp; )
|
||||||
@@ -236,7 +238,6 @@ _dl_map_object_deps (struct link_map *map,
|
|||||||
/* Allocate new entry. */
|
/* Allocate new entry. */
|
||||||
struct list *newp;
|
struct list *newp;
|
||||||
const char *objname;
|
const char *objname;
|
||||||
const char *errstring;
|
|
||||||
|
|
||||||
/* Recognize DSTs. */
|
/* Recognize DSTs. */
|
||||||
name = expand_dst (l, strtab + d->d_un.d_val, 0);
|
name = expand_dst (l, strtab + d->d_un.d_val, 0);
|
||||||
@@ -281,7 +282,6 @@ _dl_map_object_deps (struct link_map *map,
|
|||||||
else if (d->d_tag == DT_AUXILIARY || d->d_tag == DT_FILTER)
|
else if (d->d_tag == DT_AUXILIARY || d->d_tag == DT_FILTER)
|
||||||
{
|
{
|
||||||
const char *objname;
|
const char *objname;
|
||||||
const char *errstring;
|
|
||||||
struct list *newp;
|
struct list *newp;
|
||||||
|
|
||||||
/* Recognize DSTs. */
|
/* Recognize DSTs. */
|
||||||
@@ -307,6 +307,7 @@ _dl_map_object_deps (struct link_map *map,
|
|||||||
assert (errstring != NULL);
|
assert (errstring != NULL);
|
||||||
if (errstring != _dl_out_of_memory)
|
if (errstring != _dl_out_of_memory)
|
||||||
free ((char *) errstring);
|
free ((char *) errstring);
|
||||||
|
errstring = NULL;
|
||||||
|
|
||||||
/* Simply ignore this error and continue the work. */
|
/* Simply ignore this error and continue the work. */
|
||||||
continue;
|
continue;
|
||||||
@@ -581,5 +582,5 @@ out:
|
|||||||
|
|
||||||
if (errno_reason)
|
if (errno_reason)
|
||||||
_dl_signal_error (errno_reason == -1 ? 0 : errno_reason,
|
_dl_signal_error (errno_reason == -1 ? 0 : errno_reason,
|
||||||
name ?: "", N_("cannot load shared object file"));
|
errstring ?: "", N_("cannot load shared object file"));
|
||||||
}
|
}
|
||||||
|
@@ -943,6 +943,9 @@ double: 1
|
|||||||
float: 1
|
float: 1
|
||||||
idouble: 1
|
idouble: 1
|
||||||
ifloat: 1
|
ifloat: 1
|
||||||
|
Test "tgamma (4) == 6":
|
||||||
|
ldouble: 2
|
||||||
|
ildouble: 2
|
||||||
|
|
||||||
# y0
|
# y0
|
||||||
Test "y0 (0.1) == -1.5342386513503668441":
|
Test "y0 (0.1) == -1.5342386513503668441":
|
||||||
|
@@ -5,4 +5,5 @@ kernel_stat.h
|
|||||||
kernel_termios.h
|
kernel_termios.h
|
||||||
oldgetrlimit64.c
|
oldgetrlimit64.c
|
||||||
sys/procfs.h
|
sys/procfs.h
|
||||||
|
sys/ptrace.h
|
||||||
sys/user.h
|
sys/user.h
|
||||||
|
@@ -122,8 +122,8 @@ struct elf_prpsinfo
|
|||||||
typedef void *psaddr_t;
|
typedef void *psaddr_t;
|
||||||
|
|
||||||
/* Register sets. Linux has different names. */
|
/* Register sets. Linux has different names. */
|
||||||
typedef gregset_t prgregset_t;
|
typedef elf_gregset_t prgregset_t;
|
||||||
typedef fpregset_t prfpregset_t;
|
typedef elf_fpregset_t prfpregset_t;
|
||||||
|
|
||||||
/* We don't have any differences between processes and threads,
|
/* We don't have any differences between processes and threads,
|
||||||
therefore habe only ine PID type. */
|
therefore habe only ine PID type. */
|
||||||
|
99
sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
Normal file
99
sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
/* `ptrace' debugger support interface. Linux version.
|
||||||
|
Copyright (C) 2001 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. */
|
||||||
|
|
||||||
|
#ifndef _SYS_PTRACE_H
|
||||||
|
#define _SYS_PTRACE_H 1
|
||||||
|
|
||||||
|
#include <features.h>
|
||||||
|
|
||||||
|
__BEGIN_DECLS
|
||||||
|
|
||||||
|
/* Type of the REQUEST argument to `ptrace.' */
|
||||||
|
enum __ptrace_request
|
||||||
|
{
|
||||||
|
/* Indicate that the process making this request should be traced.
|
||||||
|
All signals received by this process can be intercepted by its
|
||||||
|
parent, and its parent can use the other `ptrace' requests. */
|
||||||
|
PTRACE_TRACEME = 0,
|
||||||
|
#define PT_TRACE_ME PTRACE_TRACEME
|
||||||
|
|
||||||
|
/* Return the word in the process's text space at address ADDR. */
|
||||||
|
PTRACE_PEEKTEXT = 1,
|
||||||
|
#define PT_READ_I PTRACE_PEEKTEXT
|
||||||
|
|
||||||
|
/* Return the word in the process's data space at address ADDR. */
|
||||||
|
PTRACE_PEEKDATA = 2,
|
||||||
|
#define PT_READ_D PTRACE_PEEKDATA
|
||||||
|
|
||||||
|
/* Return the word in the process's user area at offset ADDR. */
|
||||||
|
PTRACE_PEEKUSER = 3,
|
||||||
|
#define PT_READ_U PTRACE_PEEKUSER
|
||||||
|
|
||||||
|
/* Write the word DATA into the process's text space at address ADDR. */
|
||||||
|
PTRACE_POKETEXT = 4,
|
||||||
|
#define PT_WRITE_I PTRACE_POKETEXT
|
||||||
|
|
||||||
|
/* Write the word DATA into the process's data space at address ADDR. */
|
||||||
|
PTRACE_POKEDATA = 5,
|
||||||
|
#define PT_WRITE_D PTRACE_POKEDATA
|
||||||
|
|
||||||
|
/* Write the word DATA into the process's user area at offset ADDR. */
|
||||||
|
PTRACE_POKEUSER = 6,
|
||||||
|
#define PT_WRITE_U PTRACE_POKEUSER
|
||||||
|
|
||||||
|
/* Continue the process. */
|
||||||
|
PTRACE_CONT = 7,
|
||||||
|
#define PT_CONTINUE PTRACE_CONT
|
||||||
|
|
||||||
|
/* Kill the process. */
|
||||||
|
PTRACE_KILL = 8,
|
||||||
|
#define PT_KILL PTRACE_KILL
|
||||||
|
|
||||||
|
/* Single step the process.
|
||||||
|
This is not supported on all machines. */
|
||||||
|
PTRACE_SINGLESTEP = 9,
|
||||||
|
#define PT_STEP PTRACE_SINGLESTEP
|
||||||
|
|
||||||
|
/* Attach to a process that is already running. */
|
||||||
|
PTRACE_ATTACH = 16,
|
||||||
|
#define PT_ATTACH PTRACE_ATTACH
|
||||||
|
|
||||||
|
/* Detach from a process attached to with PTRACE_ATTACH. */
|
||||||
|
PTRACE_DETACH = 17,
|
||||||
|
#define PT_DETACH PTRACE_DETACH
|
||||||
|
|
||||||
|
/* Continue and stop at the next (return from) syscall. */
|
||||||
|
PTRACE_SYSCALL = 24
|
||||||
|
#define PT_SYSCALL PTRACE_SYSCALL
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Perform process tracing functions. REQUEST is one of the values
|
||||||
|
above, and determines the action to be taken.
|
||||||
|
For all requests except PTRACE_TRACEME, PID specifies the process to be
|
||||||
|
traced.
|
||||||
|
|
||||||
|
PID and the other arguments described above for the various requests should
|
||||||
|
appear (those that are used for the particular request) as:
|
||||||
|
pid_t PID, void *ADDR, int DATA, void *ADDR2
|
||||||
|
after REQUEST. */
|
||||||
|
extern long int ptrace (enum __ptrace_request __request, ...) __THROW;
|
||||||
|
|
||||||
|
__END_DECLS
|
||||||
|
|
||||||
|
#endif /* _SYS_PTRACE_H */
|
@@ -28,29 +28,6 @@
|
|||||||
|
|
||||||
typedef struct sigcontext mcontext_t;
|
typedef struct sigcontext mcontext_t;
|
||||||
|
|
||||||
/* We need explicit types for the general and floating-point register
|
|
||||||
sets. */
|
|
||||||
|
|
||||||
/* Type for general register. */
|
|
||||||
typedef int greg_t;
|
|
||||||
|
|
||||||
/* Number of general registers. */
|
|
||||||
#define NGREG 32
|
|
||||||
|
|
||||||
/* Container for all general registers. */
|
|
||||||
typedef greg_t gregset_t[NGREG];
|
|
||||||
|
|
||||||
|
|
||||||
/* Type for general register. */
|
|
||||||
typedef int fpreg_t;
|
|
||||||
|
|
||||||
/* Number of general registers. */
|
|
||||||
#define NFPREG 32
|
|
||||||
|
|
||||||
/* Container for all general registers. */
|
|
||||||
typedef fpreg_t fpregset_t[NFPREG];
|
|
||||||
|
|
||||||
|
|
||||||
/* Userlevel context. */
|
/* Userlevel context. */
|
||||||
typedef struct ucontext
|
typedef struct ucontext
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user