Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Mar 2001 14:51:55 -0800 (PST)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Marcel Moolenaar <marcel@cup.hp.com>
Cc:        marcel@FreeBSD.org, qa@FreeBSD.org, Larry Rosenman <ler@lerctr.org>
Subject:   Re: cputype=486
Message-ID:  <XFMail.010312145155.jhb@FreeBSD.org>
In-Reply-To: <3AAD394D.49597B93@cup.hp.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On 12-Mar-01 Marcel Moolenaar wrote:
> John Baldwin wrote:
>> 
>> On 12-Mar-01 Marcel Moolenaar wrote:
>> > John Baldwin wrote:
>> >>
>> >> It looks like strip is linked against /usr/lib/libc.a.
>> >>
>> >> Marcel,
>> >>
>> >> It looks like there may be a bug in buildworld.  It seems that static
>> >> binaries
>> >> are being linked against /usr/lib/libc.a rather than
>> >> /usr/obj/usr/src/i386/lib/libc/libc.a.
>> >
>> > In what stage?
>> 
>> The final strip binary that will live in /usr/bin/strip on the target
>> machine.
> 
> Which is the one in:
> 
>       /usr/obj/usr/src/gnu/usr.bin/binutils/strip

Yes, it was the final binary installed onto the actual 486 that dumped core in
this case.

> and not the one in:
> 
>       /usr/obj/usr/src/i386/usr/src/gnu/usr.bin/binutils/strip
> 
> Are we still talking about the same strip(1)?
> 
>> > In short: Do not not build on Pentium with -march=pentiumsomething and
>> > then later install on non-pentiums!
>> 
>> Uh, how can cross-builds _possibly_ work then????  If I do a i386 -> alpha
>> cross build does the alpha /usr/bin/strip get linked against the i386
>> /usr/lib/libc.a on the host machine??
> 
> Of course not. The one that's being built as part of the cross-tools is
> however.

Right, this isn't the cross tools one.  This is the final one that gets
installed onto the 486.  _That_ one is broken.
 
>> Or is libc treated magically by the
>> compiler?
> 
> No.
> 
>> For that matter, what if a static binary uses a new function added
>> to libc, how in the world will that link if we all our binaries against the
>> old libc during the world?  That's just wrong.
> 
> No, that's not wrong. Just think about it for a moment. You need to
> build cross tools first. Those must run on the build machine. You
> therefore build those exactly as you build anything else: you use the
> libraries on that machine. After you have built your cross tools, you
> can start building non-native libraries, against which you link the
> final non-native binaries.

We aren't talking about cross tools, we are talking about the final binary
installed onto the 486.

-- 

John Baldwin <jhb@FreeBSD.org> -- http://www.FreeBSD.org/~jhb/
PGP Key: http://www.baldwin.cx/~john/pgpkey.asc
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-qa" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.010312145155.jhb>