office-gobmx/emfio/CppunitTest_emfio_wmf_test.mk
Markus Mohrhard 29cdfa3fc3 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>
2017-07-17 14:18:24 +02:00

214 lines
4.5 KiB
Makefile

# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
#
# 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/.
#
$(eval $(call gb_CppunitTest_CppunitTest,emfio_wmf))
$(eval $(call gb_CppunitTest_set_include,emfio_wmf,\
$$(INCLUDE) \
-I$(SRCDIR)/emfio/inc \
))
$(eval $(call gb_CppunitTest_use_externals,emfio_wmf,\
boost_headers \
libxml2 \
$(if $(filter PDFIUM,$(BUILD_TYPE)),pdfium) \
))
$(eval $(call gb_CppunitTest_add_exception_objects,emfio_wmf, \
emfio/qa/cppunit/wmf/wmfimporttest \
))
$(eval $(call gb_CppunitTest_use_sdk_api,emfio_wmf))
$(eval $(call gb_CppunitTest_use_libraries,emfio_wmf,\
$(call gb_Helper_optional,BREAKPAD, \
crashreport) \
basegfx \
drawinglayer \
cppu \
cppuhelper \
comphelper \
emfio \
i18nlangtag \
i18nutil \
$(if $(filter OPENCL,$(BUILD_TYPE)),opencl) \
sal \
salhelper \
sot \
svl \
svt \
test \
test-setupvcl \
tl \
ucbhelper \
unotest \
vcl \
utl \
xmlreader \
))
$(eval $(call gb_CppunitTest_use_externals,emfio_wmf,\
$(if $(filter LINUX MACOSX %BSD SOLARIS,$(OS)), \
curl) \
jpeg \
$(if $(filter-out IOS WNT,$(OS)), \
nss3 \
plc4) \
libeot \
))
ifeq ($(OS),MACOSX)
$(eval $(call gb_CppunitTest_add_libs,emfio_wmf,\
-framework IOKit \
-F/System/Library/PrivateFrameworks \
-framework CoreUI \
-lobjc \
))
endif
ifeq ($(ENABLE_JAVA),TRUE)
$(eval $(call gb_CppunitTest_use_libraries,emfio_wmf,\
jvmaccess \
))
endif
$(eval $(call gb_CppunitTest_use_externals,emfio_wmf,\
gio \
graphite \
harfbuzz \
icuuc \
lcms2 \
))
ifeq ($(ENABLE_HEADLESS),)
$(eval $(call gb_CppunitTest_use_externals,emfio_wmf,\
epoxy \
))
endif
ifeq ($(OS),MACOSX)
$(eval $(call gb_CppunitTest_use_system_darwin_frameworks,emfio_wmf,\
ApplicationServices \
))
$(eval $(call gb_CppunitTest_use_system_darwin_frameworks,emfio_wmf,\
$(if $(filter X86_64,$(CPUNAME)),,QuickTime) \
Cocoa \
Carbon \
CoreFoundation \
))
ifneq ($(ENABLE_MACOSX_SANDBOX),TRUE)
$(eval $(call gb_CppunitTest_use_libraries,emfio_wmf,\
AppleRemote \
))
endif
endif
ifeq ($(USING_X11),TRUE)
$(eval $(call gb_CppunitTest_use_externals,emfio_wmf,\
cairo \
cups \
dbus \
fontconfig \
freetype \
valgrind \
))
endif
ifeq ($(ENABLE_HEADLESS),TRUE)
$(eval $(call gb_CppunitTest_use_externals,emfio_wmf,\
cairo \
freetype \
fontconfig \
))
else
ifeq ($(OS),LINUX)
$(eval $(call gb_CppunitTest_add_libs,emfio_wmf,\
-lm \
-ldl \
-lpthread \
-lX11 \
))
endif
endif
ifeq ($(OS),ANDROID)
$(eval $(call gb_CppunitTest_add_libs,emfio_wmf,\
-llog \
-landroid \
-llo-bootstrap \
))
$(eval $(call gb_CppunitTest_use_externals,emfio_wmf,\
cairo \
fontconfig \
freetype \
expat \
))
endif
ifeq ($(OS),IOS)
$(eval $(call gb_CppunitTest_use_system_darwin_frameworks,emfio_wmf,\
UIKit \
CoreFoundation \
))
endif
ifeq ($(OS),WNT)
$(eval $(call gb_CppunitTest_use_system_win32_libs,emfio_wmf,\
advapi32 \
crypt32 \
gdi32 \
gdiplus \
imm32 \
mpr \
ole32 \
shell32 \
usp10 \
uuid \
version \
winspool \
setupapi \
shlwapi \
))
#$(eval $(call gb_CppunitTest_add_nativeres,emfio,vcl/salsrc))
endif
ifeq ($(OS), $(filter LINUX %BSD SOLARIS, $(OS)))
$(eval $(call gb_CppunitTest_add_libs,emfio_wmf,\
-lm $(DLOPEN_LIBS) \
-lpthread \
-lX11 \
-lXext \
))
endif
$(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 \
))
$(eval $(call gb_CppunitTest_use_configuration,emfio_wmf))
# See gb_CppunitTest__use_vcl (solenv/gbuild/CppunitTest.mk; headless):
ifeq ($(USING_X11),TRUE)
$(call gb_CppunitTest_get_target,emfio_wmf): \
$(call gb_Library_get_target,desktop_detector)
endif
# Hack to suppress ASan ODR violation warnings about symbols present in both the
# vcl objects linked into this test library and the vcl library (which gets
# dynamically loaded during the test):
$(call gb_CppunitTest_get_target,emfio_wmf): \
EXTRA_ENV_VARS := \
ASAN_OPTIONS="$${ASAN_OPTIONS+$$ASAN_OPTIONS:}"detect_odr_violation=0
# vim: set noet sw=4 ts=4: