blob: 69854e9a67da5dae71bc03de7528e813b96f8e61 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
--- bfd/elfxx-sparc.c.orig 2021-07-08 13:37:19.000000000 +0200
+++ bfd/elfxx-sparc.c 2021-07-21 09:32:51.373421000 +0200
@@ -2784,12 +2784,14 @@
Elf_Internal_Rela *relend;
int num_relocs;
bool is_vxworks_tls;
+ const struct elf_backend_data *bed;
htab = _bfd_sparc_elf_hash_table (info);
BFD_ASSERT (htab != NULL);
symtab_hdr = &elf_symtab_hdr (input_bfd);
sym_hashes = elf_sym_hashes (input_bfd);
local_got_offsets = elf_local_got_offsets (input_bfd);
+ bed = get_elf_backend_data (output_bfd);
if (elf_hash_table (info)->hgot == NULL)
got_base = 0;
@@ -3448,6 +3450,8 @@
bfd_set_error (bfd_error_bad_value);
return false;
}
+ if (bed->elf_osabi == ELFOSABI_FREEBSD)
+ outrel.r_addend -= osec->vma;
}
outrel.r_info = SPARC_ELF_R_INFO (htab, rel, indx,
|