Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Jun 2012 08:07:07 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-hackers@freebsd.org
Cc:        Mike Meyer <mwm@mired.org>
Subject:   Re: EFI development tools
Message-ID:  <201206210807.07123.jhb@freebsd.org>
In-Reply-To: <20120618164632.0c11695b@bhuda.mired.org>
References:  <4FDBBACF.9040809@shadowsun.net> <4FDF7693.6010506@freebsd.org> <20120618164632.0c11695b@bhuda.mired.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Monday, June 18, 2012 4:46:32 pm Mike Meyer wrote:
> On Mon, 18 Jun 2012 13:42:27 -0500
> Nathan Whitehorn <nwhitehorn@freebsd.org> wrote:
> 
> > On 06/17/12 19:43, Mike Meyer wrote:
> > > Eric McCorkle<eric@shadowsun.net>  wrote:
> > >> The -m32  flag seems to be the culprit; removing it fixes the problem.
> > >> This is why I was having problems, as the offsets in EFI_SYSTEM_TABLE
> > >> were wrong.
> > >> In any case, this is a pretty serious error, and someone should try to
> > >> reproduce it and take a look at it.
> > > This is a known issue, and had been around for a long time. You can't 
reliably build 32 bit binaries (what the -m32 flag specifies) on a 64 bit 
system.  The header files (and possibly other things) are wrong.
> > > Doesn't look like anyone has opened a PR for it.
> > This isn't as complicated as you make it seem. buildworld already does 
> > it to build the things in lib32 and on some platforms (mips and powerpc) 
> > the headers are the same for both 32- and 64-bit systems and so -m32 
> > works perfectly already. All that is needed on x86 is some further 
> > header unification, which seems to be in progress.
> 
> It isn't as simple as you make it seem, either. buildworld has been
> cross-compiling for years now. But buildworld builds against system
> headers/libraries/etc other than those installed on the system, so
> making it use the appropriate ones for a cross-compile is a
> straightforward modification. Changing a build process that expect to
> build against the headers/libraries/etc installed on the system is a
> lot more work.

Note that all the current boot bits on amd64 use -m32 and work fine.  I think 
this is not nearly as complicated as you are making it out to be.

> The header unification has been "in progress" for years.

Actually, jilles@ has only been working on that for x86 in the last year or 
so.

-- 
John Baldwin



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