From: Charlie Jenkins <charlie@rivosinc.com>
To: Jessica Clarke <jrtc27@jrtc27.com>
Cc: opensbi@lists.infradead.org
Subject: Re: [PATCH] Makefile: Make $(LLVM) more flexible
Date: Wed, 30 Apr 2025 17:11:31 -0700 [thread overview]
Message-ID: <aBK8MwCoLXoZuLAY@ghost> (raw)
In-Reply-To: <18D74DFC-E63B-446A-806B-B7C51AA4CDA4@jrtc27.com>
On Thu, May 01, 2025 at 01:04:38AM +0100, Jessica Clarke wrote:
> On 1 May 2025, at 00:38, Charlie Jenkins <charlie@rivosinc.com> wrote:
> >
> > Introduce a way for developers to easily switch between LLVM versions
> > with LLVM=/path/to/llvm/ and LLVM=-version. This is a useful
>
> FreeBSD doesn’t include a hyphen in its version number suffix, you get
> clang20 etc. In the Linux world where you’ve copied this pattern from
> verbatim that may well hold, but OpenSBI supports more than just Linux.
>
> One could special-case LLVM=1 and treat anything else as a suffix I
> suppose, though that would be a little weird.
This pattern not being applicable for all systems doesn't invalidate the
usecase for systems that do support it. Developers can still manipulate
their PATH to get LLVM=1 to select the clang that they want.
- Charlie
>
> Jess
>
> > addition to the existing LLVM=1 variable which will select the first
> > clang and llvm binutils available on the path.
> >
> > Signed-off-by: Charlie Jenkins <charlie@rivosinc.com>
> > ---
> > Makefile | 14 ++++++++++----
> > README.md | 12 ++++++++++++
> > 2 files changed, 22 insertions(+), 4 deletions(-)
> >
> > diff --git a/Makefile b/Makefile
> > index e90836c7c4ad16c30d4d80649ff8b228413190ad..37d4cf41a2214e0a829f1d4a53f3f4f9ae09ee41 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -104,10 +104,16 @@ endif
> >
> > # Setup compilation commands
> > ifneq ($(LLVM),)
> > -CC = clang
> > -AR = llvm-ar
> > -LD = ld.lld
> > -OBJCOPY = llvm-objcopy
> > +ifneq ($(filter %/,$(LLVM)),)
> > +LLVM_PREFIX := $(LLVM)
> > +else ifneq ($(filter -%,$(LLVM)),)
> > +LLVM_SUFFIX := $(LLVM)
> > +endif
> > +
> > +CC = $(LLVM_PREFIX)clang$(LLVM_SUFFIX)
> > +AR = $(LLVM_PREFIX)llvm-ar$(LLVM_SUFFIX)
> > +LD = $(LLVM_PREFIX)ld.lld$(LLVM_SUFFIX)
> > +OBJCOPY = $(LLVM_PREFIX)llvm-objcopy$(LLVM_SUFFIX)
> > else
> > ifdef CROSS_COMPILE
> > CC = $(CROSS_COMPILE)gcc
> > diff --git a/README.md b/README.md
> > index 2795cc1a5ff0df62d83a4b5c3062ff2b682dbcab..fd40be0b4988815d8d02386271aeaeb787541215 100644
> > --- a/README.md
> > +++ b/README.md
> > @@ -252,6 +252,18 @@ option with:
> > make LLVM=1
> > ```
> >
> > +To build with a specific version of LLVM, a path to a directory containing the
> > +LLVM tools can be provided:
> > +```
> > +make LLVM=/path/to/llvm/
> > +```
> > +
> > +If you have versioned llvm tools you would like to use, such as `clang-17`, the LLVM variable can
> > +be set as:
> > +```
> > +make LLVM=-17
> > +```
> > +
> > When using Clang, *CROSS_COMPILE* often does not need to be defined unless
> > using GNU binutils with prefixed binary names. *PLATFORM_RISCV_XLEN* will be
> > used to infer a default triple to pass to Clang, so if *PLATFORM_RISCV_XLEN*
> >
> > ---
> > base-commit: 316daaf1c299c29ac46e52145f65521f48ec63b5
> > change-id: 20250430-improve_llvm_building-cff31918e1a6
> > --
> > - Charlie
> >
> >
> > --
> > opensbi mailing list
> > opensbi@lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/opensbi
>
--
opensbi mailing list
opensbi@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/opensbi
next prev parent reply other threads:[~2025-05-01 0:11 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-30 23:38 [PATCH] Makefile: Make $(LLVM) more flexible Charlie Jenkins
2025-05-01 0:04 ` Jessica Clarke
2025-05-01 0:11 ` Charlie Jenkins [this message]
2025-06-14 7:34 ` Anup Patel
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=aBK8MwCoLXoZuLAY@ghost \
--to=charlie@rivosinc.com \
--cc=jrtc27@jrtc27.com \
--cc=opensbi@lists.infradead.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