mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2025-01-24 10:24:55 +00:00
Move disable_target_specific_optimizations to bfd_link_info
include/ * bfdlink.h (bfd_link_info): Add disable_target_specific_optimizations. ld/ * ld.h (command_line): Remove disable_target_specific_optimizations. (RELAXATION_DISABLED_BY_DEFAULT): Removed. (RELAXATION_DISABLED_BY_USER): Likewise. (RELAXATION_ENABLED): Likewise. (DISABLE_RELAXATION): Likewise. (ENABLE_RELAXATION): Likewise. * ldmain.c (main): Updated. * ldmain.h (RELAXATION_DISABLED_BY_DEFAULT): New macro. (RELAXATION_DISABLED_BY_USER): Likewise. (RELAXATION_ENABLED): Likewise. (DISABLE_RELAXATION): Likewise. (ENABLE_RELAXATION): Likewise.
This commit is contained in:
parent
35c813e224
commit
4f9d22a0b1
@ -1,3 +1,8 @@
|
||||
2012-10-24 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* bfdlink.h (bfd_link_info): Add
|
||||
disable_target_specific_optimizations.
|
||||
|
||||
2012-10-23 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
* bfdlink.h (struct bfd_link_info): Add stacksize option.
|
||||
|
@ -420,6 +420,24 @@ struct bfd_link_info
|
||||
means explicitly zero-sized. */
|
||||
bfd_signed_vma stacksize;
|
||||
|
||||
/* Enable or disable target specific optimizations.
|
||||
|
||||
Not all targets have optimizations to enable.
|
||||
|
||||
Normally these optimizations are disabled by default but some targets
|
||||
prefer to enable them by default. So this field is a tri-state variable.
|
||||
The values are:
|
||||
|
||||
zero: Enable the optimizations (either from --relax being specified on
|
||||
the command line or the backend's before_allocation emulation function.
|
||||
|
||||
positive: The user has requested that these optimizations be disabled.
|
||||
(Via the --no-relax command line option).
|
||||
|
||||
negative: The optimizations are disabled. (Set when initializing the
|
||||
args_type structure in ldmain.c:main. */
|
||||
signed int disable_target_specific_optimizations;
|
||||
|
||||
/* Function callbacks. */
|
||||
const struct bfd_link_callbacks *callbacks;
|
||||
|
||||
|
18
ld/ChangeLog
18
ld/ChangeLog
@ -1,3 +1,21 @@
|
||||
2012-10-24 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* ld.h (command_line): Remove
|
||||
disable_target_specific_optimizations.
|
||||
(RELAXATION_DISABLED_BY_DEFAULT): Removed.
|
||||
(RELAXATION_DISABLED_BY_USER): Likewise.
|
||||
(RELAXATION_ENABLED): Likewise.
|
||||
(DISABLE_RELAXATION): Likewise.
|
||||
(ENABLE_RELAXATION): Likewise.
|
||||
|
||||
* ldmain.c (main): Updated.
|
||||
|
||||
* ldmain.h (RELAXATION_DISABLED_BY_DEFAULT): New macro.
|
||||
(RELAXATION_DISABLED_BY_USER): Likewise.
|
||||
(RELAXATION_ENABLED): Likewise.
|
||||
(DISABLE_RELAXATION): Likewise.
|
||||
(ENABLE_RELAXATION): Likewise.
|
||||
|
||||
2012-10-23 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
* ld.texinfo (stack-size): New option.
|
||||
|
23
ld/ld.h
23
ld/ld.h
@ -149,29 +149,6 @@ typedef struct {
|
||||
/* 1 => do not assign addresses to common symbols. */
|
||||
bfd_boolean inhibit_common_definition;
|
||||
|
||||
/* Enable or disable target specific optimizations.
|
||||
|
||||
Not all targets have optimizations to enable.
|
||||
|
||||
Normally these optimizations are disabled by default but some targets
|
||||
prefer to enable them by default. So this field is a tri-state variable.
|
||||
The values are:
|
||||
|
||||
zero: Enable the optimizations (either from --relax being specified on
|
||||
the command line or the backend's before_allocation emulation function.
|
||||
|
||||
positive: The user has requested that these optimizations be disabled.
|
||||
(Via the --no-relax command line option).
|
||||
|
||||
negative: The optimizations are disabled. (Set when initializing the
|
||||
args_type structure in ldmain.c:main. */
|
||||
signed int disable_target_specific_optimizations;
|
||||
#define RELAXATION_DISABLED_BY_DEFAULT (command_line.disable_target_specific_optimizations < 0)
|
||||
#define RELAXATION_DISABLED_BY_USER (command_line.disable_target_specific_optimizations > 0)
|
||||
#define RELAXATION_ENABLED (command_line.disable_target_specific_optimizations == 0)
|
||||
#define DISABLE_RELAXATION do { command_line.disable_target_specific_optimizations = 1; } while (0)
|
||||
#define ENABLE_RELAXATION do { command_line.disable_target_specific_optimizations = 0; } while (0)
|
||||
|
||||
/* If TRUE, build MIPS embedded PIC relocation tables in the output
|
||||
file. */
|
||||
bfd_boolean embedded_relocs;
|
||||
|
@ -260,11 +260,11 @@ main (int argc, char **argv)
|
||||
config.make_executable = TRUE;
|
||||
config.magic_demand_paged = TRUE;
|
||||
config.text_read_only = TRUE;
|
||||
link_info.disable_target_specific_optimizations = -1;
|
||||
|
||||
command_line.warn_mismatch = TRUE;
|
||||
command_line.warn_search_mismatch = TRUE;
|
||||
command_line.check_section_addresses = -1;
|
||||
command_line.disable_target_specific_optimizations = -1;
|
||||
|
||||
/* We initialize DEMANGLING based on the environment variable
|
||||
COLLECT_NO_DEMANGLE. The gcc collect2 program will demangle the
|
||||
@ -954,7 +954,7 @@ multiple_definition (struct bfd_link_info *info,
|
||||
if (RELAXATION_ENABLED)
|
||||
{
|
||||
einfo (_("%P: Disabling relaxation: it will not work with multiple definitions\n"));
|
||||
command_line.disable_target_specific_optimizations = -1;
|
||||
link_info.disable_target_specific_optimizations = -1;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
|
11
ld/ldmain.h
11
ld/ldmain.h
@ -39,6 +39,17 @@ extern const char *output_filename;
|
||||
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 > 0)
|
||||
#define RELAXATION_ENABLED \
|
||||
(link_info.disable_target_specific_optimizations == 0)
|
||||
#define DISABLE_RELAXATION \
|
||||
do { link_info.disable_target_specific_optimizations = 1; } 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 *);
|
||||
|
Loading…
x
Reference in New Issue
Block a user