Update.
* elf/dl-reloc.c (_dl_reloc_bad_type): Sync messages with plt argument. * sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Handle R_SPARC_UA64. * sysdeps/unix/sysv/linux/sparc/sparc64/time.c: New file. 2000-05-10 Jakub Jelinek <jakub@redhat.com>
This commit is contained in:
parent
5d693ae3e5
commit
b227a3a6ad
@ -1,3 +1,11 @@
|
||||
2000-05-10 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* elf/dl-reloc.c (_dl_reloc_bad_type): Sync messages with plt
|
||||
argument.
|
||||
* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Handle
|
||||
R_SPARC_UA64.
|
||||
* sysdeps/unix/sysv/linux/sparc/sparc64/time.c: New file.
|
||||
|
||||
2000-05-10 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* elf/dl-reloc.c (_dl_reloc_bad_type): Write type into the message
|
||||
|
@ -157,14 +157,14 @@ _dl_reloc_bad_type (struct link_map *map, uint_fast8_t type, int plt)
|
||||
extern const char _itoa_lower_digits[];
|
||||
if (plt)
|
||||
{
|
||||
char msg[] = "unexpected reloc type 0x??";
|
||||
char msg[] = "unexpected PLT reloc type 0x??";
|
||||
msg[sizeof msg - 3] = DIGIT(type >> 4);
|
||||
msg[sizeof msg - 2] = DIGIT(type);
|
||||
_dl_signal_error (0, map->l_name, msg);
|
||||
}
|
||||
else
|
||||
{
|
||||
char msg[] = "unexpected PLT reloc type 0x??";
|
||||
char msg[] = "unexpected reloc type 0x??";
|
||||
msg[sizeof msg - 3] = DIGIT(type >> 4);
|
||||
msg[sizeof msg - 2] = DIGIT(type);
|
||||
_dl_signal_error (0, map->l_name, msg);
|
||||
|
@ -316,6 +316,24 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
|
||||
elf_machine_fixup_plt(map, NULL, reloc, reloc_addr, value);
|
||||
break;
|
||||
|
||||
case R_SPARC_UA64:
|
||||
if (! ((long) reloc_addr & 3))
|
||||
{
|
||||
/* Common in .eh_frame */
|
||||
((unsigned int *) reloc_addr) [0] = value >> 32;
|
||||
((unsigned int *) reloc_addr) [1] = value;
|
||||
break;
|
||||
}
|
||||
((unsigned char *) reloc_addr) [0] = value >> 56;
|
||||
((unsigned char *) reloc_addr) [1] = value >> 48;
|
||||
((unsigned char *) reloc_addr) [2] = value >> 40;
|
||||
((unsigned char *) reloc_addr) [3] = value >> 32;
|
||||
((unsigned char *) reloc_addr) [4] = value >> 24;
|
||||
((unsigned char *) reloc_addr) [5] = value >> 16;
|
||||
((unsigned char *) reloc_addr) [6] = value >> 8;
|
||||
((unsigned char *) reloc_addr) [7] = value;
|
||||
break;
|
||||
|
||||
default:
|
||||
_dl_reloc_bad_type (map, ELFW(R_TYPE) (reloc->r_info), 0);
|
||||
break;
|
||||
|
1
sysdeps/unix/sysv/linux/sparc/sparc64/time.c
Normal file
1
sysdeps/unix/sysv/linux/sparc/sparc64/time.c
Normal file
@ -0,0 +1 @@
|
||||
#include <sysdeps/unix/time.c>
|
Loading…
Reference in New Issue
Block a user