Blame SOURCES/0219-Add-DLOPEN_LIBS-to-configure-for-some-cases-where-ld.patch

f325b2
From 6f12d64c52776792604d9a7c7bc084f9d3044a84 Mon Sep 17 00:00:00 2001
f325b2
From: Richard PALO <richard@NetBSD.org>
f325b2
Date: Tue, 15 Sep 2015 15:58:51 +0200
f325b2
Subject: [PATCH 219/398] Add DLOPEN_LIBS to configure for some cases where
f325b2
 -ldl is needed use std::sqrt in vcldemo.cxx
f325b2
f325b2
Change-Id: I24d8ba15ee267d0cad3b063df9b7cfd8d284f4ee
f325b2
Reviewed-on: https://gerrit.libreoffice.org/18591
f325b2
Tested-by: Jenkins <ci@libreoffice.org>
f325b2
Reviewed-by: Norbert Thiebaud <nthiebaud@gmail.com>
f325b2
(cherry picked from commit fd612a144c0028972513a18167a13d29326a1798)
f325b2
---
f325b2
 Repository.mk                               |  8 ++++----
f325b2
 config_host.mk.in                           |  1 +
f325b2
 configure.ac                                |  9 +++++++++
f325b2
 desktop/Library_sofficeapp.mk               | 12 +++++-------
f325b2
 include/LibreOfficeKit/LibreOfficeKitInit.h |  4 +++-
f325b2
 libreofficekit/Executable_gtktiledviewer.mk |  5 ++---
f325b2
 libreofficekit/Executable_tilebench.mk      |  3 +--
f325b2
 libreofficekit/Library_libreofficekitgtk.mk |  5 ++---
f325b2
 libreofficekit/Module_libreofficekit.mk     |  4 ++--
f325b2
 svx/Executable_gengal.mk                    |  6 +++---
f325b2
 vcl/Executable_icontest.mk                  |  5 ++---
f325b2
 vcl/Executable_mtfdemo.mk                   |  5 ++---
f325b2
 vcl/Executable_ui-previewer.mk              |  5 ++---
f325b2
 vcl/Executable_vcldemo.mk                   |  5 ++---
f325b2
 vcl/Library_desktop_detector.mk             |  5 ++---
f325b2
 vcl/Library_vcl.mk                          |  7 +++----
f325b2
 vcl/Module_vcl.mk                           |  2 +-
f325b2
 vcl/workben/vcldemo.cxx                     |  6 +++---
f325b2
 18 files changed, 49 insertions(+), 48 deletions(-)
f325b2
f325b2
diff --git a/Repository.mk b/Repository.mk
f325b2
index a84dc9a12211..dd0afca39b7a 100644
f325b2
--- a/Repository.mk
f325b2
+++ b/Repository.mk
f325b2
@@ -67,13 +67,13 @@ $(eval $(call gb_Helper_register_executables,NONE, \
f325b2
         svptest \
f325b2
         svpclient \
f325b2
         pixelctl ) \
f325b2
-	$(if $(and $(ENABLE_GTK), $(filter LINUX,$(OS))), tilebench) \
f325b2
-	$(if $(filter LINUX MACOSX WNT,$(OS)),icontest \
f325b2
+	$(if $(and $(ENABLE_GTK), $(filter LINUX %BSD SOLARIS,$(OS))), tilebench) \
f325b2
+	$(if $(filter LINUX MACOSX SOLARIS WNT %BSD,$(OS)),icontest \
f325b2
 	    outdevgrind) \
f325b2
 	vcldemo \
f325b2
 	tiledrendering \
f325b2
     mtfdemo \
f325b2
-	$(if $(and $(ENABLE_GTK), $(filter LINUX,$(OS))), gtktiledviewer) \
f325b2
+	$(if $(and $(ENABLE_GTK), $(filter LINUX %BSD SOLARIS,$(OS))), gtktiledviewer) \
f325b2
 ))
f325b2
 
