[Libreoffice-commits] core.git: package/Library_package2.mk RepositoryExternal.mk sdext/source solenv/gbuild tools/source

Stephan Bergmann (via logerrit) logerrit at kemper.freedesktop.org
Thu Aug 5 08:05:16 UTC 2021


 RepositoryExternal.mk                            |    5 +++++
 package/Library_package2.mk                      |    1 -
 sdext/source/pdfimport/xpdfwrapper/pnghelper.cxx |    2 +-
 solenv/gbuild/PrecompiledHeaders.mk              |    1 +
 tools/source/zcodec/zcodec.cxx                   |    4 ++--
 5 files changed, 9 insertions(+), 4 deletions(-)

New commits:
commit 2030e380cfcade7ca8c18da67d9703b78959be0a
Author:     Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Wed Aug 4 08:00:16 2021 +0200
Commit:     Stephan Bergmann <sbergman at redhat.com>
CommitDate: Thu Aug 5 10:04:42 2021 +0200

    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 at redhat.com>

diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index 442ce9dd4d7c..6e732c94793b 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -348,6 +348,7 @@ ifneq ($(SYSTEM_ZLIB),)
 define gb_LinkTarget__use_zlib
 $(call gb_LinkTarget_add_defs,$(1),\
 	-DSYSTEM_ZLIB \
+	-DZLIB_CONST \
 )
 $(call gb_LinkTarget_add_libs,$(1),-lz)
 
@@ -365,6 +366,10 @@ else # !SYSTEM_ZLIB
 define gb_LinkTarget__use_zlib_multiarch
 $(if $(2),,$(call gb_Output_error,gb_LinkTarget__use_zlib_multiarch needs two arguments))
 
+$(call gb_LinkTarget_add_defs,$(1), \
+    -DZLIB_CONST \
+)
+
 $(call gb_LinkTarget_set_include,$(1),\
 	$(ZLIB_CFLAGS) \
 	$$(INCLUDE) \
diff --git a/package/Library_package2.mk b/package/Library_package2.mk
index 0c6dc4419355..9bb7e3194b98 100644
--- a/package/Library_package2.mk
+++ b/package/Library_package2.mk
@@ -20,7 +20,6 @@ $(eval $(call gb_Library_use_sdk_api,package2))
 
 $(eval $(call gb_Library_add_defs,package2,\
 	-DDLLIMPLEMENTATION_PACKAGE \
-	-DZLIB_CONST \
 ))
 
 $(eval $(call gb_Library_set_precompiled_header,package2,package/inc/pch/precompiled_package2))
diff --git a/sdext/source/pdfimport/xpdfwrapper/pnghelper.cxx b/sdext/source/pdfimport/xpdfwrapper/pnghelper.cxx
index a6390f0157e9..798555fe2f54 100644
--- a/sdext/source/pdfimport/xpdfwrapper/pnghelper.cxx
+++ b/sdext/source/pdfimport/xpdfwrapper/pnghelper.cxx
@@ -86,7 +86,7 @@ sal_uInt32 PngHelper::deflateBuffer( const Output_t* i_pBuf, size_t i_nLen, Outp
     if (Z_OK != deflateInit(&aStream, Z_BEST_COMPRESSION))
         return 0;
     aStream.avail_in = uInt(i_nLen);
-    aStream.next_in = const_cast<Bytef*>(i_pBuf);
+    aStream.next_in = i_pBuf;
 
     sal_uInt8 aOutBuf[ 32768 ];
     do
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.
diff --git a/tools/source/zcodec/zcodec.cxx b/tools/source/zcodec/zcodec.cxx
index ce461d47ed0d..97a03a463021 100644
--- a/tools/source/zcodec/zcodec.cxx
+++ b/tools/source/zcodec/zcodec.cxx
@@ -122,7 +122,7 @@ void ZCodec::Compress( SvStream& rIStm, SvStream& rOStm )
     for (;;)
     {
         pStream->next_in = mpInBuf.get();
-        pStream->avail_in = rIStm.ReadBytes( pStream->next_in, mnInBufSize );
+        pStream->avail_in = rIStm.ReadBytes( mpInBuf.get(), mnInBufSize );
         if (pStream->avail_in == 0)
             break;
         if ( pStream->avail_out == 0 )
@@ -183,7 +183,7 @@ void ZCodec::Write( SvStream& rOStm, const sal_uInt8* pData, sal_uInt32 nSize )
 
     auto pStream = static_cast<z_stream*>(mpsC_Stream);
     pStream->avail_in = nSize;
-    pStream->next_in = const_cast<unsigned char*>(pData);
+    pStream->next_in = pData;
 
     while ( pStream->avail_in || ( pStream->avail_out == 0 ) )
     {


More information about the Libreoffice-commits mailing list