summaryrefslogtreecommitdiff
path: root/emfio
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2017-07-17 02:53:08 +0200
committerStephan Bergmann <sbergman@redhat.com>2017-07-17 14:18:24 +0200
commit29cdfa3fc337381e2529eaac2a551137ee8a1aaa (patch)
tree628d9e2bf860222c8a80e4b9c0049aab6b6081d3 /emfio
parent8134fb802635f3798eb72e414450b64409de5ef9 (diff)
no need to statically link against the emfio library in the tests
ODR-violation found by ASAN: ==17022==ERROR: AddressSanitizer: odr-violation (0x2b86adb17c60): [1] size=352 'vtable for emfio::emfreader::XEmfParser' /home/tdf/lode/jenkins/workspace/lo_ubsan/emfio/source/emfuno/xemfparser.cxx [2] size=352 'vtable for emfio::emfreader::XEmfParser' /home/tdf/lode/jenkins/workspace/lo_ubsan/emfio/source/emfuno/xemfparser.cxx These globals were registered at these points: [1]: #0 0x443a73 in __asan_register_globals /home/tdf/lode/packages/llvm-3.8.0.src/projects/compiler-rt/lib/asan/asan_globals.cc:218 #1 0x2b86bea2dced in asan.module_ctor (/workdir/LinkTarget/CppunitTest/libtest_emfio_wmf.so+0x1a0ced) #2 0x7fff394ad75a (<unknown module>) [2]: #0 0x443a73 in __asan_register_globals /home/tdf/lode/packages/llvm-3.8.0.src/projects/compiler-rt/lib/asan/asan_globals.cc:218 #1 0x2b86ad6e862d in asan.module_ctor (/workdir/LinkTarget/CppunitTest/libtest_emfio_emf.so+0x18862d) #2 0x7fff394ad75a (<unknown module>) Change-Id: Id98677a3692ac6a0586164aa5d0a2c82ab26f916 Reviewed-on: https://gerrit.libreoffice.org/40029 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'emfio')
-rw-r--r--emfio/CppunitTest_emfio_emf_test.mk14
-rw-r--r--emfio/CppunitTest_emfio_wmf_test.mk8
-rw-r--r--emfio/Library_emfio.mk4
-rw-r--r--emfio/inc/emfiodllapi.h33
-rw-r--r--emfio/inc/mtftools.hxx9
5 files changed, 48 insertions, 20 deletions
diff --git a/emfio/CppunitTest_emfio_emf_test.mk b/emfio/CppunitTest_emfio_emf_test.mk
index 49cf14f90e51..d577398c4367 100644
--- a/emfio/CppunitTest_emfio_emf_test.mk
+++ b/emfio/CppunitTest_emfio_emf_test.mk
@@ -9,15 +9,7 @@
$(eval $(call gb_CppunitTest_CppunitTest,emfio_emf))
-$(eval $(call gb_CppunitTest_set_componentfile,emfio_emf,emfio/emfio))
-
-$(eval $(call gb_CppunitTest_set_include,emfio_emf,\
- $$(INCLUDE) \
- -I$(SRCDIR)/emfio/inc \
-))
-
$(eval $(call gb_CppunitTest_use_externals,emfio_emf,\
- boost_headers \
libxml2 \
))
@@ -27,16 +19,13 @@ $(eval $(call gb_CppunitTest_add_exception_objects,emfio_emf,\
$(eval $(call gb_CppunitTest_use_sdk_api,emfio_emf))
-$(eval $(call gb_CppunitTest_use_library_objects,emfio_emf,\
- emfio \
-))
-
$(eval $(call gb_CppunitTest_use_libraries,emfio_emf,\
basegfx \
drawinglayer \
cppu \
cppuhelper \
comphelper \
+ emfio \
sal \
svt \
test \
@@ -52,6 +41,7 @@ $(eval $(call gb_CppunitTest_use_vcl,emfio_emf))
$(eval $(call gb_CppunitTest_use_components,emfio_emf,\
configmgr/source/configmgr \
dtrans/util/mcnttype \
+ emfio/emfio \
framework/util/fwk \
i18npool/util/i18npool \
package/source/xstor/xstor \
diff --git a/emfio/CppunitTest_emfio_wmf_test.mk b/emfio/CppunitTest_emfio_wmf_test.mk
index c24dd19acfef..b612f5c5a03b 100644
--- a/emfio/CppunitTest_emfio_wmf_test.mk
+++ b/emfio/CppunitTest_emfio_wmf_test.mk
@@ -9,8 +9,6 @@
$(eval $(call gb_CppunitTest_CppunitTest,emfio_wmf))
-$(eval $(call gb_CppunitTest_set_componentfile,emfio_wmf,emfio/emfio))
-
$(eval $(call gb_CppunitTest_set_include,emfio_wmf,\
$$(INCLUDE) \
-I$(SRCDIR)/emfio/inc \
@@ -28,10 +26,6 @@ $(eval $(call gb_CppunitTest_add_exception_objects,emfio_wmf, \
$(eval $(call gb_CppunitTest_use_sdk_api,emfio_wmf))
-$(eval $(call gb_CppunitTest_use_library_objects,emfio_wmf, \
- emfio \
-))
-
$(eval $(call gb_CppunitTest_use_libraries,emfio_wmf,\
$(call gb_Helper_optional,BREAKPAD, \
crashreport) \
@@ -40,6 +34,7 @@ $(eval $(call gb_CppunitTest_use_libraries,emfio_wmf,\
cppu \
cppuhelper \
comphelper \
+ emfio \
i18nlangtag \
i18nutil \
$(if $(filter OPENCL,$(BUILD_TYPE)),opencl) \
@@ -195,6 +190,7 @@ $(eval $(call gb_CppunitTest_use_ure,emfio_wmf))
$(eval $(call gb_CppunitTest_use_components,emfio_wmf,\
configmgr/source/configmgr \
+ emfio/emfio \
i18npool/util/i18npool \
ucb/source/core/ucb1 \
unotools/util/utl \
diff --git a/emfio/Library_emfio.mk b/emfio/Library_emfio.mk
index ff209f5da3bf..f133d498c97d 100644
--- a/emfio/Library_emfio.mk
+++ b/emfio/Library_emfio.mk
@@ -25,6 +25,10 @@ $(eval $(call gb_Library_set_include,emfio,\
-I$(SRCDIR)/emfio/inc \
))
+$(eval $(call gb_Library_add_defs,emfio,\
+ -DEMFIO_DLLIMPLEMENTATION \
+))
+
$(eval $(call gb_Library_use_custom_headers,emfio,\
officecfg/registry \
))
diff --git a/emfio/inc/emfiodllapi.h b/emfio/inc/emfiodllapi.h
new file mode 100644
index 000000000000..8a7cac187f25
--- /dev/null
+++ b/emfio/inc/emfiodllapi.h
@@ -0,0 +1,33 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_EMFIO_INC_EMFIODLLAPI_H
+#define INCLUDED_EMFIO_INC_EMFIODLLAPI_H
+
+#include <sal/types.h>
+
+#if defined(EMFIO_DLLIMPLEMENTATION)
+#define EMFIO_DLLPUBLIC SAL_DLLPUBLIC_EXPORT
+#else
+#define EMFIO_DLLPUBLIC SAL_DLLPUBLIC_IMPORT
+#endif
+
+#endif // INCLUDED_EMFIO_INC_EMFIODLLAPI_H
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/emfio/inc/mtftools.hxx b/emfio/inc/mtftools.hxx
index 2d14d9cfe633..38fff789a053 100644
--- a/emfio/inc/mtftools.hxx
+++ b/emfio/inc/mtftools.hxx
@@ -30,6 +30,8 @@
#include <vcl/outdevstate.hxx>
#include <vcl/FilterConfigItem.hxx>
+#include "emfiodllapi.h"
+
#define ERROR 0
#define NULLREGION 1
#define COMPLEXREGION 3
@@ -298,7 +300,7 @@ namespace emfio
virtual ~GDIObj() = default; // Polymorphic base class
};
- struct WinMtfFontStyle : GDIObj
+ struct EMFIO_DLLPUBLIC WinMtfFontStyle : GDIObj
{
vcl::Font aFont;
@@ -438,8 +440,11 @@ namespace emfio
{}
};
- class MtfTools
+ class EMFIO_DLLPUBLIC MtfTools
{
+ MtfTools(MtfTools &) = delete;
+ void operator =(MtfTools) = delete;
+
protected:
WinMtfPathObj maPathObj;
WinMtfClipPath maClipPath;