EFI development tools

John Baldwin jhb at freebsd.org
Thu Jun 21 12:22:06 UTC 2012


On Monday, June 18, 2012 4:46:32 pm Mike Meyer wrote:
> On Mon, 18 Jun 2012 13:42:27 -0500
> Nathan Whitehorn <nwhitehorn at freebsd.org> wrote:
> 
> > On 06/17/12 19:43, Mike Meyer wrote:
> > > Eric McCorkle<eric at 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


More information about the freebsd-hackers mailing list