[committed] Make module files reproducible

Message ID 1518508769-3277-1-git-send-email-blomqvist.janne@gmail.com
State New
Headers show
  • [committed] Make module files reproducible
Related show

Commit Message

Janne Blomqvist Feb. 13, 2018, 7:59 a.m.
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.
 gcc/fortran/module.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)



diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c
index b120501..c833e67 100644
--- a/gcc/fortran/module.c
+++ b/gcc/fortran/module.c
@@ -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;