diff options
Diffstat (limited to 'hw')
-rw-r--r-- | hw/xfree86/common/xf86Config.c | 9 | ||||
-rw-r--r-- | hw/xfree86/common/xf86Init.c | 4 | ||||
-rw-r--r-- | hw/xfree86/common/xf86Privstr.h | 1 | ||||
-rw-r--r-- | hw/xfree86/doc/man/xorg.conf.man.pre | 4 |
4 files changed, 17 insertions, 1 deletions
diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c index 4d933aa9d..87b8a0b72 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 flagsconf, XF86OptionPtr layoutopts) &(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 d045c0676..cd072f575 100644 --- a/hw/xfree86/common/xf86Init.c +++ b/hw/xfree86/common/xf86Init.c @@ -331,6 +331,10 @@ InitOutput(ScreenInfo *pScreenInfo, int argc, char **argv) /* 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 a01b07fd7..67d4304c9 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 3340af0b5..e94804c3b 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 |