public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* About ELF and COFF
@ 2004-05-04  9:13 libra
  2004-05-05  1:49 ` Ian Lance Taylor
  0 siblings, 1 reply; 8+ messages in thread
From: libra @ 2004-05-04  9:13 UTC (permalink / raw)
  To: binutils



Hello,all

There are some object file format like a.out,COFF and ELF

The COFF is used by System V Release 3(SVR3) UNIX.
The ELF is used by System V Release 4(SVR4) UNIX.

What is different between these two object file format?
In other words, which one is better?

I think there are some reasons why the SVR4 use ELF,not use COFF as it's 
object file format.

                                                   thanks a lot!!

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: About ELF and COFF
  2004-05-04  9:13 About ELF and COFF libra
@ 2004-05-05  1:49 ` Ian Lance Taylor
  0 siblings, 0 replies; 8+ messages in thread
From: Ian Lance Taylor @ 2004-05-05  1:49 UTC (permalink / raw)
  To: libra; +Cc: binutils

libra <mr924352@cs.nthu.edu.tw> writes:

> The COFF is used by System V Release 3(SVR3) UNIX.
> The ELF is used by System V Release 4(SVR4) UNIX.
> 
> What is different between these two object file format?

The differences are extensive.  In fact, they are no more similar than
any other two object file formats.

> In other words, which one is better?

ELF is better.

> I think there are some reasons why the SVR4 use ELF,not use COFF as it's 
> object file format.

Yes, there are.  ELF was written after experience with COFF, and
corrects the problems which exist with COFF.

Ian

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: About ELF and COFF
  2004-05-10 14:11 libra
@ 2004-05-10 15:03 ` Ian Lance Taylor
  0 siblings, 0 replies; 8+ messages in thread
From: Ian Lance Taylor @ 2004-05-10 15:03 UTC (permalink / raw)
  To: libra; +Cc: binutils

libra <mr924352@cs.nthu.edu.tw> writes:

> Where i can download the UNIX COFF specification?

You can't.  There is no complete COFF specification.  The closest that
anybody has ever gotten is the AT&T SVR3 documentation for particular
processors, and a book published by O'Reilly ("Understanding and Using
COFF") which is no longer in print.  You need to put both
documentation sources together to get anything resembling a complete
specification.  Neither is available online.

Ian

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: About ELF and COFF
@ 2004-05-10 14:11 libra
  2004-05-10 15:03 ` Ian Lance Taylor
  0 siblings, 1 reply; 8+ messages in thread
From: libra @ 2004-05-10 14:11 UTC (permalink / raw)
  To: binutils

Thanks for your reply

After reading your comment, i still cann't get a concrete ideas about their
difference.
Therefore, i try to search the specification of ELF and COFF.
Once i have read these two specification, i can more understand your comment.
But, i can not find the COFF specification.
I just find the Microsoft PE and COFF file format specification.
Where i can download the UNIX COFF specification?


                                                  Thanks a lot!!

 
> > Is there any documentation about ELF is better than COFF?
> 
> Probably, though I don't know of any.
> 
> > Which problems the ELF correct that exist with COFF?
> 
> COFF has no coherent way to implement shared libraries.  COFF shared
> libraries are normally implemented by putting the shared library at a
> fixed address, and linking to that address.  This is inflexible, and
> makes it quite difficult to coordinate shared libraries from multiple
> vendors.
> 
> COFF relocations are not well specified.  All details are processor
> dependent.  (This is partially true of ELF, but at least ELF fully
> specifies the relocation format; only the details of performing the
> relocation are processor dependent.  This makes it possible to write
> generic code to examine ELF relocations.)
> 
> COFF has no way to specify required section alignment in an object
> file.
> 
> COFF has no way to specify required alignment for a common symbol.
> 
> COFF stores debugging information in the symbol table (and in a
> separate line number table), which makes it difficult to enhance as
> new debugging information tends to break existing linkers.  For
> example, debugging C++ code using COFF debugging information is hard
> and most operations do not work.  (A GNU extension is to use stabs
> debugging information instead, and store that in separate sections.
> Some people now use DWARF debugging information in COFF sections,
> which is essentially equivalent to the ELF approach.)
> 
> Many COFF implementations only permit up to 65535 relocations per
> section, which sounds like a lot but is insufficient for some real
> programs.
> 
> There is no unified way to recognize a COFF file.  Every COFF file has
> a magic number which is specific to a particular version of COFF.
> 
> Those are the deficiencies which come to mind.
> 
> Ian
> 
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: About ELF and COFF
  2004-05-05  2:49 libra
  2004-05-05  6:03 ` Jim Blandy
@ 2004-05-05 15:36 ` Ian Lance Taylor
  1 sibling, 0 replies; 8+ messages in thread
