Release 2.22: Next week ... (m68hc11 testsuite)

James Murray jsm@jsm-net.demon.co.uk
Fri Dec 30 02:13:00 GMT 2011


On Thu, 2011-12-29 at 15:45 +0000, James Murray wrote:
> That's a big problem as it seems there's a long-standing critical bug
> that they would have exposed.
> 
>  This essential trampoline code
> is not being emitted.

After extensive investigation I found that the broke between 2.16 and
2.17

Specifically this patch to elflink.c committed on 2006-08-15 ~19.30
----------------------------------------------------------
--- src-old/bfd/elflink.c 2011-12-30 01:32:04.000000000 +0000
+++ src-old2/bfd/elflink.c 2011-12-30 01:35:01.000000000 +0000
@@ -4058,13 +4058,13 @@
 	    isym->st_other = (STV_HIDDEN
 			      | (isym->st_other & ~ELF_ST_VISIBILITY (-1)));
 
-	  if (isym->st_other != 0 && !dynamic)
+	  if (ELF_ST_VISIBILITY (isym->st_other) != 0 && !dynamic)
 	    {
 	      unsigned char hvis, symvis, other, nvis;
 
-	      /* Take the balance of OTHER from the definition.  */
-	      other = (definition ? isym->st_other : h->other);
-	      other &= ~ ELF_ST_VISIBILITY (-1);
+	      /* Only merge the visibility. Leave the remainder of the
+		 st_other field to elf_backend_merge_symbol_attribute.  */
+	      other = h->other & ~ELF_ST_VISIBILITY (-1);
 
 	      /* Combine visibilities, using the most constraining one.  */
 	      hvis   = ELF_ST_VISIBILITY (h->other);
----------------------------------------------------------

The accompanying bfd ChangeLog entry says:
----------------------------------------------------------
 2006-08-15  Thiemo Seufer  <ths@mips.com>
             Nigel Stephens  <nigel@mips.com>

	* elf32-mips.c, elf64-mips.c, elfn32-mips.c
	(elf_backend_merge_symbol_attribute): Define.
	* elflink.c (elf_link_add_object_symbols): Merge only the ELF
	visibility flags.
	* elfxx-mips.c (_bfd_mips_elf_merge_symbol_attribute): New function.
----------------------------------------------------------

What does this mean and what needs doing to get the m68hc11 trampoline
code back?

regards

James Murray



More information about the Binutils mailing list