07 Oct, 2020

1 commit

  • Tested-by: Jon Hunter
    Tested-by: Shuah Khan
    Tested-by: Linux Kernel Functional Testing
    Tested-by: Guenter Roeck
    Link: https://lore.kernel.org/r/20201005142109.796046410@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

01 Oct, 2020

1 commit

  • Tested-by: Jon Hunter
    Tested-by: Guenter Roeck
    Tested-by: Linux Kernel Functional Testing
    Tested-by: Shuah Khan
    Link: https://lore.kernel.org/r/20200929110010.467764689@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

27 Sep, 2020

1 commit

  • Tested-by: Jon Hunter
    Tested-by: Shuah Khan
    Tested-by: Linux Kernel Functional Testing
    Tested-by: Guenter Roeck
    Signed-off-by: Greg Kroah-Hartman
    Link: https://lore.kernel.org/r/20200925124723.575329814@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

23 Sep, 2020

1 commit

  • Link: https://lore.kernel.org/lkml/20200921163121.870386357@linuxfoundation.org/
    Tested-by: Linux Kernel Functional Testing
    Tested-by: Jon Hunter
    Tested-by: Guenter Roeck
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

17 Sep, 2020

1 commit


12 Sep, 2020

1 commit


10 Sep, 2020

1 commit


05 Sep, 2020

1 commit


03 Sep, 2020

3 commits

  • Tested-by: Shuah Khan
    Tested-by: Linux Kernel Functional Testing
    Tested-by: Guenter Roeck
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • commit e4a42c82e943b97ce124539fcd7a47445b43fa0d upstream.

    Redefine GZIP, BZIP2, LZOP variables as KGZIP, KBZIP2, KLZOP resp.
    GZIP, BZIP2, LZOP env variables are reserved by the tools. The original
    attempt to redefine them internally doesn't work in makefiles/scripts
    intercall scenarios, e.g., "make GZIP=gzip bindeb-pkg" and results in
    broken builds. There can be other broken build commands because of this,
    so the universal solution is to use non-reserved env variables for the
    compression tools.

    Fixes: 8dfb61dcbace ("kbuild: add variables for compression tools")
    Signed-off-by: Denis Efremov
    Tested-by: Guenter Roeck
    Signed-off-by: Masahiro Yamada
    Cc: Matthias Maennich
    Signed-off-by: Greg Kroah-Hartman

    Denis Efremov
     
  • commit 8dfb61dcbaceb19a5ded5e9c9dcf8d05acc32294 upstream.

    Allow user to use alternative implementations of compression tools,
    such as pigz, pbzip2, pxz. For example, multi-threaded tools to
    speed up the build:
    $ make GZIP=pigz BZIP2=pbzip2

    Variables _GZIP, _BZIP2, _LZOP are used internally because original env
    vars are reserved by the tools. The use of GZIP in gzip tool is obsolete
    since 2015. However, alternative implementations (e.g., pigz) still rely
    on it. BZIP2, BZIP, LZOP vars are not obsolescent.

    The credit goes to @grsecurity.

    As a sidenote, for multi-threaded lzma, xz compression one can use:
    $ export XZ_OPT="--threads=0"

    Signed-off-by: Denis Efremov
    Signed-off-by: Masahiro Yamada
    Signed-off-by: Matthias Maennich
    Signed-off-by: Greg Kroah-Hartman

    Denis Efremov
     

26 Aug, 2020

