This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: maintainership of PEI code in BFD


>>>>> On Thu, 26 Oct 2000 02:59:21 -0400, DJ Delorie <dj@delorie.com> said:

  DJ> Sorry, I know nothing about EFI, so I can't help you here.

EFI uses the PE+ format, which is PE with a few minor changes to
(partially) support 64-bit address spaces.  The specs for PE+ are
available online.

Looking at the ChangeLog file a bit closer, I realized that perhaps
the problem was due to that fact that there were two separate binutils
trees?  The tree I made the EFI changes to were based on a binutils
snapshot we received from Cygnus.  Its ChangeLog had entries as late
as 2000-02-13.  These same entries can be found in the ChangeLog of
the CVS archive as well.  However, for some reason the binutils
snapshot did not contain the changes that split off peigen.c.  I guess
that means we are both right: I can't complain about the split of
peigen.c because, at that time, the EFI mods didn't exist!  On the
other hand, I obviously wasn't aware of the peigen.c split because it
wasn't present in the sources I had access to (and I had no reason to
suspect that those sources weren't up-to-date).

So, let me ask another way: can someone help me get the 64-bit
extensions of the PE+ support working again?  Once that is done, I
should be able to fix the EFI support easily.  Here are the main
differences between PE and PE+:

  - AOUTHDR doesn't have data_start member (e.g., see include/coff/ia64.h)
  - in the PE AOUT header, the members:
		ImageBase
		SizeOfStackReserve
		SizeOfStackCommit
		SizeOfHeapReserve
		SizeOfHeapCommit
    are 64-bits (instead of 32-bits)

Apart from these PE+ related changes, the only other thing EFI needs
is a way to set the FileAlignment, SectionAlignment, and Subsystem
values in the PEAOUT header to appropriate values.  That should be it.

	--david

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]