Linux-MIPS Archive on lore.kernel.org
 help / color / Atom feed
From: Nathan Chancellor <natechancellor@gmail.com>
To: Vincenzo Frascino <vincenzo.frascino@arm.com>
Cc: linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-mips@vger.kernel.org,
	clang-built-linux@googlegroups.com, x86@kernel.org,
	catalin.marinas@arm.com, will.deacon@arm.com, arnd@arndb.de,
	linux@armlinux.org.uk, paul.burton@mips.com, tglx@linutronix.de,
	luto@kernel.org, mingo@redhat.com, bp@alien8.de,
	sboyd@kernel.org, salyzyn@android.com, pcc@google.com,
	0x7f454c46@gmail.com, ndesaulniers@google.com, avagin@openvz.org
Subject: Re: [PATCH 19/19] arm64: vdso32: Enable Clang Compilation
Date: Thu, 13 Feb 2020 11:44:54 -0700
Message-ID: <20200213184454.GA4663@ubuntu-m2-xlarge-x86> (raw)
In-Reply-To: <20200213161614.23246-20-vincenzo.frascino@arm.com>

On Thu, Feb 13, 2020 at 04:16:14PM +0000, Vincenzo Frascino wrote:
> Enable Clang Compilation for the vdso32 library.
> 
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
> ---
>  arch/arm64/kernel/vdso32/Makefile | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm64/kernel/vdso32/Makefile b/arch/arm64/kernel/vdso32/Makefile
> index 04df57b43cb1..209639101044 100644
> --- a/arch/arm64/kernel/vdso32/Makefile
> +++ b/arch/arm64/kernel/vdso32/Makefile
> @@ -11,8 +11,10 @@ include $(srctree)/lib/vdso/Makefile
>  # Same as cc-*option, but using CC_COMPAT instead of CC
>  ifeq ($(CONFIG_CC_IS_CLANG), y)
>  CC_COMPAT ?= $(CC)
> +LD_COMPAT ?= $(CROSS_COMPILE_COMPAT)gcc

Well this is unfortunate :/

It looks like adding the --target flag to VDSO_LDFLAGS allows
clang to link the vDSO just fine although it does warn that -nostdinc
is unused:

clang-11: warning: argument unused during compilation: '-nostdinc'
[-Wunused-command-line-argument]

It would be nice if the logic of commit fe00e50b2db8 ("ARM: 8858/1:
vdso: use $(LD) instead of $(CC) to link VDSO") could be adopted here
but I get that this Makefile is its own beast :) at the very least, I
think that the --target flag should be added to VDSO_LDFLAGS so that gcc
is not a requirement for this but I am curious if you tried that already
and noticed any issues with it.

Cheers,
Nathan

>  else
>  CC_COMPAT ?= $(CROSS_COMPILE_COMPAT)gcc
> +LD_COMPAT ?= $(CC_COMPAT)
>  endif
>  
>  cc32-option = $(call try-run,\
> @@ -171,7 +173,7 @@ quiet_cmd_vdsold_and_vdso_check = LD32    $@
>        cmd_vdsold_and_vdso_check = $(cmd_vdsold); $(cmd_vdso_check)
>  
>  quiet_cmd_vdsold = LD32    $@
> -      cmd_vdsold = $(CC_COMPAT) -Wp,-MD,$(depfile) $(VDSO_LDFLAGS) \
> +      cmd_vdsold = $(LD_COMPAT) -Wp,-MD,$(depfile) $(VDSO_LDFLAGS) \
>                     -Wl,-T $(filter %.lds,$^) $(filter %.o,$^) -o $@
>  quiet_cmd_vdsocc = CC32    $@
>        cmd_vdsocc = $(CC_COMPAT) -Wp,-MD,$(depfile) $(VDSO_CFLAGS) -c -o $@ $<
> -- 
> 2.25.0
> 

  reply index

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-13 16:15 [PATCH 00/19] Introduce common headers Vincenzo Frascino
2020-02-13 16:15 ` [PATCH 01/19] linux/const.h: Extract common header for vDSO Vincenzo Frascino
2020-02-13 16:15 ` [PATCH 02/19] linux/bits.h: " Vincenzo Frascino
2020-02-13 16:15 ` [PATCH 03/19] linux/limits.h: " Vincenzo Frascino
2020-02-13 16:15 ` [PATCH 04/19] linux/math64.h: " Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 05/19] linux/time.h: " Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 06/19] linux/time32.h: " Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 07/19] linux/time64.h: " Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 08/19] linux/jiffies.h: " Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 09/19] linux/ktime.h: " Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 10/19] common: Introduce processor.h Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 11/19] linux/elfnote.h: Replace elf.h with UAPI equivalent Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 12/19] arm64: Introduce asm/common/processor.h Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 13/19] arm64: vdso: Include common headers in the vdso library Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 14/19] arm64: vdso32: " Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 15/19] mips: vdso: Enable mips to use common headers Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 16/19] x86: vdso: Enable x86 " Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 17/19] arm: vdso: Enable arm " Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 18/19] lib: vdso: Enable " Vincenzo Frascino
2020-02-13 16:16 ` [PATCH 19/19] arm64: vdso32: Enable Clang Compilation Vincenzo Frascino
2020-02-13 18:44   ` Nathan Chancellor [this message]
2020-02-17 12:26     ` Vincenzo Frascino
2020-02-17 16:46       ` Will Deacon
2020-02-17 22:39         ` Ard Biesheuvel
2020-02-18 13:03           ` Vincenzo Frascino

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=20200213184454.GA4663@ubuntu-m2-xlarge-x86 \
    --to=natechancellor@gmail.com \
    --cc=0x7f454c46@gmail.com \
    --cc=arnd@arndb.de \
    --cc=avagin@openvz.org \
    --cc=bp@alien8.de \
    --cc=catalin.marinas@arm.com \
    --cc=clang-built-linux@googlegroups.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=luto@kernel.org \
    --cc=mingo@redhat.com \
    --cc=ndesaulniers@google.com \
    --cc=paul.burton@mips.com \
    --cc=pcc@google.com \
    --cc=salyzyn@android.com \
    --cc=sboyd@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=vincenzo.frascino@arm.com \
    --cc=will.deacon@arm.com \
    --cc=x86@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

Linux-MIPS Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-mips/0 linux-mips/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-mips linux-mips/ https://lore.kernel.org/linux-mips \
		linux-mips@vger.kernel.org
	public-inbox-index linux-mips

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-mips


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git