aboutsummaryrefslogtreecommitdiff
path: root/ld/emultempl
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2011-05-17 16:02:31 +0000
committerNick Clifton <nickc@redhat.com>2011-05-17 16:02:31 +0000
commit84bff83f799013476b466a24f8eb639dc4e16a77 (patch)
tree3c1b7ca0f9dedbe4b38c62adccef85d36c395bde /ld/emultempl
parent393eab54507ddd97a857a97ab8d3300ad63edb9c (diff)
downloadgdb-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.em24
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