OpenSBI Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Makefile: Make $(LLVM) more flexible
@ 2025-04-30 23:38 Charlie Jenkins
  2025-05-01  0:04 ` Jessica Clarke
  2025-06-14  7:34 ` Anup Patel
  0 siblings, 2 replies; 4+ messages in thread
From: Charlie Jenkins @ 2025-04-30 23:38 UTC (permalink / raw)
  To: opensbi; +Cc: Charlie Jenkins

Introduce a way for developers to easily switch between LLVM versions
with LLVM=/path/to/llvm/ and LLVM=-version. This is a useful
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

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-06-14  8:16 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
2025-06-14  7:34 ` Anup Patel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox