From 96d5def58d97dc4e68c0682b7d2cf718a7c393b0 Mon Sep 17 00:00:00 2001 From: falkTX Date: Wed, 12 Jan 2022 14:04:21 +0000 Subject: [PATCH] Fix LTO link flags, experiment with static builds Signed-off-by: falkTX --- Makefile.base.mk | 7 ++++++- Makefile.plugins.mk | 2 ++ distrho/src/DistrhoUtils.cpp | 6 ++++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Makefile.base.mk b/Makefile.base.mk index efccd0e3..762efee1 100644 --- a/Makefile.base.mk +++ b/Makefile.base.mk @@ -190,9 +190,14 @@ BASE_FLAGS += -DNDEBUG $(BASE_OPTS) -fvisibility=hidden CXXFLAGS += -fvisibility-inlines-hidden endif +ifeq ($(STATIC_BUILD),true) +BASE_FLAGS += -DSTATIC_BUILD +# LINK_OPTS += -static +endif + ifeq ($(WITH_LTO),true) BASE_FLAGS += -fno-strict-aliasing -flto -LINK_FLAGS += -fno-strict-aliasing -flto -Werror=odr -Werror=lto-type-mismatch +LINK_OPTS += -fno-strict-aliasing -flto -Werror=odr -Werror=lto-type-mismatch endif BUILD_C_FLAGS = $(BASE_FLAGS) -std=gnu99 $(CFLAGS) diff --git a/Makefile.plugins.mk b/Makefile.plugins.mk index 3bc341b9..2e39991c 100644 --- a/Makefile.plugins.mk +++ b/Makefile.plugins.mk @@ -73,8 +73,10 @@ BASE_FLAGS += -DHAVE_JACK # always needed ifneq ($(HAIKU_OR_MACOS_OR_WINDOWS),true) +ifneq ($(STATIC_BUILD),true) LINK_FLAGS += -ldl endif +endif # --------------------------------------------------------------------------------------------------------------------- # Set files to build diff --git a/distrho/src/DistrhoUtils.cpp b/distrho/src/DistrhoUtils.cpp index 772f4b67..d19343fa 100644 --- a/distrho/src/DistrhoUtils.cpp +++ b/distrho/src/DistrhoUtils.cpp @@ -23,7 +23,9 @@ #ifdef DISTRHO_OS_WINDOWS # include #else -# include +# ifndef STATIC_BUILD +# include +# endif # include # include #endif @@ -59,7 +61,7 @@ const char* getBinaryFilename() filenameBuf[0] = '\0'; GetModuleFileName(hInstance, filenameBuf, sizeof(filenameBuf)); filename = filenameBuf; -#else +#elif !defined(STATIC_BUILD) Dl_info info; dladdr((void*)getBinaryFilename, &info); char filenameBuf[PATH_MAX];