xserver: Branch 'master'

David Nusinow gravity at kemper.freedesktop.org
Wed Aug 23 19:39:56 PDT 2006


 hw/xfree86/common/xf86Config.c       |    9 ++++++++-
 hw/xfree86/common/xf86Init.c         |    4 ++++
 hw/xfree86/common/xf86Privstr.h      |    1 +
 hw/xfree86/doc/man/xorg.conf.man.pre |    4 ++++
 4 files changed, 17 insertions(+), 1 deletion(-)

New commits:
diff-tree 733c4beb16c2c4ad9e9a4ea9a85b09fc5062a775 (from b983773d446cef6a0948ca264ed48126e404ae9a)
Author: David Nusinow <dnusinow at debian.org>
Date:   Wed Aug 23 22:39:42 2006 +0000

    Add xorg.conf IgnoreABI option which does the same thing as -ignoreABI

diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
index 4d933aa..87b8a0b 100644
--- a/hw/xfree86/common/xf86Config.c
+++ b/hw/xfree86/common/xf86Config.c
@@ -761,7 +761,8 @@ typedef enum {
     FLAG_RENDER_COLORMAP_MODE,
     FLAG_HANDLE_SPECIAL_KEYS,
     FLAG_RANDR,
-    FLAG_AIGLX
+    FLAG_AIGLX,
+    FLAG_IGNORE_ABI
 } FlagValues;
    
 static OptionInfoRec FlagOptions[] = {
@@ -833,6 +834,8 @@ static OptionInfoRec FlagOptions[] = {
 	{0}, FALSE },
   { FLAG_AIGLX,			"AIGLX",			OPTV_BOOLEAN,
 	{0}, FALSE },
+  { FLAG_IGNORE_ABI,			"IgnoreABI",			OPTV_BOOLEAN,
+	{0}, FALSE },
   { -1,				NULL,				OPTV_NONE,
 	{0}, FALSE },
 };
@@ -891,6 +894,10 @@ configServerFlags(XF86ConfFlagsPtr flags
 		      &(xf86Info.grabInfo.allowDeactivate));
     xf86GetOptValBool(FlagOptions, FLAG_ALLOW_CLOSEDOWN_GRABS,
 		      &(xf86Info.grabInfo.allowClosedown));
+    xf86GetOptValBool(FlagOptions, FLAG_IGNORE_ABI, &xf86Info.ignoreABI);
+    if (&xf86Info.ignoreABI) {
+	    xf86Msg(X_CONFIG, "Ignoring ABI Version\n");
+    }
 
     /*
      * Set things up based on the config file information.  Some of these
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index d045c06..cd072f5 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -331,6 +331,10 @@ InitOutput(ScreenInfo *pScreenInfo, int 
     /* Tell the loader the default module search path */
     LoaderSetPath(xf86ModulePath);
 
+    if (xf86Info.ignoreABI) {
+        LoaderSetOptions(LDR_OPT_ABI_MISMATCH_NONFATAL);
+    }
+
 #ifdef TESTING
     {
 	char **list, **l;
diff --git a/hw/xfree86/common/xf86Privstr.h b/hw/xfree86/common/xf86Privstr.h
index a01b07f..67d4304 100644
--- a/hw/xfree86/common/xf86Privstr.h
+++ b/hw/xfree86/common/xf86Privstr.h
@@ -166,6 +166,7 @@ typedef struct {
     MessageType		randRFrom;
     Bool		aiglx;
     MessageType		aiglxFrom;
+    Bool        ignoreABI;
     struct {
 	Bool		disabled;		/* enable/disable deactivating
 						 * grabs or closing the
diff --git a/hw/xfree86/doc/man/xorg.conf.man.pre b/hw/xfree86/doc/man/xorg.conf.man.pre
index 3340af0..e94804c 100644
--- a/hw/xfree86/doc/man/xorg.conf.man.pre
+++ b/hw/xfree86/doc/man/xorg.conf.man.pre
@@ -605,6 +605,10 @@ the builtin handler will be used.
 .TP 7
 .BI "Option \*qAIGLX\*q \*q" boolean \*q
 enable or disable AIGLX. AIGLX is enabled by default.
+.TP 7
+.BI "Option \*qIgnoreABI\*q \*q" boolean \*q
+Allow modules built for a different, potentially incompatible version of
+the X server to load. Disabled by default.
 .SH MODULE SECTION
 The
 .B Module



More information about the xorg-commit mailing list