From 661849791b8144064766d5c39bbc54ad2db7e030 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 9 May 2003 16:12:07 +0000 Subject: [PATCH] Default to generating a fatal error message if a loadable section is not allocated to a memory region when regions are defined. --- ld/ChangeLog | 6 ++++++ ld/ldlang.c | 24 ++++++++++++++++++++---- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 8f842567b6b..0f1f539b279 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,9 @@ +2003-05-02 Nick Clifton + + * ldlang.c (lang_size_sections_1): Default to generating a + fatal error message if a loadable section is not allocated + to a memory region when regions are defined. + 2003-05-09 Alan Modra * Makefile.am (em68hc11elf.c): Correct dependencies. diff --git a/ld/ldlang.c b/ld/ldlang.c index 884691702c9..fccab0d681a 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -3050,7 +3050,7 @@ lang_size_sections_1 (s, output_section_statement, prev, fill, dot, relax, /* If a loadable section is using the default memory region, and some non default memory regions were - defined, issue a warning. */ + defined, issue an error message. */ if ((bfd_get_section_flags (output_bfd, os->bfd_section) & (SEC_ALLOC | SEC_LOAD)) != 0 && (bfd_get_section_flags (output_bfd, os->bfd_section) @@ -3062,9 +3062,25 @@ lang_size_sections_1 (s, output_section_statement, prev, fill, dot, relax, && (strcmp (lang_memory_region_list->name, "*default*") != 0 || lang_memory_region_list->next != NULL)) - einfo (_("%P: warning: no memory region specified for section `%s'\n"), - bfd_get_section_name (output_bfd, - os->bfd_section)); + { + /* By default this is an error rather than just a + warning because if we allocate the section to the + default memory region we can end up creating an + excessivly large binary, or even seg faulting when + attmepting to perform a negative seek. See + http://sources.redhat.com/ml/binutils/2003-04/msg00423.html + for an example of this. This behaviour can be + overridden by the using the --no-check-sections + switch. */ + if (command_line.check_section_addresses) + einfo (_("%P%F: error: no memory region specified for loadable section `%s'\n"), + bfd_get_section_name (output_bfd, + os->bfd_section)); + else + einfo (_("%P: warning: no memory region specified for loadable section `%s'\n"), + bfd_get_section_name (output_bfd, + os->bfd_section)); + } dot = os->region->current; -- 2.30.2