diff options
Diffstat (limited to 'include/coff')
-rw-r--r-- | include/coff/ChangeLog | 26 | ||||
-rw-r--r-- | include/coff/arm.h | 108 | ||||
-rw-r--r-- | include/coff/internal.h | 6 | ||||
-rw-r--r-- | include/coff/mcore.h | 1 |
4 files changed, 99 insertions, 42 deletions
diff --git a/include/coff/ChangeLog b/include/coff/ChangeLog index 8ad6e0cec..659dcdc52 100644 --- a/include/coff/ChangeLog +++ b/include/coff/ChangeLog @@ -1,3 +1,29 @@ +1999-07-17 Nick Clifton <nickc@cygnus.com> + + * arm.h (F_SOFT_FLOAT): Rename from F_SOFTFLOAT. + +1999-06-21 Philip Blundell <pb@nexus.co.uk> + + * arm.h (F_SOFTFLOAT): Define. + +1999-07-05 Nick Clifton <nickc@cygnus.com> + + * arm.h (F_ARM_5): Define. + +Wed Jun 2 18:08:18 1999 Richard Henderson <rth@cygnus.com> + + * internal.h (BEOS_EXE_IMAGE_BASE, BEOS_DLL_IMAGE_BASE): New. + +Mon May 17 13:35:35 1999 Stan Cox <scox@cygnus.com> + + * coff/arm.h (F_PIC, F_ARM_2, F_ARM_2a, F_ARM_3, F_ARM_3M, + F_ARM_4, F_ARM_4T, F_APCS26): Changed values to distinguish + F_ARM_2a, F_ARM_3M, F_ARM_4T. + +1999-05-15 Nick Clifton <nickc@cygnus.com> + + * mcore.h (IMAGE_REL_MCORE_RVA): Define. + 1999-04-21 Nick Clifton <nickc@cygnus.com> * mcore.h (GET_LINENO_LNNO): New macro. diff --git a/include/coff/arm.h b/include/coff/arm.h index dd578b1a7..d5163f822 100644 --- a/include/coff/arm.h +++ b/include/coff/arm.h @@ -1,10 +1,28 @@ -/*** coff information for the ARM */ +/* ARM COFF support for BFD. + Copyright (C) 1998, 1999 Free Software Foundation, Inc. + + 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 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. */ #define COFFARM 1 /********************** FILE HEADER **********************/ -struct external_filehdr { +struct external_filehdr +{ char f_magic[2]; /* magic number */ char f_nscns[2]; /* number of sections */ char f_timdat[4]; /* time & date stamp */ @@ -26,6 +44,7 @@ struct external_filehdr { * F_AR32WR file has byte ordering of an AR32WR machine (e.g. vax) * F_APCS_26 file uses 26 bit ARM Procedure Calling Standard * F_APCS_SET the F_APCS_26, F_APCS_FLOAT and F_PIC bits have been initialised + * F_SOFT_FLOAT code does not use floating point instructions */ #define F_RELFLG (0x0001) @@ -40,20 +59,22 @@ struct external_filehdr { #define F_AR32WR (0x0100) #define F_APCS_26 (0x0400) #define F_APCS_SET (0x0800) +#define F_SOFT_FLOAT (0x2000) /* Bits stored in flags field of the internal_f structure */ #define F_INTERWORK (0x0010) -#define F_PIC_INT (0x0020) #define F_APCS_FLOAT (0x0040) -#define F_ARM_ARCHITECTURE_MASK (0x0c00) -#define F_ARM_2 (0x0000) -#define F_ARM_2a (0x0000) -#define F_ARM_3 (0x0400) -#define F_ARM_3M (0x0400) -#define F_ARM_4 (0x0800) -#define F_ARM_4T (0x0c00) -#define F_APCS26 (0x4000) +#define F_PIC (0x0080) +#define F_APCS26 (0x1000) +#define F_ARM_ARCHITECTURE_MASK (0x4000+0x0800+0x0400) +#define F_ARM_2 (0x0400) +#define F_ARM_2a (0x0800) +#define F_ARM_3 (0x0c00) +#define F_ARM_3M (0x4000) +#define F_ARM_4 (0x4400) +#define F_ARM_4T (0x4800) +#define F_ARM_5 (0x4c00) /* * ARMMAGIC ought to encoded the procesor type, @@ -85,8 +106,6 @@ typedef struct char entry[4]; /* entry pt. */ char text_start[4]; /* base of text used for this file */ char data_start[4]; /* base of data used for this file */ - - } AOUTHDR; @@ -108,9 +127,8 @@ AOUTHDR; #define NT_DEF_COMMIT 0x1000 /********************** SECTION HEADER **********************/ - - -struct external_scnhdr { +struct external_scnhdr +{ char s_name[8]; /* section name */ char s_paddr[4]; /* physical address, aliased s_nlib */ char s_vaddr[4]; /* virtual address */ @@ -145,8 +163,10 @@ struct external_scnhdr { * grouping will have l_lnno = 0 and in place of physical address will be the * symbol table index of the function name. */ -struct external_lineno { - union { +struct external_lineno +{ + union + { char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/ char l_paddr[4]; /* (physical) address of line number */ } l_addr; @@ -166,9 +186,11 @@ struct external_lineno { struct external_syment { - union { + union + { char e_name[E_SYMNMLEN]; - struct { + struct + { char e_zeroes[4]; char e_offset[4]; } e; @@ -185,37 +207,47 @@ struct external_syment #define N_BTSHFT (4) #define N_TSHIFT (2) -union external_auxent { - struct { +union external_auxent +{ + struct + { char x_tagndx[4]; /* str, un, or enum tag indx */ - union { - struct { + union + { + struct + { char x_lnno[2]; /* declaration line number */ char x_size[2]; /* str/union/array size */ } x_lnsz; char x_fsize[4]; /* size of function */ } x_misc; - union { - struct { /* if ISFCN, tag, or .bb */ + union + { + struct /* if ISFCN, tag, or .bb */ + { char x_lnnoptr[4]; /* ptr to fcn line # */ char x_endndx[4]; /* entry ndx past block end */ } x_fcn; - struct { /* if ISARY, up to 4 dimen. */ + struct /* if ISARY, up to 4 dimen. */ + { char x_dimen[E_DIMNUM][2]; } x_ary; } x_fcnary; char x_tvndx[2]; /* tv index */ } x_sym; - union { + union + { char x_fname[E_FILNMLEN]; - struct { + struct + { char x_zeroes[4]; char x_offset[4]; } x_n; } x_file; - struct { + struct + { char x_scnlen[4]; /* section length */ char x_nreloc[2]; /* # relocation entries */ char x_nlinno[2]; /* # line numbers */ @@ -224,13 +256,12 @@ union external_auxent { char x_comdat[1]; /* COMDAT selection number */ } x_scn; - struct { + struct + { char x_tvfill[4]; /* tv fill value */ char x_tvlen[2]; /* length of .tv */ char x_tvran[2][2]; /* tv range */ } x_tv; /* info about .tv section (in auxent of symbol .tv)) */ - - }; #define SYMENT struct external_syment @@ -238,21 +269,16 @@ union external_auxent { #define AUXENT union external_auxent #define AUXESZ 18 - -# define _ETEXT "etext" - +#define _ETEXT "etext" /********************** RELOCATION DIRECTIVES **********************/ - - - -struct external_reloc { +struct external_reloc +{ char r_vaddr[4]; char r_symndx[4]; char r_type[2]; char r_offset[4]; }; - #define RELOC struct external_reloc #define RELSZ 14 diff --git a/include/coff/internal.h b/include/coff/internal.h index d5ea95103..b01730ead 100644 --- a/include/coff/internal.h +++ b/include/coff/internal.h @@ -89,10 +89,14 @@ typedef struct _IMAGE_DATA_DIRECTORY } IMAGE_DATA_DIRECTORY; #define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16 -/* default image base for NT */ +/* Default image base for NT. */ #define NT_EXE_IMAGE_BASE 0x400000 #define NT_DLL_IMAGE_BASE 0x10000000 +/* Default image base for BeOS. */ +#define BEOS_EXE_IMAGE_BASE 0x80000000 +#define BEOS_DLL_IMAGE_BASE 0x10000000 + /* Extra stuff in a PE aouthdr */ #define PE_DEF_SECTION_ALIGNMENT 0x1000 diff --git a/include/coff/mcore.h b/include/coff/mcore.h index 974b62e16..f31894796 100644 --- a/include/coff/mcore.h +++ b/include/coff/mcore.h @@ -32,6 +32,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define IMAGE_REL_MCORE_PCREL_IMM4BY2 0x0004 #define IMAGE_REL_MCORE_PCREL_32 0x0005 #define IMAGE_REL_MCORE_PCREL_JSR_IMM11BY2 0x0006 +#define IMAGE_REL_MCORE_RVA 0x0007 #define PEMCORE |