Re: [RFC][PATCH] kernel: Replace timeconst.pl with a bc script

Michal Marek
2013-02-15T23:41:42Z

Dne 15.2.2013 00:13, H. Peter Anvin napsal(a):
> Unfortunately switching to Perl required a really ugly "canning"
> mechanism to support Perl < 5.8 installations lacking the Math::BigInt
> module.

Yes, this was really ugly.

> It was recently pointed out to me that some very old versions of GNU
> make had problems with pipes in subshells, which was indeed the
> construct used in the Makefile rules in that version of the patch;
> Perl didn't need it so switching to Perl fixed the problem for
> unrelated reasons. With the problem (hopefully) root-caused, we can
> switch back to bc and do the arbitrary-precision arithmetic naturally.

Great.

>
> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Michal Marek <mmarek@suse.cz>
> Cc: Sam Ravnborg <sam@ravnborg.org>
> ---
> kernel/Makefile | 16 ++-
> kernel/timeconst.bc | 108 +++++++++++++++
> kernel/timeconst.pl | 376 ----------------------------------------------------
> 3 files changed, 120 insertions(+), 380 deletions(-)
> create mode 100644 kernel/timeconst.bc
> delete mode 100644 kernel/timeconst.pl
>
> Comments appreciated; including the preferred way to merge this.

I can merge it into the kbuild tree if wanted. I only have one nipick:

> +/* Division by reciprocal multiplication. */
> +define fmul(b,n,d) {
> + return (2^b*n+d-1)/d;
> +}

For readability reasons, I suggest to use the same formatting of
expressions and argument lists like in C:

define fmul(b, n, d) {
return (2^b * n + d - 1) / d;
}

Otherwise, you can add

Acked-by: Michal Marek <mmarek@suse.cz>

Michal