delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1997/03/26/16:16:26

From: krk AT cygnus DOT com (Kim Knuttila)
Subject: Re: problems linking formats.
26 Mar 1997 16:16:26 -0800 :
Approved: cygnus DOT gnu-win32 AT cygnus DOT com
Distribution: cygnus
Message-ID: <199703260336.TAA02337.cygnus.gnu-win32@rtl.cygnus.com>
Reply-To: krk AT cygnus DOT com
Original-To: iverson AT cisco DOT com
Original-CC: Charles_Boatwright AT cisnc DOT canon DOT com, gnu-win32 AT cygnus DOT com
In-reply-to: <199703250154.RAA28474@rottweiler.cisco.com> (message from Tim
Iverson on Mon, 24 Mar 1997 17: 54:39 -0800 (PST))
Original-Sender: owner-gnu-win32 AT cygnus DOT com

   From: Tim Iverson <iverson AT cisco DOT com>
   Date: Mon, 24 Mar 1997 17:54:39 -0800 (PST)
   Cc: gnu-win32 AT cygnus DOT com
   X-Mailer: ELM [version 2.4 PL25]
   MIME-Version: 1.0
   Content-Type: text/plain; charset=US-ASCII
   Content-Transfer-Encoding: 7bit
   Sender: owner-gnu-win32 AT cygnus DOT com
   Precedence: bulk

   I'm unsure about the latest MSVC, but I do know that MSC, Borland, etc.
   (all older Windows/DOS compilers) use Intel OMF, not "pe-i386", which I
   believe is an executable format, not an object format.  According to the
   Cygnus GCC-b17.1 source, pe-i386 assumes that the object module format is
   actually a variation on COFF.

   MSC did at one time support SCO's variation on COFF, which may be similar
   enough to what GCC uses such that MSVC's link.exe will link without error
   messages, but use incorrect offsets.  I have seen the incorrect offsets
   problem with GCC-b17.1 and Phar-Lap's linker, which does support COFF.  So,
   I'm inclined to believe that pe-i386 is not COFF enough to be useful
   outside of GCC.

   IMHO, if Cygnus wants a drop-in replacement for a production toolset, they
   will need to support OMF at some point.  However, given that GNU doesn't
   support it, using a bastard COFF during beta does provide a workable
   solution until OMF support is ready.

   I do wish it was better documented, though.  I looked all over the README's
   and FAQs and saw nary a reference to executable or object format; "pe-i386"
   does somewhat imply "Microsoft Portable Executable" format, often referred
   to as "PE", but it would be nice if it was explicitly stated.

Tim,

You're missing some info. The 'pe' does refer to "Portable Executable". This 
is Microsoft's extension to COFF and it is the official format for Windows/NT.
(There's tons of info on the MS Developer CD's, etc) Far from a 'bastard COFF',
you can think of PE as the replacement for OMF. There are PE formats defined
for i386, powerpc, alpha and mips (and probably others by now).

--krk

-- 
Kim Knuttila     | Speaking for himself as always.
Cygnus Solutions |		Woof.
-
For help on using this list, send a message to
"gnu-win32-request AT cygnus DOT com" with one line of text: "help".

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019