17 Apr, 2019

2 commits

  • Greg Kroah-Hartman
     
  • commit ad15006cc78459d059af56729c4d9bed7c7fd860 upstream.

    This causes an issue when trying to build with `make LD=ld.lld` if
    ld.lld and the rest of your cross tools aren't in the same directory
    (ex. /usr/local/bin) (as is the case for Android's build system), as the
    GCC_TOOLCHAIN_DIR then gets set based on `which $(LD)` which will point
    where LLVM tools are, not GCC/binutils tools are located.

    Instead, select the GCC_TOOLCHAIN_DIR based on another tool provided by
    binutils for which LLVM does not provide a substitute for, such as
    elfedit.

    Fixes: 785f11aa595b ("kbuild: Add better clang cross build support")
    Link: https://github.com/ClangBuiltLinux/linux/issues/341
    Suggested-by: Nathan Chancellor
    Reviewed-by: Nathan Chancellor
    Tested-by: Nathan Chancellor
    Signed-off-by: Nick Desaulniers
    Signed-off-by: Masahiro Yamada
    Signed-off-by: Nathan Chancellor
    Signed-off-by: Sasha Levin

    Nick Desaulniers
     

06 Apr, 2019

2 commits

  • Greg Kroah-Hartman
     
  • [ Upstream commit 9390dff66a52d1a60c6e517d8fa6cdbdffc83cb1 ]

    If include/config/auto.conf.cmd is lost for some reasons, it is not
    self-healing, so the top Makefile misses to run syncconfig.
    Move include/config/auto.conf.cmd to the target side.

    I used a pattern rule instead of a normal rule here although it is
    a bit gross.

    If the rule were written with a normal rule like this,

    include/config/auto.conf \
    include/config/auto.conf.cmd \
    include/config/tristate.conf: $(KCONFIG_CONFIG)
    $(Q)$(MAKE) -f $(srctree)/Makefile syncconfig

    ... syncconfig would be executed per target.

    Using a pattern rule makes sure that syncconfig is executed just once
    because Make assumes the recipe will create all of the targets.

    Here is a quote from the GNU Make manual [1]:

    "Pattern rules may have more than one target. Unlike normal rules,
    this does not act as many different rules with the same prerequisites
    and recipe. If a pattern rule has multiple targets, make knows that
    the rule's recipe is responsible for making all of the targets. The
    recipe is executed only once to make all the targets. When searching
    for a pattern rule to match a target, the target patterns of a rule
    other than the one that matches the target in need of a rule are
    incidental: make worries only about giving a recipe and prerequisites
    to the file presently in question. However, when this file's recipe is
    run, the other targets are marked as having been updated themselves."

    [1]: https://www.gnu.org/software/make/manual/html_node/Pattern-Intro.html

    Signed-off-by: Masahiro Yamada
    Signed-off-by: Sasha Levin

    Masahiro Yamada
     

03 Apr, 2019

2 commits


27 Mar, 2019

1 commit


24 Mar, 2019

1 commit


19 Mar, 2019

1 commit


14 Mar, 2019

1 commit


10 Mar, 2019

1 commit


06 Mar, 2019

1 commit


27 Feb, 2019

1 commit


23 Feb, 2019

1 commit


20 Feb, 2019

1 commit


15 Feb, 2019

2 commits


13 Feb, 2019

1 commit


07 Feb, 2019

1 commit


31 Jan, 2019

1 commit


26 Jan, 2019

1 commit


23 Jan, 2019

1 commit


17 Jan, 2019

1 commit


13 Jan, 2019

5 commits

  • Greg Kroah-Hartman
     
  • commit 3bd9805090af843b25f97ffe5049f20ade1d86d6 upstream.

    The powerpc makefile will use these in it's boot wrapper.

    Signed-off-by: Joel Stanley
    Signed-off-by: Masahiro Yamada
    Signed-off-by: Nathan Chancellor
    Signed-off-by: Greg Kroah-Hartman

    Joel Stanley
     
  • commit 238bcbc4e07fad2fff99c5b157d0c37ccd4d093c upstream.

    Collect basic Clang options such as --target, --prefix, --gcc-toolchain,
    -no-integrated-as into a single variable CLANG_FLAGS so that it can be
    easily reused in other parts of Makefile.

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Nick Desaulniers
    Tested-by: Nick Desaulniers
    Acked-by: Greg Hackmann
    Signed-off-by: Nathan Chancellor
    Signed-off-by: Greg Kroah-Hartman

    Masahiro Yamada
     
  • commit dbe27a002ef8573168cb64e181458ea23a74e2b6 upstream.

    We are still a way off the Clang's integrated assembler support for
    the kernel. Hence, -no-integrated-as is mandatory to build the kernel
    with Clang. If you had an ancient version of Clang that does not
    recognize this option, you would not be able to compile the kernel
    anyway.

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Nick Desaulniers
    Tested-by: Nick Desaulniers
    Signed-off-by: Nathan Chancellor
    Signed-off-by: Greg Kroah-Hartman

    Masahiro Yamada
     
  • [ Upstream commit ef7cfd00b2caf6edeb7f169682b64be2d0a798cf ]

    For the same reason as commit 25896d073d8a ("x86/build: Fix compiler
    support check for CONFIG_RETPOLINE"), you cannot put this $(error ...)
    into the parse stage of the top Makefile.

    Perhaps I'd propose a more sophisticated solution later, but this is
    the best I can do for now.

    Link: https://lkml.org/lkml/2017/12/25/211
    Reported-by: Paul Gortmaker
    Reported-by: Bernd Edlinger
    Reported-by: Qian Cai
    Cc: Josh Poimboeuf
    Signed-off-by: Masahiro Yamada
    Tested-by: Qian Cai
    Signed-off-by: Sasha Levin

    Masahiro Yamada
     

10 Jan, 2019

1 commit


29 Dec, 2018

1 commit


21 Dec, 2018

1 commit


20 Dec, 2018

1 commit


17 Dec, 2018

1 commit


13 Dec, 2018

1 commit


08 Dec, 2018

1 commit


06 Dec, 2018

1 commit


01 Dec, 2018

1 commit


27 Nov, 2018

1 commit


23 Nov, 2018

1 commit


21 Nov, 2018

1 commit