[Libreoffice-commits] core.git: Branch 'libreoffice-6-4' - config_host.mk.in configure.ac desktop/Executable_soffice_bin.mk

Stephan Bergmann (via logerrit) logerrit at kemper.freedesktop.org
Sat Feb 15 16:54:16 UTC 2020


 config_host.mk.in                 |    1 +
 configure.ac                      |   12 ++++++++++++
 desktop/Executable_soffice_bin.mk |   13 +++++++++++++
 3 files changed, 26 insertions(+)

New commits:
commit ec9f0161d9b5a57d4b8e3e17150fabcc6e4c67a1
Author:     Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Fri Feb 14 01:37:10 2020 +0100
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Sat Feb 15 17:53:40 2020 +0100

    tdf#122218: Hack to avoid blurry text with macOS SDK 10.15
    
    ...by setting the LC_VERSION_MIN_MACOSX load command's sdk value to n/a in the
    soffice executable.
    
    See <https://bugs.documentfoundation.org/show_bug.cgi?id=122218#c167> for how
    this helps, even though I have no idea why it helps.
    
    (Adding that -platform_version linker option appears to generate warnings like
    
    > ld: warning: passed two min versions (10.13.0, 10.13) for platform macOS. Using 10.13.
    
    but which are probably harmless.)
    
    (cherry picked from commit 645fe53be0dc36535dba0ed684e21ca4cda80d70)
    
    Plus cherry-pick of follow-up b7fd89100d8653dc73955780358fe31d38b68ebf
    "tdf#122218: Baseline Xcode 9.3 ld presumably doesn't support -platform_version"
    (and resolving the merge conflict in desktop/Executable_soffice_bin.mk).
    
    Change-Id: I043498c7ff2d148d4a7e1e0e9d46241b638f2eba
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88667
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88753
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/config_host.mk.in b/config_host.mk.in
index e621a4e03845..e47ca617845d 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -254,6 +254,7 @@ export HAVE_GCC_STACK_CLASH_PROTECTION=@HAVE_GCC_STACK_CLASH_PROTECTION@
 export HAVE_GNUMAKE_FILE_FUNC=@HAVE_GNUMAKE_FILE_FUNC@
 export HAVE_LD_BSYMBOLIC_FUNCTIONS=@HAVE_LD_BSYMBOLIC_FUNCTIONS@
 export HAVE_LD_HASH_STYLE=@HAVE_LD_HASH_STYLE@
+export HAVE_MACOS_LD_PLATFORMVERSION=@HAVE_MACOS_LD_PLATFORMVERSION@
 export HAVE_POSIX_FALLOCATE=@HAVE_POSIX_FALLOCATE@
 export HELP_ONLINE=@HELP_ONLINE@
 export HELP_OMINDEX_PAGE=@HELP_OMINDEX_PAGE@
diff --git a/configure.ac b/configure.ac
index faa4ace32145..5fef90169c6a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2762,6 +2762,7 @@ dnl ===================================================================
 dnl Check macOS SDK and compiler
 dnl ===================================================================
 
+HAVE_MACOS_LD_PLATFORMVERSION=
 if test $_os = Darwin; then
 
     # If no --with-macosx-sdk option is given, look for one
@@ -3000,6 +3001,16 @@ if test $_os = Darwin; then
     AC_MSG_CHECKING([what macOS app bundle identifier to use])
     MACOSX_BUNDLE_IDENTIFIER=$with_macosx_bundle_identifier
     AC_MSG_RESULT([$MACOSX_BUNDLE_IDENTIFIER])
+
+    AC_MSG_CHECKING([whether the linker supports -platform_version])
+    save_LDFLAGS=$LDFLAGS
+    LDFLAGS="$LDFLAGS -Xlinker -platform_version -Xlinker macos \
+        -Xlinker $MAC_OS_X_VERSION_MIN_REQUIRED_DOTS -Xlinker 0.0.0"
+    AC_LINK_IFELSE([AC_LANG_PROGRAM()],
+        [AC_MSG_RESULT([yes])
+         HAVE_MACOS_LD_PLATFORMVERSION=TRUE],
+        [AC_MSG_RESULT([no])])
+    LDFLAGS=$save_LDFLAGS
 fi
 AC_SUBST(MACOSX_SDK_PATH)
 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
@@ -3012,6 +3023,7 @@ AC_SUBST(MACOSX_CODESIGNING_IDENTITY)
 AC_SUBST(MACOSX_PACKAGE_SIGNING_IDENTITY)
 AC_SUBST(ENABLE_MACOSX_SANDBOX)
 AC_SUBST(MACOSX_BUNDLE_IDENTIFIER)
+AC_SUBST(HAVE_MACOS_LD_PLATFORMVERSION)
 
 dnl ===================================================================
 dnl Check iOS SDK and compiler
diff --git a/desktop/Executable_soffice_bin.mk b/desktop/Executable_soffice_bin.mk
index cabd31af29f2..ecf75893ab96 100644
--- a/desktop/Executable_soffice_bin.mk
+++ b/desktop/Executable_soffice_bin.mk
@@ -31,6 +31,19 @@ $(eval $(call gb_Executable_set_ldflags,\
 
 endif
 
+ifeq ($(OS)-$(HAVE_MACOS_LD_PLATFORMVERSION),MACOSX-TRUE)
+# At least when building against SDK 10.15, changing the LC_VERSION_MIN_MACOSX load command's sdk
+# value from 10.15 to "n/a" (i.e., 0.0.0) is necessary to avoid blurry text in the LO UI (see
+# <https://github.com/llvm/llvm-project/commit/25ce33a6e4f3b13732c0f851e68390dc2acb9123>
+# "[driver][darwin] Pass -platform_version flag to the linker instead of the
+# -<platform>_version_min flag", clang/test/Driver/darwin-ld-platform-version-macos.c in particular,
+# for the -platform_version that Clang passes by default to new-enough ld):
+$(eval $(call gb_Executable_add_ldflags,soffice_bin, \
+    -Xlinker -platform_version -Xlinker macos -Xlinker $(MAC_OS_X_VERSION_MIN_REQUIRED_DOTS) \
+        -Xlinker 0.0.0 \
+))
+endif
+
 ifeq ($(OS),WNT)
 
 $(eval $(call gb_Executable_set_targettype_gui,soffice_bin,NO))


More information about the Libreoffice-commits mailing list