]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gas/config/obj-coff.h
Update year range in copyright notice of binutils files
[thirdparty/binutils-gdb.git] / gas / config / obj-coff.h
index 6fcbc9f06cbbdf088a1c408bdba0e5546f3ab979..917b659e586f1572c28a6487245dfd797440c569 100644 (file)
@@ -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-2021 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
 #endif
 
 #ifdef TC_PPC
-#ifdef TE_PE
-#include "coff/powerpc.h"
-#else
 #include "coff/rs6000.h"
 #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"
 #endif
 
 #ifdef TC_Z80
 #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
 #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"
 #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
 
 /* 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.  */
 
 /* Internal use only definitions. SF_ stands for symbol flags.
 
-   These values can be assigned to sy_symbol.ost_flags field of a symbolS.
+   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.  */
-
-#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.  */
 #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))
 #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.  */
@@ -343,12 +268,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
@@ -361,7 +280,7 @@ extern const pseudo_typeS coff_pseudo_table[];
    as in start/_start/__start in gcc/libgcc1-test.c.  */
 #define RESOLVE_SYMBOL_REDEFINITION(sym)               \
 (SF_GET_GET_SEGMENT (sym)                              \
- ? (sym->sy_frag = frag_now,                           \
+ ? (sym->frag = frag_now,                              \
     S_SET_VALUE (sym, frag_now_fix ()),                        \
     S_SET_SEGMENT (sym, now_seg),                      \
     0)                                                 \
@@ -411,4 +330,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 */