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: 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


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