commit 2208680d20cca0360d38043d65f050a51d2c5a02
parent 56c33dd1cdd66b315b9783f1f9a4e0f83d580579
Author: falkTX <falktx@falktx.com>
Date: Sun, 5 Dec 2021 21:37:19 +0000
Allow and fix LTO build
Signed-off-by: falkTX <falktx@falktx.com>
Diffstat:
2 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/Makefile.base.mk b/Makefile.base.mk
@@ -186,6 +186,11 @@ BASE_FLAGS += -DNDEBUG $(BASE_OPTS) -fvisibility=hidden
CXXFLAGS += -fvisibility-inlines-hidden
endif
+ifeq ($(WITH_LTO),true)
+BASE_FLAGS += -fno-strict-aliasing -flto
+LINK_FLAGS += -fno-strict-aliasing -flto -Werror=odr -Werror=lto-type-mismatch
+endif
+
BUILD_C_FLAGS = $(BASE_FLAGS) -std=gnu99 $(CFLAGS)
BUILD_CXX_FLAGS = $(BASE_FLAGS) -std=gnu++11 $(CXXFLAGS)
LINK_FLAGS = $(LINK_OPTS) $(LDFLAGS)
diff --git a/dgl/src/ApplicationPrivateData.hpp b/dgl/src/ApplicationPrivateData.hpp
@@ -30,12 +30,18 @@ typedef HANDLE d_ThreadHandle;
typedef pthread_t d_ThreadHandle;
#endif
+#ifdef DISTRHO_OS_MAC
typedef struct PuglWorldImpl PuglWorld;
+#endif
START_NAMESPACE_DGL
class Window;
+#ifndef DISTRHO_OS_MAC
+typedef struct PuglWorldImpl PuglWorld;
+#endif
+
// --------------------------------------------------------------------------------------------------------------------
struct Application::PrivateData {