[PATCH] Fix 'make headers_check' on biarch architectures
David Woodhouse [Sat, 16 Sep 2006 19:15:45 +0000 (12:15 -0700)]
We generate an <asm/foo.h> which includes either <asm-$ARCH/foo.h> or
<asm-$ALTARCH/foo.h> as appropriate.  But we were doing this dependent on
whether the file in question existed in the _unexported_ tree, not the
exported tree.  So if a file was exported to userspace in one asm- directory
but not the other, the generated file in asm/ was incorrect.

This only changed the failure mode if it _was_ included from a nice #error to
a less explicable #include failure -- but it also gave false errors in 'make
headers_check' output.  Fix it by looking in the right place instead.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

scripts/Makefile.headersinst

index aa9990a..12e1daf 100644 (file)
@@ -93,14 +93,14 @@ STUBDEF=__ASM_STUB_`echo $@ | tr a-z. A-Z_`;                                \
 echo "\#ifndef $$STUBDEF" ;                                            \
 echo "\#define $$STUBDEF" ;                                            \
 echo "\# if $(ARCHDEF)" ;                                              \
-if [ -r $(srctree)/include/$(archasm)/$@ ]; then                       \
+if [ -r $(INSTALL_HDR_PATH)/include/$(archasm)/$@ ]; then              \
        echo "\#  include <$(archasm)/$@>" ;                            \
 else                                                                   \
        echo "\#  error $(archasm)/$@ does not exist in"                \
                        "the $(ARCH) architecture" ;                    \
 fi ;                                                                   \
 echo "\# elif $(ALTARCHDEF)" ;                                         \
-if [ -r $(srctree)/include/$(altarchasm)/$@ ]; then                    \
+if [ -r $(INSTALL_HDR_PATH)/include/$(altarchasm)/$@ ]; then           \
        echo "\#  include <$(altarchasm)/$@>" ;                         \
 else                                                                   \
        echo "\#  error $(altarchasm)/$@ does not exist in"             \
@@ -149,7 +149,9 @@ endif
 hdrinst := -rR -f $(srctree)/scripts/Makefile.headersinst obj
 
 .PHONY: altarch-dir
-altarch-dir:
+# All the files in the normal arch dir must be created first, since we test
+# for their existence.
+altarch-dir: $(subdir-y) $(header-y) $(unifdef-y) $(objhdr-y)
        $(Q)$(MAKE) $(hdrinst)=include/asm-$(ALTARCH) dst=include/asm-$(ALTARCH)
        $(Q)$(MAKE) $(hdrinst)=include/asm dst=include/asm