Skip to content

Commit 4029648

Browse files
authored
Merge pull request #174 from hanxizh9910/fix-clang-lto-linker-mismatch
Fix clang LTO build failure due to LLVM version mismatch
2 parents 11c1ed5 + 7e10ee7 commit 4029648

2 files changed

Lines changed: 8 additions & 2 deletions

File tree

src/Makefile

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@ OPTIMIZATION?=-O3
2424
ifeq ($(OPTIMIZATION),-O3)
2525
ifeq (clang,$(CLANG))
2626
OPTIMIZATION+=-flto
27-
# Use llvm-ar for LTO bitcode compatibility when archiving with clang.
28-
AR=llvm-ar
2927
else
3028
OPTIMIZATION+=-flto=auto -ffat-lto-objects
3129
endif
@@ -143,6 +141,12 @@ FINAL_LDFLAGS=$(LDFLAGS) $(OPT) $(SERVER_LDFLAGS) $(DEBUG)
143141
FINAL_LIBS=-lm
144142
DEBUG=-g -ggdb
145143

144+
# Use lld when linking with clang to avoid LLVM version mismatches
145+
# between clang and the system's gold plugin during LTO.
146+
ifeq (clang,$(CLANG))
147+
FINAL_LDFLAGS+=-fuse-ld=lld
148+
endif
149+
146150
# Linux ARM32 needs -latomic at linking time
147151
ifneq (,$(findstring armv,$(uname_M)))
148152
FINAL_LIBS+=-latomic

src/modules/lua/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ QUIET_LINK_MOD = @printf ' %b %b\n' $(LINKCOLOR_MOD)LINK$(RESET) $(BINCOLOR_M
3232
endif
3333
ifeq (clang,$(CLANG))
3434
SHOBJ_LDFLAGS+= -fuse-ld=lld
35+
# Use llvm-ar for LTO bitcode compatibility when archiving with clang.
36+
AR=llvm-ar
3537
endif
3638

3739
endif

0 commit comments

Comments
 (0)