Martin, Thanks. I'll try to give it a try soon...
...though that might be a while. Our preliminary tests with GCC 11 seem to show some issues with our code (other than slowness). Our devs (including Tom Clune who might be known to some here) are looking to see why GCC 10.3 is happy, but GCC 11 isn't. The changelog didn't seem to exciting but you never know when things like polymorphism, strings, et al are all happening at once! Matt -- Matt Thompson, SSAI, Ld Scientific Programmer/Analyst NASA GSFC, Global Modeling and Assimilation Office Code 610.1, 8800 Greenbelt Rd, Greenbelt, MD 20771 Phone: 301-614-6712 Fax: 301-614-6246 http://science.gsfc.nasa.gov/sed/bio/matthew.thompson From: Martin Stein <ms...@gmx.net> Date: Monday, May 17, 2021 at 6:15 AM To: "Thompson, Matt (GSFC-610.1)[SCIENCE SYSTEMS AND APPLICATIONS INC]" <matthew.thomp...@nasa.gov> Cc: "fortran@gcc.gnu.org" <fortran@gcc.gnu.org> Subject: [EXTERNAL] Aw: Help with long compile time of all-USE module PS: I am currently using (with 11.1) the following simple patch to significantly speeding up my compilation. The patch is not correct, but I could not find any examples, where this makes a difference. Even by looking at the orignal commit introducing the find_symbol call I could not come up with an example where this matters. I would be interested to know whether this is the cause for the long compilation times in your case as well. gcc/fortran/module.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c index 089453caa03..a29865c7412 100644 --- a/gcc/fortran/module.c +++ b/gcc/fortran/module.c @@ -5501,11 +5501,12 @@ read_module (void) this symbol, which is not in an ONLY clause, must not be added to the namespace(11.3.2). Note that find_symbol only returns the first occurrence that it finds. */ - if (!only_flag && !info->u.rsym.renamed +/* if (!only_flag && !info->u.rsym.renamed && strcmp (name, module_name) != 0 && find_symbol (gfc_current_ns->sym_root, name, module_name, 0)) continue; +*/ st = gfc_find_symtree (gfc_current_ns->sym_root, p); Best regards Martin