Skip to contentSkip to conversation

limit _shipped to c h and S files

PATCH In review Nicholas Mc Guire 2 participants 5 messages Dec 2, 2014 Kbuild

lore
Share & tools
lore
#0 lore raw

PATCH 4/5 limit _shipped to c h and S files

limit _shipped to c h and S files

_shipped targets are intended for generated source files which should not permit .o binary blobs which is currently the case. This patch simply restricts _shipped targets to .c, .h and .S files.

A special case for .inc_shipped is added to prevent breaking drivers/net/wan/wanxlfw.inc_shipped which is a historic "firmware" and can not be reasonably moved to a loadable firmware.

This patch is against linux 3.18.0-rc6

---
 scripts/Makefile.lib |   12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
scripts/Makefile.lib +11 -1
index 5117552..dd02bb9 100644
@@ -216,7 +216,17 @@ endif
 quiet_cmd_shipped = SHIPPED $@
 cmd_shipped = cat $< > $@
 
-$(obj)/%: $(src)/%_shipped
+$(obj)/%.c: $(src)/%.c_shipped
+	$(call cmd,shipped)
+
+$(obj)/%.h: $(src)/%.h_shipped
+	$(call cmd,shipped)
+
+$(obj)/%.S: $(src)/%.S_shipped
+	$(call cmd,shipped)
+
+$(obj)/%.inc: $(src)/%.inc_shipped
+	@echo '  INFO: use of .inc_shipped files is deprecated'
 	$(call cmd,shipped)
 
 # Commands useful for building a boot image
Signature · 1 line
1.7.10.4
#1 lore raw

Dne 2.12.2014 v 10:16 Nicholas Mc Guire napsal(a):

Quoted 6 lines

limit _shipped to c h and S files

_shipped targets are intended for generated source files which should not permit .o binary blobs which is currently the case. This patch simply restricts _shipped targets to .c, .h and .S files.

IMO this just adds lines of code without any obvious advantage. The other patches in the series are fine.

Michal

#2 lore raw
Quoted 4 lines · Michal Marek

Dne 2.12.2014 v 10:16 Nicholas Mc Guire napsal(a):

Quoted 3 lines

limit _shipped to c h and S files

Quoted 8 lines
Quoted 3 lines

_shipped targets are intended for generated source files which should not permit .o binary blobs which is currently the case. This patch simply restricts _shipped targets to .c, .h and .S files.

IMO this just adds lines of code without any obvious advantage. The other patches in the series are fine.

The idea simply was to make the behavior of kbuild match the documented intent of _shipped files. Technically it is not needed, its an attempt to raises the barrier a bit for including actual binary blobs.

thx!
hofrat

#3 lore raw
Quoted 11 lines · Nicholas Mc Guire
Quoted 9 lines · Michal Marek

Dne 2.12.2014 v 10:16 Nicholas Mc Guire napsal(a):

Quoted 6 lines

limit _shipped to c h and S files

_shipped targets are intended for generated source files which should not permit .o binary blobs which is currently the case. This patch simply restricts _shipped targets to .c, .h and .S files.

Quoted 6 lines
Quoted 3 lines

IMO this just adds lines of code without any obvious advantage. The other patches in the series are fine.

The idea simply was to make the behavior of kbuild match the documented intent of _shipped files.

The usage of *.o_shipped is documented by Documentation/kbuild/modules.txt.

Michal

#4 lore raw
Quoted 12 lines · Michal Marek
Quoted 11 lines · Nicholas Mc Guire
Quoted 9 lines · Michal Marek

Dne 2.12.2014 v 10:16 Nicholas Mc Guire napsal(a):

Quoted 6 lines

limit _shipped to c h and S files

_shipped targets are intended for generated source files which should not permit .o binary blobs which is currently the case. This patch simply restricts _shipped targets to .c, .h and .S files.

Quoted 9 lines
Quoted 6 lines
Quoted 3 lines

IMO this just adds lines of code without any obvious advantage. The other patches in the series are fine.

The idea simply was to make the behavior of kbuild match the documented intent of _shipped files.

The usage of *.o_shipped is documented by Documentation/kbuild/modules.txt.

I know - and Im looking at how to address this so that it would be out-of-tree only - a minor update of the wording for 3.3 Binary Blobs was sent out as patch - 3.2 change proposal is not yet done.

Currently there is no .o_shipped in mainline (linux-next 3.18-rc6, linux-stable 3.18-rc5) so the intent is to rewrite some of those parts to kick the .o_shipped there too.

But if there is a legitimate need for .o_shipped then of course this patch (and the changes I'm working on) make no sense at all. My understanding is though that it should not be needed any more.

thx!
hofrat