On Wed, 19 Dec 2001 21:32:31 -0700, 
Tom Rini <[EMAIL PROTECTED]> wrote:
>Starting phase 4 (build) for installable
>arch_head=arch/ppc/kernel/head_8xx.o
>notdir arch_head=arch/ppc/kernel/head_8xx.o
>make[1]: *** No rule to make target `arch/ppc/kernel/head_8xx.o', needed
>by `init/compile.h'.  Stop.
> 
>> Check $KBUILD_OBJTREE/.tmp_database under reldir /arch/ppc/kernel/,
>> select should contain (y_ /arch/ppc/kernel/head_xxx.o).
>
>select  (y_ /arch/ppc/kernel/arch/ppc/kernel/head_8xx.o)

kbuild 2.5 $(notdir) did not correctly handle unexpanded variables.

Index: 16.35/scripts/pp_makefile1_parse.l
--- 16.35/scripts/pp_makefile1_parse.l Fri, 14 Dec 2001 15:52:00 +1100 kaos 
(linux-2.4/I/d/31_pp_makefil 1.26 644)
+++ 16.35(w)/scripts/pp_makefile1_parse.l Thu, 20 Dec 2001 16:21:19 +1100 kaos 
+(linux-2.4/I/d/31_pp_makefil 1.26 644)
@@ -470,6 +470,9 @@ void dir_common(int dir,
   char *new = NULL, *s, *text = option;
   char buf[PATH_MAX+1];
   int l;
+  if (strchr(option, '$')) {
+    return;
+  }
   while (*(text += strspn(text, " \t\n"))) {
     l = strcspn(text, " \t\n");
     if (l >= sizeof(buf)) {
@@ -694,10 +697,16 @@ void expand_macros(char **is, char **is_
        else if (strncmp(current, "$(dir", 5) == 0 && isspace(current[5]) &&
            (option = macro_option(current, &opt_end, allow_dollar))) {
          dir_common(1, is, is_end, is_size, current, opt_end, &changed, option);
+         if (!changed) {
+           current = opt_end;
+         }
        }
        else if (strncmp(current, "$(notdir", 8) == 0 && isspace(current[8]) &&
            (option = macro_option(current, &opt_end, allow_dollar))) {
          dir_common(0, is, is_end, is_size, current, opt_end, &changed, option);
+         if (!changed) {
+           current = opt_end;
+         }
        }
        else if (y_user_target &&
            (strncmp(current, "$@", 2) == 0 ||


_______________________________________________
kbuild-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/kbuild-devel

Reply via email to