[Xquartz-changes] xserver: Branch 'master' - 5 commits

Jeremy Huddleston jeremyhu at freedesktop.org
Sun Jan 15 02:28:51 PST 2012


Rebased ref, commits from common ancestor:
commit 954bb994842aa43a0f272858e65036c016b729a4
Author: Jeremy Huddleston <jeremyhu at apple.com>
Date:   Mon Jan 9 00:40:10 2012 -0800

    configure.ac: Remove MIEXT_SHADOW_LIB from XORG_LIBS
    
    This is provided by dixmods/libshadow.so and is not part of the main binary.
    
    This addresses a build failure on darwin due to MIEXT_SHADOW_LIB having
    unsatisfied dependencies (FB_LIB) in XORG_LIBS.
    
    Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>

diff --git a/configure.ac b/configure.ac
index a203ab2..b0bb9bb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1532,7 +1532,7 @@ if test "x$XORG" = xyes; then
 	XORG_OSINCS='-I$(top_srcdir)/hw/xfree86/os-support -I$(top_srcdir)/hw/xfree86/os-support/bus -I$(top_srcdir)/os'
 	XORG_INCS="$XORG_DDXINCS $XORG_OSINCS"
 	XORG_CFLAGS="$XORGSERVER_CFLAGS -DHAVE_XORG_CONFIG_H"
-	XORG_LIBS="$COMPOSITE_LIB $FIXES_LIB $XEXTXORG_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB"
+	XORG_LIBS="$COMPOSITE_LIB $FIXES_LIB $XEXTXORG_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $XI_LIB $XKB_LIB"
 
 	dnl ==================================================================
 	dnl symbol visibility
commit ba0f5cc1961bfcfb5e7d66ac5df19d429952631d
Author: Jeremy Huddleston <jeremyhu at apple.com>
Date:   Mon Jan 9 00:14:29 2012 -0800

    xfree86: Don't link libxorgxkb against libdix.la
    
    libdix.a is already provided by XSERVER_LIBS.  Including it in libxorgxkb
    results can result in duplicate symbols landing in the Xorg binary on some
    configurations (buggy glibtool on darwin).
    
    Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>

diff --git a/hw/xfree86/dixmods/Makefile.am b/hw/xfree86/dixmods/Makefile.am
index b6eb54f..a5be3ae 100644
--- a/hw/xfree86/dixmods/Makefile.am
+++ b/hw/xfree86/dixmods/Makefile.am
@@ -65,4 +65,3 @@ libdixmods_la_SOURCES = $(top_srcdir)/mi/miinitext.c
 libdixmods_la_CFLAGS = -DXFree86LOADER $(AM_CFLAGS)
 
 libxorgxkb_la_SOURCES = xkbVT.c xkbPrivate.c xkbKillSrv.c
-libxorgxkb_la_LIBADD = $(top_builddir)/dix/libdix.la
commit 2387fb23858d645f15061bc7bcbe4654386ba116
Author: Jeremy Huddleston <jeremyhu at apple.com>
Date:   Fri Jan 13 12:00:14 2012 -0800

    sdksyms.sh: Exit on error rather than building an empty symbol table
    
    Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
    Reviewed-by: Keith Packard <keithp at keithp.com>

diff --git a/hw/xfree86/sdksyms.sh b/hw/xfree86/sdksyms.sh
index 4a4e1f6..9034f38 100755
--- a/hw/xfree86/sdksyms.sh
+++ b/hw/xfree86/sdksyms.sh
@@ -324,6 +324,7 @@ topdir=$1
 shift
 LC_ALL=C
 export LC_ALL
