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.mckins...@sceal.ie> Janne Blomqvist <j...@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; -- 2.7.4