From d2fc4c27a4538c137c7df436b17e18c76b0193a5 Mon Sep 17 00:00:00 2001 From: Juergen Funk Date: Thu, 30 Jan 2020 11:28:38 +0100 Subject: Optionally generate PDBs for external libs also for C# Enables pdb generation for symbol builds, for: - cli_basetypes.dll - cli_cppuhelper.dll - cli_uno.dll - cli_ure.dll Not covered are: - cli_oootypes.dll - cli_uretypes.dll ..as sadly climaker generates those, and can't produce PDBs. Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87727 (cherry picked from commit 1bbabd67720d6d2cfcca15d811c625562fcffad6) also for libxslt.dll Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87967 (cherry picked from commit 98c7c52e30a921a1bde3e4b2aa8c240d95ed577d) also for libxml.dll Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88156 (cherry picked from commit 52292c374c3a6a5b4d9c6ced616b0ddd505a5298) also for nss Enables pdb generation for symbol builds, for: - freebl3.dll - libeay32.dll - nspr4.dll - nss3.dll - nssckbi.dll - nssdbm3.dll - nssutil3.dll - plc4.dll - plds4.dll - smime3.dll - softokn3.dll - sqlite3.dll - ssl3.dll - ssleay32.dll Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88673 (cherry picked from commit 54acab919e7c7c5d60fc697bda54278861ac250e) all above Reviewed-by: Thorsten Behrens libxstl.dll: Reduce code when symboles enabled Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88157 Reviewed-by: Michael Stahl (cherry picked from commit 127d8c2abcae44869458b39a77f48c93bff8c327) Change-Id: I9db843a638cf9091fa49b21e27dcb578f98e95fb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88933 Tested-by: Thorsten Behrens Reviewed-by: Thorsten Behrens --- external/libxml2/UnpackedTarball_libxml2.mk | 4 +++- external/libxml2/libxml2-icu-sym.patch.0 | 37 +++++++++++++++++++++++++++++ external/libxslt/UnpackedTarball_libxslt.mk | 4 +++- external/libxslt/libxslt-msvc-sym.patch.2 | 16 +++++++++++++ external/nss/ExternalProject_nss.mk | 4 ++++ 5 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 external/libxml2/libxml2-icu-sym.patch.0 create mode 100644 external/libxslt/libxslt-msvc-sym.patch.2 (limited to 'external') diff --git a/external/libxml2/UnpackedTarball_libxml2.mk b/external/libxml2/UnpackedTarball_libxml2.mk index 3194f1e08e75..37b5bad97549 100644 --- a/external/libxml2/UnpackedTarball_libxml2.mk +++ b/external/libxml2/UnpackedTarball_libxml2.mk @@ -18,7 +18,9 @@ $(eval $(call gb_UnpackedTarball_add_patches,libxml2,\ external/libxml2/libxml2-global-symbols.patch \ external/libxml2/libxml2-vc10.patch \ $(if $(filter ANDROID,$(OS)),external/libxml2/libxml2-android.patch) \ - external/libxml2/libxml2-icu.patch.0 \ + $(if $(gb_Module_CURRENTMODULE_SYMBOLS_ENABLED), \ + external/libxml2/libxml2-icu-sym.patch.0, \ + external/libxml2/libxml2-icu.patch.0) \ external/libxml2/ubsan.patch.0 \ )) diff --git a/external/libxml2/libxml2-icu-sym.patch.0 b/external/libxml2/libxml2-icu-sym.patch.0 new file mode 100644 index 000000000000..aac9d09ef13e --- /dev/null +++ b/external/libxml2/libxml2-icu-sym.patch.0 @@ -0,0 +1,37 @@ +Find bundled ICU in workdir and use debug .libs when needed + +diff -up win32/Makefile.msvc.dt win32/Makefile.msvc +--- win32/Makefile.msvc.dt 2014-07-18 19:00:23.372103963 +0200 ++++ win32/Makefile.msvc 2014-07-18 19:01:39.347982929 +0200 +@@ -46,6 +46,7 @@ CPPFLAGS = $(CPPFLAGS) /D "_REENTRANT" + CC = cl.exe + CFLAGS = /nologo /D "_WINDOWS" /D "_MBCS" /D "NOLIBTOOL" /W3 /wd4244 /wd4267 $(CRUNTIME) + CFLAGS = $(CFLAGS) /I$(XML_SRCDIR) /I$(XML_SRCDIR)\include /I$(INCPREFIX) ++CFLAGS = $(CFLAGS) /I$(WORKDIR)/UnpackedTarball/icu/source/i18n /I$(WORKDIR)/UnpackedTarball/icu/source/common + !if "$(WITH_THREADS)" != "no" + CFLAGS = $(CFLAGS) /D "_REENTRANT" + !endif +@@ -62,7 +63,9 @@ + # The linker and its options. + LD = link.exe + LDFLAGS = /nologo /VERSION:$(LIBXML_MAJOR_VERSION).$(LIBXML_MINOR_VERSION) ++LDFLAGS = $(LDFLAGS) /LIBPATH:$(WORKDIR)/UnpackedTarball/icu/source/lib + LDFLAGS = $(LDFLAGS) /LIBPATH:$(BINDIR) /LIBPATH:$(LIBPREFIX) ++LDFLAGS = $(LDFLAGS) /DEBUG /OPT:REF + LIBS = + !if "$(WITH_FTP)" == "1" || "$(WITH_HTTP)" == "1" + LIBS = $(LIBS) wsock32.lib ws2_32.lib +@@ -74,9 +77,13 @@ + !if "$(STATIC)" == "1" + LIBS = $(LIBS) advapi32.lib sicuuc.lib sicuin.lib sicudt.lib + !else ++!if "$(WITH_RUN_DEBUG)" == "1" ++LIBS = $(LIBS) icuind.lib icuucd.lib icudtd.lib ++!else + LIBS = $(LIBS) icuuc.lib icuin.lib icudt.lib + !endif + !endif ++!endif + !if "$(WITH_ZLIB)" == "1" + # could be named differently zdll or zlib + # LIBS = $(LIBS) zdll.lib diff --git a/external/libxslt/UnpackedTarball_libxslt.mk b/external/libxslt/UnpackedTarball_libxslt.mk index b035e99f0a79..5bde97637e25 100644 --- a/external/libxslt/UnpackedTarball_libxslt.mk +++ b/external/libxslt/UnpackedTarball_libxslt.mk @@ -16,7 +16,9 @@ $(eval $(call gb_UnpackedTarball_update_autoconf_configs,libxslt)) $(eval $(call gb_UnpackedTarball_add_patches,libxslt,\ external/libxslt/libxslt-config.patch.1 \ external/libxslt/libxslt-internal-symbols.patch.1 \ - external/libxslt/libxslt-msvc.patch.2 \ + $(if $(gb_Module_CURRENTMODULE_SYMBOLS_ENABLED),\ + external/libxslt/libxslt-msvc-sym.patch.2, \ + external/libxslt/libxslt-msvc.patch.2) \ external/libxslt/libxslt-1.1.26-memdump.patch \ external/libxslt/rpath.patch.0 \ external/libxslt/e2584eed1c84c18f16e42188c30d2c3d8e3e8853.patch.1 \ diff --git a/external/libxslt/libxslt-msvc-sym.patch.2 b/external/libxslt/libxslt-msvc-sym.patch.2 new file mode 100644 index 000000000000..e4d4e673f339 --- /dev/null +++ b/external/libxslt/libxslt-msvc-sym.patch.2 @@ -0,0 +1,16 @@ +--- build/libxslt-1.1.26/win32/Makefile.msvc.old 2019-10-20 01:02:55.359375000 +0200 ++++ build/libxslt-1.1.26/win32/Makefile.msvc 2019-10-20 01:03:05.187500000 +0200 +@@ -54,11 +54,13 @@ + CFLAGS = /nologo /D "_WINDOWS" /D "_MBCS" /W3 /wd4244 /wd4267 $(CRUNTIME) /D "_REENTRANT" + CFLAGS = $(CFLAGS) /I$(BASEDIR) /I$(XSLT_SRCDIR) /I$(INCPREFIX) + CFLAGS = $(CFLAGS) /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE ++CFLAGS = $(CFLAGS) -arch:SSE $(SOLARINC) -I$(WORKDIR)\UnpackedTarball\libxml2\include -I$(WORKDIR)/UnpackedTarball/icu/source/i18n -I$(WORKDIR)/UnpackedTarball/icu/source/common + + # The linker and its options. + LD = link.exe + LDFLAGS = /nologo + LDFLAGS = $(LDFLAGS) /LIBPATH:$(BINDIR) /LIBPATH:$(LIBPREFIX) ++LDFLAGS = $(LDFLAGS) /DEBUG /OPT:REF + LIBS = + + # The archiver and its options. diff --git a/external/nss/ExternalProject_nss.mk b/external/nss/ExternalProject_nss.mk index 2e93d7000c3a..3ff9951d6e65 100644 --- a/external/nss/ExternalProject_nss.mk +++ b/external/nss/ExternalProject_nss.mk @@ -19,6 +19,10 @@ ifeq ($(OS),WNT) $(call gb_ExternalProject_get_state_target,nss,build): $(call gb_ExternalExecutable_get_dependencies,python) $(call gb_ExternalProject_run,build,\ $(if $(MSVC_USE_DEBUG_RUNTIME),USE_DEBUG_RTL=1,BUILD_OPT=1) \ + $(if $(gb_Module_CURRENTMODULE_SYMBOLS_ENABLED), \ + MOZ_DEBUG_SYMBOLS=1 \ + MOZ_DEBUG_FLAGS=" " \ + OPT_CODE_SIZE=0) \ MOZ_MSVCVERSION=9 OS_TARGET=WIN95 \ $(if $(filter X86_64,$(CPUNAME)),USE_64=1) \ LIB="$(ILIB)" \ -- cgit