X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=include%2Faout%2Faout64.h;h=1fc1dc6e4d6d6328aec6f399c84928a963a9da04;hb=1176bc3876fdec6a700079ef216940f42a57f18a;hp=6858ada27894de63f8982f87ab7337d0d35d2358;hpb=2571583aed598dd3f9651b53434e5f177a0e3cf7;p=binutils-gdb.git diff --git a/include/aout/aout64.h b/include/aout/aout64.h index 6858ada2789..1fc1dc6e4d6 100644 --- a/include/aout/aout64.h +++ b/include/aout/aout64.h @@ -1,6 +1,6 @@ /* `a.out' object-file definitions, including extensions to 64-bit fields - Copyright (C) 1999-2017 Free Software Foundation, Inc. + Copyright (C) 1999-2022 Free Software Foundation, Inc. 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 @@ -56,6 +56,7 @@ struct external_exec #else #define OMAGIC 0407 /* Object file or impure executable. */ #define NMAGIC 0410 /* Code indicating pure executable. */ +#define IMAGIC 0411 /* Separate instruction & data spaces for PDP-11. */ #define ZMAGIC 0413 /* Code indicating demand-paged executable. */ #define BMAGIC 0415 /* Used by a b.out object. */ @@ -211,7 +212,9 @@ struct external_exec up to a N_SEGSIZE boundary for pure or pageable files. */ #ifndef N_DATADDR #define N_DATADDR(x) \ - (N_MAGIC (x) == OMAGIC \ + (N_MAGIC (x) == IMAGIC \ + ? (bfd_vma) 0 \ + : N_MAGIC (x) == OMAGIC \ ? (N_TXTADDR (x) + N_TXTSIZE (x)) \ : (N_SEGSIZE (x) + ((N_TXTADDR (x) + N_TXTSIZE (x) - 1) \ & ~ (bfd_vma) (N_SEGSIZE (x) - 1)))) @@ -346,7 +349,7 @@ struct internal_nlist struct reloc_std_external { - bfd_byte r_address[BYTES_IN_WORD]; /* Offset of of data to relocate. */ + bfd_byte r_address[BYTES_IN_WORD]; /* Offset of data to relocate. */ bfd_byte r_index[3]; /* Symbol table index of symbol. */ bfd_byte r_type[1]; /* Relocation type. */ }; @@ -406,7 +409,7 @@ struct reloc_std_internal struct reloc_ext_external { - bfd_byte r_address[BYTES_IN_WORD]; /* Offset of of data to relocate. */ + bfd_byte r_address[BYTES_IN_WORD]; /* Offset of data to relocate. */ bfd_byte r_index[3]; /* Symbol table index of symbol. */ bfd_byte r_type[1]; /* Relocation type. */ bfd_byte r_addend[BYTES_IN_WORD]; /* Datum addend. */ @@ -476,32 +479,14 @@ enum reloc_type RELOC_11, RELOC_WDISP2_14, RELOC_WDISP19, - RELOC_HHI22, /* data[0:21] = (addend + sv) >> 42 */ - RELOC_HLO10, /* data[0:9] = (addend + sv) >> 32 */ - - /* 29K relocation types. */ - RELOC_JUMPTARG, - RELOC_CONST, - RELOC_CONSTH, - - /* All the new ones I can think of, for sparc v9. */ - RELOC_64, /* data[0:63] = addend + sv */ - RELOC_DISP64, /* data[0:63] = addend - pc + sv */ - RELOC_WDISP21, /* data[0:20] = (addend + sv - pc)>>2 */ - RELOC_DISP21, /* data[0:20] = addend - pc + sv */ - RELOC_DISP14, /* data[0:13] = addend - pc + sv */ - /* Q . - What are the other ones, - Since this is a clean slate, can we throw away the ones we dont - understand ? Should we sort the values ? What about using a - microcode format like the 68k ? */ + NO_RELOC }; struct reloc_internal { - bfd_vma r_address; /* Offset of of data to relocate. */ + bfd_vma r_address; /* Offset of data to relocate. */ long r_index; /* Symbol table index of symbol. */ enum reloc_type r_type; /* Relocation type. */ bfd_vma r_addend; /* Datum addend. */