aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf.c37
2 files changed, 21 insertions, 21 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index a753af6..d15df8b 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+Tue Dec 28 12:43:54 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
+
+ * elf.c (bfd_elf_generic_reloc): If this is not an inplace reloc,
+ then skip bfd_perform_relocation even if the addend is non-zero.
+
Tue Dec 21 09:22:19 1993 Ken Raeburn (raeburn@rtl.cygnus.com)
* coffcode.h (coff_write_relocs) [SWAP_OUT_RELOC_OFFSET]: Copy
diff --git a/bfd/elf.c b/bfd/elf.c
index 224eaac..02b3b33 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -17,20 +17,26 @@ You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+/*
+
+SECTION
+ ELF backends
+
+ BFD support for ELF formats is being worked on.
+ Currently, the best supported back ends are for sparc and i386
+ (running svr4 or Solaris 2).
+
+ Documentation of the internals of the support code still needs
+ to be written. The code is changing quickly enough that we
+ haven't bothered yet.
+ */
+
#include "bfd.h"
#include "sysdep.h"
#include "libbfd.h"
#define ARCH_SIZE 0
#include "libelf.h"
-#ifndef INLINE
-#if __GNUC__ >= 2
-#define INLINE __inline__
-#else
-#define INLINE
-#endif
-#endif
-
/* Standard ELF hash function. Do not change this function; you will
cause invalid hash tables to be generated. (Well, you would if this
were being used yet.) */
@@ -188,18 +194,6 @@ DEFUN (bfd_elf_find_section, (abfd, name),
return 0;
}
-const struct bfd_elf_arch_map bfd_elf_arch_map[] = {
- { bfd_arch_sparc, EM_SPARC },
- { bfd_arch_i386, EM_386 },
- { bfd_arch_m68k, EM_68K },
- { bfd_arch_m88k, EM_88K },
- { bfd_arch_i860, EM_860 },
- { bfd_arch_mips, EM_MIPS },
- { bfd_arch_hppa, EM_HPPA },
-};
-
-const int bfd_elf_arch_map_size = sizeof (bfd_elf_arch_map) / sizeof (bfd_elf_arch_map[0]);
-
const char *const bfd_elf_section_type_names[] = {
"SHT_NULL", "SHT_PROGBITS", "SHT_SYMTAB", "SHT_STRTAB",
"SHT_RELA", "SHT_HASH", "SHT_DYNAMIC", "SHT_NOTE",
@@ -232,7 +226,8 @@ bfd_elf_generic_reloc (abfd,
{
if (output_bfd != (bfd *) NULL
&& (symbol->flags & BSF_SECTION_SYM) == 0
- && reloc_entry->addend == 0)
+ && (! reloc_entry->howto->partial_inplace
+ || reloc_entry->addend == 0))
{
reloc_entry->address += input_section->output_offset;
return bfd_reloc_ok;