diff options
author | Nick Clifton <nickc@redhat.com> | 2003-05-09 16:12:07 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2003-05-09 16:12:07 +0000 |
commit | 661849791b8144064766d5c39bbc54ad2db7e030 (patch) | |
tree | 1d31b8d6d259b9e5b52350d1377419d9cf7c7eb4 /ld/ldlang.c | |
parent | 4648dfcf5b6bdda114c06be26f586a81e0922ee2 (diff) | |
download | gdb-661849791b8144064766d5c39bbc54ad2db7e030.zip gdb-661849791b8144064766d5c39bbc54ad2db7e030.tar.gz gdb-661849791b8144064766d5c39bbc54ad2db7e030.tar.bz2 |
Default to generating a fatal error message if a loadable section is not
allocated to a memory region when regions are defined.
Diffstat (limited to 'ld/ldlang.c')
-rw-r--r-- | ld/ldlang.c | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/ld/ldlang.c b/ld/ldlang.c index 8846917..fccab0d 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; |