Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. /* ldlex.h -
  2.    Copyright 1991, 1992, 1993, 1994, 1995, 1997, 2000, 2003, 2005, 2006,
  3.    2007, 2012 Free Software Foundation, Inc.
  4.  
  5.    This file is part of the GNU Binutils.
  6.  
  7.    This program is free software; you can redistribute it and/or modify
  8.    it under the terms of the GNU General Public License as published by
  9.    the Free Software Foundation; either version 3 of the License, or
  10.    (at your option) any later version.
  11.  
  12.    This program is distributed in the hope that it will be useful,
  13.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15.    GNU General Public License for more details.
  16.  
  17.    You should have received a copy of the GNU General Public License
  18.    along with this program; if not, write to the Free Software
  19.    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
  20.    MA 02110-1301, USA.  */
  21.  
  22. #ifndef LDLEX_H
  23. #define LDLEX_H
  24.  
  25. #include <stdio.h>
  26.  
  27. /* Codes used for the long options with no short synonyms.  150 isn't
  28.    special; it's just an arbitrary non-ASCII char value.  */
  29. enum option_values
  30. {
  31.   OPTION_ASSERT = 150,
  32.   OPTION_CALL_SHARED,
  33.   OPTION_CREF,
  34.   OPTION_DEFSYM,
  35.   OPTION_DEMANGLE,
  36.   OPTION_DYNAMIC_LINKER,
  37.   OPTION_SYSROOT,
  38.   OPTION_EB,
  39.   OPTION_EL,
  40.   OPTION_EMBEDDED_RELOCS,
  41.   OPTION_EXPORT_DYNAMIC,
  42.   OPTION_NO_EXPORT_DYNAMIC,
  43.   OPTION_HELP,
  44.   OPTION_IGNORE,
  45.   OPTION_MAP,
  46.   OPTION_NO_DEMANGLE,
  47.   OPTION_NO_KEEP_MEMORY,
  48.   OPTION_NO_WARN_MISMATCH,
  49.   OPTION_NO_WARN_SEARCH_MISMATCH,
  50.   OPTION_NOINHIBIT_EXEC,
  51.   OPTION_NON_SHARED,
  52.   OPTION_NO_WHOLE_ARCHIVE,
  53.   OPTION_OFORMAT,
  54.   OPTION_RELAX,
  55.   OPTION_NO_RELAX,
  56.   OPTION_RETAIN_SYMBOLS_FILE,
  57.   OPTION_RPATH,
  58.   OPTION_RPATH_LINK,
  59.   OPTION_SHARED,
  60.   OPTION_SONAME,
  61.   OPTION_SORT_COMMON,
  62.   OPTION_SORT_SECTION,
  63.   OPTION_STATS,
  64.   OPTION_SYMBOLIC,
  65.   OPTION_SYMBOLIC_FUNCTIONS,
  66.   OPTION_TASK_LINK,
  67.   OPTION_TBSS,
  68.   OPTION_TDATA,
  69.   OPTION_TTEXT,
  70.   OPTION_TTEXT_SEGMENT,
  71.   OPTION_TRODATA_SEGMENT,
  72.   OPTION_TLDATA_SEGMENT,
  73.   OPTION_TRADITIONAL_FORMAT,
  74.   OPTION_UR,
  75.   OPTION_VERBOSE,
  76.   OPTION_VERSION,
  77.   OPTION_VERSION_SCRIPT,
  78.   OPTION_VERSION_EXPORTS_SECTION,
  79.   OPTION_DYNAMIC_LIST,
  80.   OPTION_DYNAMIC_LIST_CPP_NEW,
  81.   OPTION_DYNAMIC_LIST_CPP_TYPEINFO,
  82.   OPTION_DYNAMIC_LIST_DATA,
  83.   OPTION_WARN_COMMON,
  84.   OPTION_WARN_CONSTRUCTORS,
  85.   OPTION_WARN_FATAL,
  86.   OPTION_NO_WARN_FATAL,
  87.   OPTION_WARN_MULTIPLE_GP,
  88.   OPTION_WARN_ONCE,
  89.   OPTION_WARN_SECTION_ALIGN,
  90.   OPTION_SPLIT_BY_RELOC,
  91.   OPTION_SPLIT_BY_FILE ,
  92.   OPTION_WHOLE_ARCHIVE,
  93.   OPTION_ADD_DT_NEEDED_FOR_DYNAMIC,
  94.   OPTION_NO_ADD_DT_NEEDED_FOR_DYNAMIC,
  95.   OPTION_ADD_DT_NEEDED_FOR_REGULAR,
  96.   OPTION_NO_ADD_DT_NEEDED_FOR_REGULAR,
  97.   OPTION_WRAP,
  98.   OPTION_FORCE_EXE_SUFFIX,
  99.   OPTION_GC_SECTIONS,
  100.   OPTION_NO_GC_SECTIONS,
  101.   OPTION_PRINT_GC_SECTIONS,
  102.   OPTION_NO_PRINT_GC_SECTIONS,
  103.   OPTION_HASH_SIZE,
  104.   OPTION_CHECK_SECTIONS,
  105.   OPTION_NO_CHECK_SECTIONS,
  106.   OPTION_NO_UNDEFINED,
  107.   OPTION_INIT,
  108.   OPTION_FINI,
  109.   OPTION_SECTION_START,
  110.   OPTION_UNIQUE,
  111.   OPTION_TARGET_HELP,
  112.   OPTION_ALLOW_SHLIB_UNDEFINED,
  113.   OPTION_NO_ALLOW_SHLIB_UNDEFINED,
  114.   OPTION_ALLOW_MULTIPLE_DEFINITION,
  115.   OPTION_NO_UNDEFINED_VERSION,
  116.   OPTION_DEFAULT_SYMVER,
  117.   OPTION_DEFAULT_IMPORTED_SYMVER,
  118.   OPTION_DISCARD_NONE,
  119.   OPTION_SPARE_DYNAMIC_TAGS,
  120.   OPTION_NO_DEFINE_COMMON,
  121.   OPTION_NOSTDLIB,
  122.   OPTION_NO_OMAGIC,
  123.   OPTION_STRIP_DISCARDED,
  124.   OPTION_NO_STRIP_DISCARDED,
  125.   OPTION_ACCEPT_UNKNOWN_INPUT_ARCH,
  126.   OPTION_NO_ACCEPT_UNKNOWN_INPUT_ARCH,
  127.   OPTION_PIE,
  128.   OPTION_UNRESOLVED_SYMBOLS,
  129.   OPTION_WARN_UNRESOLVED_SYMBOLS,
  130.   OPTION_ERROR_UNRESOLVED_SYMBOLS,
  131.   OPTION_WARN_SHARED_TEXTREL,
  132.   OPTION_WARN_ALTERNATE_EM,
  133.   OPTION_REDUCE_MEMORY_OVERHEADS,
  134. #ifdef ENABLE_PLUGINS
  135.   OPTION_PLUGIN,
  136.   OPTION_PLUGIN_OPT,
  137. #endif /* ENABLE_PLUGINS */
  138.   OPTION_DEFAULT_SCRIPT,
  139.   OPTION_PRINT_OUTPUT_FORMAT,
  140.   OPTION_IGNORE_UNRESOLVED_SYMBOL,
  141. };
  142.  
  143. /* The initial parser states.  */
  144. typedef enum input_enum {
  145.   input_selected,               /* We've set the initial state.  */
  146.   input_script,
  147.   input_mri_script,
  148.   input_version_script,
  149.   input_dynamic_list,
  150.   input_defsym
  151. } input_type;
  152.  
  153. extern input_type parser_input;
  154.  
  155. extern unsigned int lineno;
  156. extern const char *lex_string;
  157.  
  158. /* In ldlex.l.  */
  159. extern int yylex (void);
  160. extern void lex_push_file (FILE *, const char *, unsigned int);
  161. extern void lex_redirect (const char *, const char *, unsigned int);
  162. extern void ldlex_script (void);
  163. extern void ldlex_mri_script (void);
  164. extern void ldlex_version_script (void);
  165. extern void ldlex_version_file (void);
  166. extern void ldlex_defsym (void);
  167. extern void ldlex_expression (void);
  168. extern void ldlex_both (void);
  169. extern void ldlex_command (void);
  170. extern void ldlex_popstate (void);
  171. extern const char* ldlex_filename (void);
  172.  
  173. /* In lexsup.c.  */
  174. extern int lex_input (void);
  175. extern void lex_unput (int);
  176. #ifndef yywrap
  177. extern int yywrap (void);
  178. #endif
  179. extern void parse_args (unsigned, char **);
  180.  
  181. #endif
  182.