aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2000-03-01 19:37:03 +0000
committerH.J. Lu <hjl.tools@gmail.com>2000-03-01 19:37:03 +0000
commitb6f29aaaeabac9302832b971c78a30ae5313c1d5 (patch)
tree58046bedffe07ea5e7cdba55e4bc53b58caba634
parent8bf950bf50d61766f086314e5d1a21d00db39ace (diff)
downloadgdb-b6f29aaaeabac9302832b971c78a30ae5313c1d5.zip
gdb-b6f29aaaeabac9302832b971c78a30ae5313c1d5.tar.gz
gdb-b6f29aaaeabac9302832b971c78a30ae5313c1d5.tar.bz2
2000-03-01 H.J. Lu <hjl@gnu.org>
* ldmain.c (undefined_symbol): Take one more arg, fatal, to indicate if the undefined symbol is a fatal error or not. Don't delete the output file if "fatal" is false.
-rw-r--r--ld/ChangeLog6
-rw-r--r--ld/ldmain.c21
2 files changed, 21 insertions, 6 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index a925a38..3b0d9cc 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,9 @@
+2000-03-01 H.J. Lu <hjl@gnu.org>
+
+ * ldmain.c (undefined_symbol): Take one more arg, fatal, to
+ indicate if the undefined symbol is a fatal error or not.
+ Don't delete the output file if "fatal" is false.
+
2000-02-29 H.J. Lu <hjl@gnu.org>
* Makefile.am (check-DEJAGNU): Also pass LIBS="$(LIBS)".
diff --git a/ld/ldmain.c b/ld/ldmain.c
index 734bc32..ba2a592 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -117,7 +117,7 @@ static boolean warning_callback PARAMS ((struct bfd_link_info *,
static void warning_find_reloc PARAMS ((bfd *, asection *, PTR));
static boolean undefined_symbol PARAMS ((struct bfd_link_info *,
const char *, bfd *,
- asection *, bfd_vma));
+ asection *, bfd_vma, boolean));
static boolean reloc_overflow PARAMS ((struct bfd_link_info *, const char *,
const char *, bfd_vma,
bfd *, asection *, bfd_vma));
@@ -1144,12 +1144,13 @@ warning_find_reloc (abfd, sec, iarg)
/*ARGSUSED*/
static boolean
-undefined_symbol (info, name, abfd, section, address)
+undefined_symbol (info, name, abfd, section, address, fatal)
struct bfd_link_info *info ATTRIBUTE_UNUSED;
const char *name;
bfd *abfd;
asection *section;
bfd_vma address;
+ boolean fatal;
{
static char *error_name;
static unsigned int error_count;
@@ -1193,8 +1194,12 @@ undefined_symbol (info, name, abfd, section, address)
if (section != NULL)
{
if (error_count < MAX_ERRORS_IN_A_ROW)
- einfo (_("%X%C: undefined reference to `%T'\n"),
- abfd, section, address, name);
+ {
+ einfo (_("%C: undefined reference to `%T'\n"),
+ abfd, section, address, name);
+ if (fatal)
+ einfo ("%X");
+ }
else if (error_count == MAX_ERRORS_IN_A_ROW)
einfo (_("%D: more undefined references to `%T' follow\n"),
abfd, section, address, name);
@@ -1202,8 +1207,12 @@ undefined_symbol (info, name, abfd, section, address)
else
{
if (error_count < MAX_ERRORS_IN_A_ROW)
- einfo (_("%X%B: undefined reference to `%T'\n"),
- abfd, name);
+ {
+ einfo (_("%B: undefined reference to `%T'\n"),
+ abfd, name);
+ if (fatal)
+ einfo ("%X");
+ }
else if (error_count == MAX_ERRORS_IN_A_ROW)
einfo (_("%B: more undefined references to `%T' follow\n"),
abfd, name);