aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/Makefile
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2013-02-14 15:13:55 -0800
committerMyself5 <myself5@carbonrom.org>2015-08-11 21:10:47 +0200
commit58b33eea6e42681916f940c9c873f7c653aba56d (patch)
treee6233156f486b8531742b34bd203e849dc419431 /kernel/Makefile
parent88e677ab215016edb259568719484fbc50baf054 (diff)
downloadkernel_samsung_smdk4412-58b33eea6e42681916f940c9c873f7c653aba56d.zip
kernel_samsung_smdk4412-58b33eea6e42681916f940c9c873f7c653aba56d.tar.gz
kernel_samsung_smdk4412-58b33eea6e42681916f940c9c873f7c653aba56d.tar.bz2
kernel: Replace timeconst.pl with a bc script
bc is the standard tool for multi-precision arithmetic. We switched to Perl because akpm reported a hard-to-reproduce build hang, which was very odd because affected and unaffected machines were all running the same version of GNU bc. Unfortunately switching to Perl required a really ugly "canning" mechanism to support Perl < 5.8 installations lacking the Math::BigInt module. 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. Signed-off-by: H. Peter Anvin <hpa@zytor.com> Cc: Andrew Morton <akpm@linux-foundation.org> Acked-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Michal Marek <mmarek@suse.cz> Conflicts: kernel/Makefile Change-Id: I8450a919c2d27b6c18561621c0a48a762e46a22d
Diffstat (limited to 'kernel/Makefile')
-rw-r--r--kernel/Makefile16
1 files changed, 12 insertions, 4 deletions
diff --git a/kernel/Makefile b/kernel/Makefile
index a1096de..9977923 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -137,8 +137,16 @@ $(obj)/config_data.h: $(obj)/config_data.gz FORCE
$(obj)/time.o: $(obj)/timeconst.h
-quiet_cmd_timeconst = TIMEC $@
- cmd_timeconst = $(PERL) $< $(CONFIG_HZ) > $@
+quiet_cmd_hzfile = HZFILE $@
+ cmd_hzfile = echo "hz=$(CONFIG_HZ)" > $@
+
+targets += hz.bc
+$(obj)/hz.bc: $(objtree)/include/config/hz.h FORCE
+ $(call if_changed,hzfile)
+
+quiet_cmd_bc = BC $@
+ cmd_bc = bc -q $(filter-out FORCE,$^) > $@
+
targets += timeconst.h
-$(obj)/timeconst.h: $(src)/timeconst.pl FORCE
- $(call if_changed,timeconst)
+$(obj)/timeconst.h: $(obj)/hz.bc $(src)/timeconst.bc FORCE
+ $(call if_changed,bc)