summaryrefslogtreecommitdiff
path: root/linux-uml/linux-uml-2.6.7/H-02-Fixdep-improve.patch
blob: b523c7187b83018e8561387fa3069d628cc0e95c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

You probably saw that if you change one config option, even if 
linux/autoconf.h (which is included by everything) changes, the kernel is 
smart enough not to recompile everything. But with UML this no more holds. 
Why? Because, as you see in this patch, fixdep avoids making anything depend 
onto linux/autoconf.h *explicitly*, but nobody taught him to do the same for 
arch/um/include/uml-config.h. So apply this patch. Do not say "I don't want 
to change the generic Kbuild for one arch": this cannot hurt. It's a bugfix 
for us, a no-op for others.

Note: with this patch, fixdep will still add a dependency from a file 
containing UML_CONFIG_BYE onto CONFIG_BYE. Since someone could think that 
fixdep should grep for [^A-Z_]CONFIG_ rather than simply for CONFIG_, I've 
added a comment that ask *not to fix* this "bug".

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it>
---

 uml-linux-2.6.7-paolo/scripts/basic/fixdep.c |    9 +++++++++
 1 files changed, 9 insertions(+)

diff -puN scripts/basic/fixdep.c~H-02-Fixdep-improve scripts/basic/fixdep.c
--- uml-linux-2.6.7/scripts/basic/fixdep.c~H-02-Fixdep-improve	2004-06-29 21:03:01.984335704 +0200
+++ uml-linux-2.6.7-paolo/scripts/basic/fixdep.c	2004-06-29 21:03:01.986335400 +0200
@@ -93,6 +93,14 @@
  * (Note: it'd be easy to port over the complete mkdep state machine,
  *  but I don't think the added complexity is worth it)
  */
+/*
+ * Note 2: if somebody writes HELLO_CONFIG_BOOM in a file, it will depend onto
+ * CONFIG_BOOM. This could seem a bug (not too hard to fix), but please do not
+ * fix it! Some UserModeLinux files (look at arch/um/) call CONFIG_BOOM as
+ * UML_CONFIG_BOOM, to avoid conflicts with /usr/include/linux/autoconf.h,
+ * through arch/um/include/uml-config.h; this fixdep "bug" makes sure that
+ * those files will have correct dependencies.
+ */
 
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -310,6 +318,7 @@ void parse_dep_file(void *map, size_t le
 		}
 		memcpy(s, m, p-m); s[p-m] = 0;
 		if (strrcmp(s, "include/linux/autoconf.h") &&
+		    strrcmp(s, "arch/um/include/uml-config.h") &&
 		    strrcmp(s, ".ver")) {
 			printf("  %s \\\n", s);
 			do_config_file(s);
_