diff options
author | Nick Clifton <nickc@redhat.com> | 2011-05-17 16:02:31 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2011-05-17 16:02:31 +0000 |
commit | 84bff83f799013476b466a24f8eb639dc4e16a77 (patch) | |
tree | 3c1b7ca0f9dedbe4b38c62adccef85d36c395bde /ld/emultempl | |
parent | 393eab54507ddd97a857a97ab8d3300ad63edb9c (diff) | |
download | gdb-84bff83f799013476b466a24f8eb639dc4e16a77.zip gdb-84bff83f799013476b466a24f8eb639dc4e16a77.tar.gz gdb-84bff83f799013476b466a24f8eb639dc4e16a77.tar.bz2 |
PR ld/12759
* emultempl/rxelf.em (ignore_lma): New variable.
(rx_elf_create_output_section_statements): Pass the setiing of
ignore_lma to bfd_elf32_rx_set_target_flags.
(OPTION_IGNORE_LMA): Define.
(OPTION_NO_IGNORE_LMA): Define.
(PARSE_AND_LIST_LONGOPTS): Add ignore lma.
(PARSE_AND_LIST_OPTIONS): Add ignore lma.
(PARSE_AND_LIST_ARGS_CASES): Add ignore lma.
* elf32-rx.c (ignore_lma): New variable.
(bfd_elf32_rx_set_target_flags): Add ignore_lma parameter.
(rx_modify_program_headers): Only copy the LMA into the VMA if
ignore_lma is true.
Diffstat (limited to 'ld/emultempl')
-rw-r--r-- | ld/emultempl/rxelf.em | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/ld/emultempl/rxelf.em b/ld/emultempl/rxelf.em index c4a2dac..159a649 100644 --- a/ld/emultempl/rxelf.em +++ b/ld/emultempl/rxelf.em @@ -1,5 +1,5 @@ # This shell script emits a C file. -*- C -*- -# Copyright 2009 Free Software Foundation, Inc. +# Copyright 2009, 2011 Free Software Foundation, Inc. # # This file is part of the GNU Binutils. # @@ -26,15 +26,16 @@ test -z "$TARGET2_TYPE" && TARGET2_TYPE="rel" fragment <<EOF static bfd_boolean no_flag_mismatch_warnings = FALSE; +static bfd_boolean ignore_lma = TRUE; /* This is a convenient point to tell BFD about target specific flags. After the output has been created, but before inputs are read. */ static void rx_elf_create_output_section_statements (void) { - extern void bfd_elf32_rx_set_target_flags (bfd_boolean); + extern void bfd_elf32_rx_set_target_flags (bfd_boolean, bfd_boolean); - bfd_elf32_rx_set_target_flags (no_flag_mismatch_warnings); + bfd_elf32_rx_set_target_flags (no_flag_mismatch_warnings, ignore_lma); } EOF @@ -44,21 +45,36 @@ EOF # PARSE_AND_LIST_PROLOGUE=' #define OPTION_NO_FLAG_MISMATCH_WARNINGS 301 +#define OPTION_IGNORE_LMA 302 +#define OPTION_NO_IGNORE_LMA 303 ' PARSE_AND_LIST_LONGOPTS=' { "no-flag-mismatch-warnings", no_argument, NULL, OPTION_NO_FLAG_MISMATCH_WARNINGS}, + { "ignore-lma", no_argument, NULL, OPTION_IGNORE_LMA}, + { "no-ignore-lma", no_argument, NULL, OPTION_NO_IGNORE_LMA}, ' PARSE_AND_LIST_OPTIONS=' - fprintf (file, _(" --no-flag-mismatch-warnings Don'\''t warn about objects with incompatible" + fprintf (file, _(" --no-flag-mismatch-warnings Don'\''t warn about objects with incompatible\n" " endian or dsp settings\n")); + fprintf (file, _(" --ignore-lma Ignore segment LMAs [default]\n" + " (for Renesas Tools compatibility)\n")); + fprintf (file, _(" --no-ignore-lma Don'\''t ignore segment LMAs\n")); ' PARSE_AND_LIST_ARGS_CASES=' case OPTION_NO_FLAG_MISMATCH_WARNINGS: no_flag_mismatch_warnings = TRUE; break; + + case OPTION_IGNORE_LMA: + ignore_lma = TRUE; + break; + + case OPTION_NO_IGNORE_LMA: + ignore_lma = FALSE; + break; ' LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS=rx_elf_create_output_section_statements |