This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: [committed] SOM linkonce/common support
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- To: law at redhat dot com
- Cc: binutils at sources dot redhat dot com
- Date: Wed, 28 Apr 2004 19:42:58 -0400 (EDT)
- Subject: Re: [committed] SOM linkonce/common support
> >I have tested the patch with a modified version of gcc 3.3.4. Using
> >the COMDAT support below, I implemented one-only support in gcc. This
> >provides implicit template instantiation and vastly simplified vtable
> >and typeinfo node handling. I was then able to build working versions
> >of the C++ applications groff and lyx. Previously, this wasn't possible.
> >
> >Installed to the trunk about 10 years too late.
> Thanks. I've often wondered if using the SOM comdat stuff would have
> worked and made a number of things in GCC-land easier to deal with.
The gcc patch still needs a bit of cleanup but hopefully will be installed
soon. I had looked at the gcc C++ implementation to see if the handling
of vtables and typeinfo nodes could be improved. However, I came to
the conclusion that this was going to be difficult if not impossible.
Basically, the adopted C++ ABI for gcc is based on one with weak support.
Having noticed the comdat and common support in the linker, I thought
it might be worthwhile to see if it might be usable to provide one
only support in gcc.
The changes needed for supporting SOM comdat are pretty straightforward
and a good part of the necessary support was already present. I guess
the reason this didn't happen ten years ago is HP didn't expose the
is_somdat flag until hpux 11. It also helped to have the public domain
version of the linker available to see what its capabilities were.
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6602)