This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Minimal GCC/Linux shared lib + EH bug example


"David Abrahams" <david.abrahams@rcn.com> writes:

> > .comm is only relevant for object files (relocatable objects):
> 
> By this do you mean what we normally use "*.o" names for? 

Yes.

> From looking at the ELF spec, it wasn't clear if "object" meant
> something else, e.g.  "*.so".

There are four kinds of object files in ELF (see e_type field):
- relocatable objects (your usual .o files);
- executable files
- shared object files (.so, aka "shared libraries", aka "DSO" =
  "dynamic shared object")
- core files

I believe there is a fifth kind also, archives (aka static libraries),
but that may not be a ELF object.

> So, for a symbol in a C++ shared library composed of a single object file,
> even .comm would not be needed?

Exactly, but you would need to express allocation in the .bss section
by different means.

Regards,
Martin


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