Home | History | Annotate | Download | only in ld
      1 /* ldmain.h -
      2    Copyright (C) 1991-2016 Free Software Foundation, Inc.
      3 
      4    This file is part of the GNU Binutils.
      5 
      6    This program is free software; you can redistribute it and/or modify
      7    it under the terms of the GNU General Public License as published by
      8    the Free Software Foundation; either version 3 of the License, or
      9    (at your option) any later version.
     10 
     11    This program is distributed in the hope that it will be useful,
     12    but WITHOUT ANY WARRANTY; without even the implied warranty of
     13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     14    GNU General Public License for more details.
     15 
     16    You should have received a copy of the GNU General Public License
     17    along with this program; if not, write to the Free Software
     18    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
     19    MA 02110-1301, USA.  */
     20 
     21 #ifndef LDMAIN_H
     22 #define LDMAIN_H
     23 
     24 extern char *program_name;
     25 extern const char *ld_sysroot;
     26 extern char *ld_canon_sysroot;
     27 extern int ld_canon_sysroot_len;
     28 extern FILE *saved_script_handle;
     29 extern FILE *previous_script_handle;
     30 extern bfd_boolean force_make_executable;
     31 extern char *default_target;
     32 extern bfd_boolean trace_files;
     33 extern bfd_boolean verbose;
     34 extern bfd_boolean version_printed;
     35 extern bfd_boolean demangling;
     36 extern int g_switch_value;
     37 extern const char *output_filename;
     38 extern struct bfd_link_info link_info;
     39 extern int overflow_cutoff_limit;
     40 
     41 #define RELAXATION_DISABLED_BY_DEFAULT	\
     42   (link_info.disable_target_specific_optimizations < 0)
     43 #define RELAXATION_DISABLED_BY_USER	\
     44   (link_info.disable_target_specific_optimizations > 1)
     45 #define RELAXATION_ENABLED		\
     46   (link_info.disable_target_specific_optimizations == 0 \
     47    || link_info.disable_target_specific_optimizations == 1)
     48 #define RELAXATION_ENABLED_BY_USER		\
     49   (link_info.disable_target_specific_optimizations == 0)
     50 #define TARGET_ENABLE_RELAXATION		\
     51   do { link_info.disable_target_specific_optimizations = 1; } while (0)
     52 #define DISABLE_RELAXATION		\
     53   do { link_info.disable_target_specific_optimizations = 2; } while (0)
     54 #define ENABLE_RELAXATION		\
     55   do { link_info.disable_target_specific_optimizations = 0; } while (0)
     56 
     57 extern void add_ysym (const char *);
     58 extern void add_wrap (const char *);
     59 extern void add_ignoresym (struct bfd_link_info *, const char *);
     60 extern void add_keepsyms_file (const char *);
     61 
     62 #endif
     63