• Arnd Bergmann's avatar
    Kbuild: don't add ../../ to include path · b999596b
    Arnd Bergmann authored
    When we build with O=objdir and objdir is directly below the source tree,
    $(srctree) becomes '..'.
    
    When a Makefile adds a CFLAGS option like -Ipath/to/headers and
    we are building with a separate object directory, Kbuild tries to
    add two -I options, one for the source tree and one for the object
    tree. An absolute path is treated as a special case, and don't add
    this one twice. This also normally catches -I$(srctree)/$(src)
    as $(srctree) usually is an absolute directory like /home/arnd/linux/.
    
    The combination of the two behaviors however results in an invalid
    path name to be included: we get both ../$(src) and ../../$(src),
    the latter one pointing outside of the source tree, usually to a
    nonexisting directory. Building with 'make W=1' makes this obvious:
    
    cc1: error: ../../arch/arm/mach-s3c24xx/include: No such file or directory [-Werror=missing-include-dirs]
    
    This adds another special case, treating path names starting with ../
    like those starting with / so we don't try to prefix that with
    $(srctree).
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarMichal Marek <mmarek@suse.com>
    b999596b
Kbuild.include 14.7 KB