aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog21
-rw-r--r--ld/ldlang.c29
2 files changed, 45 insertions, 5 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 4a344b9..c5dea9c 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,24 @@
+Sat Mar 28 16:48:19 1998 Ian Lance Taylor <ian@cygnus.com>
+
+ Fix some gcc -Wall warnings:
+ * ldcref.c (output_cref): Add casts to avoid warnings.
+ * ldfile.c (ldfile_add_arch): Likewise.
+ * ldlang.c (lang_leave_overlay_section): Likewise.
+ * lexsup.c (OPTION_COUNT): Likewise.
+ (parse_args): Likewise.
+ * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan):
+ Likewise.
+ * emultempl/sunos.em (gld${EMULATION_NAME}_search_dir): Likewise.
+ * ldlang.c (lang_check): Initialize variables to avoid warnings.
+ * ldwrite.c (build_link_order): Likewise.
+ * emultempl/sunos.em (gld${EMULATION_NAME}_find_so): Likewise.
+ * emultempl/armcoff.em (gld${EMULATION_NAME}_before_allocation):
+ Remove unused variables.
+
+ * Makefile.am (MOSTLYCLEANFILES): Correct name (was
+ MOSTCLEANFILES).
+ * Makefile.in: Rebuild.
+
Fri Mar 27 16:39:25 1998 Ian Lance Taylor <ian@cygnus.com>
* emultempl/pe.em (gld_${EMULATION_NAME}_before_allocation): Put
diff --git a/ld/ldlang.c b/ld/ldlang.c
index b364f9d..6cdab2b 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -1,5 +1,6 @@
/* Linker command language support.
- Copyright (C) 1991, 92, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.
+ Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 1998
+ Free Software Foundation, Inc.
This file is part of GLD, the Gnu Linker.
@@ -471,7 +472,7 @@ lang_memory_default (section)
flagword sec_flags = section->flags;
/* Override SEC_DATA to mean a writable section. */
- if (sec_flags & (SEC_ALLOC | SEC_READONLY | SEC_CODE) == SEC_ALLOC)
+ if ((sec_flags & (SEC_ALLOC | SEC_READONLY | SEC_CODE)) == SEC_ALLOC)
sec_flags |= SEC_DATA;
for (p = lang_memory_region_list;
@@ -2165,10 +2166,28 @@ lang_size_sections (s, output_section_statement, prev, fill, dot, relax)
/* No address specified for this section, get one
from the region specification
*/
- if (os->region == (lang_memory_region_type *) NULL)
+ if (os->region == (lang_memory_region_type *) NULL
+ || (((bfd_get_section_flags (output_bfd, os->bfd_section)
+ & (SEC_ALLOC | SEC_LOAD)) != 0)
+ && os->region->name[0] == '*'
+ && strcmp (os->region->name, "*default*") == 0))
{
os->region = lang_memory_default (os->bfd_section);
}
+
+ /* If a loadable section is using the default memory
+ region, and some non default memory regions were
+ defined, issue a warning. */
+ if ((bfd_get_section_flags (output_bfd, os->bfd_section)
+ & (SEC_ALLOC | SEC_LOAD)) != 0
+ && ! link_info.relocateable
+ && strcmp (os->region->name, "*default*") == 0
+ && lang_memory_region_list != NULL
+ && (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));
+
dot = os->region->current;
if (os->section_alignment == -1)
{
@@ -2737,7 +2756,7 @@ lang_check ()
}
else
{
- bfd_error_handler_type pfn;
+ bfd_error_handler_type pfn = NULL;
/* If we aren't supposed to warn about mismatched input
files, temporarily set the BFD error handler to a
@@ -3893,7 +3912,7 @@ lang_leave_overlay_section (fill, phdrs)
clean = xmalloc (strlen (name) + 1);
s2 = clean;
for (s1 = name; *s1 != '\0'; s1++)
- if (isalnum (*s1) || *s1 == '_')
+ if (isalnum ((unsigned char) *s1) || *s1 == '_')
*s2++ = *s1;
*s2 = '\0';