summaryrefslogtreecommitdiffstats
path: root/gnu/usr.bin/ld/ld.c
diff options
context:
space:
mode:
authorrgrimes <rgrimes@FreeBSD.org>1993-09-05 14:24:38 +0000
committerrgrimes <rgrimes@FreeBSD.org>1993-09-05 14:24:38 +0000
commit31c91816ccb645fede331d35efdbf3c9391207c6 (patch)
tree76805cf8845ef64964e9a9208436dda0a24a77c2 /gnu/usr.bin/ld/ld.c
parent89a7e9d6d944a1bb3c3588f6bed7ddbe8953beab (diff)
downloadFreeBSD-src-31c91816ccb645fede331d35efdbf3c9391207c6.zip
FreeBSD-src-31c91816ccb645fede331d35efdbf3c9391207c6.tar.gz
From: rich@id.slip.bcm.tmc.edu.cdrom.com (Rich Murphey)
ld won't generate output if there are two .o files with the same name. It thinks they are multiply defined external references. This patch explictly allows multiple /file names/ with the same value. This can happen if you do a two stage link or if you link in file names that are identical to files in libc. Otherwise ld.c exits with a status=1 and non error message. Rich
Diffstat (limited to 'gnu/usr.bin/ld/ld.c')
-rw-r--r--gnu/usr.bin/ld/ld.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gnu/usr.bin/ld/ld.c b/gnu/usr.bin/ld/ld.c
index 3c1fa70..3de1b9c 100644
--- a/gnu/usr.bin/ld/ld.c
+++ b/gnu/usr.bin/ld/ld.c
@@ -2447,7 +2447,8 @@ digest_symbols ()
}
set_vectors[setv_fill_count++] = p->n_value;
}
- else if ((type & N_EXT) && type != (N_UNDF | N_EXT))
+ else if ((type & N_EXT) && type != (N_UNDF | N_EXT)
+ && (type & N_TYPE) != N_FN)
{
/* non-common definition */
if (defs++ && sp->value != p->n_value)
OpenPOWER on IntegriCloud