6 commits

  • Tested-by: Jon Hunter
    Tested-by: Nathan Chancellor
    Tested-by: Guenter Roeck
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • commit a0d1c951ef08ed24f35129267e3595d86f57f5d3 upstream.

    As Documentation/kbuild/llvm.rst implies, building the kernel with a
    full set of LLVM tools gets very verbose and unwieldy.

    Provide a single switch LLVM=1 to use Clang and LLVM tools instead
    of GCC and Binutils. You can pass it from the command line or as an
    environment variable.

    Please note LLVM=1 does not turn on the integrated assembler. You need
    to pass LLVM_IAS=1 to use it. When the upstream kernel is ready for the
    integrated assembler, I think we can make it default.

    We discussed what we need, and we agreed to go with a simple boolean
    flag that switches both target and host tools:

    https://lkml.org/lkml/2020/3/28/494
    https://lkml.org/lkml/2020/4/3/43

    Some items discussed, but not adopted:

    - LLVM_DIR

    When multiple versions of LLVM are installed, I just thought supporting
    LLVM_DIR=/path/to/my/llvm/bin/ might be useful.

    CC = $(LLVM_DIR)clang
    LD = $(LLVM_DIR)ld.lld
    ...

    However, we can handle this by modifying PATH. So, we decided to not do
    this.

    - LLVM_SUFFIX

    Some distributions (e.g. Debian) package specific versions of LLVM with
    naming conventions that use the version as a suffix.

    CC = clang$(LLVM_SUFFIX)
    LD = ld.lld(LLVM_SUFFIX)
    ...

    will allow a user to pass LLVM_SUFFIX=-11 to use clang-11 etc.,
    but the suffixed versions in /usr/bin/ are symlinks to binaries in
    /usr/lib/llvm-#/bin/, so this can also be handled by PATH.

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

    Masahiro Yamada
     
  • commit 7e20e47c70f810d678d02941fa3c671209c4ca97 upstream.

    The 'AS' variable is unused for building the kernel. Only the remaining
    usage is to turn on the integrated assembler. A boolean flag is a better
    fit for this purpose.

    AS=clang was added for experts. So, I replaced it with LLVM_IAS=1,
    breaking the backward compatibility.

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

    Masahiro Yamada
     
  • commit aa824e0c962b532d5073cbb41b2efcd6f5e72bae upstream.

    As commit 5ef872636ca7 ("kbuild: get rid of misleading $(AS) from
    documents") noted, we rarely use $(AS) directly in the kernel build.

    Now that the only/last user of $(AS) in drivers/net/wan/Makefile was
    converted to $(CC), $(AS) is no longer used in the build process.

    You can still pass in AS=clang, which is just a switch to turn on
    the LLVM integrated assembler.

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

    Masahiro Yamada
     
  • commit 94f7345b712405b79647a6a4bf8ccbd0d78fa69d upstream.

    Python 2 has retired. There is no user of this variable.

    Signed-off-by: Masahiro Yamada
    Signed-off-by: Nick Desaulniers
    Signed-off-by: Greg Kroah-Hartman

    Masahiro Yamada
     
  • commit eefb8c124fd969e9a174ff2bedff86aa305a7438 upstream.

    Introduce a new READELF variable to top-level Makefile, so the name of
    readelf binary can be specified.

    Before this change the name of the binary was hardcoded to
    "$(CROSS_COMPILE)readelf" which might not be present for every
    toolchain.

    This allows to build with LLVM Object Reader by using make parameter
    READELF=llvm-readelf.

    Link: https://github.com/ClangBuiltLinux/linux/issues/771
    Signed-off-by: Dmitry Golovin
    Reviewed-by: Nick Desaulniers
    Signed-off-by: Masahiro Yamada
    Signed-off-by: Nick Desaulniers
    Signed-off-by: Greg Kroah-Hartman

    Dmitry Golovin
     

21 Aug, 2020

1 commit


19 Aug, 2020

1 commit


11 Aug, 2020

1 commit


07 Aug, 2020

1 commit


05 Aug, 2020

1 commit


01 Aug, 2020

1 commit


29 Jul, 2020

2 commits

  • Tested-by: Shuah Khan
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • commit ca9b31f6bb9c6aa9b4e5f0792f39a97bbffb8c51 upstream.

    When CROSS_COMPILE is set (e.g. aarch64-linux-gnu-), if
    $(CROSS_COMPILE)elfedit is found at /usr/bin/aarch64-linux-gnu-elfedit,
    GCC_TOOLCHAIN_DIR will be set to /usr/bin/. --prefix= will be set to
    /usr/bin/ and Clang as of 11 will search for both
    $(prefix)aarch64-linux-gnu-$needle and $(prefix)$needle.

    GCC searchs for $(prefix)aarch64-linux-gnu/$version/$needle,
    $(prefix)aarch64-linux-gnu/$needle and $(prefix)$needle. In practice,
    $(prefix)aarch64-linux-gnu/$needle rarely contains executables.

    To better model how GCC's -B/--prefix takes in effect in practice, newer
    Clang (since
    https://github.com/llvm/llvm-project/commit/3452a0d8c17f7166f479706b293caf6ac76ffd90)
    only searches for $(prefix)$needle. Currently it will find /usr/bin/as
    instead of /usr/bin/aarch64-linux-gnu-as.

    Set --prefix= to $(GCC_TOOLCHAIN_DIR)$(notdir $(CROSS_COMPILE))
    (/usr/bin/aarch64-linux-gnu-) so that newer Clang can find the
    appropriate cross compiling GNU as (when -no-integrated-as is in
    effect).

    Cc: stable@vger.kernel.org
    Reported-by: Nathan Chancellor
    Signed-off-by: Fangrui Song
    Reviewed-by: Nathan Chancellor
    Tested-by: Nathan Chancellor
    Tested-by: Nick Desaulniers
    Link: https://github.com/ClangBuiltLinux/linux/issues/1099
    Reviewed-by: Nick Desaulniers
    Signed-off-by: Masahiro Yamada
    Signed-off-by: Greg Kroah-Hartman

    Fangrui Song
     

22 Jul, 2020

1 commit


16 Jul, 2020

1 commit


09 Jul, 2020

1 commit


01 Jul, 2020

1 commit


24 Jun, 2020

1 commit


22 Jun, 2020

2 commits

  • Greg Kroah-Hartman
     
  • commit 4b50c8c4eaf06a825d1c005c0b1b4a8307087b83 upstream.

    This code does not work as stated in the comment.

    $(CONFIG_MODVERSIONS) is always empty because it is expanded before
    include/config/auto.conf is included. Hence, 'make modules' with
    CONFIG_MODVERSION=y cannot record the version CRCs.

    This has been broken since 2003, commit ("kbuild: Enable modules to be
    build using the "make dir/" syntax"). [1]

    [1]: https://git.kernel.org/pub/scm/linux/kernel/git/history/history.git/commit/?id=15c6240cdc44bbeef3c4797ec860f9765ef4f1a7
    Cc: linux-stable # v2.5.71+
    Signed-off-by: Masahiro Yamada
    Signed-off-by: Greg Kroah-Hartman

    Masahiro Yamada
     

17 Jun, 2020

1 commit


11 Jun, 2020

1 commit


07 Jun, 2020

1 commit


03 Jun, 2020

1 commit


27 May, 2020

2 commits

  • Greg Kroah-Hartman
     
  • [ Upstream commit b5154bf63e5577faaaca1d942df274f7de91dd2a ]

    'make dtbs_check' checks the shecma in addition to building *.dtb files,
    in other words, 'make dtbs_check' is a super-set of 'make dtbs'.
    So, you do not have to do 'make dtbs dtbs_check', but I want to keep
    the build system as robust as possible in any use.

    Currently, 'dtbs' and 'dtbs_check' are independent of each other.
    In parallel building, two threads descend into arch/*/boot/dts/,
    one for dtbs and the other for dtbs_check, then end up with building
    the same DTB simultaneously.

    This commit fixes the concurrency issue. Otherwise, I see build errors
    like follows:

    $ make ARCH=arm64 defconfig
    $ make -j16 ARCH=arm64 DT_SCHEMA_FILES=Documentation/devicetree/bindings/arm/psci.yaml dtbs dtbs_check

    DTC arch/arm64/boot/dts/qcom/sdm845-cheza-r2.dtb
    DTC arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtb
    DTC arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-lite2.dtb
    DTC arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-lite2.dtb
    DTC arch/arm64/boot/dts/freescale/imx8mn-evk.dtb
    DTC arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dtb
    DTC arch/arm64/boot/dts/zte/zx296718-pcbox.dtb
    DTC arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dt.yaml
    DTC arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dtb
    DTC arch/arm64/boot/dts/xilinx/zynqmp-zc1254-revA.dtb
    DTC arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dtb
    DTC arch/arm64/boot/dts/rockchip/rk3399-gru-scarlet-inx.dtb
    DTC arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dtb
    CHECK arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dt.yaml
    fixdep: error opening file: arch/arm64/boot/dts/allwinner/.sun50i-h6-orangepi-lite2.dtb.d: No such file or directory
    make[2]: *** [scripts/Makefile.lib:296: arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-lite2.dtb] Error 2
    make[2]: *** Deleting file 'arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-lite2.dtb'
    make[2]: *** Waiting for unfinished jobs....
    DTC arch/arm64/boot/dts/rockchip/rk3399-gru-scarlet-kd.dtb
    DTC arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p231.dtb
    DTC arch/arm64/boot/dts/xilinx/zynqmp-zc1275-revA.dtb
    DTC arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dtb
    fixdep: parse error; no targets found
    make[2]: *** [scripts/Makefile.lib:296: arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dtb] Error 1
    make[2]: *** Deleting file 'arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dtb'
    make[1]: *** [scripts/Makefile.build:505: arch/arm64/boot/dts/allwinner] Error 2
    make[1]: *** Waiting for unfinished jobs....
    DTC arch/arm64/boot/dts/renesas/r8a77951-salvator-xs.dtb

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Rob Herring
    Signed-off-by: Sasha Levin

    Masahiro Yamada
     

20 May, 2020

2 commits