aboutsummaryrefslogtreecommitdiff
path: root/scripts/Makefile.IMA
AgeCommit message (Collapse)Author
2020-04-29build system: remove KBUILD_STR()Jean-Philippe Brucker
When using GNU Make >=4.3, the KBUILD_STR() definition interferes badly with dependency checks during build, and forces a complete rebuild every time Make runs. In if_changed_rule, Kconfig checks if the command used to build a file has changed since last execution. The previous command is stored in the generated .<file>.o.cmd file. For example applets/.applets.o.cmd defines a "cmd_applets/applets.o" variable: cmd_applets/applets.o := gcc ... -D"KBUILD_STR(s)=#s" ... Here the '#' should be escaped with a backslash, otherwise GNU Make interprets it as starting a comment, and ignore the rest of the variable. As a result of this truncation, the previous command doesn't equal the new command and Make rebuilds each target. The problem started to appear when GNU Make 4.3 (released January 2020), introduced a backward-incompatible fix to macros containing a '#'. While the above use of '#', a simple Make variable, still needs to be escaped, a '#' within a function invocation doesn't need to be escaped anymore. As Martin Dorey explained on the GNU Make discussion [1], the above declaration is generated from make-cmd, defined as: make-cmd = $(subst \#,\\\#,$(subst $$,$$$$,$(call escsq,$(cmd_$(1)))) Since GNU Make 4.3, the first argument of subst should not have a backslash. make-cmd now looks for literally \# and doesn't find it, and as a result doesn't add the backslash when generating .o.cmd files. [1] http://savannah.gnu.org/bugs/?20513 We could fix it by changing make-cmd to "$(subst #,\#,...)", but to avoid compatibility headaches, simply get rid of the KBUILD_STR definition, as done in Linux by b42841b7bb62 ("kbuild: Get rid of KBUILD_STR"). Quote the string arguments directly rather than asking the preprocessor to quote them. Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-08-18klibc-utils: new applets: resume, nuke, minipsDenys Vlasenko
minips is a pure alias to ps, just in case someone needs 100% klibc-utils compat. nuke is a primitive version of "rm -rf" without options and error checks. ~30 bytes. resume is a tool for initramfs which resumes from a given block device. function old new delta resume_main - 582 +582 packed_usage 31640 31712 +72 nuke_main - 28 +28 xstrtoull - 24 +24 applet_names 2646 2665 +19 applet_main 1532 1544 +12 applet_suid 96 97 +1 applet_install_loc 192 193 +1 applet_flags 96 97 +1 ------------------------------------------------------------------------------ (add/remove: 5/0 grow/shrink: 6/0 up/down: 740/0) Total: 740 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-03-06fix bit rot in scripts/Makefile.IMA #2Denys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-03-06fix bit rot in scripts/Makefile.IMADenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-11-03rename archival/libunarchive -> archival/libarchive; move bz/ into itDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-06-06make it possible to keep usage texts in .c filesDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-06-06make it possible to have include/applets.h-esque entries in .c filesDenys Vlasenko
As an example, bunzip2 and bzcat is changed to use it. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2008-06-04build system: add PIE build optionDenis Vlasenko
2008-06-02Reinstate CONFIG_CROSS_COMPILE_PREFIXDenis Vlasenko
2008-05-08- forgot to pull in arch-specific tweaksBernhard Reutner-Fischer
2008-04-12Makefile.IMA: generate autoconf.h if neededDenis Vlasenko
Makefile.IMA: use ld -gc-collect on gc -combine result (by using trylink script). Saves ~3k.
2008-04-11- fix detection of whole-programBernhard Reutner-Fischer
It helps if we first pull in the function we use for testing flags ;)
2008-04-11- also use the incoming LDFLAGS and EXTRA_LDFLAGSBernhard Reutner-Fischer
This isn't perfect since it will barf on linker flags with two args like -Wl,z,now et al.
2008-04-11- erm sorry. no ipsvd hereBernhard Reutner-Fischer
2008-04-11- add ipsvdBernhard Reutner-Fischer
2008-04-11fix build with gcc -combineDenis Vlasenko
2008-04-11- add printutils and util-linux/volume_idBernhard Reutner-Fischer
- pull in Kbuild.includes
2008-03-17*: mode tcp/udpsvd to networking, delete ipsvd/*Denis Vlasenko
*/Config.in: fixes to text svlogd: make it NOMMU capable function old new delta processorstart 378 420 +42 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/0 up/down: 42/0) Total: 42 bytes text data bss dec hex filename 797153 662 7420 805235 c4973 busybox_old 797196 662 7420 805278 c499e busybox_unstripped
2008-01-11- add ipsvdBernhard Reutner-Fischer
2007-06-22- handy to have the cross_compile block here, tooBernhard Reutner-Fischer
2007-05-15- busybox.c was removed a while agoBernhard Reutner-Fischer
2007-03-09- add selinux applets to the IMA workaroundBernhard Reutner-Fischer
2007-02-12- check if the compiler supports -fwhole-program -- 4.0 does notBernhard Reutner-Fischer
2007-02-02- minor tweakBernhard Reutner-Fischer
2007-01-23- add an unsupported makefile for IMA compilesBernhard Reutner-Fischer
Nice for catching eventual breakage early on..