[PATCH xserver 1/6] xfree86: Remove xf86InterceptSigIll

Adam Jackson ajax at redhat.com
Mon Nov 20 20:43:03 UTC 2017


This was added in ~2004 for the sis driver, to detect whether it could
use SSE for memcpy. Charmingly, the code to check whether that feature
exists in the server is:

    #if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(6,8,99,13,0)
    #define SISCHECKOSSSE           /* Automatic check OS for SSE; requires SigIll facility */
    #endif

Which means it has never worked in any modular server release.

A less gross way to do this is to check for SSE support with getauxval()
or /proc/cpuinfo or similar. Since no driver is using the existing
intercept mechanism, drop it.

Signed-off-by: Adam Jackson <ajax at redhat.com>
---
 hw/xfree86/common/xf86.h       |  1 -
 hw/xfree86/common/xf86Events.c | 13 -------------
 2 files changed, 14 deletions(-)

diff --git a/hw/xfree86/common/xf86.h b/hw/xfree86/common/xf86.h
index 674e83cb1f..db6e299b31 100644
--- a/hw/xfree86/common/xf86.h
+++ b/hw/xfree86/common/xf86.h
@@ -216,7 +216,6 @@ extern _X_EXPORT void xf86EnableGeneralHandler(void *handler);
 extern _X_EXPORT InputHandlerProc xf86SetConsoleHandler(InputHandlerProc
                                                         handler, void *data);
 extern _X_EXPORT void xf86InterceptSignals(int *signo);
-extern _X_EXPORT void xf86InterceptSigIll(void (*sigillhandler) (void));
 extern _X_EXPORT void xf86ProcessActionEvent(ActionEvent action, void *arg);
 extern _X_EXPORT void xf86PrintBacktrace(void);
 extern _X_EXPORT Bool xf86VTOwner(void);
diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c
index 53ec74f261..e2e6ca7691 100644
--- a/hw/xfree86/common/xf86Events.c
+++ b/hw/xfree86/common/xf86Events.c
@@ -276,14 +276,6 @@ xf86InterceptSignals(int *signo)
         *signo = -1;
 }
 
-static void (*xf86SigIllHandler) (void) = NULL;
-
-void
-xf86InterceptSigIll(void (*sigillhandler) (void))
-{
-    xf86SigIllHandler = sigillhandler;
-}
-
 /*
  * xf86SigWrapper --
  *    Catch unexpected signals and exit or continue cleanly.
@@ -291,11 +283,6 @@ xf86InterceptSigIll(void (*sigillhandler) (void))
 int
 xf86SigWrapper(int signo)
 {
-    if ((signo == SIGILL) && xf86SigIllHandler) {
-        (*xf86SigIllHandler) ();
-        return 0;               /* continue */
-    }
-
     if (xf86SignalIntercept && (*xf86SignalIntercept < 0)) {
         *xf86SignalIntercept = signo;
         return 0;               /* continue */
-- 
2.14.3



More information about the xorg-devel mailing list