X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Fconfig%2Fobj-coff.h;h=57dc8304e98a726b1f3f09721c1f3a045f1e4b5f;hb=07e7fdfd429985f061630c46e91cb10579607233;hp=81577c8d84259af3a28ce4153ad1588fe8a4dc77;hpb=06e77878ef2b6a57ef92c1691b3aeb668dc248ba;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/config/obj-coff.h b/gas/config/obj-coff.h index 81577c8d84..57dc8304e9 100644 --- a/gas/config/obj-coff.h +++ b/gas/config/obj-coff.h @@ -1,13 +1,11 @@ /* coff object file format - Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2001, 2002, 2003, 2004, 2005 - Free Software Foundation, Inc. + Copyright (C) 1989-2020 Free Software Foundation, Inc. This file is part of GAS. GAS 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. GAS is distributed in the hope that it will be useful, @@ -27,8 +25,6 @@ #include "targ-cpu.h" -#include "bfd.h" - /* This internal_lineno crap is to stop namespace pollution from the bfd internal coff headerfile. */ #define internal_lineno bfd_internal_lineno @@ -52,37 +48,25 @@ #endif #endif -#ifdef TC_SPARC -#include "coff/sparc.h" -#endif - #ifdef TC_I386 +#ifdef TE_PEP +#include "coff/x86_64.h" +#else #include "coff/i386.h" - -#ifdef TE_PE -#define TARGET_FORMAT "pe-i386" #endif #ifndef TARGET_FORMAT +#ifdef TE_PEP +#define TARGET_FORMAT "coff-x86-64" +#else #define TARGET_FORMAT "coff-i386" #endif #endif - -#ifdef TC_M68K -#include "coff/m68k.h" -#ifndef TARGET_FORMAT -#define TARGET_FORMAT "coff-m68k" -#endif -#endif - -#ifdef TC_OR32 -#include "coff/or32.h" -#define TARGET_FORMAT "coff-or32-big" #endif -#ifdef TC_I960 -#include "coff/i960.h" -#define TARGET_FORMAT "coff-Intel-little" +#ifdef TC_Z80 +#include "coff/z80.h" +#define TARGET_FORMAT "coff-z80" #endif #ifdef TC_Z8K @@ -90,21 +74,6 @@ #define TARGET_FORMAT "coff-z8k" #endif -#ifdef TC_H8300 -#include "coff/h8300.h" -#define TARGET_FORMAT "coff-h8300" -#endif - -#ifdef TC_H8500 -#include "coff/h8500.h" -#define TARGET_FORMAT "coff-h8500" -#endif - -#ifdef TC_MAXQ20 -#include "coff/maxq.h" -#define TARGET_FORMAT "coff-maxq" -#endif - #ifdef TC_SH #ifdef TE_PE @@ -125,13 +94,6 @@ #endif #endif -#ifdef TC_MIPS -#define COFF_WITH_PE -#include "coff/mipspe.h" -#undef TARGET_FORMAT -#define TARGET_FORMAT "pe-mips" -#endif - #ifdef TC_TIC30 #include "coff/tic30.h" #define TARGET_FORMAT "coff-tic30" @@ -155,9 +117,6 @@ #endif #ifdef TE_PE -/* PE weak symbols need USE_UNIQUE. */ -#define USE_UNIQUE 1 - #define obj_set_weak_hook pecoff_obj_set_weak_hook #define obj_clear_weak_hook pecoff_obj_clear_weak_hook #endif @@ -167,6 +126,7 @@ #endif #define obj_symbol_new_hook coff_obj_symbol_new_hook +#define obj_symbol_clone_hook coff_obj_symbol_clone_hook #define obj_read_begin_hook coff_obj_read_begin_hook #include "bfd/libcoff.h" @@ -175,13 +135,8 @@ /* Alter the field names, for now, until we've fixed up the other references to use the new name. */ -#ifdef TC_I960 -#define TC_SYMFIELD_TYPE symbolS * -#define sy_tc bal -#endif - #define OBJ_SYMFIELD_TYPE unsigned long -#define sy_obj sy_flags +#define sy_obj sy_obj_flags /* We can't use the predefined section symbols in bfd/section.c, as COFF symbols have extra fields. See bfd/libcoff.h:coff_symbol_type. */ @@ -231,27 +186,17 @@ /* Internal use only definitions. SF_ stands for symbol flags. - These values can be assigned to sy_symbol.ost_flags field of a symbolS. - - You'll break i960 if you shift the SYSPROC bits anywhere else. for - more on the balname/callname hack, see tc-i960.h. b.out is done - differently. */ + These values can be assigned to sy_symbol.ost_flags field of a symbolS. */ -#define SF_I960_MASK 0x000001ff /* Bits 0-8 are used by the i960 port. */ -#define SF_SYSPROC 0x0000003f /* bits 0-5 are used to store the sysproc number. */ -#define SF_IS_SYSPROC 0x00000040 /* bit 6 marks symbols that are sysprocs. */ -#define SF_BALNAME 0x00000080 /* bit 7 marks BALNAME symbols. */ -#define SF_CALLNAME 0x00000100 /* bit 8 marks CALLNAME symbols. */ - #define SF_NORMAL_MASK 0x0000ffff /* bits 12-15 are general purpose. */ - + #define SF_STATICS 0x00001000 /* Mark the .text & all symbols. */ #define SF_DEFINED 0x00002000 /* Symbol is defined in this file. */ #define SF_STRING 0x00004000 /* Symbol name length > 8. */ #define SF_LOCAL 0x00008000 /* Symbol must not be emitted. */ - + #define SF_DEBUG_MASK 0xffff0000 /* bits 16-31 are debug info. */ - + #define SF_FUNCTION 0x00010000 /* The symbol is a function. */ #define SF_PROCESS 0x00020000 /* Process symbol before write. */ #define SF_TAGGED 0x00040000 /* Is associated with a tag. */ @@ -276,11 +221,6 @@ #define SF_GET_TAGGED(s) (SF_GET (s) & SF_TAGGED) #define SF_GET_TAG(s) (SF_GET (s) & SF_TAG) #define SF_GET_GET_SEGMENT(s) (SF_GET (s) & SF_GET_SEGMENT) -#define SF_GET_I960(s) (SF_GET (s) & SF_I960_MASK) /* Used by i960. */ -#define SF_GET_BALNAME(s) (SF_GET (s) & SF_BALNAME) /* Used by i960. */ -#define SF_GET_CALLNAME(s) (SF_GET (s) & SF_CALLNAME) /* Used by i960. */ -#define SF_GET_IS_SYSPROC(s) (SF_GET (s) & SF_IS_SYSPROC) /* Used by i960. */ -#define SF_GET_SYSPROC(s) (SF_GET (s) & SF_SYSPROC) /* Used by i960. */ /* Modifiers. */ #define SF_SET(s,v) (SF_GET (s) = (v)) @@ -297,11 +237,6 @@ #define SF_SET_TAGGED(s) (SF_GET (s) |= SF_TAGGED) #define SF_SET_TAG(s) (SF_GET (s) |= SF_TAG) #define SF_SET_GET_SEGMENT(s) (SF_GET (s) |= SF_GET_SEGMENT) -#define SF_SET_I960(s,v) (SF_GET (s) |= ((v) & SF_I960_MASK)) /* Used by i960. */ -#define SF_SET_BALNAME(s) (SF_GET (s) |= SF_BALNAME) /* Used by i960. */ -#define SF_SET_CALLNAME(s) (SF_GET (s) |= SF_CALLNAME) /* Used by i960. */ -#define SF_SET_IS_SYSPROC(s) (SF_GET (s) |= SF_IS_SYSPROC) /* Used by i960. */ -#define SF_SET_SYSPROC(s,v) (SF_GET (s) |= ((v) & SF_SYSPROC)) /* Used by i960. */ /* Line number handling. */ @@ -337,12 +272,6 @@ extern symbolS *coff_last_function; /* Sanity check. */ -#ifdef TC_I960 -#ifndef C_LEAFSTAT -hey ! Where is the C_LEAFSTAT definition ? i960 - coff support is depending on it. -#endif /* no C_LEAFSTAT */ -#endif /* TC_I960 */ - extern const pseudo_typeS coff_pseudo_table[]; #ifndef obj_pop_insert @@ -386,6 +315,7 @@ extern void coff_frob_section (segT); extern void coff_adjust_section_syms (bfd *, asection *, void *); extern void coff_frob_file_after_relocs (void); extern void coff_obj_symbol_new_hook (symbolS *); +extern void coff_obj_symbol_clone_hook (symbolS *, symbolS *); extern void coff_obj_read_begin_hook (void); #ifdef TE_PE extern void pecoff_obj_set_weak_hook (symbolS *); @@ -404,4 +334,11 @@ extern void obj_coff_init_stab_section (segT); extern void c_section_header (struct internal_scnhdr *, char *, long, long, long, long, long, long, long, long); +extern void obj_coff_seh_do_final (void); + +#ifndef obj_coff_generate_pdata +#define obj_coff_generate_pdata obj_coff_seh_do_final +#endif + + #endif /* OBJ_FORMAT_H */