X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Fconfig%2Fobj-coff.h;h=d99842d61ef453ed2f46272578d3ac28e59313ff;hb=3067d3b96cfb88e86acf94d2aa1575cff0e0110f;hp=c6b4e63e62fe6924627f6b06d1ca1feef235b962;hpb=7be1c4891a2036c31e706908d43f33f7f59ae5a9;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/config/obj-coff.h b/gas/config/obj-coff.h index c6b4e63e62..d99842d61e 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-2015 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 @@ -57,16 +53,20 @@ #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 +#endif #ifdef TC_M68K #include "coff/m68k.h" @@ -75,16 +75,16 @@ #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" #endif +#ifdef TC_Z80 +#include "coff/z80.h" +#define TARGET_FORMAT "coff-z80" +#endif + #ifdef TC_Z8K #include "coff/z8k.h" #define TARGET_FORMAT "coff-z8k" @@ -100,11 +100,6 @@ #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 @@ -155,8 +150,8 @@ #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 #ifndef OBJ_COFF_MAX_AUXENTRIES @@ -164,6 +159,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" @@ -178,7 +174,7 @@ #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. */ @@ -239,16 +235,16 @@ #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. */ @@ -383,7 +379,12 @@ 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 *); +extern void pecoff_obj_clear_weak_hook (symbolS *); +#endif extern void obj_coff_section (int); extern segT obj_coff_add_segment (const char *); extern void obj_coff_section (int); @@ -397,4 +398,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 */