diff options
-rw-r--r-- | ld/ChangeLog | 8 | ||||
-rw-r--r-- | ld/ldmain.c | 7 | ||||
-rw-r--r-- | ld/ldmisc.c | 13 |
3 files changed, 21 insertions, 7 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index ae176da..f08b651 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,5 +1,13 @@ Wed Sep 14 12:48:09 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + * ldmisc.c (vfinfo): Handle %D as %C, but never print the function + name. For %C, print the function name on a separate line, to keep + the length of error messages under control. + * ldmain.c (multiple_definition): Use %D for ``first defined + here.'' + (undefined_symbol): Use %D for ``more undefined references + follow''. + * ldmisc.c (multiple_warn): Remove; no longer used. * ldmisc.h (multiple_warn): Don't declare. diff --git a/ld/ldmain.c b/ld/ldmain.c index 7ee24f3..754813b 100644 --- a/ld/ldmain.c +++ b/ld/ldmain.c @@ -163,6 +163,7 @@ main (argc, argv) config.dynamic_link = false; command_line.force_common_definition = false; command_line.interpreter = NULL; + command_line.rpath = NULL; link_info.callbacks = &link_callbacks; link_info.relocateable = false; @@ -604,7 +605,7 @@ multiple_definition (info, name, obfd, osec, oval, nbfd, nsec, nval) einfo ("%X%C: multiple definition of `%T'\n", nbfd, nsec, nval, name); if (obfd != (bfd *) NULL) - einfo ("%C: first defined here\n", obfd, osec, oval); + einfo ("%D: first defined here\n", obfd, osec, oval); return true; } @@ -798,7 +799,7 @@ undefined_symbol (info, name, abfd, section, address) einfo ("%X%C: undefined reference to `%T'\n", abfd, section, address, name); else if (error_count == MAX_ERRORS_IN_A_ROW) - einfo ("%C: more undefined references to `%T' follow\n", + einfo ("%D: more undefined references to `%T' follow\n", abfd, section, address, name); return true; @@ -880,7 +881,7 @@ notice_ysym (info, name, abfd, section, value) bfd_vma value; { einfo ("%B: %s %s\n", abfd, - section != &bfd_und_section ? "definition of" : "reference to", + bfd_is_und_section (section) ? "reference to" : "definition of", name); return true; } diff --git a/ld/ldmisc.c b/ld/ldmisc.c index 52dee61..9b3047b 100644 --- a/ld/ldmisc.c +++ b/ld/ldmisc.c @@ -50,7 +50,8 @@ static const char *demangle PARAMS ((const char *string, %X no object output, fail return %V hex bfd_vma %v hex bfd_vma, no leading zeros - %C Clever filename:linenumber + %C clever filename:linenumber with function + %D like %C, but no function name %R info about a relent %s arbitrary string, like printf %d integer, like printf @@ -208,6 +209,7 @@ vfinfo(fp, fmt, arg) break; case 'C': + case 'D': /* Clever filename:linenumber with function name if possible, or section name as a last resort. The arguments are a BFD, a section, and an offset. */ @@ -254,9 +256,12 @@ vfinfo(fp, fmt, arg) if (filename == (char *) NULL) filename = abfd->filename; - if (functionname != (char *)NULL) - fprintf (fp, "%s:%u: %s", filename, linenumber, - demangle (functionname, 1)); + if (functionname != NULL && fmt[-1] == 'C') + { + fprintf (fp, "%s: In function `%s':\n", filename, + demangle (functionname, 1)); + fprintf (fp, "%s:%u", filename, linenumber); + } else if (linenumber != 0) fprintf (fp, "%s:%u", filename, linenumber); else |