* Makefile.in (stamp-arch): Pass FLAGS to cgen.
[deliverable/binutils-gdb.git] / ld / ld.h
diff --git a/ld/ld.h b/ld/ld.h
index 048734cd88745db49aea6a4578b5fe91c8bc558f..d92b148486b526dad7f1cdf4cc7b0aabe123651d 100644 (file)
--- a/ld/ld.h
+++ b/ld/ld.h
@@ -1,6 +1,5 @@
-/* ld.h -
-
-   Copyright (C) 1991, 1993 Free Software Foundation, Inc.
+/* ld.h -- general linker header file
+   Copyright (C) 1991, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
 
    This file is part of GLD, the Gnu Linker.
 
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with GLD; see the file COPYING.  If not, write to
-   the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   along with GLD; see the file COPYING.  If not, write to the Free
+   Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+   02111-1307, USA.  */
 
 #ifndef LD_H
 #define LD_H
 
+#ifdef HAVE_LOCALE_H
+# include <locale.h>
+#endif
+
+#ifdef ENABLE_NLS
+# include <libintl.h>
+# define _(String) gettext (String)
+# ifdef gettext_noop
+#  define N_(String) gettext_noop (String)
+# else
+#  define N_(String) (String)
+# endif
+#else
+/* Stubs that do something close enough.  */
+# define textdomain(String) (String)
+# define gettext(String) (String)
+# define dgettext(Domain,Message) (Message)
+# define dcgettext(Domain,Message,Type) (Message)
+# define bindtextdomain(Domain,Directory) (Domain)
+# define _(String) (String)
+# define N_(String) (String)
+#endif
+
+#ifndef LC_MESSAGES
+# define LC_MESSAGES 0
+#endif
+
+/* Look in this environment name for the linker to pretend to be */
+#define EMULATION_ENVIRON "LDEMULATION"
+/* If in there look for the strings: */
+
+/* Look in this variable for a target format */
+#define TARGET_ENVIRON "GNUTARGET"
+
+/* Input sections which are put in a section of this name are actually
+   discarded.  */
+#define DISCARD_SECTION_NAME "/DISCARD/"
+
+/* A wildcard specification.  This is only used in ldgram.y, but it
+   winds up in ldgram.h, so we need to define it outside.  */
+
+struct wildcard_spec
+{
+  const char *name;
+  boolean sorted;
+};
+
 /* Extra information we hold on sections */
 typedef struct  user_section_struct
 {
@@ -59,6 +106,10 @@ typedef struct
   /* Runtime library search path from the -rpath argument.  */
   char *rpath;
 
+  /* Link time runtime library search path from the -rpath-link
+     argument.  */
+  char *rpath_link;
+
   /* Big or little endian as set on command line.  */
   enum { ENDIAN_UNSET = 0, ENDIAN_BIG, ENDIAN_LITTLE } endian;
 
@@ -69,6 +120,27 @@ typedef struct
   /* If true, build MIPS embedded PIC relocation tables in the output
      file.  */
   boolean embedded_relocs;
+
+  /* If true, force generation of a file with a .exe file. */
+  boolean force_exe_suffix;
+
+  /* If true, generate a cross reference report.  */
+  boolean cref;
+
+  /* If true (which is the default), warn about mismatched input
+     files.  */
+  boolean warn_mismatch;
+
+  /* Name of shared object whose symbol table should be filtered with
+     this shared object.  From the --filter option.  */
+  char *filter_shlib;
+
+  /* Name of shared object for whose symbol table this shared object
+     is an auxiliary filter.  From the --auxiliary option.  */
+  char **auxiliary_filters;
+
+  /* Remove unreferenced sections?  */
+  boolean gc_sections;
 } args_type;
 
 extern args_type command_line;
@@ -81,20 +153,35 @@ typedef struct
   boolean magic_demand_paged;
   boolean make_executable;
 
-  /* If true, request BFD to use the traditional format.  */
-  boolean traditional_format;
-
   /* If true, doing a dynamic link.  */
   boolean dynamic_link;
 
+  /* If true, -shared is supported.  */
+  /* ??? A better way to do this is perhaps to define this in the
+     ld_emulation_xfer_struct since this is really a target dependent
+     parameter.  */
+  boolean has_shared;
+
+  /* If true, build constructors.  */
   boolean build_constructors;
 
+  /* If true, warn about any constructors.  */
+  boolean warn_constructors;
+
   /* If true, warn about merging common symbols with others.  */
   boolean warn_common;
 
   /* If true, only warn once about a particular undefined symbol.  */
   boolean warn_once;
 
+  /* If true, warn if multiple global-pointers are needed (Alpha
+     only).  */
+  boolean warn_multiple_gp;
+
+  /* If true, warn if the starting address of an output section
+     changes due to the alignment of an input section.  */
+  boolean warn_section_align;
+
   boolean sort_common;
 
   boolean text_read_only;
@@ -120,6 +207,13 @@ typedef enum
 extern boolean had_script;
 extern boolean force_make_executable;
 
+/* Non-zero if we are processing a --defsym from the command line.  */
+extern int parsing_defsym;
+
 extern int yyparse PARAMS ((void));
 
+extern void add_cref PARAMS ((const char *, bfd *, asection *, bfd_vma));
+extern void output_cref PARAMS ((FILE *));
+extern void check_nocrossrefs PARAMS ((void));
+
 #endif
This page took 0.030992 seconds and 4 git commands to generate.