[PATCH] bfd: tweak SET_ARCH_MACH of aout-cris.c
* aout-cris.c (DEFAULT_ARCH): Delete define. (MY_set_arch_mach): Likewise. (SET_ARCH_MACH): Use bfd_set_arch_mach with an explicit architecture of bfd_arch_cris. (swap_ext_reloc_in): Add casts to r_index extraction. Mask valid bits of r_type before the shift.
This commit is contained in:
parent
cff69cf4cf
commit
7242fa8aa7
2 changed files with 18 additions and 11 deletions
|
@ -1,4 +1,13 @@
|
||||||
2020-05-01 Wilco Dijkstra <wdijkstr@arm.com>
|
2020-05-04 Gunther Nikl <gnikl@justmail.de>
|
||||||
|
|
||||||
|
* aout-cris.c (DEFAULT_ARCH): Delete define.
|
||||||
|
(MY_set_arch_mach): Likewise.
|
||||||
|
(SET_ARCH_MACH): Use bfd_set_arch_mach with an explicit architecture
|
||||||
|
of bfd_arch_cris.
|
||||||
|
(swap_ext_reloc_in): Add casts to r_index extraction. Mask valid bits
|
||||||
|
of r_type before the shift.
|
||||||
|
|
||||||
|
2020-05-04 Wilco Dijkstra <wdijkstr@arm.com>
|
||||||
|
|
||||||
PR ld/25665
|
PR ld/25665
|
||||||
* elfnn-aarch64.c (group_sections): Copy implementation from
|
* elfnn-aarch64.c (group_sections): Copy implementation from
|
||||||
|
|
|
@ -56,9 +56,6 @@
|
||||||
#define TARGET_PAGE_SIZE SEGMENT_SIZE
|
#define TARGET_PAGE_SIZE SEGMENT_SIZE
|
||||||
#define TARGETNAME "a.out-cris"
|
#define TARGETNAME "a.out-cris"
|
||||||
|
|
||||||
/* The definition here seems not used; just provided as a convention. */
|
|
||||||
#define DEFAULT_ARCH bfd_arch_cris
|
|
||||||
|
|
||||||
/* Do not "beautify" the CONCAT* macro args. Traditional C will not
|
/* Do not "beautify" the CONCAT* macro args. Traditional C will not
|
||||||
remove whitespace added here, and thus will fail to concatenate
|
remove whitespace added here, and thus will fail to concatenate
|
||||||
the tokens. */
|
the tokens. */
|
||||||
|
@ -92,9 +89,8 @@ static bfd_boolean MY (set_sizes) (bfd *);
|
||||||
through SET_ARCH_MACH. The default bfd_default_set_arch_mach will
|
through SET_ARCH_MACH. The default bfd_default_set_arch_mach will
|
||||||
not call set_sizes. */
|
not call set_sizes. */
|
||||||
|
|
||||||
#define MY_set_arch_mach NAME (aout, set_arch_mach)
|
|
||||||
#define SET_ARCH_MACH(BFD, EXECP) \
|
#define SET_ARCH_MACH(BFD, EXECP) \
|
||||||
MY_set_arch_mach (BFD, DEFAULT_ARCH, N_MACHTYPE (EXECP))
|
bfd_set_arch_mach (BFD, bfd_arch_cris, N_MACHTYPE (EXECP))
|
||||||
|
|
||||||
/* These macros describe the binary layout of the reloc information we
|
/* These macros describe the binary layout of the reloc information we
|
||||||
use in a file. */
|
use in a file. */
|
||||||
|
@ -231,12 +227,14 @@ MY (swap_ext_reloc_in) (bfd *abfd,
|
||||||
cache_ptr->address = (GET_SWORD (abfd, bytes->r_address));
|
cache_ptr->address = (GET_SWORD (abfd, bytes->r_address));
|
||||||
|
|
||||||
/* Now the fun stuff. */
|
/* Now the fun stuff. */
|
||||||
r_index = (bytes->r_index[2] << 16)
|
r_index = (((unsigned int) bytes->r_index[2] << 16)
|
||||||
| (bytes->r_index[1] << 8)
|
| ((unsigned int) bytes->r_index[1] << 8)
|
||||||
| bytes->r_index[0];
|
| bytes->r_index[0]);
|
||||||
|
|
||||||
r_extern = (0 != (bytes->r_type[0] & RELOC_EXT_BITS_EXTERN_LITTLE));
|
r_extern = (0 != (bytes->r_type[0] & RELOC_EXT_BITS_EXTERN_LITTLE));
|
||||||
r_type = ((bytes->r_type[0]) >> RELOC_EXT_BITS_TYPE_SH_LITTLE)
|
|
||||||
& RELOC_EXT_BITS_TYPE_LITTLE;
|
r_type = ((bytes->r_type[0] & RELOC_EXT_BITS_TYPE_LITTLE)
|
||||||
|
>> RELOC_EXT_BITS_TYPE_SH_LITTLE);
|
||||||
|
|
||||||
if (r_type > 2)
|
if (r_type > 2)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Reference in a new issue