From: Bruno H. <br...@cl...> - 2018-01-23 19:03:02
|
Hi Sam, > > If you give a man a toy, he will play with it. > > Now that we have all those multibuild targets in Makefile.devel, we can > > find out which build is the fastest (e.g., if I make small > > architecture-agnostic change, which build do I test it in?) This is something you can easily find out, by putting a 'time' command in Makefile.devel and then running a 'multibuild-<platform>' target with '-k'. In my experience, the following factors are important (in decreasing order of importance): 1) Put the GCC binaries on a local disk, preferably on a SSD. Do not put them on a CIFS mount - this gives terrible compilation times. 2) Use an older GCC version. GCC 3.x is way faster than 7.x. 3) Revisit the optimization options: -O is a good compromise, -O2 increases the compilation times significantly, and -O2 -fexpensive-optimizations is just excessive. > > Bruno, do you mind if I add "time" to every multibuild target? > > Also, does the configure script have to support platforms without > /usr/bin/time? I do mind, yes. And you guessed the reason: We haven't tested portability. The POSIX 'time' command produced ugly output. 'time' as a bash built-in is OK. > I noticed that you use sed instead of tail Yes: Solaris 10 'tail' does not understand the '-n' option. See also the chapter "Portable Shell Programming" [1]. > so I wonder what the assumptions are. The assumptions are those listed by the GNU coding standards [2]. Bruno [1] https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Portable-Shell.html [2] https://www.gnu.org/prep/standards/html_node/Utilities-in-Makefiles.html |