diff options
author | Nick Clifton <nickc@redhat.com> | 2009-11-26 13:45:25 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2009-11-26 13:45:25 +0000 |
commit | 28d5f6774058f4c7d5141b1dda8b76ee81f8cf4f (patch) | |
tree | d2a5b9ce35ec5ae61d04c98564ff51460d3ec818 /ld/lexsup.c | |
parent | f1b9c60a8f8a6471f328fd1e1744c8592f63dd59 (diff) | |
download | gdb-28d5f6774058f4c7d5141b1dda8b76ee81f8cf4f.zip gdb-28d5f6774058f4c7d5141b1dda8b76ee81f8cf4f.tar.gz gdb-28d5f6774058f4c7d5141b1dda8b76ee81f8cf4f.tar.bz2 |
PR ld/10956
* ld.h (struct args_type): Rename 'relax' field to
'disable_target_specific_optimizations' and turn it into a
tri-state variable.
(RELAXATION_DISABLED_BY_DEFAULT): New macro.
(RELAXATION_DISABLED_BY_USER): New macro.
(RELAXATION_ENABLED): New macro.
(DISABLE_RELAXATION): New macro.
(ENABLE_RELAXATION): New macro.
* lexsup (enum option_values): Add OPTION_NO_RELAX.
(struct ld_options): Add --no-relax.
(parse_args): Handle OPTION_NO_RELAX. Use DISABLE_RELAXATION and
ENABLE_RELAXATION macros.
* ldlang.c (lang_relax_sections): Use RELAXATION_ENABLED macro.
(lang_process): Likewise.
* ldmain.c (main): Initialise
disable_target_specific_optimizations field.
(multiple_definition): Use RELAXATION_ENABLED macro.
* ld.texinfo: Document new command line option.
* emultempl/alphaelf.em: Remove --no-relax option.
(before_allocation): Test RELAXATION_DISABLED_BY_USER macro.
Use ENABLE_RELAXATION macro.
* emultempl/avrelf.em: (after_allocation): Test RELAXATION_ENABLED
macro.
* emultempl/cr16elf.em: Remove --no-relax option.
(before_allocation): Test RELAXATION_DISABLED_BY_USER macro.
Use ENABLE_RELAXATION macro.
* emultempl/crxelf.em: Remove --no-relax option.
(before_allocation): Test RELAXATION_DISABLED_BY_USER macro.
Use ENABLE_RELAXATION macro.
* emultempl/mmix-elfnmmo.em: (before_allocation): Use
ENABLE_RELAXATION macro.
* emultempl/needrelax.em: (before_allocation): Use
ENABLE_RELAXATION macro.
* emultempl/ppc32elf.em: (before_allocation): Test
RELAXATION_DISABLED_BY_DEFAULT macro. Use
ENABLE_RELAXATION macro.
* emultempl/sh64elf.em: (before_allocation): Test
RELAXATION_ENABLED macro. Use DISABLE_RELAXATION macro.
* emultempl/xtensaelf.em: Remove --no-relax option.
(before_allocation): Test RELAXATION_ENABLED macro.
Use ENABLE_RELAXATION macro.
Diffstat (limited to 'ld/lexsup.c')
-rw-r--r-- | ld/lexsup.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/ld/lexsup.c b/ld/lexsup.c index 71b426a..20aef7b 100644 --- a/ld/lexsup.c +++ b/ld/lexsup.c @@ -90,6 +90,7 @@ enum option_values OPTION_NO_WHOLE_ARCHIVE, OPTION_OFORMAT, OPTION_RELAX, + OPTION_NO_RELAX, OPTION_RETAIN_SYMBOLS_FILE, OPTION_RPATH, OPTION_RPATH_LINK, @@ -479,7 +480,9 @@ static const struct ld_option ld_options[] = '\0', NULL, N_("Reduce memory overheads, possibly taking much longer"), TWO_DASHES }, { {"relax", no_argument, NULL, OPTION_RELAX}, - '\0', NULL, N_("Relax branches on certain targets"), TWO_DASHES }, + '\0', NULL, N_("Reduce code size by using target specific optimizations"), TWO_DASHES }, + { {"no-relax", no_argument, NULL, OPTION_NO_RELAX}, + '\0', NULL, N_("Do not use relaxation techniques to reduce code size"), TWO_DASHES }, { {"retain-symbols-file", required_argument, NULL, OPTION_RETAIN_SYMBOLS_FILE}, '\0', N_("FILE"), N_("Keep only symbols listed in FILE"), TWO_DASHES }, @@ -1132,8 +1135,11 @@ parse_args (unsigned argc, char **argv) command_line.rpath_link = buf; } break; + case OPTION_NO_RELAX: + DISABLE_RELAXATION; + break; case OPTION_RELAX: - command_line.relax = TRUE; + ENABLE_RELAXATION; break; case OPTION_RETAIN_SYMBOLS_FILE: add_keepsyms_file (optarg); |