From: Christian Franke <Christian.Franke@t-online.de>
To: The development of GRUB 2 <grub-devel@gnu.org>
Subject: Re: Building GRUB on platforms without ELF support
Date: Mon, 19 Nov 2007 21:29:19 +0100 [thread overview]
Message-ID: <4741F21F.5020106@t-online.de> (raw)
In-Reply-To: <87oddrrdk4.fsf@xs4all.nl>
Marco Gerards wrote:
> Robert Millan <rmh@aybabtu.com> writes:
>
>
>> On Fri, Nov 16, 2007 at 11:58:14PM +0100, Christian Franke wrote:
>>
>>> ...
>>> For specific conversions, fixing this in objcopy itself is easy. But
>>> there is not much chance that such pragmatic patches will be accepted
>>> upstream.
>>> (http://sourceware.org/ml/binutils/2007-10/threads.html#00302)
>>>
>>> I have prepared a reduced (~680 LoC) version of objcopy with the PE->ELF
>>> fix added. To support build on non-ELF platforms, I would suggest to add
>>> this to the GRUB codebase. It can be later extended for other platforms
>>> if desired.
>>>
>> I'm not sure what the GRUB maintainers will think, but I'm not very inclined
>> to duplicate stuff that binutils already have.
>>
>
> So am I.
>
>
Actually, binutils actually does not have this ("convert relocatable
object files from format X to ELF") stuff.
>> How about building binutils with --enable-targets=i386-elf ? Maybe the
>> Cygwin maintainers would even add it as default.
It is not so easy:
Cygwin's libbfd, ld and objcopy support elf32-i386, gas does not.
But ld refuses to output elf32-i386 if pe-i386 is the input format. This
restriction is hard-coded into ld because some pe-specific operations
are hard-coded into bfd backend (This includes the hack which fixes the
pc-relative relocation in the executable).
Enable elf32-i386 as additional output format for gas does not work. The
compilation fails, multiple emulations are not supported on i386 platform.
But even building gas as a cross-assembler does not help. Some assembler
directives, like symbol type specs, are output format specific. Output
from Cygwin's gcc produces syntax errors.
Therefore, you would need also a gcc build as a cross-compiler.
Not really worth the effort, so I posted the patch for kern/i386/dl.c
instead.
>> We could also have a
>> configure check that aborts build when -m elf_i386 is not supported (which
>> may also be a problem on pure-x86_64 environment!) and prompt user to
>> rebuild binutils.
>>
>
>
Better prompt "sorry", as rebuilding binutils probably won't work OOTB
in many cases ... :-)
Christian
next prev parent reply other threads:[~2007-11-19 20:29 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-16 22:58 Building GRUB on platforms without ELF support Christian Franke
2007-11-18 7:07 ` Robert Millan
2007-11-18 11:35 ` Marco Gerards
2007-11-19 20:29 ` Christian Franke [this message]
2007-12-06 12:08 ` Robert Millan
2007-12-06 12:58 ` Christian Franke
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4741F21F.5020106@t-online.de \
--to=christian.franke@t-online.de \
--cc=grub-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.