summaryrefslogtreecommitdiff
path: root/gnu/usr.bin/binutils/ld/ldctor.c
diff options
context:
space:
mode:
authorNiklas Hallqvist <niklas@cvs.openbsd.org>1996-06-10 10:55:58 +0000
committerNiklas Hallqvist <niklas@cvs.openbsd.org>1996-06-10 10:55:58 +0000
commita7e831079363e3bb45f3172f6e59ba48e335682b (patch)
treeee4324eac9a9d66f189fab60498ec42b8226b7fc /gnu/usr.bin/binutils/ld/ldctor.c
parent467cb0a471d13c5186a6ee166e60b47c30da64e9 (diff)
Bring Cygnus versions into the trunk, keeping our local patches
Diffstat (limited to 'gnu/usr.bin/binutils/ld/ldctor.c')
-rw-r--r--gnu/usr.bin/binutils/ld/ldctor.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/gnu/usr.bin/binutils/ld/ldctor.c b/gnu/usr.bin/binutils/ld/ldctor.c
index 5ebc494596d..d986f321287 100644
--- a/gnu/usr.bin/binutils/ld/ldctor.c
+++ b/gnu/usr.bin/binutils/ld/ldctor.c
@@ -120,6 +120,7 @@ ldctor_build_sets ()
{
static boolean called;
lang_statement_list_type *old;
+ boolean header_printed;
struct set_info *p;
/* The emulation code may call us directly, but we only want to do
@@ -133,6 +134,7 @@ ldctor_build_sets ()
lang_list_init (stat_ptr);
+ header_printed = false;
for (p = sets; p != (struct set_info *) NULL; p = p->next)
{
struct set_element *e;
@@ -201,6 +203,36 @@ ldctor_build_sets ()
for (e = p->elements; e != (struct set_element *) NULL; e = e->next)
{
+ if (config.map_file != NULL)
+ {
+ int len;
+
+ if (! header_printed)
+ {
+ minfo ("\nSet Symbol\n\n");
+ header_printed = true;
+ }
+
+ minfo ("%s", p->h->root.string);
+ len = strlen (p->h->root.string);
+
+ if (len >= 19)
+ {
+ print_nl ();
+ len = 0;
+ }
+ while (len < 20)
+ {
+ print_space ();
+ ++len;
+ }
+
+ if (e->name != NULL)
+ minfo ("%T\n", e->name);
+ else
+ minfo ("%G\n", e->section->owner, e->section, e->value);
+ }
+
if (link_info.relocateable)
lang_add_reloc (p->reloc, howto, e->section, e->name,
exp_intop (e->value));