/* as.h - global header file
- Copyright (C) 1987, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000
+ Copyright 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+ 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
/* This is the code recommended in the autoconf documentation, almost
verbatim. If it doesn't work for you, let me know, and notify
djm@gnu.ai.mit.edu as well. */
-/* Added #undef for DJ Delorie. The right fix is to ensure that as.h
- is included first, before even any system header files, in all files
- that use it. KR 1994.11.03 */
/* Added void* version for STDC case. This is to be compatible with
the declaration in bison.simple, used for m68k operand parsing.
--KR 1995.08.08 */
/* Force void* decl for hpux. This is what Bison uses. --KR 1995.08.16 */
-/* AIX requires this to be the first thing in the file. */
-#ifdef __GNUC__
-# ifndef alloca
-# ifdef __STDC__
-extern void *alloca ();
-# else
-extern char *alloca ();
-# endif
-# endif
-#else
+#ifndef __GNUC__
# if HAVE_ALLOCA_H
# include <alloca.h>
# else
# ifdef _AIX
+/* Indented so that pre-ansi C compilers will ignore it, rather than
+ choke on it. Some versions of AIX require this to be the first
+ thing in the file. */
#pragma alloca
# else
# ifndef alloca /* predefined by HP cc +Olibcalls */
# endif /* alloca */
# endif /* _AIX */
# endif /* HAVE_ALLOCA_H */
-#endif
+#endif /* __GNUC__ */
/* Now, tend to the rest of the configuration. */
/* System include files first... */
#include <stdio.h>
-#include <ctype.h>
#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <sys/types.h>
#endif
-#include <getopt.h>
+#include "getopt.h"
/* The first getopt value for machine-independent long options.
150 isn't special; it's just an arbitrary non-ASCII char value. */
#define OPTION_STD_BASE 150
/* Hack to make "gcc -Wall" not complain about obstack macros. */
#if !defined (memcpy) && !defined (bcopy)
-#define bcopy(src,dest,size) memcpy(dest,src,size)
+#define bcopy(src,dest,size) memcpy (dest, src, size)
#endif
/* Make Saber happier on obstack.h. */
#ifdef SABER
#undef __PTR_TO_INT
-#define __PTR_TO_INT(P) ((int)(P))
+#define __PTR_TO_INT(P) ((int) (P))
#undef __INT_TO_PTR
-#define __INT_TO_PTR(P) ((char *)(P))
+#define __INT_TO_PTR(P) ((char *) (P))
#endif
#ifndef __LINE__
#endif /* __FILE__ */
#ifndef FOPEN_WB
-#ifdef GO32
+#if defined GO32 || defined __MINGW32__
#include "fopen-bin.h"
#else
#include "fopen-same.h"
bytes to skip when aligning, or 0 if there is no maximum. */
rs_align_code,
+ /* Test for alignment. Like rs_align, but used by several targets
+ to warn if data is not properly aligned. */
+ rs_align_test,
+
/* Org: Fr_offset, fr_symbol: address. 1 variable char: fill
character. */
rs_org,
rs_leb128,
/* Exception frame information which we may be able to optimize. */
- rs_cfa
+ rs_cfa,
+
+ /* Cross-fragment dwarf2 line number optimization. */
+ rs_dwarf2dbg
};
typedef enum _relax_state relax_stateT;
/* True if we should generate a traditional format object file. */
COMMON int flag_traditional_format;
+/* TRUE if .note.GNU-stack section with SEC_CODE should be created */
+COMMON int flag_execstack;
+
+/* TRUE if .note.GNU-stack section with SEC_CODE should be created */
+COMMON int flag_noexecstack;
+
/* name of emitted object file */
COMMON char *out_file_name;
/* Maximum level of macro nesting. */
extern int max_macro_nest;
+/* Verbosity level. */
+extern int verbose;
+
/* Obstack chunk size. Keep large for efficient space use, make small to
increase malloc calls for monitoring memory allocation. */
extern int chunksize;
int eh_frame_relax_frag PARAMS ((fragS *));
void eh_frame_convert_frag PARAMS ((fragS *));
+int generic_force_reloc PARAMS ((struct fix *));
+
#include "expr.h" /* Before targ-*.h */
/* this one starts the chain of target dependant headers */
#include "targ-env.h"
+#ifdef OBJ_MAYBE_ELF
+#define IS_ELF (OUTPUT_FLAVOR == bfd_target_elf_flavour)
+#else
+#ifdef OBJ_ELF
+#define IS_ELF 1
+#else
+#define IS_ELF 0
+#endif
+#endif
+
#include "write.h"
#include "frags.h"
#include "hash.h"