office-gobmx/external/expat/UnpackedTarball_expat.mk
Stephan Bergmann ad53c152cc external/expat: Avoid -fsanitizenullptr-with-offset
...(new with Clang 10 trunk), where adding even an offset of 0 to a null pointer
is UB in C.  Seen when building CustomTarget_writerfilter/source:

> [PY ] CustomTarget/writerfilter/source/ooxml/resourceids.hxx
> workdir/UnpackedTarball/expat/lib/xmlparse.c:6488:23: runtime error: applying zero offset to null pointer
>  #0 in hashTableIterInit at workdir/UnpackedTarball/expat/lib/xmlparse.c:6488:23
>  #1 in dtdDestroy at workdir/UnpackedTarball/expat/lib/xmlparse.c:6130:3
>  #2 in XML_ParserFree at workdir/UnpackedTarball/expat/lib/xmlparse.c:1368:5
>  #3 in xmlparse_dealloc at workdir/UnpackedTarball/python3/Modules/pyexpat.c:1222:9
>  #4 in insertdict at workdir/UnpackedTarball/python3/Objects/dictobject.c:807:9
>  #5 in _PyObjectDict_SetItem at workdir/UnpackedTarball/python3/Objects/dictobject.c:3927:19
>  #6 in _PyObject_GenericSetAttrWithDict at workdir/UnpackedTarball/python3/Objects/object.c:1159:19
>  #7 in PyObject_SetAttr at workdir/UnpackedTarball/python3/Objects/object.c:930:15
>  #8 in PyEval_EvalFrameEx at workdir/UnpackedTarball/python3/Python/ceval.c:2310:19
[...]

Change-Id: I152ddb20c726dbeb638c5fab4403423f5c6da7b5
Reviewed-on: https://gerrit.libreoffice.org/81284
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-22 07:19:30 +02:00

35 lines
1.1 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_UnpackedTarball_UnpackedTarball,expat))
$(eval $(call gb_UnpackedTarball_set_tarball,expat,$(EXPAT_TARBALL)))
$(eval $(call gb_UnpackedTarball_update_autoconf_configs,expat,conftools))
$(eval $(call gb_UnpackedTarball_add_patches,expat,\
external/expat/expat-winapi.patch \
external/expat/ubsan.patch.0 \
))
# This is a bit hackish.
# When building for Windows (as 32-bit) we need to build it twice: as
# 32- and 64-bit code, to be able to produce a 64-bit Explorer
# ("shell") extension that is used when the 32-bit LibreOffice is
# installed on a 64-bit OS.
$(eval $(call gb_UnpackedTarball_set_post_action,expat,\
$(if $(filter $(BUILD_X64),TRUE), \
cp lib/xmlparse.c lib/xmlparse_x64.c && \
cp lib/xmltok.c lib/xmltok_x64.c && \
cp lib/xmlrole.c lib/xmlrole_x64.c) \
))
# vim: set noet sw=4 ts=4: