Extra pointless steps in kernel module builds
We have some things in our Makefiles which substantially increase the compile cost for the kernel tree.
1. We execute date to get THIS_YEAR every time Makefile.uts is included -- this is presumably for logsubr's benefit, but logsubr.c doesn't actually use that define.
2. We execute some extra CTF stuff to cope with patches (ctffindmod, ctfcvtptbl). But illumos has zero support for patching -- that's a hold over from Solaris 10 days, and we never build patches from illumos-gate.
Eliminating these steps saved about 20 minutes for my build, which is done on a system with a relatively small number of cores available (4). Systems with high core counts noticed a smaller (in some cases negligible) difference. I contend that increased parallelism drives the incremental cost of these steps to close to zero. But for systems that have to run more serially, the difference is quite noticeable.
In any event, the decrease in complexity also helps improve maintainability. The performance bonus is just a nice side benefit.
Updated by Garrett D'Amore about 6 years ago
Btw, this is tracked as two separate issues (with a single) commit in my illumos-core tree, where I've been running with these changes for quite some months:
Updated by Electric Monk about 6 years ago
- Status changed from New to Closed
- % Done changed from 90 to 100
commit 105958d7eca6f896fb8caab1f9777157eb0a352c Author: Garrett D'Amore <firstname.lastname@example.org> Date: 2015-04-05T17:36:29.000Z 5773 Extra pointless steps in kernel module builds Reviewed by: Dan McDonald <email@example.com> Reviewed by: Josef Sipek <firstname.lastname@example.org> Reviewed by: Rich Lowe <email@example.com> Reviewed by: Robert Mustacchi <firstname.lastname@example.org> Approved by: Rich Lowe <email@example.com>