Commit 80f8be7a authored by Masahiro Yamada's avatar Masahiro Yamada Committed by Tetsuo Handa
Browse files

tomoyo: Omit use of bin2c



bin2c was, as its name implies, introduced to convert a binary file to
C code.

However, I did not see any good reason ever for using this tool because
using the .incbin directive is much faster, and often results in simpler
code.

Most of the uses of bin2c have been killed, for example:

  - 13610aa9 ("kernel/configs: use .incbin directive to embed config_data.gz")
  - 4c0f032d ("s390/purgatory: Omit use of bin2c")

security/tomoyo/Makefile has even less reason for using bin2c because
the policy files are text data. So, sed is enough for converting them
to C string literals, and what is nicer, generates human-readable
builtin-policy.h.

This is the last user of bin2c. After this commit lands, bin2c will be
removed.

Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
[penguin-kernel: Update sed script to also escape backslash and quote ]
Signed-off-by: default avatarTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
parent df4840c1
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -7,7 +7,6 @@ config SECURITY_TOMOYO
	select SECURITY_PATH
	select SECURITY_NETWORK
	select SRCU
	select BUILD_BIN2C
	default n
	help
	  This selects TOMOYO Linux, pathname-based access control.
+8 −7
Original line number Diff line number Diff line
@@ -2,13 +2,14 @@
obj-y = audit.o common.o condition.o domain.o environ.o file.o gc.o group.o load_policy.o memory.o mount.o network.o realpath.o securityfs_if.o tomoyo.o util.o

targets += builtin-policy.h
define do_policy
echo "static char tomoyo_builtin_$(1)[] __initdata ="; \
$(objtree)/scripts/bin2c <$(firstword $(wildcard $(obj)/policy/$(1).conf $(srctree)/$(src)/policy/$(1).conf.default) /dev/null); \
echo ";"
endef

quiet_cmd_policy = POLICY  $@
      cmd_policy  = ($(call do_policy,profile); $(call do_policy,exception_policy); $(call do_policy,domain_policy); $(call do_policy,manager); $(call do_policy,stat)) >$@
      cmd_policy = { \
	$(foreach x, profile exception_policy domain_policy manager stat, \
	printf 'static char tomoyo_builtin_$x[] __initdata =\n'; \
	sed -e 's/\\/\\\\/g' -e 's/\"/\\"/g' -e 's/\(.*\)/\t"\1\\n"/' -- $(firstword $(filter %/$x.conf %/$x.conf.default, $^) /dev/null);  \
	printf '\t"";\n';) \
	} > $@

$(obj)/builtin-policy.h: $(wildcard $(obj)/policy/*.conf $(srctree)/$(src)/policy/*.conf.default) FORCE
	$(call if_changed,policy)