* ld.h (wildcard_spec): Change exclude_name to exclude_name_list.
[deliverable/binutils-gdb.git] / ld / ld.h
diff --git a/ld/ld.h b/ld/ld.h
index d23633e168dee0322d30794069b01dac0af86a3c..3c53b98a54ce05a2219d585af4885b6da014d890 100644 (file)
--- a/ld/ld.h
+++ b/ld/ld.h
@@ -1,6 +1,6 @@
-/* ld.h -
-
-   Copyright (C) 1991, 1993 Free Software Foundation, Inc.
+/* ld.h -- general linker header file
+   Copyright (C) 1991, 93, 94, 95, 96, 97, 98, 99, 2000
+   Free Software Foundation, Inc.
 
    This file is part of GLD, the Gnu Linker.
 
 
    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
    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, 675 Mass Ave, Cambridge, MA 02139, 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
 
 
 #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
+
+/* 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 file name list */
+typedef struct name_list
+{
+   const char *name;
+   struct name_list *next;
+} name_list;
+
+/* 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;
+  struct name_list *exclude_name_list;
+  boolean sorted;
+};
+
 /* Extra information we hold on sections */
 typedef struct  user_section_struct
 {
 /* Extra information we hold on sections */
 typedef struct  user_section_struct
 {
@@ -58,6 +110,51 @@ typedef struct
 
   /* Runtime library search path from the -rpath argument.  */
   char *rpath;
 
   /* 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;
+
+  /* If true, export all symbols in the dynamic symbol table of an ELF
+     executable.  */
+  boolean export_dynamic;
+
+  /* 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;
+
+  /* Remove unreferenced sections?  */
+  boolean gc_sections;
+
+  /* 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;
+
+  /* A version symbol to be applied to the symbol names found in the
+     .exports sections.  */
+  char *version_exports_section;
+
+  /* If true (the default) check section addresses, once compute,
+     fpor overlaps.  */
+  boolean check_section_addresses;
+  
 } args_type;
 
 extern args_type command_line;
 } args_type;
 
 extern args_type command_line;
@@ -70,20 +167,35 @@ typedef struct
   boolean magic_demand_paged;
   boolean make_executable;
 
   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, 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;
 
   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 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;
   boolean sort_common;
 
   boolean text_read_only;
@@ -92,6 +204,9 @@ typedef struct
   FILE *map_file;
 
   boolean stats;
   FILE *map_file;
 
   boolean stats;
+
+  int split_by_reloc;
+  boolean split_by_file;
 } ld_config_type;
 
 extern ld_config_type config;
 } ld_config_type;
 
 extern ld_config_type config;
@@ -106,6 +221,24 @@ typedef enum
 extern boolean had_script;
 extern boolean force_make_executable;
 
 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 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));
+
+extern void ld_abort PARAMS ((const char *, int, const char *))
+     ATTRIBUTE_NORETURN;
+
+/* If gcc, we can give a function name, too.  */
+#if !defined (__GNUC__) || __GNUC_MINOR__ <= 5
+#define __PRETTY_FUNCTION__  ((char*) NULL)
+#endif
+
+#undef abort
+#define abort() ld_abort (__FILE__, __LINE__, __PRETTY_FUNCTION__)
+
 #endif
 #endif
This page took 0.02494 seconds and 4 git commands to generate.