From owner-cvs-gnu Sat Feb 1 12:28:41 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id MAA07931 for cvs-gnu-outgoing; Sat, 1 Feb 1997 12:28:41 -0800 (PST) Received: (from jdp@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id MAA07923; Sat, 1 Feb 1997 12:28:40 -0800 (PST) Date: Sat, 1 Feb 1997 12:28:40 -0800 (PST) From: John Polstra Message-Id: <199702012028.MAA07923@freefall.freebsd.org> To: CVS-committers, cvs-all, cvs-gnu Subject: cvs commit: src/gnu/usr.bin/ld ld.c Sender: owner-cvs-gnu@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk jdp 97/02/01 12:28:40 Modified: gnu/usr.bin/ld ld.c Log: Fix a bug involving alias (N_INDR) symbols. When building a shared library with a shared object dependency that contained alias symbols, the linker incorrectly counted the number of symbols that would be written, resulting in a fatal internal error. Since our libc now contains some alias symbols (in "net/res_stubs.c"), this was sufficient to tickle the bug: "ld -Bshareable foo.so -lc". To fix it, I moved the accounting of alias symbols to a later point in the processing, where it is possible to count only those symbols that will actually be written to the output file. This fix is well-confined to affect alias symbols only. I have tested it with a full "make world". I am going to merge it into -2.2 after a few more days of living with it in -current. Revision Changes Path 1.40 +8 -2 src/gnu/usr.bin/ld/ld.c