Make module files reproducible
authorAlastair McKinstry <alastair.mckinstry@sceal.ie>
Tue, 13 Feb 2018 07:59:10 +0000 (07:59 +0000)
committerJanne Blomqvist <jb@gcc.gnu.org>
Tue, 13 Feb 2018 07:59:10 +0000 (09:59 +0200)
Using lbasename ensures that the build path does not end up in the
module file.

Regtested on x86_64-pc-linux-gnu, committed to trunk. Will shortly
backport to the 6 and 7 branches as well.

2018-02-13  Alastair McKinstry  <alastair.mckinstry@sceal.ie>
    Janne Blomqvist  <jb@gcc.gnu.org>

* module.c (dump_module): Use lbasename to ensure that module
files are reproducible.

Co-Authored-By: Janne Blomqvist <jb@gcc.gnu.org>
From-SVN: r257613

gcc/fortran/ChangeLog
gcc/fortran/module.c

index 6f416b31e4ffea50ed5e6d6ef2f60d6b955498ba..c3db796b7e801ff42c0c010926afd9cb2c9944b3 100644 (file)
@@ -1,3 +1,9 @@
+2018-02-13  Alastair McKinstry  <alastair.mckinstry@sceal.ie>
+           Janne Blomqvist  <jb@gcc.gnu.org>
+
+       * module.c (dump_module): Use lbasename to ensure that module
+       files are reproducible.
+
 2018-02-12  Janus Weil  <janus@gcc.gnu.org>
 
        PR fortran/84273
index b120501beb7be5175a5180299be0cca8aa1e25cf..c833e67f71ff087f560be718229e08a807f41bc8 100644 (file)
@@ -6148,8 +6148,10 @@ dump_module (const char *name, int dump_flag)
     gfc_fatal_error ("Can't open module file %qs for writing at %C: %s",
                     filename_tmp, xstrerror (errno));
 
+  /* Use lbasename to ensure module files are reproducible regardless
+     of the build path (see the reproducible builds project).  */
   gzprintf (module_fp, "GFORTRAN module version '%s' created from %s\n",
-           MOD_VERSION, gfc_source_file);
+           MOD_VERSION, lbasename (gfc_source_file));
 
   /* Write the module itself.  */
   iomode = IO_OUTPUT;