linux-toolchains.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Nathan Chancellor <nathan@kernel.org>
To: Kalle Valo <kvalo@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	David Airlie <airlied@gmail.com>, Daniel Vetter <daniel@ffwll.ch>,
	dri-devel@lists.freedesktop.org,
	linux-toolchains@vger.kernel.org, llvm@lists.linux.dev
Subject: Re: Linux 6.3-rc3
Date: Wed, 22 Mar 2023 13:36:00 -0700	[thread overview]
Message-ID: <20230322203600.GA2837284@dev-arch.thelio-3990X> (raw)
In-Reply-To: <20230322163637.GA918620@dev-arch.thelio-3990X>

On Wed, Mar 22, 2023 at 09:36:37AM -0700, Nathan Chancellor wrote:
> On Wed, Mar 22, 2023 at 02:44:47PM +0200, Kalle Valo wrote:
> > Nathan Chancellor <nathan@kernel.org> writes:
> > 
> > > On Mon, Mar 20, 2023 at 11:26:17AM -0700, Linus Torvalds wrote:
> > >> On Mon, Mar 20, 2023 at 11:05 AM Nathan Chancellor <nathan@kernel.org> wrote:
> > >> >
> > >> > On the clang front, I am still seeing the following warning turned error
> > >> > for arm64 allmodconfig at least:
> > >> >
> > >> >   drivers/gpu/host1x/dev.c:520:6: error: variable 'syncpt_irq' is uninitialized when used here [-Werror,-Wuninitialized]
> > >> >           if (syncpt_irq < 0)
> > >> >               ^~~~~~~~~~
> > >> 
> > >> Hmm. I do my arm64 allmodconfig builds with gcc, and I'm surprised
> > >> that gcc doesn't warn about this.
> > >
> > > Perhaps these would make doing allmodconfig builds with clang more
> > > frequently less painful for you?
> > >
> > > https://lore.kernel.org/llvm/20230319235619.GA18547@dev-arch.thelio-3990X/
> > 
> > Thank you, at least for me this is really helpful.
> 
> Really glad to hear! I hope this helps make testing and verifying
> changes with clang and LLVM easier for developers and maintainers.
> 
> > I tried now clang for the first time but seeing a strange problem.
> > 
> > I prefer to define the compiler in GNUmakefile so it's easy to change
> > compilers and I don't need to remember the exact command line. So I have
> > this in the top level GNUmakefile (all the rest commented out):
> > 
> > LLVM=/opt/clang/llvm-16.0.0/bin/
> > 
> > If I run 'make oldconfig' it seems to use clang but after I run just
> > 'make' it seems to switch back to the host GCC compiler and ask for GCC
> > specific config questions again. Workaround for this seems to be adding
> > 'export LLVM' to GNUmakefile, after that also 'make' uses clang as
> > expected.
> 
> Interesting... I just tested with a basic GNUmakefile and everything
> seems to work fine without an export. At the same time, the export
> should not hurt anything, so as long as it works, that is what matters.

Ah, the export is needed so that mixed-build works properly (see lines
324 to 361 in Makefile), as 'make' will be called to process each target
individually; without the export, LLVM is not set for the subsequent
'make' calls, so gcc is called. I just saw the same behavior as you did
while testing with

  $ make -j(nproc) clean defconfig all

without the export (GCC was used instead of LLVM).

