This is the mail archive of the gcc-patches@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: [www-patch] bugs.html rewrite, part 6a: clarify ABI section


On 12 Jan, Janis Johnson wrote:
> On Mon, Jan 12, 2004 at 10:18:58PM +0100, Volker Reichelt wrote:
>> The following patch clarifies the "ABI changes" section in bugs.html.
>> It was discussed in November, see e.g.
>> 
>> http://gcc.gnu.org/ml/gcc-patches/2003-11/msg01788.html
>> 
>> but somehow the thread petered out without a patch being applied.
>> 
>> Gerald was OK with the patch, but wanted to leave the final decision to you,
>> Richard.
>> 
>> Checked as valid XHTML 1.0.
>> Ok to commit?
> 
> There are also descriptions of the C++ and libstdc++ ABIs in the binary
> compatibility section of the GCC manual, so you might want to reference
> that as well.
> 
> Janis

Like so?
Ok to commit?

Regards,
Volker

===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/bugs.html,v
retrieving revision 1.82
diff -u -p -r1.82 bugs.html
--- bugs.html	13 Jan 2004 17:36:40 -0000	1.82
+++ bugs.html	14 Jan 2004 09:23:16 -0000
@@ -691,14 +691,22 @@ and the scope operator.</p></dd>
 
 <h4>ABI changes</h4>
 
-<p>The application binary interface (ABI) defines how the elements of
-classes are laid out, how functions are called, how function names are
-mangled etc.  It usually changes with each major release (i.e. when the
-first or second part of the version number changes).  You <em>must</em>
-recompile all C++ libraries, or you risk linker errors or malfunctioning
-programs.  However, the ABI is not changed with bug-fix releases (i.e.
-when the third part of the version number changes).  The code should be
-binary compatible among these versions.</p>
+<p>The C++ application binary interface (ABI) consists of two components:
+The first defines how the elements of classes are laid out, how functions
+are called, how function names are mangled etc.  The second part deals
+with the internals of the objects in libstdc++.  Although we strive for
+a non-changing ABI, we had to modify it with each major release (i.e. when
+the first or second part of the version number changes).  If you upgrade
+your compiler to a new major release version, <em>you must therefore
+recompile all libraries that contain C++ code, or you risk linker errors
+or malfunctioning programs</em>.  (Some of our Java support libraries also
+contain C++ code, so you might want to recompile all libraries to be save.)
+However, it should not be necessary to recompile, if you have changed to
+a bug-fix release of the same version of the compiler (i.e. when only the
+third part of the version number changes); bug-fix releases are careful to
+avoid ABI changes.  See also the
+<a href="onlinedocs/gcc/Compatibility.html">compatibility section</a> of the
+GCC manual.</p>
 
 <h4>Standard conformance</h4>
 
===================================================================



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