Automake problems - excessive compilation times
Since I threw away everything I tried to repeat the problem. I will try to explain what I did using a log: % which gpc /dutw54/deruiter/system/bin/gpc % mv /dutw54/deruiter/system/bin/gpc /dutw54/deruiter/system/bin/gpc.hide % rehash % which gpc /usr/tm/bin/gpc % gpc --version 2.95.2 19991024 (release) % make_clean % time make_fem >& /dev/null 169.390u 15.880s 4:31.73 68.1% 0+0k 0+0io 257172pf+0w % make_clean % mv /dutw54/deruiter/system/bin/gpc.hide /dutw54/deruiter/system/bin/gpc % which gpc /dutw54/deruiter/system/bin/gpc % gpc --version 20020910, based on gcc-2.95.2 19991024 (release) % make_clean %time make_fem > & ! make_log 1502.410u 434.950s 46:40.99 69.1% 0+0k 0+0io 11139770pf+0w % mv make_log make_log_first % time make_fem > & ! make_log 0.170u 0.090s 18:11:58.94 0.0% 0+0k 0+0io 4003pf+0w % grep gpcpp make_log_first | wc 43327 2166121 70806935 % grep gpcpp make_log | wc 177116 8855798 287544862 % grep gpcpp make_log | cut -f49 -d\ >make_log_gpcpp % grep gpcpp_first make_log | cut -f49 -d\ >make_log_first_gpcpp % ls -l make_log* -rw-r--r-- 1 deruiter staff 377521106 Sep 20 09:53 make_log -rw-r--r-- 1 deruiter staff 93209349 Sep 19 15:00 make_log_first -rw-r--r-- 1 deruiter staff 1043211 Sep 20 09:53 make_log_first_gpcpp -rw-r--r-- 1 deruiter staff 2388112 Sep 20 09:55 make_log_gpcpp make_clean is a script that removes all the object and gpi files make_fem builds the executable. So, I hid the new binary to use the old compiler, made sure that the old compiler was used, and nothing was compiled, and managed to obtain a executable in 4:31.73 ( Then I trew everything away, restored the new compiler, and obtained an executable in 46:40.99, which is considerably longer After moving the log file only, I tried to compile again (overnight!), without succes. I interrupted the process after 18:11:58.94 The last lines tell that gpcpp was invoked 43327 times in the first run, that yielded an executable, and 177116 times in the interrupted last. The 48-th arguments, that are the unit file names, are selected and put in the _gpcpp files Since I do not want to flush the entire gpc mailinglist with (hundreds of) megabytes of log files, I do not include the logfiles to this mail, but I hope I can highlight some of the output, that points in the right direction. More commands follow: % head -50 make_log > make_log.firstlines % head -200 make_log_first_gpcpp > make_log_first_gpcpp.firstlines % head -200 make_log_gpcpp > make_log_gpcpp.firstlines % cat -n make_log_first_gpcpp | grep NODES | head -40 > make_log_first_gpcpp_NODES % cat -n make_log_gpcpp | grep NODES | head -40 > make_log_gpcpp_NODES The attachment make_log.firstlines shows the first lines of the logfile, hopefully showing all that is used invoking the compilation. The other attachments show that NODES/*/*.p are compiled in one row of invocations of gpcpp, in the `clean' invocation of make_fem, namely line 18-29, whereas when all units are already compiled and available, then all dependencies are checked and double checked, so that the invocations are 6 apart, and cover 51 to 117. Hoping this helps to pinpoint the problem, regards, Marten Jan
participants (1)
-
Marten Jan de Ruiter