mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-22 13:00:06 +00:00
Update.
2001-02-28 Ulrich Drepper <drepper@redhat.com> * sysdeps/alpha/dl-machine.h (elf_machine_rela): Don't handle relocations which are not in ld.so if RTLD_BOOTSTRAP is defined. * sysdeps/powerpc/dl-machine.c (__process_machine_rela): Fix typo. * elf/dl-misc.c (_dl_debug_vdprintf): Fix type visible on 64-bit machines. * sysdeps/unix/sysv/linux/powerpc/sysdep.h (C_TEXT): Define.
This commit is contained in:
parent
406191784b
commit
7b97934bf9
12
ChangeLog
12
ChangeLog
@ -1,3 +1,15 @@
|
|||||||
|
2001-02-28 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* sysdeps/alpha/dl-machine.h (elf_machine_rela): Don't handle
|
||||||
|
relocations which are not in ld.so if RTLD_BOOTSTRAP is defined.
|
||||||
|
|
||||||
|
* sysdeps/powerpc/dl-machine.c (__process_machine_rela): Fix typo.
|
||||||
|
|
||||||
|
* elf/dl-misc.c (_dl_debug_vdprintf): Fix type visible on 64-bit
|
||||||
|
machines.
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/powerpc/sysdep.h (C_TEXT): Define.
|
||||||
|
|
||||||
2001-02-27 Ulrich Drepper <drepper@redhat.com>
|
2001-02-27 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
* sysdeps/powerpc/elf/libc-start.c: Use new output functions and
|
* sysdeps/powerpc/elf/libc-start.c: Use new output functions and
|
||||||
|
@ -181,7 +181,7 @@ _dl_debug_vdprintf (int fd, int tag_p, const char *fmt, va_list arg)
|
|||||||
different size. */
|
different size. */
|
||||||
#if LONG_MAX != INT_MAX
|
#if LONG_MAX != INT_MAX
|
||||||
unsigned long int num = (long_mod
|
unsigned long int num = (long_mod
|
||||||
? va_arg (arg, unsigned long int);
|
? va_arg (arg, unsigned long int)
|
||||||
: va_arg (arg, unsigned int));
|
: va_arg (arg, unsigned int));
|
||||||
#else
|
#else
|
||||||
unsigned long int num = va_arg (arg, unsigned int);
|
unsigned long int num = va_arg (arg, unsigned int);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Machine-dependent ELF dynamic relocation inline functions. Alpha version.
|
/* Machine-dependent ELF dynamic relocation inline functions. Alpha version.
|
||||||
Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
|
Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Richard Henderson <rth@tamu.edu>.
|
Contributed by Richard Henderson <rth@tamu.edu>.
|
||||||
|
|
||||||
@ -500,8 +500,10 @@ elf_machine_rela (struct link_map *map,
|
|||||||
memcpy (reloc_addr_1, &reloc_addr_val, 8);
|
memcpy (reloc_addr_1, &reloc_addr_val, 8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#ifndef RTLD_BOOTSTRAP
|
||||||
else if (r_type == R_ALPHA_NONE)
|
else if (r_type == R_ALPHA_NONE)
|
||||||
return;
|
return;
|
||||||
|
#endif
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Elf64_Addr loadbase, sym_value;
|
Elf64_Addr loadbase, sym_value;
|
||||||
@ -512,8 +514,9 @@ elf_machine_rela (struct link_map *map,
|
|||||||
|
|
||||||
if (r_type == R_ALPHA_GLOB_DAT)
|
if (r_type == R_ALPHA_GLOB_DAT)
|
||||||
*reloc_addr = sym_value;
|
*reloc_addr = sym_value;
|
||||||
else if (r_type == R_ALPHA_JMP_SLOT)
|
else if (r_type == R_ALPHA_JMP_SLOT)
|
||||||
elf_machine_fixup_plt (map, 0, reloc, reloc_addr, sym_value);
|
elf_machine_fixup_plt (map, 0, reloc, reloc_addr, sym_value);
|
||||||
|
#ifndef RTLD_BOOTSTRAP
|
||||||
else if (r_type == R_ALPHA_REFQUAD)
|
else if (r_type == R_ALPHA_REFQUAD)
|
||||||
{
|
{
|
||||||
void *reloc_addr_1 = reloc_addr;
|
void *reloc_addr_1 = reloc_addr;
|
||||||
@ -522,7 +525,6 @@ elf_machine_rela (struct link_map *map,
|
|||||||
/* Load value without causing unaligned trap. */
|
/* Load value without causing unaligned trap. */
|
||||||
memcpy (&reloc_addr_val, reloc_addr_1, 8);
|
memcpy (&reloc_addr_val, reloc_addr_1, 8);
|
||||||
sym_value += reloc_addr_val;
|
sym_value += reloc_addr_val;
|
||||||
#ifndef RTLD_BOOTSTRAP
|
|
||||||
if (map == &_dl_rtld_map)
|
if (map == &_dl_rtld_map)
|
||||||
{
|
{
|
||||||
/* Undo the relocation done here during bootstrapping.
|
/* Undo the relocation done here during bootstrapping.
|
||||||
@ -536,10 +538,10 @@ elf_machine_rela (struct link_map *map,
|
|||||||
sym_value -= dlsymtab[ELF64_R_SYM(reloc->r_info)].st_value;
|
sym_value -= dlsymtab[ELF64_R_SYM(reloc->r_info)].st_value;
|
||||||
sym_value -= reloc->r_addend;
|
sym_value -= reloc->r_addend;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
/* Store value without causing unaligned trap. */
|
/* Store value without causing unaligned trap. */
|
||||||
memcpy (reloc_addr_1, &sym_value, 8);
|
memcpy (reloc_addr_1, &sym_value, 8);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
else
|
else
|
||||||
_dl_reloc_bad_type (map, r_type, 0);
|
_dl_reloc_bad_type (map, r_type, 0);
|
||||||
}
|
}
|
||||||
|
@ -469,7 +469,7 @@ __process_machine_rela (struct link_map *map,
|
|||||||
|
|
||||||
strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
|
strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
|
||||||
_dl_error_printf ("\
|
_dl_error_printf ("\
|
||||||
%s: Symbol `%s' has different size in shared object, onsider re-linking\n"
|
%s: Symbol `%s' has different size in shared object, onsider re-linking\n",
|
||||||
_dl_argv[0] ?: "<program name unknown>",
|
_dl_argv[0] ?: "<program name unknown>",
|
||||||
strtab + refsym->st_name);
|
strtab + refsym->st_name);
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1992, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
|
/* Copyright (C) 1992,1997,1998,1999,2000,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
|
||||||
@ -144,6 +144,9 @@
|
|||||||
#undef L
|
#undef L
|
||||||
#define L(x) .L##x
|
#define L(x) .L##x
|
||||||
|
|
||||||
|
/* Label in text section. */
|
||||||
|
#define C_TEXT(name) name
|
||||||
|
|
||||||
#endif /* __ASSEMBLER__ */
|
#endif /* __ASSEMBLER__ */
|
||||||
|
|
||||||
#endif /* linux/powerpc/sysdep.h */
|
#endif /* linux/powerpc/sysdep.h */
|
||||||
|
Loading…
Reference in New Issue
Block a user