f325b2
 $(eval $(call gb_Helper_register_executables_for_install,SDK,sdk, \
f325b2
@@ -582,7 +582,7 @@ $(eval $(call gb_Helper_register_libraries_for_install,PLAINLIBS_OOO,ooo, \
f325b2
 	i18nlangtag \
f325b2
 	i18nutil \
f325b2
 	index_data \
f325b2
-	$(if $(and $(ENABLE_GTK3), $(filter LINUX,$(OS))), libreofficekitgtk) \
f325b2
+	$(if $(and $(ENABLE_GTK3), $(filter LINUX %BSD SOLARIS,$(OS))), libreofficekitgtk) \
f325b2
 	localedata_en \
f325b2
 	localedata_es \
f325b2
 	localedata_euro \
f325b2
diff --git a/config_host.mk.in b/config_host.mk.in
f325b2
index 5e5851e57da3..4ce14b085201 100644
f325b2
--- a/config_host.mk.in
f325b2
+++ b/config_host.mk.in
f325b2
@@ -99,6 +99,7 @@ export DISABLE_DYNLOADING=@DISABLE_DYNLOADING@
f325b2
 export DISABLE_EXPORT=@DISABLE_EXPORT@
f325b2
 export DISABLE_OPENSSL=@DISABLE_OPENSSL@
f325b2
 export DISABLE_PYTHON=@DISABLE_PYTHON@
f325b2
+export DLOPEN_LIBS=@DLOPEN_LIBS@
f325b2
 export DLLTOOL=@DLLTOOL@
f325b2
 export DOCDIR=@DOCDIR@
f325b2
 export DOXYGEN=@DOXYGEN@
f325b2
diff --git a/configure.ac b/configure.ac
f325b2
index 12983e074c7d..f3fe04da124b 100644
f325b2
--- a/configure.ac
f325b2
+++ b/configure.ac
f325b2
@@ -822,6 +822,15 @@ AC_SUBST(WITH_MINGW)
f325b2
 AC_SUBST(PTHREAD_CFLAGS)
f325b2
 AC_SUBST(PTHREAD_LIBS)
f325b2
 
f325b2
+if test $_os != "WINNT"; then
f325b2
+    save_LIBS="$LIBS"
f325b2
+    AC_SEARCH_LIBS([dlopen], [dl],
f325b2
+        [case "$ac_cv_search_dlopen" in -l*) DLOPEN_LIBS="$ac_cv_search_dlopen";; esac],
f325b2
+        [AC_MSG_ERROR([dlopen not found in either libc nor libdl])])
f325b2
+    LIBS="$save_LIBS"
f325b2
+fi
f325b2
+AC_SUBST(DLOPEN_LIBS)
f325b2
+
f325b2
 ###############################################################################
f325b2
 # Extensions switches --enable/--disable
f325b2
 ###############################################################################
f325b2
diff --git a/desktop/Library_sofficeapp.mk b/desktop/Library_sofficeapp.mk
f325b2
index ccad5a7ea5ca..2e3acb79b3c6 100644
f325b2
--- a/desktop/Library_sofficeapp.mk
f325b2
+++ b/desktop/Library_sofficeapp.mk
f325b2
@@ -17,8 +17,8 @@ $(eval $(call gb_Library_set_include,sofficeapp,\
f325b2
 ))
f325b2
 
f325b2
 $(eval $(call gb_Library_add_libs,sofficeapp,\
f325b2
-    $(if $(filter $(OS),LINUX), \
f325b2
-        -ldl \
f325b2
+    $(if $(filter LINUX %BSD SOLARIS, $(OS)), \
f325b2
+        $(DLOPEN_LIBS) \
f325b2
         -lpthread \
f325b2
     ) \
f325b2
 ))
f325b2
@@ -99,19 +99,17 @@ $(eval $(call gb_Library_add_exception_objects,sofficeapp,\
f325b2
 
f325b2
 ifeq ($(ENABLE_HEADLESS),TRUE)
f325b2
 $(eval $(call gb_Library_add_libs,sofficeapp,\
f325b2
-	-lm \
f325b2
-	-ldl \
f325b2
+	-lm $(DLOPEN_LIBS) \
f325b2
 	-lpthread \
f325b2
 ))
f325b2
 else
f325b2
-ifeq ($(OS),LINUX)
f325b2
+ifeq ($(OS), $(filter LINUX %BSD SOLARIS, $(OS)))
f325b2
 $(eval $(call gb_Library_use_static_libraries,sofficeapp,\
f325b2
     glxtest \
f325b2
 ))
f325b2
 
f325b2
 $(eval $(call gb_Library_add_libs,sofficeapp,\
f325b2
-	-lm \
f325b2
-	-ldl \
f325b2
+	-lm $(DLOPEN_LIBS) \
f325b2
 	-lpthread \
f325b2
     -lGL \
f325b2
     -lX11 \
f325b2
diff --git a/include/LibreOfficeKit/LibreOfficeKitInit.h b/include/LibreOfficeKit/LibreOfficeKitInit.h
f325b2
index c2f342661e31..f18e3ca3c8e4 100644
f325b2
--- a/include/LibreOfficeKit/LibreOfficeKitInit.h
f325b2
+++ b/include/LibreOfficeKit/LibreOfficeKitInit.h
f325b2
@@ -17,7 +17,9 @@ extern "C"
f325b2
 {
f325b2
 #endif
f325b2
 
f325b2
-#if defined(__linux__) || defined (__FreeBSD_kernel__) || defined(_AIX) || defined(_WIN32) || defined(__APPLE__)
f325b2
+#if defined(__linux__) || defined (__FreeBSD_kernel__) || defined(_AIX) ||\
f325b2
+    defined(_WIN32) || defined(__APPLE__) || defined (__NetBSD__) ||\
f325b2
+    defined (__sun)
f325b2
 
f325b2
 #include <stdio.h>
f325b2
 #include <stdlib.h>
f325b2
diff --git a/libreofficekit/Executable_gtktiledviewer.mk b/libreofficekit/Executable_gtktiledviewer.mk
f325b2
index 31028a67fafb..f6e297b5dbfe 100644
f325b2
--- a/libreofficekit/Executable_gtktiledviewer.mk
f325b2
+++ b/libreofficekit/Executable_gtktiledviewer.mk
f325b2
@@ -38,10 +38,9 @@ $(eval $(call gb_Executable_add_libs,gtktiledviewer,\
f325b2
     -lICE \
f325b2
 ))
f325b2
 
f325b2
-ifeq ($(OS),LINUX)
f325b2
+ifeq ($(OS), $(filter LINUX %BSD SOLARIS, $(OS)))
f325b2
 $(eval $(call gb_Executable_add_libs,gtktiledviewer,\
f325b2
-    -lm \
f325b2
-    -ldl \
f325b2
+    -lm $(DLOPEN_LIBS) \
f325b2
     -lpthread \
f325b2
 ))
f325b2
 endif
f325b2
diff --git a/libreofficekit/Executable_tilebench.mk b/libreofficekit/Executable_tilebench.mk
f325b2
index 11e73dead0bd..4da51d3ca686 100644
f325b2
--- a/libreofficekit/Executable_tilebench.mk
f325b2
+++ b/libreofficekit/Executable_tilebench.mk
f325b2
@@ -20,8 +20,7 @@ $(eval $(call gb_Executable_use_libraries,tilebench,\
f325b2
 ))
f325b2
 
f325b2
 $(eval $(call gb_Executable_add_libs,tilebench,\
f325b2
-    -lm \
f325b2
-    -ldl \
f325b2
+    -lm $(DLOPEN_LIBS) \
f325b2
     -lpthread \
f325b2
 ))
f325b2
 
f325b2
diff --git a/libreofficekit/Library_libreofficekitgtk.mk b/libreofficekit/Library_libreofficekitgtk.mk
f325b2
index 7d25abf944b1..3eba939ad56c 100644
f325b2
--- a/libreofficekit/Library_libreofficekitgtk.mk
f325b2
+++ b/libreofficekit/Library_libreofficekitgtk.mk
f325b2
@@ -28,10 +28,9 @@ $(eval $(call gb_Library_add_libs,libreofficekitgtk,\
f325b2
     $(GTK3_LIBS) \
f325b2
 ))
f325b2
 
f325b2
-ifeq ($(OS),LINUX)
f325b2
+ifeq ($(OS),$(filter LINUX %BSD SOLARIS, $(OS)))
f325b2
 $(eval $(call gb_Library_add_libs,libreofficekitgtk,\
f325b2
-    -ldl \
f325b2
-    -lm \
f325b2
+    $(DLOPEN_LIBS) -lm \
f325b2
 ))
f325b2
 endif
f325b2
 
f325b2
diff --git a/libreofficekit/Module_libreofficekit.mk b/libreofficekit/Module_libreofficekit.mk
f325b2
index 0b2fd4ae103d..7d1c5ead764e 100644
f325b2
--- a/libreofficekit/Module_libreofficekit.mk
f325b2
+++ b/libreofficekit/Module_libreofficekit.mk
f325b2
@@ -9,7 +9,7 @@
f325b2
 
f325b2
 $(eval $(call gb_Module_Module,libreofficekit))
f325b2
 
f325b2
-ifeq ($(OS),LINUX)
f325b2
+ifeq ($(OS), $(filter LINUX %BSD SOLARIS, $(OS)))
f325b2
 
f325b2
 $(eval $(call gb_Module_add_subsequentcheck_targets,libreofficekit,\
f325b2
     CppunitTest_libreofficekit_tiledrendering \
f325b2
@@ -23,6 +23,6 @@ $(eval $(call gb_Module_add_targets,libreofficekit,\
f325b2
 ))
f325b2
 endif # ($(ENABLE_GTK3),)
f325b2
 
f325b2
-endif # ($(OS),LINUX)
f325b2
+endif
f325b2
 
f325b2
 # vim: set ts=4 sw=4 et:
f325b2
diff --git a/svx/Executable_gengal.mk b/svx/Executable_gengal.mk
f325b2
index 38d5697f32a2..e075b0522d2a 100644
f325b2
--- a/svx/Executable_gengal.mk
f325b2
+++ b/svx/Executable_gengal.mk
f325b2
@@ -63,13 +63,13 @@ endif
f325b2
 
f325b2
 ifeq ($(ENABLE_HEADLESS),TRUE)
f325b2
 $(eval $(call gb_Executable_add_libs,gengal,\
f325b2
-	-ldl \
f325b2
+	$(DLOPEN_LIBS) \
f325b2
 	-lpthread \
f325b2
 ))
f325b2
 else
f325b2
-ifeq ($(OS),LINUX)
f325b2
+ifeq ($(OS), $(filter LINUX %BSD SOLARIS, $(OS)))
f325b2
 $(eval $(call gb_Executable_add_libs,gengal,\
f325b2
-	-ldl \
f325b2
+	$(DLOPEN_LIBS) \
f325b2
 	-lpthread \
f325b2
     -lGL \
f325b2
     -lX11 \
f325b2
diff --git a/vcl/Executable_icontest.mk b/vcl/Executable_icontest.mk
f325b2
index 11cc69d086fc..e9a30f8a2076 100644
f325b2
--- a/vcl/Executable_icontest.mk
f325b2
+++ b/vcl/Executable_icontest.mk
f325b2
@@ -25,10 +25,9 @@ $(eval $(call gb_Executable_use_static_libraries,icontest,\
f325b2
     vclmain \
f325b2
 ))
f325b2
 
f325b2
-ifeq ($(OS),LINUX)
f325b2
+ifeq ($(OS), $(filter LINUX %BSD SOLARIS, $(OS)))
f325b2
 $(eval $(call gb_Executable_add_libs,icontest,\
f325b2
-	-lm \
f325b2
-	-ldl \
f325b2
+	-lm $(DLOPEN_LIBS) \
f325b2
 	-lpthread \
f325b2
     -lGL \
f325b2
     -lX11 \
f325b2
diff --git a/vcl/Executable_mtfdemo.mk b/vcl/Executable_mtfdemo.mk
f325b2
index 52af4a309040..01156f82296a 100644
f325b2
--- a/vcl/Executable_mtfdemo.mk
f325b2
+++ b/vcl/Executable_mtfdemo.mk
f325b2
@@ -40,10 +40,9 @@ $(eval $(call gb_Executable_use_static_libraries,mtfdemo,\
f325b2
     vclmain \
f325b2
 ))
f325b2
 
f325b2
-ifeq ($(OS),LINUX)
f325b2
+ifeq ($(OS), $(filter LINUX %BSD SOLARIS, $(OS)))
f325b2
 $(eval $(call gb_Executable_add_libs,mtfdemo,\
f325b2
-	-lm \
f325b2
-	-ldl \
f325b2
+	-lm $(DLOPEN_LIBS) \
f325b2
 	-lpthread \
f325b2
     -lGL \
f325b2
     -lX11 \
f325b2
diff --git a/vcl/Executable_ui-previewer.mk b/vcl/Executable_ui-previewer.mk
f325b2
index 9aa4fa3bb0cb..4ef1b05c9fcb 100644
f325b2
--- a/vcl/Executable_ui-previewer.mk
f325b2
+++ b/vcl/Executable_ui-previewer.mk
f325b2
@@ -34,10 +34,9 @@ $(eval $(call gb_Executable_add_exception_objects,ui-previewer,\
f325b2
     vcl/source/uipreviewer/previewer \
f325b2
 ))
f325b2
 
f325b2
-ifeq ($(OS),LINUX)
f325b2
+ifeq ($(OS), $(filter LINUX %BSD SOLARIS, $(OS)))
f325b2
 $(eval $(call gb_Executable_add_libs,ui-previewer,\
f325b2
-	-lm \
f325b2
-	-ldl \
f325b2
+	-lm $(DLOPEN_LIBS) \
f325b2
 	-lpthread \
f325b2
     -lGL \
f325b2
     -lX11 \
f325b2
diff --git a/vcl/Executable_vcldemo.mk b/vcl/Executable_vcldemo.mk
f325b2
index 3aee6ac11dc9..5dc630bcb5e7 100644
f325b2
--- a/vcl/Executable_vcldemo.mk
f325b2
+++ b/vcl/Executable_vcldemo.mk
f325b2
@@ -46,10 +46,9 @@ $(eval $(call gb_Executable_use_static_libraries,vcldemo,\
f325b2
     vclmain \
f325b2
 ))
f325b2
 
f325b2
-ifeq ($(OS),LINUX)
f325b2
+ifeq ($(OS), $(filter LINUX %BSD SOLARIS, $(OS)))
f325b2
 $(eval $(call gb_Executable_add_libs,vcldemo,\
f325b2
-	-lm \
f325b2
-	-ldl \
f325b2
+	-lm $(DLOPEN_LIBS) \
f325b2
 	-lpthread \
f325b2
     -lGL \
f325b2
     -lX11 \
f325b2
diff --git a/vcl/Library_desktop_detector.mk b/vcl/Library_desktop_detector.mk
f325b2
index 6baf4abcb346..3edd0015e243 100644
f325b2
--- a/vcl/Library_desktop_detector.mk
f325b2
+++ b/vcl/Library_desktop_detector.mk
f325b2
@@ -63,10 +63,9 @@ $(eval $(call gb_Library_add_exception_objects,desktop_detector,\
f325b2
     vcl/unx/generic/desktopdetect/desktopdetector \
f325b2
 ))
f325b2
 
f325b2
-ifeq ($(OS),LINUX)
f325b2
+ifeq ($(OS), $(filter LINUX %BSD SOLARIS, $(OS)))
f325b2
 $(eval $(call gb_Library_add_libs,desktop_detector,\
f325b2
-	-lm \
f325b2
-	-ldl \
f325b2
+	-lm $(DLOPEN_LIBS) \
f325b2
 	-lpthread \
f325b2
 ))
f325b2
 endif
f325b2
diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk
f325b2
index c6b33e64272d..7a9a6053ab32 100644
f325b2
--- a/vcl/Library_vcl.mk
f325b2
+++ b/vcl/Library_vcl.mk
f325b2
@@ -58,7 +58,7 @@ $(eval $(call gb_Library_use_custom_headers,vcl,\
f325b2
 ))
f325b2
 
f325b2
 $(eval $(call gb_Library_use_externals,vcl,\
f325b2
-	$(if $(filter LINUX MACOSX,$(OS)), \
f325b2
+	$(if $(filter LINUX MACOSX %BSD SOLARIS,$(OS)), \
f325b2
 		curl) \
f325b2
 	jpeg \
f325b2
 	$(if $(filter-out WNT,$(OS)), \
f325b2
@@ -718,10 +718,9 @@ $(eval $(call gb_Library_use_system_win32_libs,vcl,\
f325b2
 $(eval $(call gb_Library_add_nativeres,vcl,vcl/salsrc))
f325b2
 endif
f325b2
 
f325b2
-ifeq ($(OS),LINUX)
f325b2
+ifeq ($(OS), $(filter LINUX %BSD SOLARIS, $(OS)))
f325b2
 $(eval $(call gb_Library_add_libs,vcl,\
f325b2
-	-lm \
f325b2
-	-ldl \
f325b2
+	-lm $(DLOPEN_LIBS) \
f325b2
 	-lpthread \
f325b2
     -lGL \
f325b2
     -lX11 \
f325b2
diff --git a/vcl/Module_vcl.mk b/vcl/Module_vcl.mk
f325b2
index 93a944605177..8a1dce995d19 100644
f325b2
--- a/vcl/Module_vcl.mk
f325b2
+++ b/vcl/Module_vcl.mk
f325b2
@@ -27,7 +27,7 @@ $(eval $(call gb_Module_add_targets,vcl,\
f325b2
         StaticLibrary_vclmain \
f325b2
 		$(if $(ENABLE_HEADLESS),, \
f325b2
 			Executable_ui-previewer) \
f325b2
-		$(if $(filter LINUX MACOSX WNT,$(OS)), \
f325b2
+		$(if $(filter LINUX MACOSX SOLARIS WNT %BSD,$(OS)), \
f325b2
 			Executable_outdevgrind \
f325b2
 			$(if $(ENABLE_HEADLESS),, \
f325b2
 				Executable_vcldemo \
f325b2
diff --git a/vcl/workben/vcldemo.cxx b/vcl/workben/vcldemo.cxx
f325b2
index fd8c01f8ab57..82bb86998ce8 100644
f325b2
--- a/vcl/workben/vcldemo.cxx
f325b2
+++ b/vcl/workben/vcldemo.cxx
f325b2
@@ -141,11 +141,11 @@ public:
f325b2
         maIntroBW.Filter(BMP_FILTER_EMBOSS_GREY);
f325b2
 
f325b2
         InitRenderers();
f325b2
-        mnSegmentsX = rtl::math::round(sqrt(maRenderers.size()), 0,
f325b2
+        mnSegmentsX = rtl::math::round(std::sqrt(maRenderers.size()), 0,
f325b2
                                        rtl_math_RoundingMode_Up);
f325b2
-        mnSegmentsY = rtl::math::round(sqrt(maRenderers.size()), 0,
f325b2
+        mnSegmentsY = rtl::math::round(std::sqrt(maRenderers.size()), 0,
f325b2
                                        rtl_math_RoundingMode_Down);
f325b2
-        mnSegmentsY = floor(sqrt(maRenderers.size()));
f325b2
+        mnSegmentsY = floor(std::sqrt(maRenderers.size()));
f325b2
     }
f325b2
 
f325b2
     OUString getRendererList();
f325b2
-- 
f325b2
2.12.0
f325b2