+2003-05-02 Nick Clifton <nickc@redhat.com>
+
+ * 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 <amodra@bigpond.net.au>
* Makefile.am (em68hc11elf.c): Correct dependencies.
/* 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)
&& (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;