ENH: add optional control to use clang lld linker (#2449)
Eg, export WM_COMPILER=Clang130 export WM_COMPILE_CONTROL="version=13.0 +lld" - also support the mold linker (+mold) for clang STYLE: report as 'link' stage instead of 'ld' in short messages
This commit is contained in:
parent
442c309dca
commit
a27af5e369
@ -6,7 +6,7 @@
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# Copyright (C) 2016-2021 OpenCFD Ltd.
|
||||
# Copyright (C) 2016-2022 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
@ -86,6 +86,8 @@ export WM_COMPILE_OPTION=Opt
|
||||
|
||||
# [WM_COMPILE_CONTROL] - additional control for compiler rules
|
||||
# +gold : with gold linker
|
||||
# +lld : with lld linker (with clang)
|
||||
# +mold : with mold linker (with clang)
|
||||
# ~openmp : without openmp
|
||||
# version=... : compiler suffix (eg, "11" for gcc-11)
|
||||
#export WM_COMPILE_CONTROL="+gold"
|
||||
|
@ -6,7 +6,7 @@
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# Copyright (C) 2016-2021 OpenCFD Ltd.
|
||||
# Copyright (C) 2016-2022 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
@ -86,6 +86,8 @@ setenv WM_COMPILE_OPTION Opt
|
||||
|
||||
# [WM_COMPILE_CONTROL] - additional control for compiler rules
|
||||
# +gold : with gold linker
|
||||
# +lld : with lld linker (with clang)
|
||||
# +mold : with mold linker (with clang)
|
||||
# ~openmp : without openmp
|
||||
# version=... : compiler suffix (eg, "11" for gcc-11)
|
||||
#setenv WM_COMPILE_CONTROL "+gold"
|
||||
|
@ -6,7 +6,7 @@
|
||||
# \\/ M anipulation |
|
||||
#------------------------------------------------------------------------------
|
||||
# Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
# Copyright (C) 2019-2020 OpenCFD Ltd.
|
||||
# Copyright (C) 2019-2022 OpenCFD Ltd.
|
||||
#------------------------------------------------------------------------------
|
||||
# License
|
||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||
@ -146,7 +146,7 @@ silent:
|
||||
|
||||
$(EXE)$(EXT_EXE): $(OBJECTS)
|
||||
@$(WM_SCRIPTS)/makeTargetDir $(EXE)
|
||||
$(call QUIET_MESSAGE,ld,$(EXE)$(EXT_EXE))
|
||||
$(call QUIET_MESSAGE,link,$(EXE)$(EXT_EXE))
|
||||
$E $(LINKEXE) $(OBJECTS) -L$(LIB_PLATFORMS) \
|
||||
$(EXE_LIBS) $(PROJECT_LIBS) $(SYS_LIBS) \
|
||||
$(LINK_LIBS) $(GLIBS) -o $(EXE)$(EXT_EXE)
|
||||
@ -156,7 +156,7 @@ exe: $(SEXE)$(EXT_EXE) | silent
|
||||
|
||||
$(SEXE)$(EXT_EXE): $(OBJECTS)
|
||||
@$(WM_SCRIPTS)/makeTargetDir $(SEXE)
|
||||
$(call QUIET_MESSAGE,ld,$(SEXE)$(EXT_EXE))
|
||||
$(call QUIET_MESSAGE,link,$(SEXE)$(EXT_EXE))
|
||||
$E $(LINKEXE) $(OBJECTS) $(EXE_LIBS) \
|
||||
$(SYS_LIBS) $(LINK_LIBS) $(GLIBS) -o $(SEXE)$(EXT_EXE)
|
||||
|
||||
@ -174,13 +174,13 @@ libso: $(LIB)$(EXT_SO) | silent
|
||||
ifneq (,$(findstring windows,$(WM_OSTYPE)))
|
||||
$(LIB)$(EXT_SO): $(OBJECTS)
|
||||
@$(WM_SCRIPTS)/makeTargetDir $(LIB)
|
||||
$(call QUIET_MESSAGE,ld,$(LIB)$(EXT_SO))
|
||||
$(call QUIET_MESSAGE,link,$(LIB)$(EXT_SO))
|
||||
$E $(LINKLIBSO) $(OBJECTS) -L$(LIB_PLATFORMS) \
|
||||
$(PROJECT_LIBS) $(LIB_LIBS) $(GLIB_LIBS) -o $(LIB)$(EXT_SO)
|
||||
else
|
||||
$(LIB)$(EXT_SO): $(OBJECTS)
|
||||
@$(WM_SCRIPTS)/makeTargetDir $(LIB)
|
||||
$(call QUIET_MESSAGE,ld,$(LIB)$(EXT_SO))
|
||||
$(call QUIET_MESSAGE,link,$(LIB)$(EXT_SO))
|
||||
$E $(LINKLIBSO) $(OBJECTS) -L$(LIB_PLATFORMS) \
|
||||
$(LIB_LIBS) $(GLIB_LIBS) -o $(LIB)$(EXT_SO)
|
||||
endif
|
||||
|
10
wmake/rules/General/Clang/link-lld-c++
Normal file
10
wmake/rules/General/Clang/link-lld-c++
Normal file
@ -0,0 +1,10 @@
|
||||
LINK_LIBS = $(c++DBUG)
|
||||
|
||||
LINKLIBSO = $(CC) $(c++FLAGS) -shared \
|
||||
-fuse-ld=lld \
|
||||
$(FOAM_EXTRA_LDFLAGS)
|
||||
|
||||
LINKEXE = $(CC) $(c++FLAGS) \
|
||||
-fuse-ld=lld \
|
||||
-L$(FOAM_LIBBIN)/dummy -lPstream \
|
||||
$(FOAM_EXTRA_LDFLAGS)
|
10
wmake/rules/General/Clang/link-mold-c++
Normal file
10
wmake/rules/General/Clang/link-mold-c++
Normal file
@ -0,0 +1,10 @@
|
||||
LINK_LIBS = $(c++DBUG)
|
||||
|
||||
LINKLIBSO = $(CC) $(c++FLAGS) -shared \
|
||||
-fuse-ld=mold \
|
||||
$(FOAM_EXTRA_LDFLAGS)
|
||||
|
||||
LINKEXE = $(CC) $(c++FLAGS) \
|
||||
-fuse-ld=mold \
|
||||
-L$(FOAM_LIBBIN)/dummy -lPstream \
|
||||
$(FOAM_EXTRA_LDFLAGS)
|
@ -12,8 +12,17 @@ cctoo = $(Ctoo)
|
||||
cpptoo = $(Ctoo)
|
||||
cxxtoo = $(Ctoo)
|
||||
|
||||
# Linking:
|
||||
|
||||
ifneq (,$(findstring +gold,$(WM_COMPILE_CONTROL)))
|
||||
include $(GENERAL_RULES)/Clang/link-gold-c++
|
||||
|
||||
else ifneq (,$(findstring +mold,$(WM_COMPILE_CONTROL)))
|
||||
include $(GENERAL_RULES)/Clang/link-mold-c++
|
||||
|
||||
else ifneq (,$(findstring +lld,$(WM_COMPILE_CONTROL)))
|
||||
include $(GENERAL_RULES)/Clang/link-lld-c++
|
||||
|
||||
else
|
||||
include $(GENERAL_RULES)/Clang/link-c++
|
||||
endif
|
||||
|
@ -12,8 +12,17 @@ cctoo = $(Ctoo)
|
||||
cpptoo = $(Ctoo)
|
||||
cxxtoo = $(Ctoo)
|
||||
|
||||
# Linking:
|
||||
|
||||
ifneq (,$(findstring +gold,$(WM_COMPILE_CONTROL)))
|
||||
include $(GENERAL_RULES)/Clang/link-gold-c++
|
||||
|
||||
else ifneq (,$(findstring +mold,$(WM_COMPILE_CONTROL)))
|
||||
include $(GENERAL_RULES)/Clang/link-mold-c++
|
||||
|
||||
else ifneq (,$(findstring +lld,$(WM_COMPILE_CONTROL)))
|
||||
include $(GENERAL_RULES)/Clang/link-lld-c++
|
||||
|
||||
else
|
||||
include $(GENERAL_RULES)/Clang/link-c++
|
||||
endif
|
||||
|
Loading…
Reference in New Issue
Block a user