From 3940d2c36abbf7c4701e312bd76f6bb119898c8a Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 16 Nov 2015 14:21:28 +0000 Subject: [PATCH] Fixes an invalid warning about memory region overflow on the ARM. PR ld/19106 * emultempl/armelf.em (_set_symbols): New function. Enables relaxation for non-relocatable links. (LDEMUL_SET_SYMBOLS): Define. --- ld/ChangeLog | 7 +++++++ ld/emultempl/armelf.em | 14 ++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/ld/ChangeLog b/ld/ChangeLog index d5e450e931f..d4324ec6d50 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,10 @@ +2015-11-16 Nick Clifton + + PR ld/19106 + * emultempl/armelf.em (_set_symbols): New function. Enables + relaxation for non-relocatable links. + (LDEMUL_SET_SYMBOLS): Define. + 2015-11-13 Tristan Gingold * configure: Regenerate. diff --git a/ld/emultempl/armelf.em b/ld/emultempl/armelf.em index b03aed40bf9..2931a49f3fb 100644 --- a/ld/emultempl/armelf.em +++ b/ld/emultempl/armelf.em @@ -54,6 +54,19 @@ gld${EMULATION_NAME}_before_parse (void) config.separate_code = `if test "x${SEPARATE_CODE}" = xyes ; then echo TRUE ; else echo FALSE ; fi`; } +static void +gld${EMULATION_NAME}_set_symbols (void) +{ + /* PR 19106: The section resizing code in gldarmelf_after_allocation + is effectively the same as relaxation, so prevent early memory + region checks which produce bogus error messages. + Note - this test has nothing to do with symbols. It is just here + because this is the first emulation routine that is called after + the command line has been parsed. */ + if (!bfd_link_relocatable (&link_info)) + TARGET_ENABLE_RELAXATION; +} + static void arm_elf_before_allocation (void) { @@ -728,6 +741,7 @@ LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS=arm_elf_create_output_section_statements # Replace the elf before_parse function with our own. LDEMUL_BEFORE_PARSE=gld"${EMULATION_NAME}"_before_parse +LDEMUL_SET_SYMBOLS=gld"${EMULATION_NAME}"_set_symbols # Call the extra arm-elf function LDEMUL_FINISH=gld${EMULATION_NAME}_finish -- 2.30.2