diff --git a/patches/binutils-2.9.1/bfd/aoutx.h.diff b/patches/binutils-2.9.1/bfd/aoutx.h.diff index 37439b4..8f44b36 100644 --- a/patches/binutils-2.9.1/bfd/aoutx.h.diff +++ b/patches/binutils-2.9.1/bfd/aoutx.h.diff @@ -19,46 +19,3 @@ translate_to_native_sym_flags (abfd, cache_ptr, sym_pointer) bfd *abfd; asymbol *cache_ptr; -@@ -1977,10 +1978,29 @@ - - r_length = g->howto->size ; /* Size as a power of two */ - r_pcrel = (int) g->howto->pc_relative; /* Relative to PC? */ -+#if 1 -+ /* FIXME! "#if 1" is the wrong way to select this Amiga specific code. -+ We can't just test for __amigaos__ defined either, since we may be -+ building a cross compiler and __amigaos__ is only defined if the -+ compiler we are using is targeted for the Amiga. */ -+ /* Changed for cooperation with AMIGA backend */ -+ /* This only applies, if aout flavour 191194 ST*/ - /* XXX This relies on relocs coming from a.out files. */ -+ if (bfd_asymbol_bfd(sym)->xvec->flavour==bfd_target_aout_flavour) -+ { -+ r_baserel = (g->howto->type & 8) != 0; -+ r_jmptable = (g->howto->type & 16) != 0; -+ r_relative = (g->howto->type & 32) != 0; -+ } -+ else -+ { -+ r_baserel=r_jmptable=r_relative=0; -+ } -+#else - r_baserel = (g->howto->type & 8) != 0; - r_jmptable = (g->howto->type & 16) != 0; - r_relative = (g->howto->type & 32) != 0; -+#endif - - #if 0 - /* For a standard reloc, the addend is in the object file. */ -@@ -2273,8 +2293,12 @@ - /* Base relative relocs are always against the symbol table, - regardless of the setting of r_extern. r_extern just reflects - whether the symbol the reloc is against is local or global. */ -+#if 0 -+ /* FIXME! "#if 0" is the wrong way to disable this code. See comment -+ earlier in file. */ - if (r_baserel) - r_extern = 1; -+#endif - - if (r_extern && r_index > symcount) - {