diff mbox

[wwwdocs] Add gcc-7/porting_to.html, Fortran changes

Message ID CAO9iq9HAGH_ipCS1uKhGWa-UH93Vhz44m4cdMSDp3DGqjtkHzw@mail.gmail.com
State New
Headers show

Commit Message

Janne Blomqvist Jan. 3, 2017, 8:32 a.m. UTC
Hi,

the attached patch mentions some changes in the Fortran frontend for
the GCC 7 cycle, and also adds the so-far missing
gcc-7/porting_to.html file.

(I added <!DOCTYPE html> and <meta charset="UTF-8">  tags to the
porting_to.html file, which is apparently what is recommended these
days; I didn't add this to any existing file)

Ok to commit?

Comments

Joseph Myers Jan. 3, 2017, 12:04 p.m. UTC | #1
On Tue, 3 Jan 2017, Janne Blomqvist wrote:

> (I added <!DOCTYPE html> and <meta charset="UTF-8">  tags to the
> porting_to.html file, which is apparently what is recommended these
> days; I didn't add this to any existing file)

DOCTYPE etc. are added automatically via style.mhtml.  They do not belong 
in any individual checked-in .html files.
Janne Blomqvist Jan. 3, 2017, 12:23 p.m. UTC | #2
On Tue, Jan 3, 2017 at 2:04 PM, Joseph Myers <joseph@codesourcery.com> wrote:
> On Tue, 3 Jan 2017, Janne Blomqvist wrote:
>
>> (I added <!DOCTYPE html> and <meta charset="UTF-8">  tags to the
>> porting_to.html file, which is apparently what is recommended these
>> days; I didn't add this to any existing file)
>
> DOCTYPE etc. are added automatically via style.mhtml.  They do not belong
> in any individual checked-in .html files.

Oh, right, so it seems. Well, scratch that part of the patch then, obviously.
Gerald Pfeifer Jan. 3, 2017, 2:32 p.m. UTC | #3
On Tue, 3 Jan 2017, Janne Blomqvist wrote:
> the attached patch mentions some changes in the Fortran frontend for 
> the GCC 7 cycle, and also adds the so-far missing gcc-7/porting_to.html 
> file.

Thank you, Janne.

> Ok to commit?

Yes, modulo Joseph's comment and a missing </p> towards the end
of porting_to.html.

(I am not sure <pre>...</pre> can sit inside a <p>...</p> environment,
and so you may need to alternate the two instead of nesting them, though
if it validates fine, that's okay of course.)

Gerald
diff mbox

Patch

Index: changes.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-7/changes.html,v
retrieving revision 1.32
diff -p -u -r1.32 changes.html
--- changes.html	27 Nov 2016 12:54:13 -0000	1.32
+++ changes.html	3 Jan 2017 08:26:59 -0000
@@ -338,6 +338,25 @@  of the global declaration:</p>
     derived-type variables.
   </li>
 
+  <li>
+    The <code>RANDOM_NUMBER</code> algorithm has been replaced, and
+    now has per-thread state allowing scalable random number
+    generation in multi-threaded programs.
+  </li>
+
+  <li>
+    Fortran 2003 User Defined Derived-Type IO (DTIO) is now fully supported.
+  </li>
+
+  <li>
+    Character lengths are now internally handled as
+    an <code>INTEGER(kind=C_SIZE_T)</code> variable, allowing
+    characters with more than <code>2**31</code> elements on 64-bit
+    targets. Please see <a href="porting_to.html">the GCC 7
+    porting</a> documentation if you need to call Fortran procedures
+    from C.
+  </li>
+
 </ul>
 
 <!-- <h3 id="go">Go</h3> -->
Index: porting_to.html
===================================================================
RCS file: porting_to.html
diff -N porting_to.html
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ porting_to.html	3 Jan 2017 08:26:59 -0000
@@ -0,0 +1,80 @@ 
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="UTF-8">
+<title>Porting to GCC 7</title>
+</head>
+
+<body>
+<h1>Porting to GCC 7</h1>
+
+<p>
+The GCC 7 release series differs from previous GCC releases in
+<a href="changes.html">a number of ways</a>. Some of
+these are a result of bug fixing, and some old behaviors have been
+intentionally changed in order to support new standards, or relaxed
+in standards-conforming ways to facilitate compilation or run-time
+performance.  Some of these changes are not visible to the naked eye
+and will not cause problems when updating from older versions.
+</p>
+
+<p>
+However, some of these changes are visible, and can cause grief to
+users porting to GCC 7. This document is an effort to identify major
+issues and provide clear solutions in a quick and easily searched
+manner. Additions and suggestions for improvement are welcome.
+</p>
+
+
+<h2 id="cpp">Preprocessor issues</h2>
+
+
+<h2 id="c">C language issues</h2>
+
+
+<h2 id="cxx">C++ language issues</h2>
+
+<h2 id="fortran">Fortran language issues</h2>
+
+<p>
+The library ABI version has been increased, necessitating a
+recompilation of all Fortran code.
+
+<p>
+Character lengths are now handled as
+an <code>INTEGER(kind=C_SIZE_T)</code> variable whose size is
+dependent on the target system, allowing characters longer than 2**31
+on 64-bit targets. Prior to GCC 7, the character length was
+an <code>INTEGER(kind=4)</code> variable on all targets. If calling a
+Fortran procedure with character arguments from C without using the
+standard ISO_C_BINDING feature, the hidden character length argument
+at the end of the argument list must thus be modified to be of
+type <code>size_t</code> rather than of type <code>int</code>. For
+instance, calling the Fortran subroutine
+
+<pre><code>
+subroutine fstrlen (s, a)
+   use iso_c_binding, only: k => c_size_t
+   character(len=*) :: s
+   integer :: a
+   print*, len(s, kind=c_size_t)
+end subroutine fstrlen
+</code></pre>
+
+from C in a way that is compatible with older GFortran versions can be
+done by defining the prototype as follows:
+
+<pre><code>
+#if __GNUC__ > 6
+typedef size_t fortran_charlen_t;
+#else
+typedef int fortran_charlen_t;
+#endif
+
+void fstrlen_ (char*, int*, fortran_charlen_t);
+</code></pre>
+
+<h2 id="plugins">Plugin issues</h2>
+
+</body>
+</html>