Configure stage without a cache against a warm cache:
mtools 3.34 s -> 0.28 s
gengetopt 4.39 s -> 2.13 s
fakeroot 10.97 s -> 8.73 s
xz 4.32 s -> 2.17 s
libressl 3.07 s -> 1.46 s
flex 12.32 s -> 10.98 s
expat 2.74 s -> 1.52 s
bc 1.34 s -> 0.38 s
dosfstools 3.13 s -> 2.54 s
libtool 2.86 s -> 2.29 s
mtd-utils 4.06 s -> 3.56 s
flex, fakeroot, dosfstools and mtd-utils run autoreconf in the same
stage, and the cache does not reach that part.
Each of the eleven configures the same way with a warm cache as it does
without one: the check configures three times, without a cache, with a
cold cache and with a warm cache, and every generated file of the first
and the last run is identical. A static scan of each configure script
found no cache check that changes CFLAGS, CPPFLAGS, LDFLAGS or LIBS
without restoring it.
patchelf, mklibs and automake pass the same check but gain less than
half a second, so they stay out.
make world after make tools/clean now takes 121 s against 177 s with
cold caches.
Signed-off-by: John Crispin <john@phrozen.org>
host-build.mk clears MAKEFLAGS, so a custom Host/Compile that runs a bare
$(MAKE) builds with one job, whatever HOST_BUILD_PARALLEL says. mtools
sets the flag, but its compile step never used it.
Each of the three now passes $(HOST_JOBS), and mkimage and lzma set
HOST_BUILD_PARALLEL:
mkimage 11.7 s -> 7.2 s
mtools 8.3 s -> 4.8 s
lzma 4.0 s -> 1.8 s
Each one builds five times out of five with the job server, and each
build installs files that are identical to those of a serial build.
Signed-off-by: John Crispin <john@phrozen.org>
Changes:
- Remove libbsd dependency
- Better compatibility with legacy platforms such as AT&T UnixPC
- Upgraded to autoconf 2.71
Signed-off-by: Nick Hainke <vincent@systemli.org>
Improvements since the 4.0.38 release are:
- Rename strtoi to strosi (string to signed int). The strtoi
function on BSD does something else (returns an intmax, not
an int)
Signed-off-by: Daniel Golle <daniel@makrotopia.org>