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