* PE patches available
@ 1999-04-08 12:16 Donn Terry
1999-04-12 13:40 ` Mumit Khan
0 siblings, 1 reply; 4+ messages in thread
From: Donn Terry @ 1999-04-08 12:16 UTC (permalink / raw)
To: gas2, bfd
Everyone, but DJ and Ian in particular:
I have made ftp.interix.com:~ftp/pub/up/binutils.patch.tgz available for
anonymous FTP access, with the intent that it be applied to the
current greater binutils. (No, you don't want it in the mailing list!)
It is a tarball containing a coherent set of patches which have two
effects:
1) Add Interix support.
2) Significantly improves the overall support of the MS PE/PEI format
(a COFF variant).
The effects of the former are obvious.
The effects of the latter include:
- support for LIB.EXE-generated DLL libraries (and in general
compatability with all DLL libraries).
- support for COMDAT (although more support may be needed),
- a plethora of "little" fixes for various "issues" w.r.t. PE/PEI format,
- a rearrangement of the bfd sources so that fewer copies of the PE/PEI
functions are needed. (Moving things from coffcode.h, coffswap.h as
makes sense.)
- nearly complete pass of all ld, gas, and binutils regressions.
(And more queued up for later.) (Details with the individual patches.)
- some POSIX-ification of binutils commands.
- Complete support of intermixed MSVC and gcc-generated objects.
(Given the right gdb, there is even limited (line numbers only)
support for debugging with MSVC-generated (but ld-linked) object files.)
- Improvements to the testsuites.
I'm not set up to test this on Cygwin, which is the platform most
likely to be affected by these changes (other than Interix, of course).
It is possible that I broke something. Thus, I'd ask for testing
of these changes by those interested.
The patches are all applied with patch -p 5 except toplevel, which is
applied with -p 1. (It's identical to a patch applied to egcs.
That's generally true of libiberty, as well.)
Each patch file contains detailed comments and a ChangeLog entry.
The naming convention should be obvious. The leading numbers
in the filenames are for my housekeeping and can be ignored (and
in general will be sparse). In some cases, it was easier (for
various reasons) to generate more than one patch file for the same
directory; each has its own comments and ChangeLog; all should be
applied. In all cases, the 40.* file is a patch for the testsuite.
I have tested the patches against the 0404 tarball. A few line
numbers are off slightly, but all patches apply correctly.
Coming attractions:
With this set of patches applied, it becomes possible to put together
another (fairly large) patch that brings the 32-bit (NT) Alpha up to
the same level.
I also have withheld for the moment some additional patches that are
not central to the basic goal of complete PE support. I'll submit
those as followups after this batch has stabilized.
Ian: yes, I recognize that this is a BIG chunk to chew at once. I've
trimmed it quite significantly already. Please be kind in your
requests to break it up further. A lot of these patches interact, and
breaking them up and still keeping a working set of tools will be very
difficult. If there are specific patches that you really need separated
I can do that, but I'd request that you make as few such requests
as possible, in part because that will delay getting on to the "good stuff"
that's queued up behind this.
Known compatability (possible) issues:
1) PE is more sensitive to section flag (Characteristics) bits than the
current gnu tools (which look at the section name). I've reworked
both gas and bfd (the ld part) to make it generate and honor the
bits. There may (or may not) be a compatability problem with existing
Cygwin binaries. (There should not be any compatability issues w.r.t.
existing MSVC binaries.) In testing, look particularly for that
(it may reach out an bite you, and it may be subtle, and it may not
be a problem at all). If it is a problem, I'll fix it, but I'll
need details (and probably a sample file).
2) The meaning of COFF (not stabs) line numbers is subtly different on
PE than "pure" COFF; this also affects the .bf, .ef, and .lf pseudo-
symbols. My understanding is that I'm the only one who cares about
such things in the PE world, and my intent was that regular COFF is
unaffected.
3) bfd/04.constructors discusses some interactions between constructors/
destructors and ld -r that should be checked in the Cygwin context.
4) As discussed earlier on this list, theres an issue with MOE and related
COFF debug symbols. At the moment, that's left unchanged.
--
===================================================
Donn Terry mailto:donn@interix.com
Softway Systems, Inc. http://www.interix.com
2850 McClelland Dr, Ste. 1800 Ft.Collins CO 80525
Tel: +1-970-204-9900 Fax: +1-970-204-9951
===================================================
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: PE patches available
1999-04-08 12:16 PE patches available Donn Terry
@ 1999-04-12 13:40 ` Mumit Khan
1999-04-13 8:39 ` Donn Terry
1999-04-13 18:20 ` Ian Lance Taylor
0 siblings, 2 replies; 4+ messages in thread
From: Mumit Khan @ 1999-04-12 13:40 UTC (permalink / raw)
To: Donn Terry; +Cc: gas2, bfd
Hi Donn,
Ran into a few nits when building for Cygwin --
1. you mention that you've *put back* the .bss handling, but it's missing
from the post-patched ld/scripttempl/pe.sc. I just put it in my hand.
2. bfd/Makefile.in needs peigen.lo as target. Trivial obviously.
3. the $ENTRY in pe.sc expands to __mainCRTStartup, but Cygwin provides
_mainCRTStartup. Trivial to fix/make consistent of course.
The final executable doesn't work yet, but that I did expect. I'll do
some digging to see why it's not loading correctly (under Cygwin or
Mingw which uses MS runtime).
btw, I always thought that the Makefiles were setup to do the `make
headers' automatically in bfd. Guess not.
Regards,
Mumit
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: PE patches available
1999-04-12 13:40 ` Mumit Khan
@ 1999-04-13 8:39 ` Donn Terry
1999-04-13 18:20 ` Ian Lance Taylor
1 sibling, 0 replies; 4+ messages in thread
From: Donn Terry @ 1999-04-13 8:39 UTC (permalink / raw)
To: Mumit Khan; +Cc: gas2, bfd
I've been working with DJ on creating an updated patch.
I'm convinced that Menehunes got to at least one copy,
because there's no way that some of the problems that are
inarguably there could have gotten there without a time warp :-).
Anyway, expect a new tarball (over the old one) with these
and a number of other problems fixed in a few days.
(Everythings fairly straightforward except for another go-around
on %^&#$%^^&*()&*(%^&^%*& .idata.)
(Mumit: I believe #2 is fixed in what you have, but only in
the base files; in this case automake needs to be run to move
the change up from Makefile.am to Makefile.in.)
I'll send email when it's done.
Donn
Mumit Khan wrote:
>
> Hi Donn,
>
> Ran into a few nits when building for Cygwin --
>
> 1. you mention that you've *put back* the .bss handling, but it's missing
> from the post-patched ld/scripttempl/pe.sc. I just put it in my hand.
>
> 2. bfd/Makefile.in needs peigen.lo as target. Trivial obviously.
>
> 3. the $ENTRY in pe.sc expands to __mainCRTStartup, but Cygwin provides
> _mainCRTStartup. Trivial to fix/make consistent of course.
>
> The final executable doesn't work yet, but that I did expect. I'll do
> some digging to see why it's not loading correctly (under Cygwin or
> Mingw which uses MS runtime).
>
> btw, I always thought that the Makefiles were setup to do the `make
> headers' automatically in bfd. Guess not.
>
> Regards,
> Mumit
--
===================================================
Donn Terry mailto:donn@interix.com
Softway Systems, Inc. http://www.interix.com
2850 McClelland Dr, Ste. 1800 Ft.Collins CO 80525
Tel: +1-970-204-9900 Fax: +1-970-204-9951
===================================================
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: PE patches available
1999-04-12 13:40 ` Mumit Khan
1999-04-13 8:39 ` Donn Terry
@ 1999-04-13 18:20 ` Ian Lance Taylor
1 sibling, 0 replies; 4+ messages in thread
From: Ian Lance Taylor @ 1999-04-13 18:20 UTC (permalink / raw)
To: khan; +Cc: donn, gas2, bfd
Date: Mon, 12 Apr 1999 15:30:54 -0500 (CDT)
From: Mumit Khan <khan@xraylith.wisc.edu>
btw, I always thought that the Makefiles were setup to do the `make
headers' automatically in bfd. Guess not.
No, you only get an automatic `make headers' if you configure with
--enable-maintainer-mode. If you do that, you must also make sure you
have correct versions of autoconf, automake, and gettext in your PATH.
Ian
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~1999-04-13 18:20 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-04-08 12:16 PE patches available Donn Terry
1999-04-12 13:40 ` Mumit Khan
1999-04-13 8:39 ` Donn Terry
1999-04-13 18:20 ` Ian Lance Taylor
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).