* elf32-arm.c (record_arm_to_thumb_glue, record_thumb_to_arm_glue):

Expand comments.
	(arm_map_one_stub): Use | 1 when setting the low bit.
This commit is contained in:
Daniel Jacobowitz 2008-06-30 15:32:51 +00:00
parent f74c6cad4e
commit 3dccd7b794
2 changed files with 14 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2008-06-30 Daniel Jacobowitz <dan@codesourcery.com>
* elf32-arm.c (record_arm_to_thumb_glue, record_thumb_to_arm_glue):
Expand comments.
(arm_map_one_stub): Use | 1 when setting the low bit.
2008-06-29 Andreas Schwab <schwab@suse.de> 2008-06-29 Andreas Schwab <schwab@suse.de>
* elf32-m68k.c (elf_m68k_relocate_section): Don't ignore existing * elf32-m68k.c (elf_m68k_relocate_section): Don't ignore existing

View File

@ -3981,7 +3981,8 @@ record_arm_to_thumb_glue (struct bfd_link_info * link_info,
/* The only trick here is using hash_table->arm_glue_size as the value. /* The only trick here is using hash_table->arm_glue_size as the value.
Even though the section isn't allocated yet, this is where we will be Even though the section isn't allocated yet, this is where we will be
putting it. */ putting it. The +1 on the value marks that the stub has not been
output yet - not that it is a Thumb function. */
bh = NULL; bh = NULL;
val = globals->arm_glue_size + 1; val = globals->arm_glue_size + 1;
_bfd_generic_link_add_one_symbol (link_info, globals->bfd_of_glue_owner, _bfd_generic_link_add_one_symbol (link_info, globals->bfd_of_glue_owner,
@ -4047,6 +4048,10 @@ record_thumb_to_arm_glue (struct bfd_link_info *link_info,
return; return;
} }
/* The only trick here is using hash_table->thumb_glue_size as the value.
Even though the section isn't allocated yet, this is where we will be
putting it. The +1 on the value marks that the stub has not been
output yet - not that it is a Thumb function. */
bh = NULL; bh = NULL;
val = hash_table->thumb_glue_size + 1; val = hash_table->thumb_glue_size + 1;
_bfd_generic_link_add_one_symbol (link_info, hash_table->bfd_of_glue_owner, _bfd_generic_link_add_one_symbol (link_info, hash_table->bfd_of_glue_owner,
@ -11240,7 +11245,7 @@ arm_map_one_stub (struct bfd_hash_entry *gen_entry,
return FALSE; return FALSE;
break; break;
case arm_thumb_thumb_stub_long_branch: case arm_thumb_thumb_stub_long_branch:
if (!elf32_arm_output_stub_sym (osi, stub_name, addr + 1, 16)) if (!elf32_arm_output_stub_sym (osi, stub_name, addr | 1, 16))
return FALSE; return FALSE;
if (!elf32_arm_output_map_sym (osi, ARM_MAP_THUMB, addr)) if (!elf32_arm_output_map_sym (osi, ARM_MAP_THUMB, addr))
return FALSE; return FALSE;
@ -11248,7 +11253,7 @@ arm_map_one_stub (struct bfd_hash_entry *gen_entry,
return FALSE; return FALSE;
break; break;
case arm_thumb_arm_v4t_stub_long_branch: case arm_thumb_arm_v4t_stub_long_branch:
if (!elf32_arm_output_stub_sym (osi, stub_name, addr + 1, 20)) if (!elf32_arm_output_stub_sym (osi, stub_name, addr | 1, 20))
return FALSE; return FALSE;
if (!elf32_arm_output_map_sym (osi, ARM_MAP_THUMB, addr)) if (!elf32_arm_output_map_sym (osi, ARM_MAP_THUMB, addr))
return FALSE; return FALSE;