From: Ian Lance Taylor @ 2004-05-05 15:36 UTC (permalink / raw)
  To: libra; +Cc: binutils

libra <mr924352@cs.nthu.edu.tw> writes:

> Is there any documentation about ELF is better than COFF?

Probably, though I don't know of any.

> Which problems the ELF correct that exist with COFF?

COFF has no coherent way to implement shared libraries.  COFF shared
libraries are normally implemented by putting the shared library at a
fixed address, and linking to that address.  This is inflexible, and
makes it quite difficult to coordinate shared libraries from multiple
vendors.

COFF relocations are not well specified.  All details are processor
dependent.  (This is partially true of ELF, but at least ELF fully
specifies the relocation format; only the details of performing the
relocation are processor dependent.  This makes it possible to write
generic code to examine ELF relocations.)

COFF has no way to specify required section alignment in an object
file.

COFF has no way to specify required alignment for a common symbol.

COFF stores debugging information in the symbol table (and in a
separate line number table), which makes it difficult to enhance as
new debugging information tends to break existing linkers.  For
example, debugging C++ code using COFF debugging information is hard
and most operations do not work.  (A GNU extension is to use stabs
debugging information instead, and store that in separate sections.
Some people now use DWARF debugging information in COFF sections,
which is essentially equivalent to the ELF approach.)

Many COFF implementations only permit up to 65535 relocations per
section, which sounds like a lot but is insufficient for some real
programs.

There is no unified way to recognize a COFF file.  Every COFF file has
a magic number which is specific to a particular version of COFF.

Those are the deficiencies which come to mind.

Ian

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: About ELF and COFF
@ 2004-05-05 11:01 libra
  0 siblings, 0 replies; 8+ messages in thread
From: libra @ 2004-05-05 11:01 UTC (permalink / raw)
  To: binutils

Thanks for your reply

I try to search this article "ELF: An Object File to Mitigate Mischievous 
Misoneism", but i just get the list.

I can not find the whole context about this article.
Where can i download it?
                                        thanks a lot !!

----- Original Message ----- 
From: "Jim Blandy" <jimb@redhat.com>
To: "libra" <mr924352@cs.nthu.edu.tw>
Cc: <binutils@sources.redhat.com>
Sent: Wednesday, May 05, 2004 1:59 PM
Subject: Re: About ELF and COFF


 
> Take a look at this article:
> 
>     ELF: An Object File to Mitigate Mischievous Misoneism
>     James Q. Arnold
>     USENIX June 1990
> 
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: About ELF and COFF
  2004-05-05  2:49 libra
@ 2004-05-05  6:03 ` Jim Blandy
  2004-05-05 15:36 ` Ian Lance Taylor
  1 sibling, 0 replies; 8+ messages in thread
From: Jim Blandy @ 2004-05-05  6:03 UTC (permalink / raw)
  To: libra; +Cc: binutils


libra <mr924352@cs.nthu.edu.tw> writes:
> Is there any documentation about ELF is better than COFF?
> Which problems the ELF correct that exist with COFF?

Take a look at this article:

    ELF: An Object File to Mitigate Mischievous Misoneism
    James Q. Arnold
    USENIX June 1990

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: About ELF and COFF
@ 2004-05-05  2:49 libra
  2004-05-05  6:03 ` Jim Blandy
  2004-05-05 15:36 ` Ian Lance Taylor
  0 siblings, 2 replies; 8+ messages in thread
From: libra @ 2004-05-05  2:49 UTC (permalink / raw)
  To: binutils

Thanks for your reply.

Is there any documentation about ELF is better than COFF?
Which problems the ELF correct that exist with COFF?


                                            thanks a lot !!

> The COFF is used by System V Release 3(SVR3) UNIX.
> The ELF is used by System V Release 4(SVR4) UNIX.
> 
> What is different between these two object file format?

The differences are extensive.  In fact, they are no more similar than
any other two object file formats.

> In other words, which one is better?

ELF is better.

> I think there are some reasons why the SVR4 use ELF,not use COFF as it's 
> object file format.

Yes, there are.  ELF was written after experience with COFF, and
corrects the problems which exist with COFF.

Ian


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2004-05-10 15:03 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-05-04  9:13 About ELF and COFF libra
2004-05-05  1:49 ` Ian Lance Taylor
2004-05-05  2:49 libra
2004-05-05  6:03 ` Jim Blandy
2004-05-05 15:36 ` Ian Lance Taylor
2004-05-05 11:01 libra
2004-05-10 14:11 libra
2004-05-10 15:03 ` 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).