[Libreoffice-commits] core.git: config_host.mk.in configure.ac distro-configs/LibreOfficeAndroidAarch64.conf distro-configs/LibreOfficeAndroid.conf distro-configs/LibreOfficeAndroidX86.conf distro-configs/LibreOfficeEmscripten.conf distro-configs/LibreOfficeLinux.conf distro-configs/LibreOfficeOpenBSD.conf RepositoryExternal.mk vcl/unx

Michael Stahl mstahl at redhat.com
Mon Feb 1 16:31:27 UTC 2016


 RepositoryExternal.mk                         |   12 --
 config_host.mk.in                             |    1 
 configure.ac                                  |   37 ++----
 distro-configs/LibreOfficeAndroid.conf        |    1 
 distro-configs/LibreOfficeAndroidAarch64.conf |    1 
 distro-configs/LibreOfficeAndroidX86.conf     |    1 
 distro-configs/LibreOfficeEmscripten.conf     |    1 
 distro-configs/LibreOfficeLinux.conf          |    1 
 distro-configs/LibreOfficeOpenBSD.conf        |    1 
 vcl/unx/generic/app/randrwrapper.cxx          |  145 --------------------------
 10 files changed, 12 insertions(+), 189 deletions(-)

New commits:
commit 8d0b06a69ec0cabbab634241d0e0def323b8250e
Author: Michael Stahl <mstahl at redhat.com>
Date:   Mon Feb 1 17:25:20 2016 +0100

    configure: remove ---disable-randr-link
    
    This looks obsolete, it was used in LibreOfficeLinux.conf since the
    beginning but in fact since LO 3.5 it was broken and the vclplug_gen
    was not actully dlopen()ing Xrandr.so but somehow magically "found"
    the symbols anyway.
    
    Change-Id: I81251a8fef0abac63183b0ff3533bb2331ca6f5a

diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index 929bdcc..31847d3 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -3230,8 +3230,6 @@ endif # ENABLE_EOT
 
 ifeq ($(USING_X11), TRUE)
 
