mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2025-01-06 12:04:42 +00:00
* elf32-hppa.c (final_link_relocate): Convert R_PARISC_TLS_GD21L,
R_PARISC_TLS_LDM21L and R_PARISC_TLS_IE21L relocations that use the linkage table pointer to use the global table pointer if not doing a shared link.
This commit is contained in:
parent
11b861d510
commit
f6fd0237f5
@ -1,3 +1,10 @@
|
||||
2010-01-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||||
|
||||
* elf32-hppa.c (final_link_relocate): Convert R_PARISC_TLS_GD21L,
|
||||
R_PARISC_TLS_LDM21L and R_PARISC_TLS_IE21L relocations that use the
|
||||
linkage table pointer to use the global table pointer if not doing
|
||||
a shared link.
|
||||
|
||||
2010-01-29 Joel Brobecker <brobecker@adacore.com>
|
||||
|
||||
* elf.c (elfcore_grok_lwpstatus): Do not overwrite the core signal
|
||||
|
@ -3388,12 +3388,19 @@ final_link_relocate (asection *input_section,
|
||||
case R_PARISC_DPREL21L:
|
||||
case R_PARISC_DPREL14R:
|
||||
case R_PARISC_DPREL14F:
|
||||
case R_PARISC_TLS_GD21L:
|
||||
case R_PARISC_TLS_LDM21L:
|
||||
case R_PARISC_TLS_IE21L:
|
||||
/* Convert instructions that use the linkage table pointer (r19) to
|
||||
instructions that use the global data pointer (dp). This is the
|
||||
most efficient way of using PIC code in an incomplete executable,
|
||||
but the user must follow the standard runtime conventions for
|
||||
accessing data for this to work. */
|
||||
if (orig_r_type == R_PARISC_DLTIND21L)
|
||||
if (orig_r_type == R_PARISC_DLTIND21L
|
||||
|| (!info->shared
|
||||
&& (r_type == R_PARISC_TLS_GD21L
|
||||
|| r_type == R_PARISC_TLS_LDM21L
|
||||
|| r_type == R_PARISC_TLS_IE21L)))
|
||||
{
|
||||
/* Convert addil instructions if the original reloc was a
|
||||
DLTIND21L. GCC sometimes uses a register other than r19 for
|
||||
@ -3444,11 +3451,8 @@ final_link_relocate (asection *input_section,
|
||||
case R_PARISC_DLTIND21L:
|
||||
case R_PARISC_DLTIND14R:
|
||||
case R_PARISC_DLTIND14F:
|
||||
case R_PARISC_TLS_GD21L:
|
||||
case R_PARISC_TLS_GD14R:
|
||||
case R_PARISC_TLS_LDM21L:
|
||||
case R_PARISC_TLS_LDM14R:
|
||||
case R_PARISC_TLS_IE21L:
|
||||
case R_PARISC_TLS_IE14R:
|
||||
value -= elf_gp (input_section->output_section->owner);
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user