This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: HPUX C++ ABI
On Thu, Sep 12, 2002 at 05:19:37PM -0400, Jim Wilson wrote:
> >The solution HP is proposing is to make HPUX-only tweaks to the C++ ABI
> >in G++ so that on HPUX G++ behaves like aCC.
>
> We would need a few documentation changes. Right now, we have quite a few
> places that say we use the C++ ABI for all targets. They would all have to
> be changed somehow to reflect the new situation which is we use the C++ ABI
> for all targets except those whose native ABI is close enough to the C++ ABI
> such that it is beneficial for gcc to be bug-compatible with the native
> compiler than to have strict C++ ABI compliance. There is the last page of
> gcc/doc/compat.texi. There is the release notes page of gcc-3.2. There are
> probably other places.
>
> We also have to finesse the fact that we stated that there would be no ABI
> changes after gcc-3.2 unless they were necessary to fix a C++ compilation
> problem.
>
> Jim
I've made a few documentation changes about ABI issues and am keeping a
list of other things that should be documented. Here's what I've got
currently, which now includes your comments above.
Janis
GCC Manual
Binary Compatibility (compat.texi)
Standard C++ Library
if two compilers conform to the same C++ ABI and their libraries
conform to the same ABI for the Standard C++ Library, then
objects produced by each set might be interoperable
(depends on other factors, e.g., startup files; what else?)
two compilers might conform to the same C++ ABI but come with
libraries that do not conform to the same library ABI; a user can
compile objects with both of those compilers as long as both use
the header files for the Standard C++ Library that will be used
C++ ABI; where used, where variants are used, where it's not used
at all, conditions which warrant a change in the C++ ABI for a
target (Jim Wilson, http://gcc.gnu.org/ml/gcc/2002-09/msg00497.html)
GCC Internals Manual
Interfacing to GCC Output (interface.texi) (or elsewhere?)
list of what's included in an ABI (issues that affect
interoperability even when there is no formal ABI; see the "Things
to Test" list in http://gcc.gnu.org/ml/gcc/2002-08/msg01251.html)
release versioning (compiler stuff from Benjamin's libstdc++
document)
testing approaches for GCC ports that must be interoperable with
other compilers:
gdb tests
ABI conformance test suite
compile parts of an application with one compiler, parts with
another; e.g. libraries for apps in GCC release criteria
consistency.vlad
libstdc++-v3 Documentation
ABI Policy and Guidelines (abi.txt)
move compiler parts to GCC Manual or GCC Internals Manual
GCC Installation Instructions
Configuration (install.texi)
copy relevant information there from gcc-3.2/c++-abi.html
general information about configuration options that affect ABI
conformance/interoperability
Host/Target specific installation notes for GCC (install.texi)
copy relevant information there from gcc-3.2/c++-abi.html
GCC release criteria (gcc-3.3/criteria.html, when it exists)
describe existing test suites for ABI conformance, compatibility,
and interoperability
GCC release notes
information about relevant ABI issues, or pointers to them
somewhere
target-specific information about binary compatibility, ABI issues;
could include information (that's not hopelessly out of date) from
Interoperation section in trouble.texi, although "Trouble" doesn't
seem to be the right place
describe possible additional testing approaches for ABI conformance,
compatibility, and interoperability (projects list?)
Benjamin's list of updates required for a C++ ABI change