X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=ld%2Fldmain.h;h=b1db894a8914fa0cc8708f84cc37668ae8155640;hb=827041555ac443bd57340060f3e034fd7b199dd8;hp=7b41478431c6fb7cb656fac0f54b3126f13d0200;hpb=fcf276c4958f7cc906ec389f003aa2a713c98528;p=deliverable%2Fbinutils-gdb.git diff --git a/ld/ldmain.h b/ld/ldmain.h index 7b41478431..b1db894a89 100644 --- a/ld/ldmain.h +++ b/ld/ldmain.h @@ -1,42 +1,62 @@ /* ldmain.h - - Copyright 1991, 1992 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, 675 Mass Ave, Cambridge, MA 02139, 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 LDMAIN_H #define LDMAIN_H extern char *program_name; -extern bfd *output_bfd; +extern const char *ld_sysroot; +extern char *ld_canon_sysroot; +extern int ld_canon_sysroot_len; +extern FILE *saved_script_handle; +extern FILE *previous_script_handle; +extern bfd_boolean force_make_executable; extern char *default_target; -extern boolean trace_files; -extern boolean trace_file_tries; -extern boolean write_map; +extern unsigned int trace_files; +extern bfd_boolean verbose; +extern bfd_boolean version_printed; +extern bfd_boolean demangling; extern int g_switch_value; -extern unsigned int commons_pending; extern const char *output_filename; -extern char lprefix; -extern unsigned int total_files_seen; -extern unsigned int total_symbols_seen; - -extern void enter_global_ref PARAMS ((asymbol **, CONST char *)); -extern void ldmain_open_file_read_symbol - PARAMS ((struct lang_input_statement_struct *)); -extern void refize PARAMS ((ldsym_type *sp, asymbol **nlist_p)); -extern void add_ysym PARAMS ((char *)); +extern struct bfd_link_info link_info; +extern int overflow_cutoff_limit; + +#define RELAXATION_DISABLED_BY_DEFAULT \ + (link_info.disable_target_specific_optimizations < 0) +#define RELAXATION_DISABLED_BY_USER \ + (link_info.disable_target_specific_optimizations > 1) +#define RELAXATION_ENABLED \ + (link_info.disable_target_specific_optimizations == 0 \ + || link_info.disable_target_specific_optimizations == 1) +#define RELAXATION_ENABLED_BY_USER \ + (link_info.disable_target_specific_optimizations == 0) +#define TARGET_ENABLE_RELAXATION \ + do { link_info.disable_target_specific_optimizations = 1; } while (0) +#define DISABLE_RELAXATION \ + do { link_info.disable_target_specific_optimizations = 2; } while (0) +#define ENABLE_RELAXATION \ + do { link_info.disable_target_specific_optimizations = 0; } while (0) + +extern void add_ysym (const char *); +extern void add_wrap (const char *); +extern void add_ignoresym (struct bfd_link_info *, const char *); +extern void add_keepsyms_file (const char *); #endif