mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-22 10:50:07 +00:00
Update.
2001-04-21 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> * sysdeps/unix/sysv/linux/powerpc/mmap64.c: Correct check for invalid offset. 2001-04-21 Ulrich Drepper <drepper@redhat.com> * posix/getopt.h: Treat __cplusplus like __STDC__. 2001-04-20 John S. Marvin <jsm@fc.hp.com> * sysdeps/unix/sysv/linux/hppa/clone.S: Fix clone system call entry point stub. 2001-04-20 Richard Hirst <rhirst@linuxcare.com> * elf/elf.h: Corrected R_PARISC_DIR14R (should be 6, not 5), and added R_PARISC_DPREL21L and R_PARISC_DPREL14R for modutils. * sysdeps/unix/sysv/linux/hppa/syscalls.list: Removed ptrace entry so the ptrace.c wrapper is used. 2001-04-20 Alan Modra <amodra@one.net.au> * sysdeps/hppa/dl-lookupcfg.h (_dl_function_address): Prototype. (DL_FUNCTION_ADDRESS): Define. (DL_DT_INIT_ADDRESS): Define. (DL_DT_FINI_ADDRESS): Define. * sysdeps/hppa/Versions: Add _dl_function_address. * sysdeps/hppa/dl-machine.h (ELF_MACHINE_START_ADDRESS): Define. * sysdeps/hppa/dl-symaddr.c (_dl_start_address): Rename to _dl_function_address.
This commit is contained in:
parent
5a74e68a52
commit
463468350f
33
ChangeLog
33
ChangeLog
@ -1,3 +1,36 @@
|
|||||||
|
2001-04-21 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/powerpc/mmap64.c: Correct check for invalid
|
||||||
|
offset.
|
||||||
|
|
||||||
|
2001-04-21 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* posix/getopt.h: Treat __cplusplus like __STDC__.
|
||||||
|
|
||||||
|
2001-04-20 John S. Marvin <jsm@fc.hp.com>
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/hppa/clone.S: Fix clone system call
|
||||||
|
entry point stub.
|
||||||
|
|
||||||
|
2001-04-20 Richard Hirst <rhirst@linuxcare.com>
|
||||||
|
|
||||||
|
* elf/elf.h: Corrected R_PARISC_DIR14R (should be 6, not 5),
|
||||||
|
and added R_PARISC_DPREL21L and R_PARISC_DPREL14R for modutils.
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/hppa/syscalls.list: Removed ptrace
|
||||||
|
entry so the ptrace.c wrapper is used.
|
||||||
|
|
||||||
|
2001-04-20 Alan Modra <amodra@one.net.au>
|
||||||
|
|
||||||
|
* sysdeps/hppa/dl-lookupcfg.h (_dl_function_address): Prototype.
|
||||||
|
(DL_FUNCTION_ADDRESS): Define.
|
||||||
|
(DL_DT_INIT_ADDRESS): Define.
|
||||||
|
(DL_DT_FINI_ADDRESS): Define.
|
||||||
|
* sysdeps/hppa/Versions: Add _dl_function_address.
|
||||||
|
* sysdeps/hppa/dl-machine.h (ELF_MACHINE_START_ADDRESS): Define.
|
||||||
|
* sysdeps/hppa/dl-symaddr.c (_dl_start_address): Rename to
|
||||||
|
_dl_function_address.
|
||||||
|
|
||||||
2001-04-21 Andreas Jaeger <aj@suse.de>
|
2001-04-21 Andreas Jaeger <aj@suse.de>
|
||||||
|
|
||||||
* rt/aio_misc.c (handle_fildes_io): Add noreturn attribute.
|
* rt/aio_misc.c (handle_fildes_io): Add noreturn attribute.
|
||||||
|
@ -1537,12 +1537,14 @@ typedef Elf32_Addr Elf32_Conflict;
|
|||||||
#define R_PARISC_DIR21L 2 /* Left 21 bits of eff. address. */
|
#define R_PARISC_DIR21L 2 /* Left 21 bits of eff. address. */
|
||||||
#define R_PARISC_DIR17R 3 /* Right 17 bits of eff. address. */
|
#define R_PARISC_DIR17R 3 /* Right 17 bits of eff. address. */
|
||||||
#define R_PARISC_DIR17F 4 /* 17 bits of eff. address. */
|
#define R_PARISC_DIR17F 4 /* 17 bits of eff. address. */
|
||||||
#define R_PARISC_DIR14R 5 /* Right 14 bits of eff. address. */
|
#define R_PARISC_DIR14R 6 /* Right 14 bits of eff. address. */
|
||||||
#define R_PARISC_PCREL32 9 /* 32-bit rel. address. */
|
#define R_PARISC_PCREL32 9 /* 32-bit rel. address. */
|
||||||
#define R_PARISC_PCREL21L 10 /* Left 21 bits of rel. address. */
|
#define R_PARISC_PCREL21L 10 /* Left 21 bits of rel. address. */
|
||||||
#define R_PARISC_PCREL17R 11 /* Right 17 bits of rel. address. */
|
#define R_PARISC_PCREL17R 11 /* Right 17 bits of rel. address. */
|
||||||
#define R_PARISC_PCREL17F 12 /* 17 bits of rel. address. */
|
#define R_PARISC_PCREL17F 12 /* 17 bits of rel. address. */
|
||||||
#define R_PARISC_PCREL14R 14 /* Right 14 bits of rel. address. */
|
#define R_PARISC_PCREL14R 14 /* Right 14 bits of rel. address. */
|
||||||
|
#define R_PARISC_DPREL21L 18 /* Left 21 bits of rel. address. */
|
||||||
|
#define R_PARISC_DPREL14R 22 /* Right 14 bits of rel. address. */
|
||||||
#define R_PARISC_GPREL21L 26 /* GP-relative, left 21 bits. */
|
#define R_PARISC_GPREL21L 26 /* GP-relative, left 21 bits. */
|
||||||
#define R_PARISC_GPREL14R 30 /* GP-relative, right 14 bits. */
|
#define R_PARISC_GPREL14R 30 /* GP-relative, right 14 bits. */
|
||||||
#define R_PARISC_LTOFF21L 34 /* LT-relative, left 21 bits. */
|
#define R_PARISC_LTOFF21L 34 /* LT-relative, left 21 bits. */
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Declarations for getopt.
|
/* Declarations for getopt.
|
||||||
Copyright (C) 1989,90,91,92,93,94,96,97,98,99 Free Software Foundation, Inc.
|
Copyright (C) 1989-1994, 1996-1999, 2001 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -93,7 +93,7 @@ extern int optopt;
|
|||||||
|
|
||||||
struct option
|
struct option
|
||||||
{
|
{
|
||||||
# if defined __STDC__ && __STDC__
|
# if (defined __STDC__ && __STDC__) || defined __cplusplus
|
||||||
const char *name;
|
const char *name;
|
||||||
# else
|
# else
|
||||||
char *name;
|
char *name;
|
||||||
@ -137,7 +137,7 @@ struct option
|
|||||||
arguments to the option '\0'. This behavior is specific to the GNU
|
arguments to the option '\0'. This behavior is specific to the GNU
|
||||||
`getopt'. */
|
`getopt'. */
|
||||||
|
|
||||||
#if defined __STDC__ && __STDC__
|
#if (defined __STDC__ && __STDC__) || defined __cplusplus
|
||||||
# ifdef __GNU_LIBRARY__
|
# ifdef __GNU_LIBRARY__
|
||||||
/* Many other libraries have conflicting prototypes for getopt, with
|
/* Many other libraries have conflicting prototypes for getopt, with
|
||||||
differences in the consts, in stdlib.h. To avoid compilation
|
differences in the consts, in stdlib.h. To avoid compilation
|
||||||
|
@ -2,5 +2,6 @@ ld {
|
|||||||
GLIBC_2.2 {
|
GLIBC_2.2 {
|
||||||
# hppa specific functions in the dynamic linker, but used by libc.so.
|
# hppa specific functions in the dynamic linker, but used by libc.so.
|
||||||
_dl_symbol_address; _dl_unmap; _dl_lookup_address;
|
_dl_symbol_address; _dl_unmap; _dl_lookup_address;
|
||||||
|
_dl_function_address;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,3 +34,16 @@ Elf32_Addr _dl_lookup_address (const void *address);
|
|||||||
void _dl_unmap (struct link_map *map);
|
void _dl_unmap (struct link_map *map);
|
||||||
|
|
||||||
#define DL_UNMAP(map) _dl_unmap (map)
|
#define DL_UNMAP(map) _dl_unmap (map)
|
||||||
|
|
||||||
|
extern Elf32_Addr _dl_function_address (const struct link_map *map,
|
||||||
|
Elf32_Addr start);
|
||||||
|
|
||||||
|
#define DL_FUNCTION_ADDRESS(map, addr) _dl_function_address (map, addr)
|
||||||
|
|
||||||
|
/* The test for "addr & 2" below is to accomodate old binaries which
|
||||||
|
violated the ELF ABI by pointing DT_INIT and DT_FINI at a function
|
||||||
|
pointer. */
|
||||||
|
#define DL_DT_INIT_ADDRESS(map, addr) \
|
||||||
|
((Elf32_Addr)(addr) & 2 ? (addr) : DL_FUNCTION_ADDRESS (map, addr))
|
||||||
|
#define DL_DT_FINI_ADDRESS(map, addr) \
|
||||||
|
((Elf32_Addr)(addr) & 2 ? (addr) : DL_FUNCTION_ADDRESS (map, addr))
|
||||||
|
@ -448,6 +448,10 @@ __dl_fini_plabel:
|
|||||||
/* We only use RELA. */
|
/* We only use RELA. */
|
||||||
#define ELF_MACHINE_NO_REL 1
|
#define ELF_MACHINE_NO_REL 1
|
||||||
|
|
||||||
|
/* Return the address of the entry point. */
|
||||||
|
#define ELF_MACHINE_START_ADDRESS(map, start) \
|
||||||
|
DL_FUNCTION_ADDRESS (map, start)
|
||||||
|
|
||||||
#endif /* !dl_machine_h */
|
#endif /* !dl_machine_h */
|
||||||
|
|
||||||
/* These are only actually used where RESOLVE_MAP is defined, anyway. */
|
/* These are only actually used where RESOLVE_MAP is defined, anyway. */
|
||||||
|
@ -33,7 +33,7 @@ _dl_symbol_address (const struct link_map *map, const ElfW(Sym) *ref)
|
|||||||
}
|
}
|
||||||
|
|
||||||
ElfW(Addr)
|
ElfW(Addr)
|
||||||
_dl_start_address (const struct link_map *map, ElfW(Addr) start)
|
_dl_function_address (const struct link_map *map, ElfW(Addr) start)
|
||||||
{
|
{
|
||||||
return __hppa_make_fptr (map, start, &__fptr_root, NULL);
|
return __hppa_make_fptr (map, start, &__fptr_root, NULL);
|
||||||
}
|
}
|
||||||
|
@ -33,18 +33,18 @@ ENTRY(__clone)
|
|||||||
/* FIXME: I have no idea how profiling works on hppa. */
|
/* FIXME: I have no idea how profiling works on hppa. */
|
||||||
|
|
||||||
/* Sanity check arguments. */
|
/* Sanity check arguments. */
|
||||||
comib,<> 0,%arg0,.Lerror /* no NULL function pointers */
|
comib,= 0,%arg0,.Lerror /* no NULL function pointers */
|
||||||
ldi EINVAL,%ret0
|
ldi -EINVAL,%ret0
|
||||||
comib,<> 0,%arg1,.Lerror /* no NULL stack pointers */
|
comib,= 0,%arg1,.Lerror /* no NULL stack pointers */
|
||||||
nop
|
nop
|
||||||
|
|
||||||
/* Save the fn ptr and arg on the new stack. */
|
/* Save the fn ptr and arg on the new stack. */
|
||||||
stwm %arg3,64(%arg1)
|
stwm %arg0,64(%arg1)
|
||||||
stw %arg3,-60(%arg1)
|
stw %arg3,-60(%arg1)
|
||||||
|
|
||||||
/* Do the system call */
|
/* Do the system call */
|
||||||
copy %arg2,%arg0
|
copy %arg2,%arg0
|
||||||
ble 0x100(%sr7,%r0)
|
ble 0x100(%sr2,%r0)
|
||||||
ldi __NR_clone,%r20
|
ldi __NR_clone,%r20
|
||||||
|
|
||||||
ldi -4096,%r1
|
ldi -4096,%r1
|
||||||
@ -60,12 +60,12 @@ ENTRY(__clone)
|
|||||||
/* Something bad happened -- no child created */
|
/* Something bad happened -- no child created */
|
||||||
.Lerror:
|
.Lerror:
|
||||||
b __syscall_error
|
b __syscall_error
|
||||||
nop
|
sub %r0,%ret0,%arg0
|
||||||
|
|
||||||
thread_start:
|
thread_start:
|
||||||
/* Load up the arguments. */
|
/* Load up the arguments. */
|
||||||
ldw -60(%sp),%arg0
|
ldw -60(%sp),%arg0
|
||||||
ldwm -64(%sp),%r22
|
ldw -64(%sp),%r22
|
||||||
|
|
||||||
/* Call the user's function */
|
/* Call the user's function */
|
||||||
bl $$dyncall,%r31
|
bl $$dyncall,%r31
|
||||||
|
@ -32,8 +32,6 @@ shutdown - shutdown i:ii __shutdown shutdown
|
|||||||
socket - socket i:iii __socket socket
|
socket - socket i:iii __socket socket
|
||||||
socketpair - socketpair i:iiif __socketpair socketpair
|
socketpair - socketpair i:iiif __socketpair socketpair
|
||||||
|
|
||||||
ptrace - ptrace 4 __ptrace ptrace
|
|
||||||
|
|
||||||
getresuid - getresuid i:ppp getresuid
|
getresuid - getresuid i:ppp getresuid
|
||||||
getresgid - getresgid i:ppp getresgid
|
getresgid - getresgid i:ppp getresgid
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ static int have_no_mmap2;
|
|||||||
void *
|
void *
|
||||||
__mmap64 (void *addr, size_t len, int prot, int flags, int fd, off64_t offset)
|
__mmap64 (void *addr, size_t len, int prot, int flags, int fd, off64_t offset)
|
||||||
{
|
{
|
||||||
if (! (offset & ((1 << PAGE_SHIFT)-1)))
|
if (offset & ((1 << PAGE_SHIFT)-1))
|
||||||
{
|
{
|
||||||
__set_errno (EINVAL);
|
__set_errno (EINVAL);
|
||||||
return MAP_FAILED;
|
return MAP_FAILED;
|
||||||
|
Loading…
Reference in New Issue
Block a user