+${CPP:-cpp} "$@" -DXorgLoader sdksyms.c > /dev/null || exit $?
 ${CPP:-cpp} "$@" -DXorgLoader sdksyms.c | ${AWK:-awk} -v topdir=$topdir '
 BEGIN {
     sdk = 0;
commit cd89482088f71ed517c2e88ed437e4752070c3f4
Author: Jeremy Huddleston <jeremyhu at apple.com>
Date:   Wed Jan 11 12:17:06 2012 -0800

    test: Fix linking issues when building unit tests without the Xorg DDX
    
    This allows unit tests to build and run successfully on darwin when
    only the Xvfb or XQuartz DDX is built.
    
    Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
    Signed-off-by: Jon TURNEY <jon.turney at dronecode.org.uk>
    Reviewed-by: Jon TURNEY <jon.turney at dronecode.org.uk>

diff --git a/test/Makefile.am b/test/Makefile.am
index ba8932c..b875b75 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -50,11 +50,60 @@ libxservertest_la_LIBADD += \
             $(top_builddir)/hw/xfree86/ramdac/libramdac.la \
             $(top_builddir)/hw/xfree86/ddc/libddc.la \
             $(top_builddir)/hw/xfree86/i2c/libi2c.la \
-            $(top_builddir)/hw/xfree86/dixmods/libxorgxkb.la
+            $(top_builddir)/hw/xfree86/dixmods/libxorgxkb.la \
+            @XORG_LIBS@
+else
+nodist_libxservertest_la_SOURCES = \
+            ddxstubs.c \
+            $(top_srcdir)/mi/miinitext.c \
+            $(top_srcdir)/Xext/dpmsstubs.c \
+            $(top_srcdir)/Xi/stubs.c
+
+libxservertest_la_LIBADD += \
+            $(top_builddir)/damageext/libdamageext.la \
+            $(top_builddir)/fb/libfb.la \
+            $(top_builddir)/fb/libwfb.la \
+            $(top_builddir)/miext/damage/libdamage.la \
+            $(top_builddir)/miext/sync/libsync.la \
+            $(top_builddir)/randr/librandr.la \
+            $(top_builddir)/render/librender.la \
+            $(top_builddir)/Xext/libXext.la \
+            $(top_builddir)/Xi/libXi.la \
+            $(top_builddir)/xfixes/libxfixes.la \
+            $(top_builddir)/xkb/libxkb.la \
+            $(top_builddir)/xkb/libxkbstubs.la
+
+if COMPOSITE
+libxservertest_la_LIBADD += \
+            $(top_builddir)/composite/libcomposite.la
 endif
+
+if DBE
 libxservertest_la_LIBADD += \
-            $(top_builddir)/mi/libmi.la \
-            $(top_builddir)/os/libos.la \
-            @XORG_LIBS@
+            $(top_builddir)/dbe/libdbe.la
+endif
+
+if GLX
+libxservertest_la_LIBADD += \
+            $(top_builddir)/glx/libglx.la
+endif
+
+if RECORD
+libxservertest_la_LIBADD += \
+            $(top_builddir)/record/librecord.la
+endif
+
+if XQUARTZ
+libxservertest_la_LIBADD += \
+            $(top_builddir)/miext/rootless/librootless.la
+TEST_LDADD += -lXplugin
+endif
+
+if XWIN_MULTIWINDOWEXTWM
+libxservertest_la_LIBADD += \
+            $(top_builddir)/miext/rootless/librootless.la
+endif
+endif
+
 libxservertest_la_DEPENDENCIES = $(libxservertest_la_LIBADD)
 endif
diff --git a/test/ddxstubs.c b/test/ddxstubs.c
new file mode 100644
index 0000000..baf2a7a
--- /dev/null
+++ b/test/ddxstubs.c
@@ -0,0 +1,91 @@
+/**
+ * Copyright © 2012 Apple Inc.
+ *
+ *  Permission is hereby granted, free of charge, to any person obtaining a
+ *  copy of this software and associated documentation files (the "Software"),
+ *  to deal in the Software without restriction, including without limitation
+ *  the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ *  and/or sell copies of the Software, and to permit persons to whom the
+ *  Software is furnished to do so, subject to the following conditions:
+ *
+ *  The above copyright notice and this permission notice (including the next
+ *  paragraph) shall be included in all copies or substantial portions of the
+ *  Software.
+ *
+ *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ *  DEALINGS IN THE SOFTWARE.
+ */
+
+/* This file contains stubs for some symbols which are usually provided by a
+ * DDX.  These stubs should allow the unit tests to build on platforms with
+ * stricter linkers (eg: darwin) when the Xorg DDX is not built.
+ */
+
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#endif
+
+#include "input.h"
+#include "mi.h"
+
+void DDXRingBell(int volume, int pitch, int duration) {
+}
+
+void ProcessInputEvents(void) {
+    mieqProcessInputEvents();
+}
+
+void OsVendorInit(void) {
+}
+
+void OsVendorFatalError(void) {
+}
+
+void AbortDDX(enum ExitCode error) {
+    OsAbort();
+}
+
+void ddxUseMsg(void) {
+}
+
+int ddxProcessArgument(int argc, char *argv[], int i) {
+    return 0;
+}
+
+void ddxGiveUp( enum ExitCode error ) {
+}
+
+Bool LegalModifier(unsigned int key, DeviceIntPtr pDev) {
+    return TRUE;
+}
+
+#ifdef XQUARTZ
+#include <pthread.h>
+
+BOOL serverRunning = TRUE;
+pthread_mutex_t serverRunningMutex = PTHREAD_MUTEX_INITIALIZER;
+pthread_cond_t serverRunningCond = PTHREAD_COND_INITIALIZER;
+
+int darwinMainScreenX = 0;
+int darwinMainScreenY = 0;
+
+BOOL no_configure_window = FALSE;
+
+void darwinEvents_lock(void) {
+}
+
+void darwinEvents_unlock(void) {
+}
+#endif
+
+#ifdef DDXBEFORERESET
+void
+ddxBeforeReset(void) {
+}
+#endif
+
commit 78d39b3222a4b0b92d840137f5455d3a20dd6906
Author: Jeremy Huddleston <jeremyhu at apple.com>
Date:   Sun Jan 15 02:26:43 2012 -0800

    Revert "glx: don't leak fbconfigs"
    
    This reverts commit d26fae246d7c451b4d5ffe24fdb959d4bd00b107.
    
    This patch free()s memory in __glXScreenDestroy which was allocated in
    glxdricommon (which isn't in every DDX).  That breaks abstraction and
    causes a crash when XQuartz quits, because it results in freeing a pointer
    that was never allocated.
    
    The correct fix is to do this cleanup in __glXDRIscreenDestroy.
    
    Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>

diff --git a/glx/glxscreens.c b/glx/glxscreens.c
index 928cf0c..ebb9747 100644
--- a/glx/glxscreens.c
+++ b/glx/glxscreens.c
@@ -419,15 +419,6 @@ void __glXScreenInit(__GLXscreen *pGlxScreen, ScreenPtr pScreen)
 
 void __glXScreenDestroy(__GLXscreen *screen)
 {
-    __GLXconfig *head, *next;
-
-    head = screen->fbconfigs;
-    while (head) {
-	next = head->next;
-	free(head);
-	head = next;
-    }
-
     free(screen->GLXvendor);
     free(screen->GLXextensions);
     free(screen->GLextensions);


More information about the Xquartz-changes mailing list