Remove MULTI_OBJFILE_P
[deliverable/binutils-gdb.git] / include / elf / mmix.h
index fa367e5a314a3584f113a6d76760ef3ef3fad163..dec520bb45f5abac664c216c5b442cbd120505a6 100644 (file)
@@ -1,29 +1,31 @@
 /* MMIX support for BFD.
-   Copyright (C) 2001 Free Software Foundation, Inc.
+   Copyright (C) 2001-2019 Free Software Foundation, Inc.
 
-This file is part of BFD, the Binary File Descriptor library.
+   This file is part of BFD, the Binary File Descriptor library.
 
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
+/* This file holds definitions specific to the MMIX ELF ABI.  */
 
-/* This file holds definitions specific to the MMIX ELF ABI. */
 #ifndef ELF_MMIX_H
 #define ELF_MMIX_H
 
 #include "elf/reloc-macros.h"
 
-/* Relocations.  */
+/* Relocations.  See the reloc table in bfd/elf64-mmix.c for details.  */
 START_RELOC_NUMBERS (elf_mmix_reloc_type)
   RELOC_NUMBER (R_MMIX_NONE, 0)
 
@@ -82,11 +84,17 @@ START_RELOC_NUMBERS (elf_mmix_reloc_type)
   /* A general register. */
   RELOC_NUMBER (R_MMIX_REG, 33)
 
-  /* A global register and an offset, equivalent of the expression.  */
+  /* A global register and an offset, the global register (allocated at
+     link time) contents plus the offset made equivalent to the relocation
+     expression at link time.  The relocation must point at the Y field of
+     an instruction.  */
   RELOC_NUMBER (R_MMIX_BASE_PLUS_OFFSET, 34)
 
   /* A LOCAL assertion.  */
   RELOC_NUMBER (R_MMIX_LOCAL, 35)
+
+  /* A PUSHJ instruction, generating a stub if it does not reach.  */
+  RELOC_NUMBER (R_MMIX_PUSHJ_STUBBABLE, 36)
 END_RELOC_NUMBERS (R_MMIX_max)
 
 
@@ -107,6 +115,11 @@ END_RELOC_NUMBERS (R_MMIX_max)
    unspecified) ABI.  */
 #define MMIX_REG_CONTENTS_SECTION_NAME ".MMIX.reg_contents"
 
+/* At link time, a section by this name is created, expected to be
+   included in MMIX_REG_CONTENTS_SECTION_NAME in the output.  */
+#define MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME \
+ ".MMIX.reg_contents.linker_allocated"
+
 /* This is a faked section holding symbols with SHN_REGISTER.  Don't
    confuse it with MMIX_REG_CONTENTS_SECTION_NAME; this one has no
    contents, just values.  It is an error for a value in this section to
@@ -148,4 +161,13 @@ END_RELOC_NUMBERS (R_MMIX_max)
 #define MMO_SEC_IS_COMMON 0x8000
 #define MMO_SEC_DEBUGGING 0x10000
 
+#ifdef BFD_ARCH_SIZE
+extern bfd_boolean _bfd_mmix_before_linker_allocation
+  (bfd *, struct bfd_link_info *);
+extern bfd_boolean _bfd_mmix_after_linker_allocation
+  (bfd *, struct bfd_link_info *);
+extern bfd_boolean _bfd_mmix_check_all_relocs
+  (bfd *, struct bfd_link_info *);
+#endif
+
 #endif /* ELF_MMIX_H */
This page took 0.028859 seconds and 4 git commands to generate.