-ifeq ($(XRANDR_DLOPEN),FALSE)
-
 define gb_LinkTarget__use_Xrandr
 $(call gb_LinkTarget_set_include,$(1),\
 	$$(INCLUDE) \
@@ -3243,16 +3241,6 @@ $(call gb_LinkTarget_add_libs,$(1),\
 )
 endef
 
-else # XRANDR_DLOPEN
-
-define gb_LinkTarget__use_Xrandr
-$(call gb_LinkTarget_add_defs,$(1),\
-	-DXRANDR_DLOPEN \
-)
-endef
-
-endif # XRANDR_DLOPEN
-
 define gb_LinkTarget__use_Xrender
 $(call gb_LinkTarget_set_include,$(1),\
 	$$(INCLUDE) \
diff --git a/config_host.mk.in b/config_host.mk.in
index c9c7324..2721820 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -643,7 +643,6 @@ export XCODEBUILD_SDK=@XCODEBUILD_SDK@
 export XINERAMA_LINK=@XINERAMA_LINK@
 export XMLLINT=@XMLLINT@
 export XRANDR_CFLAGS=$(gb_SPACE)@XRANDR_CFLAGS@
-export XRANDR_DLOPEN=@XRANDR_DLOPEN@
 export XRANDR_LIBS=$(gb_SPACE)@XRANDR_LIBS@
 export XRENDER_CFLAGS=$(gb_SPACE)@XRENDER_CFLAGS@
 export XRENDER_LIBS=$(gb_SPACE)@XRENDER_LIBS@
diff --git a/configure.ac b/configure.ac
index c90b56a..29ef7e5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1261,11 +1261,6 @@ AC_ARG_ENABLE(randr,
         [Disable RandR support in the vcl project.]),
 ,enable_randr=yes)
 
-AC_ARG_ENABLE(randr-link,
-    AS_HELP_STRING([--disable-randr-link],
-        [Disable linking with libXrandr, instead dynamically open it at runtime.]),
-,enable_randr_link=yes)
-
 AC_ARG_ENABLE(gstreamer-1-0,
     AS_HELP_STRING([--disable-gstreamer-1-0],
         [Disable building with the new gstreamer 1.0 avmedia backend.]),
@@ -9224,32 +9219,24 @@ dnl Check for XRandr
 dnl ===================================================================
 AC_MSG_CHECKING([whether to enable RandR support])
 if test "$USING_X11" = TRUE -a "$test_randr" = "yes" -a \( "$enable_randr" = "yes" -o "$enable_randr" = "TRUE" \); then
-    if test -z "$enable_randr_link" -o "$enable_randr_link" = "no"; then
-        XRANDR_DLOPEN="TRUE"
+    AC_MSG_RESULT([yes])
+    PKG_CHECK_MODULES(XRANDR, xrandr >= 1.2, ENABLE_RANDR="TRUE", ENABLE_RANDR="")
+    if test "$ENABLE_RANDR" != "TRUE"; then
+        AC_CHECK_HEADER(X11/extensions/Xrandr.h, [],
+                    [AC_MSG_ERROR([X11/extensions/Xrandr.h could not be found. X11 dev missing?])], [])
+        XRANDR_CFLAGS=" "
+        AC_CHECK_LIB([Xrandr], [XRRQueryExtension], [:],
+          [ AC_MSG_ERROR(libXrandr not found or functional) ], [])
+        XRANDR_LIBS="-lXrandr "
         ENABLE_RANDR="TRUE"
-        AC_MSG_RESULT([configured to dlopen libXrandr at runtime])
-    else
-        AC_MSG_RESULT([yes])
-        XRANDR_DLOPEN="FALSE"
-        PKG_CHECK_MODULES(XRANDR, xrandr >= 1.2, ENABLE_RANDR="TRUE", ENABLE_RANDR="")
-        if test "$ENABLE_RANDR" != "TRUE"; then
-            AC_CHECK_HEADER(X11/extensions/Xrandr.h, [],
-                        [AC_MSG_ERROR([X11/extensions/Xrandr.h could not be found. X11 dev missing?])], [])
-            XRANDR_CFLAGS=" "
-            AC_CHECK_LIB([Xrandr], [XRRQueryExtension], [:],
-              [ AC_MSG_ERROR(libXrandr not found or functional) ], [])
-            XRANDR_LIBS="-lXrandr "
-            ENABLE_RANDR="TRUE"
-        fi
-        XRANDR_CFLAGS=$(printf '%s' "$XRANDR_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
-        FilterLibs "${XRANDR_LIBS}"
-        XRANDR_LIBS="${filteredlibs}"
     fi
+    XRANDR_CFLAGS=$(printf '%s' "$XRANDR_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
+    FilterLibs "${XRANDR_LIBS}"
+    XRANDR_LIBS="${filteredlibs}"
 else
     ENABLE_RANDR=""
     AC_MSG_RESULT([no])
 fi
-AC_SUBST(XRANDR_DLOPEN)
 AC_SUBST(XRANDR_CFLAGS)
 AC_SUBST(XRANDR_LIBS)
 AC_SUBST(ENABLE_RANDR)
diff --git a/distro-configs/LibreOfficeAndroid.conf b/distro-configs/LibreOfficeAndroid.conf
index 9db6a72..74d79b7 100644
--- a/distro-configs/LibreOfficeAndroid.conf
+++ b/distro-configs/LibreOfficeAndroid.conf
@@ -4,7 +4,6 @@
 --disable-gstreamer-0-10
 --disable-gstreamer-1-0
 --disable-randr
---disable-randr-link
 --disable-systray
 --without-junit
 --without-helppack-integration
diff --git a/distro-configs/LibreOfficeAndroidAarch64.conf b/distro-configs/LibreOfficeAndroidAarch64.conf
index ca93713..e77d67f 100644
--- a/distro-configs/LibreOfficeAndroidAarch64.conf
+++ b/distro-configs/LibreOfficeAndroidAarch64.conf
@@ -4,7 +4,6 @@
 --disable-gstreamer-0-10
 --disable-gstreamer-1-0
 --disable-randr
---disable-randr-link
 --disable-systray
 --without-junit
 --without-helppack-integration
diff --git a/distro-configs/LibreOfficeAndroidX86.conf b/distro-configs/LibreOfficeAndroidX86.conf
index e5589e8..4f487d5 100644
--- a/distro-configs/LibreOfficeAndroidX86.conf
+++ b/distro-configs/LibreOfficeAndroidX86.conf
@@ -4,7 +4,6 @@
 --disable-gstreamer-0-10
 --disable-gstreamer-1-0
 --disable-randr
---disable-randr-link
 --disable-systray
 --without-junit
 --without-helppack-integration
diff --git a/distro-configs/LibreOfficeEmscripten.conf b/distro-configs/LibreOfficeEmscripten.conf
index 6171fa7..3ca706e 100644
--- a/distro-configs/LibreOfficeEmscripten.conf
+++ b/distro-configs/LibreOfficeEmscripten.conf
@@ -17,7 +17,6 @@
 --disable-firebird-sdbc
 --disable-python
 --disable-randr
---disable-randr-link
 --disable-pdfimport
 --disable-systray
 --disable-gltf
diff --git a/distro-configs/LibreOfficeLinux.conf b/distro-configs/LibreOfficeLinux.conf
index 06be879..d57706c 100644
--- a/distro-configs/LibreOfficeLinux.conf
+++ b/distro-configs/LibreOfficeLinux.conf
@@ -33,5 +33,4 @@
 --enable-python=internal
 --enable-online-update
 --disable-dconf
---disable-randr-link
 --enable-mergelibs
diff --git a/distro-configs/LibreOfficeOpenBSD.conf b/distro-configs/LibreOfficeOpenBSD.conf
index 09e2337..fb0e355 100644
--- a/distro-configs/LibreOfficeOpenBSD.conf
+++ b/distro-configs/LibreOfficeOpenBSD.conf
@@ -4,7 +4,6 @@
 --disable-kde4
 --disable-nss-module
 --disable-odk
---disable-randr-link
 --enable-gstreamer-0-10
 --enable-ext-wiki-publisher
 --enable-python=system
diff --git a/vcl/unx/generic/app/randrwrapper.cxx b/vcl/unx/generic/app/randrwrapper.cxx
index d97f86f..9706e9f 100644
--- a/vcl/unx/generic/app/randrwrapper.cxx
+++ b/vcl/unx/generic/app/randrwrapper.cxx
@@ -29,149 +29,6 @@
 namespace
 {
 
-# ifdef XRANDR_DLOPEN
-
-class RandRWrapper
-{
-    oslModule m_pRandRLib;
-
-    // function pointers
-    Bool(*m_pXRRQueryExtension)(Display*,int*,int*);
-    XRRScreenConfiguration*(*m_pXRRGetScreenInfo)(Display*,Drawable);
-    void(*m_pXRRFreeScreenConfigInfo)(XRRScreenConfiguration*);
-    void(*m_pXRRSelectInput)(Display*,::Window,int);
-    int(*m_pXRRUpdateConfiguration)(XEvent*);
-    XRRScreenSize*(*m_pXRRConfigSizes)(XRRScreenConfiguration*,int*);
-    SizeID(*m_pXRRConfigCurrentConfiguration)(XRRScreenConfiguration*,Rotation*);
-    int(*m_pXRRRootToScreen)(Display*, ::Window);
-
-    bool m_bValid;
-
-    void initFromModule();
-
-    explicit RandRWrapper(Display*);
-    ~RandRWrapper();
-public:
-    static RandRWrapper& get(Display*);
-    static void releaseWrapper();
-
-    Bool XRRQueryExtension(Display* i_pDisp, int* o_event_base, int* o_error_base )
-    {
-        Bool bRet = False;
-        if( m_bValid )
-            bRet = m_pXRRQueryExtension( i_pDisp, o_event_base, o_error_base );
-        return bRet;
-    }
-    XRRScreenConfiguration* XRRGetScreenInfo( Display* i_pDisp, Drawable i_aDrawable )
-    {
-        return m_bValid ? m_pXRRGetScreenInfo( i_pDisp, i_aDrawable ) : NULL;
-    }
-    void XRRFreeScreenConfigInfo( XRRScreenConfiguration* i_pConfig )
-    {
-        if( m_bValid )
-            m_pXRRFreeScreenConfigInfo( i_pConfig );
-    }
-    void XRRSelectInput( Display* i_pDisp, ::Window i_window, int i_nMask )
-    {
-        if( m_bValid )
-            m_pXRRSelectInput( i_pDisp, i_window, i_nMask );
-    }
-    int XRRUpdateConfiguration( XEvent* i_pEvent )
-    {
-        return m_bValid ? m_pXRRUpdateConfiguration( i_pEvent ) : 0;
-    }
-    XRRScreenSize* XRRConfigSizes( XRRScreenConfiguration* i_pConfig, int* o_nSizes )
-    {
-        return m_bValid ? m_pXRRConfigSizes( i_pConfig, o_nSizes ) : NULL;
-    }
-    SizeID XRRConfigCurrentConfiguration( XRRScreenConfiguration* i_pConfig, Rotation* o_pRot )
-    {
-        return m_bValid ? m_pXRRConfigCurrentConfiguration( i_pConfig, o_pRot ) : 0;
-    }
-    int XRRRootToScreen( Display *dpy, ::Window root )
-    {
-        return m_bValid ? m_pXRRRootToScreen( dpy, root ) : -1;
-    }
-};
-
-void RandRWrapper::initFromModule()
-{
-    m_pXRRQueryExtension = (Bool(*)(Display*,int*,int*))osl_getAsciiFunctionSymbol( m_pRandRLib, "XRRQueryExtension" );
-    m_pXRRGetScreenInfo = (XRRScreenConfiguration*(*)(Display*,Drawable))osl_getAsciiFunctionSymbol( m_pRandRLib, "XRRGetScreenInfo" );
-    m_pXRRFreeScreenConfigInfo = (void(*)(XRRScreenConfiguration*))osl_getAsciiFunctionSymbol( m_pRandRLib, "XRRFreeScreenConfigInfo" );
-    m_pXRRSelectInput = (void(*)(Display*,::Window,int))osl_getAsciiFunctionSymbol( m_pRandRLib, "XRRSelectInput" );
-    m_pXRRUpdateConfiguration = (int(*)(XEvent*))osl_getAsciiFunctionSymbol( m_pRandRLib, "XRRUpdateConfiguration" );
-    m_pXRRConfigSizes = (XRRScreenSize*(*)(XRRScreenConfiguration*,int*))osl_getAsciiFunctionSymbol( m_pRandRLib, "XRRConfigSizes" );
-    m_pXRRConfigCurrentConfiguration = (SizeID(*)(XRRScreenConfiguration*,Rotation*))osl_getAsciiFunctionSymbol( m_pRandRLib, "XRRConfigCurrentConfiguration" );
-    m_pXRRRootToScreen = (int(*)(Display*,::Window))osl_getAsciiFunctionSymbol( m_pRandRLib, "XRRRootToScreen" );
-
-    m_bValid = m_pXRRQueryExtension             &&
-               m_pXRRGetScreenInfo              &&
-               m_pXRRFreeScreenConfigInfo       &&
-               m_pXRRSelectInput                &&
-               m_pXRRUpdateConfiguration        &&
-               m_pXRRConfigSizes                &&
-               m_pXRRConfigCurrentConfiguration &&
-               m_pXRRRootToScreen
-               ;
-}
-
-RandRWrapper::RandRWrapper( Display* pDisplay ) :
-        m_pRandRLib( NULL ),
-        m_pXRRQueryExtension( NULL ),
-        m_pXRRGetScreenInfo( NULL ),
-        m_pXRRFreeScreenConfigInfo( NULL ),
-        m_pXRRSelectInput( NULL ),
-        m_pXRRUpdateConfiguration( NULL ),
-        m_pXRRConfigSizes( NULL ),
-        m_pXRRConfigCurrentConfiguration( NULL ),
-        m_pXRRRootToScreen( NULL ),
-        m_bValid( false )
-{
-    // first try in process space (e.g. gtk links that ?)
-    initFromModule();
-    if( ! m_bValid )
-    {
-        // load and resolve dependencies immediately
-        // rationale: there are older distributions where libXrandr.so.2 is not linked
-        // with libXext.so, resulting in a missing symbol and terminating the office
-        // obviously they expected libXext to be linked in global symbolspace (that is
-        // linked by the application), which is not the case with us (because we want
-        // to be able to run in headless mode even without an installed X11 library)
-        m_pRandRLib = osl_loadModuleAscii("libXrandr.so.2", SAL_LOADMODULE_DEFAULT | SAL_LOADMODULE_NOW);
-        initFromModule();
-    }
-    if( m_bValid )
-    {
-        int nEventBase = 0, nErrorBase = 0;
-        if( ! m_pXRRQueryExtension( pDisplay, &nEventBase, &nErrorBase ) )
-            m_bValid = false;
-    }
-}
-
-RandRWrapper::~RandRWrapper()
-{
-    if( m_pRandRLib )
-        osl_unloadModule( m_pRandRLib );
-}
-
-static RandRWrapper* pWrapper = NULL;
-
-RandRWrapper& RandRWrapper::get( Display* i_pDisplay )
-{
-    if( ! pWrapper )
-        pWrapper = new RandRWrapper( i_pDisplay );
-    return *pWrapper;
-}
-
-void RandRWrapper::releaseWrapper()
-{
-    delete pWrapper;
-    pWrapper = NULL;
-}
-
-# else
-
 class RandRWrapper
 {
     bool m_bValid;
@@ -243,8 +100,6 @@ void RandRWrapper::releaseWrapper()
     pWrapper = nullptr;
 }
 
-#endif
-
 } // namespace
 
 #endif


More information about the Libreoffice-commits mailing list