diff options
author | rgrimes <rgrimes@FreeBSD.org> | 1993-09-05 14:24:38 +0000 |
---|---|---|
committer | rgrimes <rgrimes@FreeBSD.org> | 1993-09-05 14:24:38 +0000 |
commit | 31c91816ccb645fede331d35efdbf3c9391207c6 (patch) | |
tree | 76805cf8845ef64964e9a9208436dda0a24a77c2 | |
parent | 89a7e9d6d944a1bb3c3588f6bed7ddbe8953beab (diff) | |
download | FreeBSD-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
-rw-r--r-- | gnu/usr.bin/ld/ld.c | 3 |
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) |