#------------------------------------------------------------------------------ # Common linker settings LINK_LIBS = $(c++DBUG) LINKLIBSO = $(CC) $(c++FLAGS) -shared LINKEXE = $(CC) $(c++FLAGS) undefine LINKEXE_STUB #------------------------------------------------------------------------------ # Use gold linker ifneq (,$(findstring +gold,$(WM_COMPILE_CONTROL))) LINKLIBSO += -fuse-ld=gold LINKEXE += -fuse-ld=gold LINKEXE_STUB := true # Use mold linker else ifneq (,$(findstring +mold,$(WM_COMPILE_CONTROL))) LINKLIBSO += -fuse-ld=mold LINKEXE += -fuse-ld=mold LINKEXE_STUB := true # Use lld linker else ifneq (,$(findstring +lld,$(WM_COMPILE_CONTROL))) LINKLIBSO += -fuse-ld=lld LINKEXE += -fuse-ld=lld LINKEXE_STUB := true # Use ld linker - no dummy stub ('+link-ld' not '+ld' to avoid false matches) else ifneq (,$(findstring +link-ld,$(WM_COMPILE_CONTROL))) LINKLIBSO += -fuse-ld=ld LINKEXE += -fuse-ld=ld -Xlinker --add-needed # Default linker, assume ld - no dummy stub else LINKEXE += -Xlinker --add-needed endif # --------------- # Link dummy stub to resolve libPstream symbols used by libOpenFOAM ifneq (,$(LINKEXE_STUB)) ifneq (,$(findstring -lOpenFOAM,$(PROJECT_LIBS))) LINKEXE += -L$(FOAM_LIBBIN)/dummy -lPstream endif endif #------------------------------------------------------------------------------