public inbox for gas2@sourceware.org
 help / color / mirror / Atom feed
From: John Gilmore <gnu@cygnus.com>
To: Erich Stefan Boleyn <erich@uruk.org>
Cc: gas2@cygnus.com, bfd@cygnus.com, gnu
Subject: Re: traditional Intel & Microsoft formats...
Date: Thu, 10 Nov 1994 22:53:00 -0000	[thread overview]
Message-ID: <199411110653.WAA01871@cygnus.com> (raw)
In-Reply-To: <199411091607.IAA20118@uruk.org>

I applaud your effort to support more file formats in the hope of
making it possible to run (proprietary or free) programs from the
PC world on GNU systems.  Have you examined the Wine emulator
for Windows programs?  And the "sim" directory of instruction-set
simulators in the GDB releases?  Some of us have similar dreams...

Specs for some of the formats you are interested in *are* available
and don't have to be reverse-engineered.  (Some other info, such as
debug sections, may require more work -- I haven't checked into all the
details.)  There's an organization of OS and tool companies called the
Tool Interface Standards committee.  It publishes specs and talks
about new formats and revisions.  Cygnus asked how we could join one
time, but never got a response.  Here are my old notes about this:

Subject: [Intel x86] Tool Interface Standards committee

Announced in Open Systems Today, March 1, 1993.  Committee is Borland,
IBM, Intel, Lotus, MetaWare, Microsoft, SCO, Watcom.

Contact: David Bernstein, director of technology at SCO.

Volume 1:  Portable executable format (from Windows NT) and STI (symbol
	   and type information).
Volume 2:  ELF, DWARF, and OMF.

Version 1.0 of the standard is free of charge (in hard copy) on request.
Available from Intel.  +1 800 548 4725
Order # 241-597
Takes 7-10 working days.

Arrived from:

	Tool Interface Standards 
	c/o Intel Corporation
	RN6-30
	2200 Mission College Blvd.
	Santa Clara, CA  95052

signature space left for "Secretary, TIS Committee", but not signed.

"The TIS Committee is an open forum in which corporations can provide
leadership for advancing the PC software market.  The Committee
welcomes participation by new company members.  Interested companies
can learn more about TIS by using Intel ACCESS on CompuServe."

	John

The Tool Interface Standards ad-hoc committee has produced two
documents, describing ELF, DWARF (almost 2.0), OMF, PE, and STI object
formats.

The intent is that every vendor's tools can interoperate, at least on
Intel x86 platforms.  Some of the formats describe other CPUs as well.

The committee is currently Borland, IBM, Intel, Lotus, Metaware,
Microsoft, SCO, and Watcom, with help from PharLap and Symantec.

The standards haven't been jiggered -- e.g. ELF is the real thing.
ELF is the only one that we currently support.  Our DWARF support is
for a previous rev, and we don't do OMF (which is used for DOS and
OS/2 relocatable files), PE (Windows NT executable, basically COFF),
and STI (Windows NT debug info).  But now we can if we want to.

    ---

By the way, it looks to me like Windows DLL linking is remarkably like
dynamic linking on SVR4 or SunOS.  Since the GNU Linker now supports
dynamic linking (which was, indeed, a fair bit of work), making it
handle DLL's is probably not as big a job as you think.

The way to support any of these formats is to write a new BFD
back-end.  It's really pretty easy.  Look at one of the simple ones
that isn't full of macros -- say, binary.c or tekhex.c or srec.c or
oasys.c.  (The macro-ized bfd target code is to support seventeen
variants of a.out or COFF on seventeen Unix machines.)  To read a new
file format, you only need to write a dozen functions (check file
format, get section info, get section contents, get symbol table size,
get symbol table, etc).  Once you get this simple stuff into a BFD
target, you get immense leverage from the already-99%-working code
in the assembler, linker, binutils, and GDB that calls BFD.

	John Gilmore
	Cygnus Support


  parent reply	other threads:[~1994-11-10 22:53 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1994-11-09  8:05 Erich Stefan Boleyn
1994-11-09  8:59 ` Arthur Kreitman
1994-11-09  9:41   ` Erich Stefan Boleyn
1994-11-09  9:56   ` DJ Delorie
1994-11-09  9:57   ` Ken Raeburn
1994-11-09 10:33     ` DJ Delorie
1994-11-09 11:56       ` Erich Stefan Boleyn
1994-11-09 10:49     ` Arthur Kreitman
1994-11-09 12:02       ` Erich Stefan Boleyn
1994-11-10  8:22     ` Richard Stallman
1994-11-10  8:11   ` Richard Stallman
1994-11-10  9:35     ` Erich Stefan Boleyn
1994-11-10 22:53 ` John Gilmore [this message]
1994-11-10 23:25   ` John Gilmore
1994-11-11  5:34   ` Arthur Kreitman
1994-11-11  8:31     ` Ian Lance Taylor
1994-11-11 10:21   ` Erich Stefan Boleyn

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=199411110653.WAA01871@cygnus.com \
    --to=gnu@cygnus.com \
    --cc=bfd@cygnus.com \
    --cc=erich@uruk.org \
    --cc=gas2@cygnus.com \
    /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 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).