From owner-freebsd-current Thu Oct 14 3:23:47 1999 Delivered-To: freebsd-current@freebsd.org Received: from mail.scc.nl (node1374.a2000.nl [62.108.19.116]) by hub.freebsd.org (Postfix) with ESMTP id E54D014EEA for ; Thu, 14 Oct 1999 03:23:42 -0700 (PDT) (envelope-from freebsd-current@scc.nl) Received: (from daemon@localhost) by mail.scc.nl (8.9.3/8.9.3) id MAA19515 for current@FreeBSD.org; Thu, 14 Oct 1999 12:16:47 +0200 (CEST) (envelope-from freebsd-current@scc.nl) Received: from GATEWAY by dwarf.hq.scc.nl with netnews for current@FreeBSD.org (current@FreeBSD.org) To: current@FreeBSD.org Date: Thu, 14 Oct 1999 12:16:38 +0200 From: Marcel Moolenaar Message-ID: <3805AD86.B6D2608E@scc.nl> Organization: SCC vof Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit References: , Subject: Re: World breakage in libc_r? Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Doug Rabson wrote: > > On Wed, 13 Oct 1999, John Polstra wrote: > > > building shared library libc_r.so.4 > > sigpending.So: In function `sigpending': > > sigpending.S:2: multiple definition of `sigpending' > > uthread_sigpending.So(.text+0x0):uthread_sigpending.c: first defined here > > /usr/obj/a/src/tmp/usr/libexec/elf/ld: Warning: size of symbol `sigpending' changed from 68 to 36 in sigpending.So > > uthread_sigsuspend.So: In function `sigsuspend': > > uthread_sigsuspend.c(.text+0x0): multiple definition of `sigsuspend' > > sigsuspend.So:sigsuspend.S:2: first defined here > > /usr/obj/a/src/tmp/usr/libexec/elf/ld: Warning: size of symbol `sigsuspend' changed from 36 to 236 in uthread_sigsuspend.So > > *** Error code 1 > > > > and the fix is to add sigpending.o and sigsuspend.o to the > > definition of HIDDEN_SYSCALLS in "src/lib/libc_r/Makefile". > > > > I'm pretty sure that this is the right fix. My guess as to why it didn't > pop up on i386 is that the old and new implementations were sufficiently > close in size that rounding up to 16bytes made them look identical. > I've just committed this. I'm also pretty sure this is the right fix. I don't know why ld/i386 doesn't complain. It may be a bug, because the difference in size is probably more than 16 bytes. Compare for example sigprocmask, it originally also wasn't added to HIDDEN_SYSCALLS and therefore was also defined twice. I'm very much surprised if both versions end op being the same size... -- Marcel Moolenaar mailto:marcel@scc.nl SCC Internetworking & Databases http://www.scc.nl/ The FreeBSD project mailto:marcel@FreeBSD.org To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message