All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nathan Chancellor <nathan@kernel.org>
To: gregkh@linuxfoundation.org
Cc: masahiroy@kernel.org, stable-commits@vger.kernel.org,
	llvm@lists.linux.dev, linux-kbuild@vger.kernel.org
Subject: Re: Patch "um: Fix adding '-no-pie' for clang" has been added to the 5.15-stable tree
Date: Mon, 19 Feb 2024 12:28:37 -0700	[thread overview]
Message-ID: <20240219192837.GD2348301@dev-arch.thelio-3990X> (raw)
In-Reply-To: <2024021939-dullness-calculate-a293@gregkh>

Hi Greg,

On Mon, Feb 19, 2024 at 06:02:39PM +0100, gregkh@linuxfoundation.org wrote:
> 
> This is a note to let you know that I've just added the patch titled
> 
>     um: Fix adding '-no-pie' for clang
> 
> to the 5.15-stable tree which can be found at:
>     http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
> 
> The filename of the patch is:
>      um-fix-adding-no-pie-for-clang.patch
> and it can be found in the queue-5.15 subdirectory.
> 
> If you, or anyone else, feels it should not be added to the stable tree,
> please let <stable@vger.kernel.org> know about it.
> 
> 
> From 846cfbeed09b45d985079a9173cf390cc053715b Mon Sep 17 00:00:00 2001
> From: Nathan Chancellor <nathan@kernel.org>
> Date: Tue, 23 Jan 2024 15:59:54 -0700
> Subject: um: Fix adding '-no-pie' for clang
> 
> From: Nathan Chancellor <nathan@kernel.org>
> 
> commit 846cfbeed09b45d985079a9173cf390cc053715b upstream.
> 
> The kernel builds with -fno-PIE, so commit 883354afbc10 ("um: link
> vmlinux with -no-pie") added the compiler linker flag '-no-pie' via
> cc-option because '-no-pie' was only supported in GCC 6.1.0 and newer.
> 
> While this works for GCC, this does not work for clang because cc-option
> uses '-c', which stops the pipeline right before linking, so '-no-pie'
> is unconsumed and clang warns, causing cc-option to fail just as it
> would if the option was entirely unsupported:
> 
>   $ clang -Werror -no-pie -c -o /dev/null -x c /dev/null
>   clang-16: error: argument unused during compilation: '-no-pie' [-Werror,-Wunused-command-line-argument]
> 
> A recent version of clang exposes this because it generates a relocation
> under '-mcmodel=large' that is not supported in PIE mode:
> 
>   /usr/sbin/ld: init/main.o: relocation R_X86_64_32 against symbol `saved_command_line' can not be used when making a PIE object; recompile with -fPIE
>   /usr/sbin/ld: failed to set dynamic section sizes: bad value
>   clang: error: linker command failed with exit code 1 (use -v to see invocation)
> 
> Remove the cc-option check altogether. It is wasteful to invoke the
> compiler to check for '-no-pie' because only one supported compiler
> version does not support it, GCC 5.x (as it is supported with the
> minimum version of clang and GCC 6.1.0+). Use a combination of the
> gcc-min-version macro and CONFIG_CC_IS_CLANG to unconditionally add
> '-no-pie' with CONFIG_LD_SCRIPT_DYN=y, so that it is enabled with all
> compilers that support this. Furthermore, using gcc-min-version can help
> turn this back into
> 
>   LINK-$(CONFIG_LD_SCRIPT_DYN) += -no-pie
> 
> when the minimum version of GCC is bumped past 6.1.0.
> 
> Cc: stable@vger.kernel.org
> Closes: https://github.com/ClangBuiltLinux/linux/issues/1982
> Signed-off-by: Nathan Chancellor <nathan@kernel.org>
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> ---
>  arch/um/Makefile |    4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> --- a/arch/um/Makefile
> +++ b/arch/um/Makefile
> @@ -118,7 +118,9 @@ archprepare:
>  	$(Q)$(MAKE) $(build)=$(HOST_DIR)/um include/generated/user_constants.h
>  
>  LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static
> -LINK-$(CONFIG_LD_SCRIPT_DYN) += $(call cc-option, -no-pie)
> +ifdef CONFIG_LD_SCRIPT_DYN
> +LINK-$(call gcc-min-version, 60100)$(CONFIG_CC_IS_CLANG) += -no-pie

5.15 does not have support for gcc-min-version, so I think this just
breaks ARCH=um for GCC. I do not think this patch matters much in 5.15
and earlier, we only test ARCH=um with Linux 6.1 and newer, so it can be
dropped.

Cheers,
Nathan

       reply	other threads:[~2024-02-19 19:28 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <2024021939-dullness-calculate-a293@gregkh>
2024-02-19 19:28 ` Nathan Chancellor [this message]
2024-02-20  7:51   ` Patch "um: Fix adding '-no-pie' for clang" has been added to the 5.15-stable tree Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240219192837.GD2348301@dev-arch.thelio-3990X \
    --to=nathan@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=masahiroy@kernel.org \
    --cc=stable-commits@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.