>     $ gcc --version
>     fish: Unknown command: gcc
> 
> 
>     $ fd -t x . $CBL_TC_LLVM_STORE/16.0.0/bin -x basename
>     clang-16
>     llvm-nm
>     llvm-objdump
>     llvm-objcopy
>     llvm-symbolizer
>     llvm-strings
>     llvm-readobj
>     llvm-dwarfdump
>     lld
>     llvm-ar
> 
> 
>     $ cat GNUmakefile
>     LLVM := $(CBL_TC_LLVM_STORE)/16.0.0/bin/
> 
>     include Makefile
> 
> 
>     $ make -sj(nproc) defconfig
> 
> 
>     $ head -13 .config
>     #
>     # Automatically generated file; DO NOT EDIT.
>     # Linux/x86 6.3.0-rc3 Kernel Configuration
>     #
>     CONFIG_CC_VERSION_TEXT="ClangBuiltLinux clang version 16.0.0"
>     CONFIG_GCC_VERSION=0
>     CONFIG_CC_IS_CLANG=y
>     CONFIG_CLANG_VERSION=160000
>     CONFIG_AS_IS_LLVM=y
>     CONFIG_AS_VERSION=160000
>     CONFIG_LD_VERSION=0
>     CONFIG_LD_IS_LLD=y
>     CONFIG_LLD_VERSION=160000
> 
> 
>     $ make -sj(nproc) init/main.o
> 
> 
>     $ $CBL_TC_LLVM_STORE/16.0.0/bin/llvm-readelf -p .comment init/main.o
>     String dump of section '.comment':
>     [     1] ClangBuiltLinux clang version 16.0.0
> 
> 
> I added an informational print and I always saw the correct value:
> 
> diff --git a/Makefile b/Makefile
> index a2c310df2145..070394c4cb8c 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -431,6 +431,7 @@ HOST_LFS_LDFLAGS := $(shell getconf LFS_LDFLAGS 2>/dev/null)
>  HOST_LFS_LIBS := $(shell getconf LFS_LIBS 2>/dev/null)
>  
>  ifneq ($(LLVM),)
> +$(info LLVM: $(LLVM))
>  ifneq ($(filter %/,$(LLVM)),)
>  LLVM_PREFIX := $(LLVM)
>  else ifneq ($(filter -%,$(LLVM)),)
> 
> If you have any further issues, please do not hesitate to reach out!
> 
> Cheers,
> Nathan
> 

  reply	other threads:[~2023-03-22 20:43 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAHk-=wiPd8R8-zSqTOtJ9KYeZLBByHug7ny3rgP-ZqzpP_KELg@mail.gmail.com>
     [not found] ` <20230320180501.GA598084@dev-arch.thelio-3990X>
     [not found]   ` <CAHk-=wgSqpdkeJBb92M37JNTdRQJRnRUApraHKE8uGHTqQuu2Q@mail.gmail.com>
2023-03-20 18:53     ` Linux 6.3-rc3 Nathan Chancellor
2023-03-20 19:22       ` Nathan Chancellor
2023-03-22 12:44       ` Kalle Valo
2023-03-22 16:36         ` Nathan Chancellor
2023-03-22 20:36           ` Nathan Chancellor [this message]
2023-03-24 10:54           ` Kalle Valo
2023-03-24 15:11             ` Nathan Chancellor
2023-03-24 15:23               ` Kalle Valo
2023-03-28 19:07                 ` Nathan Chancellor
2023-03-29  8:39                   ` Kalle Valo
2023-03-22 16:40         ` Sedat Dilek
2023-03-22 16:55           ` Linus Torvalds
2023-03-22 18:17             ` Nick Desaulniers
2023-03-24 17:16             ` Masahiro Yamada
2023-03-27 16:12               ` Jani Nikula
2023-03-27 17:03                 ` Kalle Valo
     [not found]     ` <4adbed5a-6f73-42ac-b7be-e12c764ae808@roeck-us.net>
     [not found]       ` <CAHk-=wgyJREUR1WgfFmie5XVJnBLr1VPVbSibh1+Cq57Bh4Tag@mail.gmail.com>
2023-03-20 22:06         ` Nathan Chancellor
2023-03-20 22:48           ` Segher Boessenkool
2023-03-20 23:41           ` Linus Torvalds

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=20230322203600.GA2837284@dev-arch.thelio-3990X \
    --to=nathan@kernel.org \
    --cc=airlied@gmail.com \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=kvalo@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-toolchains@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=torvalds@linux-foundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).