aboutsummaryrefslogtreecommitdiff
path: root/ld/ldmain.c
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1996-08-01 17:35:49 +0000
committerIan Lance Taylor <ian@airs.com>1996-08-01 17:35:49 +0000
commit582dd77f6571a3b9ca89d715d1522b68b2507feb (patch)
tree270378b4c50fe9c9e7c1b48dcbeb9cf7882213a7 /ld/ldmain.c
parent8efb80797cacf61ac0857cb9b149cac079356a3b (diff)
downloadgdb-582dd77f6571a3b9ca89d715d1522b68b2507feb.zip
gdb-582dd77f6571a3b9ca89d715d1522b68b2507feb.tar.gz
gdb-582dd77f6571a3b9ca89d715d1522b68b2507feb.tar.bz2
* ld.h (check_nocrossrefs): Declare.
* ldlang.h (struct lang_nocrossref): Define. (struct lang_nocrossrefs): Define. (nocrossref_list): Declare. (lang_add_nocrossref): Declare. * ldlex.l: Recognize NOCROSSREFS keyword. * ldgram.y (%union): Add nocrossref field. (NOCROSSREFS): New terminal. (ifile_p1): Recognize NOCROSSREFS. (nocrossref_list): New nonterminal. * ldlang.c (nocrossref_list): Define. (lang_add_nocrossref): New function. * ldmain.c (main): If nocrossref_list is not NULL, call check_nocrossrefs. (warning_callback): Free symbols if there is no place to store them. (notice): Call add_cref if nocrossref_list is not NULL. * ldcref.c: Include "ldexp.h" and "ldlang.h". (check_nocrossrefs): New function. (check_nocrossref): New static function. (struct check_refs_info): Define. (check_refs, check_reloc_refs): New static functions. * Makefile.in: Rebuild dependencies. * ld.texinfo (Option Commands): Document NOCROSSREFS.
Diffstat (limited to 'ld/ldmain.c')
-rw-r--r--ld/ldmain.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/ld/ldmain.c b/ld/ldmain.c
index 3d0f9fa..315ac0c 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -323,6 +323,8 @@ main (argc, argv)
lang_map ();
if (command_line.cref)
output_cref (config.map_file != NULL ? config.map_file : stdout);
+ if (nocrossref_list != NULL)
+ check_nocrossrefs ();
/* Even if we're producing relocateable output, some non-fatal errors should
be reported in the exit status. (What non-fatal errors, if any, do we
@@ -1031,6 +1033,9 @@ warning_callback (info, warning, symbol, abfd, section, address)
if (! info.found)
einfo ("%B: %s\n", abfd, warning);
+
+ if (entry == NULL)
+ free (asymbols);
}
return true;
@@ -1241,7 +1246,7 @@ notice (info, name, abfd, section, value)
bfd_is_und_section (section) ? "reference to" : "definition of",
name);
- if (command_line.cref)
+ if (command_line.cref || nocrossref_list != NULL)
add_cref (name, abfd, section, value);
return true;