Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 26 Jan 2003 15:15:28 -0800
From:      "David O'Brien" <obrien@freebsd.org>
To:        Ruslan Ermilov <ru@freebsd.org>
Cc:        Kris Kennaway <kris@obsecurity.org>, Mark Murray <markm@freebsd.org>, current@freebsd.org
Subject:   Re: Problem during alpha cross-building
Message-ID:  <20030126231528.GB58603@dragon.nuxi.com>
In-Reply-To: <20030125165008.GA55702@sunbay.com>
References:  <20030124224544.GA53670@rot13.obsecurity.org> <20030125015446.GA87675@rot13.obsecurity.org> <20030125165008.GA55702@sunbay.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Jan 25, 2003 at 06:50:08PM +0200, Ruslan Ermilov wrote:
> On Fri, Jan 24, 2003 at 05:54:46PM -0800, Kris Kennaway wrote:
> > On Fri, Jan 24, 2003 at 02:45:44PM -0800, Kris Kennaway wrote:
> > > I'm getting this when trying to cross-build an alpha world.  Is anyone
> > > else seeing it?
> > > 
> > > cc -O -pipe -DNLIST_ELF64     -static -o crunchide crunchide.o exec_elf64.o
> > > exec_elf64.o: In function `hide_elf64':
> > > exec_elf64.o(.text+0x30b): undefined reference to `be64toh'
> > > exec_elf64.o(.text+0x530): undefined reference to `be64toh'
> > > exec_elf64.o(.text+0x575): undefined reference to `be64toh'
> > > exec_elf64.o(.text+0x59f): undefined reference to `be64toh'
> > > exec_elf64.o(.text+0x5e6): undefined reference to `be64toh'
> > > exec_elf64.o(.text+0x639): more undefined references to `be64toh' follow
> > > *** Error code 1
> > > 
> > > Stop in /a/asami/portbuild/alpha/5/src/usr.sbin/crunch/crunchide.
> > > *** Error code 1
> > 
> > I get the same problem trying to cross-build sparc64.  Looks like
> > cross-building is broken.
> > 
> This is the result of David O'Brien removing part of my work
> in the quoted commit (see attached), for no apparent reason.

I gave the reason -- "private version".  It is accepted that
duplication on the level of the private endian.h is bad.  I made a
change to the system endian.h and found in a manual build of usr.sbin it
wasn't being used.  I tracked it down to the private version of endian.h.
The exact details escape me at this time.  It appeared to me that you
added the private endian.h because at the time of your commit there
wasn't a system one with the needed bits.

So instead of backing out the commit, can we make the cross build work
with the system version.  From the quoted error messages, I don't have
enough context to know when in the cross 'make world' this is happening.
 
> The "private version" of endian.h was smart enough to pick up
> the system <sys/endian.h> if the latter was fresh enough to
> have the necessary macros; now it tries to use <sys/endian.h>
> unconditionally, and fails on systems without be32toh() etc.
> macros in their <sys/endian.h>, e.g. RELENG_4 or 5.0-DP1.

What are all the cases that things fail now?  It looks like you're saying
(1) doing an Alpha cross-world -CURRENT build on i386, (2) doing a 'make
buildworld' on -CURRENT sources on a 5.0-DP1 install, (3) doing an
upgrade from RELENG_4 to HEAD.  Is that correct?

Perhaps we need the current-compat.h header we've talked about many times
that we can "cc -include {TOP}/tools/current-compat.h" during the 1st
stage of 'make buildworld'

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




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