X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=bfd%2Flibaout.h;h=7001d3dc6d4a7590e2723c3be9966ff2373c48d3;hb=fc633e5b9780011f74f2c23837968e43e262a239;hp=1ec1dc97fa23b58a94228e1ffdb363258cfc8295;hpb=ec1c8dd231ebe358783809070dd2c5a16d6af280;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/libaout.h b/bfd/libaout.h index 1ec1dc97fa..7001d3dc6d 100644 --- a/bfd/libaout.h +++ b/bfd/libaout.h @@ -1,5 +1,6 @@ /* BFD back-end data structures for a.out (and similar) files. - Copyright 1990, 1991, 1992 Free Software Foundation, Inc. + Copyright 1990, 91, 92, 93, 94, 95, 96, 97, 1998 + Free Software Foundation, Inc. Written by Cygnus Support. This file is part of BFD, the Binary File Descriptor library. @@ -105,6 +106,12 @@ struct aout_backend_data If not, the text section starts on the next page. */ unsigned char text_includes_header; + /* If this flag is set, then if the entry address is not in the + first SEGMENT_SIZE bytes of the text section, it is taken to be + the address of the start of the text section. This can be useful + for kernels. */ + unsigned char entry_is_text_address; + /* The value to pass to N_SET_FLAGS. */ unsigned char exec_hdr_flags; @@ -192,14 +199,14 @@ struct internal_exec }; /* Magic number is written -< MSB > +< MSB > 3130292827262524232221201918171615141312111009080706050403020100 -< FLAGS >< MACHINE TYPE >< MAGIC NUMBER > +< FLAGS >< MACHINE TYPE >< MAGIC NUMBER > */ /* Magic number for NetBSD is - + 3130292827262524232221201918171615141312111009080706050403020100 -< FLAGS >< >< MAGIC NUMBER > +< FLAGS >< MACHINE TYPE >< MAGIC NUMBER > */ enum machine_type { @@ -216,19 +223,29 @@ enum machine_type { M_29K = 101, /* AMD 29000 */ M_386_DYNIX = 102, /* Sequent running dynix */ M_ARM = 103, /* Advanced Risc Machines ARM */ + M_SPARCLET = 131, /* SPARClet = M_SPARC + 128 */ M_386_NETBSD = 134, /* NetBSD/i386 binary */ M_68K_NETBSD = 135, /* NetBSD/m68k binary */ M_68K4K_NETBSD = 136, /* NetBSD/m68k4k binary */ M_532_NETBSD = 137, /* NetBSD/ns32k binary */ M_SPARC_NETBSD = 138, /* NetBSD/sparc binary */ + M_PMAX_NETBSD = 139, /* NetBSD/pmax (MIPS little-endian) binary */ + M_VAX_NETBSD = 140, /* NetBSD/vax binary */ + M_ALPHA_NETBSD = 141, /* NetBSD/alpha binary */ + M_ARM6_NETBSD = 143, /* NetBSD/arm32 binary */ + M_SPARCLET_1 = 147, /* 0x93, reserved */ M_MIPS1 = 151, /* MIPS R2000/R3000 binary */ M_MIPS2 = 152, /* MIPS R4000/R6000 binary */ -/* start-sanitize-rce */ - M_RCE = 155, /* Motorola RCE binary */ -/* end-sanitize-rce */ + M_SPARCLET_2 = 163, /* 0xa3, reserved */ + M_SPARCLET_3 = 179, /* 0xb3, reserved */ + M_SPARCLET_4 = 195, /* 0xc3, reserved */ M_HP200 = 200, /* HP 200 (68010) BSD binary */ M_HP300 = (300 % 256), /* HP 300 (68020+68881) BSD binary */ - M_HPUX = (0x20c % 256)/* HP 200/300 HPUX binary */ + M_HPUX = (0x20c % 256), /* HP 200/300 HPUX binary */ + M_SPARCLET_5 = 211, /* 0xd3, reserved */ + M_SPARCLET_6 = 227, /* 0xe3, reserved */ + /* M_SPARCLET_7 = 243 / * 0xf3, reserved */ + M_SPARCLITE_LE = 243 }; #define N_DYNAMIC(exec) ((exec).a_info & 0x80000000) @@ -343,8 +360,10 @@ struct aoutdata { /* The external symbol information. */ struct external_nlist *external_syms; bfd_size_type external_sym_count; + bfd_window sym_window; char *external_strings; bfd_size_type external_string_size; + bfd_window string_window; struct aout_link_hash_entry **sym_hashes; /* A pointer for shared library information. */ @@ -374,8 +393,10 @@ struct aout_data_struct { #define obj_aout_subformat(bfd) (adata(bfd).subformat) #define obj_aout_external_syms(bfd) (adata(bfd).external_syms) #define obj_aout_external_sym_count(bfd) (adata(bfd).external_sym_count) +#define obj_aout_sym_window(bfd) (adata(bfd).sym_window) #define obj_aout_external_strings(bfd) (adata(bfd).external_strings) #define obj_aout_external_string_size(bfd) (adata(bfd).external_string_size) +#define obj_aout_string_window(bfd) (adata(bfd).string_window) #define obj_aout_sym_hashes(bfd) (adata(bfd).sym_hashes) #define obj_aout_dynamic_info(bfd) (adata(bfd).dynamic_info) @@ -543,11 +564,6 @@ NAME(aout,final_link) PARAMS ((bfd *, struct bfd_link_info *, boolean NAME(aout,bfd_free_cached_info) PARAMS ((bfd *)); -/* Prototypes for functions in stab-syms.c. */ - -CONST char * -aout_stab_name PARAMS ((int code)); - /* A.out uses the generic versions of these routines... */ #define aout_32_get_section_contents _bfd_generic_get_section_contents @@ -557,8 +573,8 @@ aout_stab_name PARAMS ((int code)); #define NO_WRITE_HEADER_KLUDGE 0 #endif -#ifndef aout_32_bfd_is_local_label -#define aout_32_bfd_is_local_label bfd_generic_is_local_label +#ifndef aout_32_bfd_is_local_label_name +#define aout_32_bfd_is_local_label_name bfd_generic_is_local_label_name #endif #ifndef WRITE_HEADERS @@ -586,26 +602,22 @@ aout_stab_name PARAMS ((int code)); \ if (bfd_get_outsymbols (abfd) != (asymbol **) NULL \ && bfd_get_symcount (abfd) != 0) \ - { \ - if (bfd_seek (abfd, (file_ptr)(N_SYMOFF(*execp)), SEEK_SET) \ - != 0) \ - return false; \ - \ - if (! NAME(aout,write_syms)(abfd)) return false; \ + { \ + if (bfd_seek (abfd, (file_ptr)(N_SYMOFF(*execp)), SEEK_SET) != 0) \ + return false; \ \ - if (bfd_seek (abfd, (file_ptr)(N_TRELOFF(*execp)), SEEK_SET) \ - != 0) \ - return false; \ + if (! NAME(aout,write_syms)(abfd)) return false; \ + } \ \ - if (!NAME(aout,squirt_out_relocs) (abfd, obj_textsec (abfd))) \ - return false; \ - if (bfd_seek (abfd, (file_ptr)(N_DRELOFF(*execp)), SEEK_SET) \ - != 0) \ - return false; \ + if (bfd_seek (abfd, (file_ptr)(N_TRELOFF(*execp)), SEEK_SET) != 0) \ + return false; \ + if (!NAME(aout,squirt_out_relocs) (abfd, obj_textsec (abfd))) \ + return false; \ \ - if (!NAME(aout,squirt_out_relocs)(abfd, obj_datasec (abfd))) \ - return false; \ - } \ + if (bfd_seek (abfd, (file_ptr)(N_DRELOFF(*execp)), SEEK_SET) != 0) \ + return false; \ + if (!NAME(aout,squirt_out_relocs)(abfd, obj_datasec (abfd))) \ + return false; \ } #endif