X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=ld%2Fldlex.h;h=32a7a6409e8e88e9b316636c4e6b435821e3ab9b;hb=f5d35bb7a5789950efd5f03b270d4c5f774eaba9;hp=53444cacad7803edd74b4461b4d6e4b419d17895;hpb=d0352a18a504a4e7b761f6b3264cf11347d8d056;p=deliverable%2Fbinutils-gdb.git diff --git a/ld/ldlex.h b/ld/ldlex.h index 53444cacad..32a7a6409e 100644 --- a/ld/ldlex.h +++ b/ld/ldlex.h @@ -1,34 +1,164 @@ /* ldlex.h - - Copyright 1991, 92, 93, 94, 95, 1997 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. - This file is part of GLD, the Gnu Linker. + This file is part of the GNU Binutils. - GLD is free software; you can redistribute it and/or modify + This program 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 1, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - GLD is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 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 this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, + MA 02110-1301, USA. */ #ifndef LDLEX_H #define LDLEX_H #include +/* Codes used for the long options with no short synonyms. 150 isn't + special; it's just an arbitrary non-ASCII char value. */ +enum option_values +{ + OPTION_ASSERT = 150, + OPTION_CALL_SHARED, + OPTION_CREF, + OPTION_DEFSYM, + OPTION_DEMANGLE, + OPTION_DYNAMIC_LINKER, + OPTION_NO_DYNAMIC_LINKER, + OPTION_SYSROOT, + OPTION_OUT_IMPLIB, + OPTION_EB, + OPTION_EL, + OPTION_EMBEDDED_RELOCS, + OPTION_EXPORT_DYNAMIC, + OPTION_NO_EXPORT_DYNAMIC, + OPTION_HELP, + OPTION_IGNORE, + OPTION_MAP, + OPTION_NO_DEMANGLE, + OPTION_NO_KEEP_MEMORY, + OPTION_NO_WARN_MISMATCH, + OPTION_NO_WARN_SEARCH_MISMATCH, + OPTION_NOINHIBIT_EXEC, + OPTION_NON_SHARED, + OPTION_NO_WHOLE_ARCHIVE, + OPTION_OFORMAT, + OPTION_RELAX, + OPTION_NO_RELAX, + OPTION_RETAIN_SYMBOLS_FILE, + OPTION_RPATH, + OPTION_RPATH_LINK, + OPTION_SHARED, + OPTION_SONAME, + OPTION_SORT_COMMON, + OPTION_SORT_SECTION, + OPTION_STATS, + OPTION_SYMBOLIC, + OPTION_SYMBOLIC_FUNCTIONS, + OPTION_TASK_LINK, + OPTION_TBSS, + OPTION_TDATA, + OPTION_TTEXT, + OPTION_TTEXT_SEGMENT, + OPTION_TRODATA_SEGMENT, + OPTION_TLDATA_SEGMENT, + OPTION_TRADITIONAL_FORMAT, + OPTION_UR, + OPTION_VERBOSE, + OPTION_VERSION, + OPTION_VERSION_SCRIPT, + OPTION_VERSION_EXPORTS_SECTION, + OPTION_DYNAMIC_LIST, + OPTION_DYNAMIC_LIST_CPP_NEW, + OPTION_DYNAMIC_LIST_CPP_TYPEINFO, + OPTION_DYNAMIC_LIST_DATA, + OPTION_WARN_COMMON, + OPTION_WARN_CONSTRUCTORS, + OPTION_WARN_FATAL, + OPTION_NO_WARN_FATAL, + OPTION_WARN_MULTIPLE_GP, + OPTION_WARN_ONCE, + OPTION_WARN_SECTION_ALIGN, + OPTION_SPLIT_BY_RELOC, + OPTION_SPLIT_BY_FILE , + OPTION_WHOLE_ARCHIVE, + OPTION_ADD_DT_NEEDED_FOR_DYNAMIC, + OPTION_NO_ADD_DT_NEEDED_FOR_DYNAMIC, + OPTION_ADD_DT_NEEDED_FOR_REGULAR, + OPTION_NO_ADD_DT_NEEDED_FOR_REGULAR, + OPTION_WRAP, + OPTION_FORCE_EXE_SUFFIX, + OPTION_GC_SECTIONS, + OPTION_NO_GC_SECTIONS, + OPTION_PRINT_GC_SECTIONS, + OPTION_NO_PRINT_GC_SECTIONS, + OPTION_GC_KEEP_EXPORTED, + OPTION_HASH_SIZE, + OPTION_CHECK_SECTIONS, + OPTION_NO_CHECK_SECTIONS, + OPTION_NO_UNDEFINED, + OPTION_INIT, + OPTION_FINI, + OPTION_SECTION_START, + OPTION_UNIQUE, + OPTION_TARGET_HELP, + OPTION_ALLOW_SHLIB_UNDEFINED, + OPTION_NO_ALLOW_SHLIB_UNDEFINED, + OPTION_ALLOW_MULTIPLE_DEFINITION, + OPTION_NO_UNDEFINED_VERSION, + OPTION_DEFAULT_SYMVER, + OPTION_DEFAULT_IMPORTED_SYMVER, + OPTION_DISCARD_NONE, + OPTION_SPARE_DYNAMIC_TAGS, + OPTION_NO_DEFINE_COMMON, + OPTION_NOSTDLIB, + OPTION_NO_OMAGIC, + OPTION_STRIP_DISCARDED, + OPTION_NO_STRIP_DISCARDED, + OPTION_ACCEPT_UNKNOWN_INPUT_ARCH, + OPTION_NO_ACCEPT_UNKNOWN_INPUT_ARCH, + OPTION_PIE, + OPTION_UNRESOLVED_SYMBOLS, + OPTION_WARN_UNRESOLVED_SYMBOLS, + OPTION_ERROR_UNRESOLVED_SYMBOLS, + OPTION_WARN_SHARED_TEXTREL, + OPTION_WARN_ALTERNATE_EM, + OPTION_REDUCE_MEMORY_OVERHEADS, +#ifdef ENABLE_PLUGINS + OPTION_PLUGIN, + OPTION_PLUGIN_OPT, +#endif /* ENABLE_PLUGINS */ + OPTION_DEFAULT_SCRIPT, + OPTION_PRINT_OUTPUT_FORMAT, + OPTION_PRINT_SYSROOT, + OPTION_IGNORE_UNRESOLVED_SYMBOL, + OPTION_PUSH_STATE, + OPTION_POP_STATE, + OPTION_DISABLE_MULTIPLE_DEFS_ABS, + OPTION_PRINT_MEMORY_USAGE, + OPTION_REQUIRE_DEFINED_SYMBOL, + OPTION_ORPHAN_HANDLING, + OPTION_FORCE_GROUP_ALLOCATION, + OPTION_PRINT_MAP_DISCARDED, + OPTION_NO_PRINT_MAP_DISCARDED, +}; + /* The initial parser states. */ typedef enum input_enum { input_selected, /* We've set the initial state. */ input_script, input_mri_script, input_version_script, + input_dynamic_list, input_defsym } input_type; @@ -38,25 +168,23 @@ extern unsigned int lineno; extern const char *lex_string; /* In ldlex.l. */ -extern int yylex PARAMS ((void)); -extern void lex_push_file PARAMS ((FILE *, const char *)); -extern void lex_redirect PARAMS ((const char *)); -extern void ldlex_script PARAMS ((void)); -extern void ldlex_mri_script PARAMS ((void)); -extern void ldlex_version_script PARAMS ((void)); -extern void ldlex_version_file PARAMS ((void)); -extern void ldlex_defsym PARAMS ((void)); -extern void ldlex_expression PARAMS ((void)); -extern void ldlex_both PARAMS ((void)); -extern void ldlex_command PARAMS ((void)); -extern void ldlex_popstate PARAMS ((void)); +extern int yylex (void); +extern void lex_push_file (FILE *, const char *, unsigned int); +extern void lex_redirect (const char *, const char *, unsigned int); +extern void ldlex_script (void); +extern void ldlex_inputlist (void); +extern void ldlex_mri_script (void); +extern void ldlex_version_script (void); +extern void ldlex_version_file (void); +extern void ldlex_defsym (void); +extern void ldlex_expression (void); +extern void ldlex_both (void); +extern void ldlex_popstate (void); +extern const char* ldlex_filename (void); /* In lexsup.c. */ -extern int lex_input PARAMS ((void)); -extern void lex_unput PARAMS ((int)); -#ifndef yywrap -extern int yywrap PARAMS ((void)); -#endif -extern void parse_args PARAMS ((int, char **)); +extern int lex_input (void); +extern void lex_unput (int); +extern void parse_args (unsigned, char **); #endif