This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[www-patch] bugs.html rewrite, part 6a: clarify ABI section
- From: Volker Reichelt <reichelt at igpm dot rwth-aachen dot de>
- To: Richard dot Earnshaw at arm dot com, gcc-patches at gcc dot gnu dot org
- Cc: gerald at pfeifer dot com
- Date: Mon, 12 Jan 2004 22:18:58 +0100 (CET)
- Subject: [www-patch] bugs.html rewrite, part 6a: clarify ABI section
- Reply-to: Volker Reichelt <reichelt at igpm dot rwth-aachen dot de>
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?
Regards,
Volker
Index: bugs.html
===================================================================
RCS file: /home/reichelt/GCC/CVS/gcc-cvs/wwwdocs/htdocs/bugs.html,v
retrieving revision 1.81
diff -u -p -r1.81 bugs.html
--- bugs.html 7 Jan 2004 10:30:59 -0000 1.81
+++ bugs.html 12 Jan 2004 21:04:32 -0000
@@ -694,14 +694,20 @@ 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.</p>
<h4>Standard conformance</h4>
===================================================================