diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2021-08-04 08:00:16 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2021-08-05 10:04:42 +0200 |
commit | 2030e380cfcade7ca8c18da67d9703b78959be0a (patch) | |
tree | b95f2dd71afb3600c854fb8445bb2d52e885e2d5 /solenv | |
parent | 3609814db3542a281358fab5c57d27681a2974b8 (diff) |
Avoid ODR violation, consistently define ZLIB_CONST
At least my --enable-lto --enable-mergelibs build diagnosed
> [build LNK] Library/libmergedlo.so
> workdir/UnpackedTarball/zlib/zlib.h:86:16: warning: type ‘struct z_stream_s’ violates the C++ One Definition Rule [-Wodr]
> 86 | typedef struct z_stream_s {
> | ^
> workdir/UnpackedTarball/zlib/zlib.h:86: note: a different type is defined in another translation unit
> 86 | typedef struct z_stream_s {
> |
> workdir/UnpackedTarball/zlib/zlib.h:87:20: note: the first difference of corresponding definitions is field ‘next_in’
> 87 | z_const Bytef *next_in; /* next input byte */
> | ^
> workdir/UnpackedTarball/zlib/zlib.h:87: note: a field of same name but different type is defined in another translation unit
> 87 | z_const Bytef *next_in; /* next input byte */
> |
(And ZLIB_CONST then required a small adaption in
tools/source/zcodec/zcodec.cxx, plus some loplugin:redundantcast. And
gb_PrecompiledHeader_ignore_flags_system had to be updated to avoid errors like
> Error reusing pch/inc/pch/precompiled_system by Library_wpftdraw.
> precompiled header flags : -DBOOST_ALL_NO_LIB -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_MEM_FN_ENABLE_CDECL -DBOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE -DBOOST_SYSTEM_NO_DEPRECATED -DCPPU_ENV=msci -DDBG_UTIL -DEXCEPTIONS_ON -DINTEL -DNOMINMAX -DOSL_DEBUG_LEVEL=1 -DPCH_LEVEL=4 -DSAL_LOG_INFO -DSAL_LOG_WARN -DWIN32 -DWNT -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NON_CONFORMING_SWPRINTFS -D_CRT_SECURE_NO_DEPRECATE -D_DEBUG -D_DLL -D_HAS_AUTO_PTR_ETC -D_MT -D_REENTRANT -D_SCL_SECURE_NO_WARNINGS -D_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING -D_SILENCE_CXX17_OLD_ALLOCATOR_MEMBERS_DEPRECATION_WARNING -D_SILENCE_CXX17_RESULT_OF_DEPRECATION_WARNING -D_WIN32_WINNT=0x0601 -D_X86_=1 -EHs -GR -GS -Gd -Gs -Gy -MDd -Od -W4 -Wv:18 -Zc:__cplusplus -Zm500 -bigobj -nologo -permissive- -std:c++17 -utf-8 -wd4127 -wd4201 -wd4244 -wd4250 -wd4251 -wd4267 -wd4275 -wd4505 -wd4611 -wd4706
> object flags : -DBOOST_ALL_NO_LIB -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_MEM_FN_ENABLE_CDECL -DBOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE -DBOOST_SYSTEM_NO_DEPRECATED -DCPPU_ENV=msci -DDBG_UTIL -DEXCEPTIONS_ON -DINTEL -DNOMINMAX -DOSL_DEBUG_LEVEL=1 -DPCH_LEVEL=4 -DSAL_LOG_INFO -DSAL_LOG_WARN -DWIN32 -DWNT -DZLIB_CONST -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NON_CONFORMING_SWPRINTFS -D_CRT_SECURE_NO_DEPRECATE -D_DEBUG -D_DLL -D_HAS_AUTO_PTR_ETC -D_MT -D_REENTRANT -D_SCL_SECURE_NO_WARNINGS -D_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING -D_SILENCE_CXX17_OLD_ALLOCATOR_MEMBERS_DEPRECATION_WARNING -D_SILENCE_CXX17_RESULT_OF_DEPRECATION_WARNING -D_WIN32_WINNT=0x0601 -D_X86_=1 -EHs -GR -GS -Gd -Gs -Gy -MDd -Od -W4 -Wv:18 -Zc:__cplusplus -Zm500 -bigobj -nologo -permissive- -std:c++17 -utf-8 -wd4127 -wd4201 -wd4244 -wd4250 -wd4251 -wd4267 -wd4275 -wd4505 -wd4611 -wd4706
> reason : -DZLIB_CONST -DZLIB_CONST
> Incorrect precompiled header setup or internal gbuild error.
> make[1]: *** [C:/cygwin/home/tdf/jenkins/workspace/gerrit_windows/writerperfect/Library_wpftdraw.mk:31: C:/cygwin/home/tdf/jenkins/workspace/gerrit_windows/workdir/PrecompiledHeader/nodebug/Timestamps/Library_wpftdraw_reuse] Error 1
with --enable-pch.)
Change-Id: Iadd3c90a65993ebef98190458762b1c86d425c4d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119961
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'solenv')
-rw-r--r-- | solenv/gbuild/PrecompiledHeaders.mk | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/solenv/gbuild/PrecompiledHeaders.mk b/solenv/gbuild/PrecompiledHeaders.mk index 0d7ccf6610fb..d02668e1e930 100644 --- a/solenv/gbuild/PrecompiledHeaders.mk +++ b/solenv/gbuild/PrecompiledHeaders.mk @@ -142,6 +142,7 @@ gb_PrecompiledHeader_ignore_flags_system := \ -DSKIA_DLL \ -DGLM_FORCE_CTOR_INIT \ -DVCL_INTERNALS \ +-DZLIB_CONST \ -include $(SRCDIR)/pch/inc/clangfix.hxx \ # Probably also update pch/inc/clangfix.hxx if you extend the list. |