summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Gray <jsg@jsg.id.au>2014-08-31 18:48:56 +1000
committerChris Wilson <chris@chris-wilson.co.uk>2014-08-31 11:51:46 +0100
commit2c564c04bcde88d730ca111acfb6798bdf0d66da (patch)
treecf7585488a1cbf5f244a978fc98fdde2f44156d1
parente8ad453a0ae9d701b41cc026d5d40f55dd4590c5 (diff)
configure: check for cpuid.h
Instead of checking for a particular version of GCC check for a cpuid.h with __cpuid_count. This allows cpuid.h to be provided for older/different compilers. Signed-off-by: Jonathan Gray <jsg@jsg.id.au> [ickle: Delete the bare and redundant config.h]
-rw-r--r--configure.ac18
-rw-r--r--src/sna/sna_cpuid.h4
2 files changed, 19 insertions, 3 deletions
diff --git a/configure.ac b/configure.ac
index 4f1cff71..c24b369e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -208,6 +208,24 @@ fi
PKG_CHECK_MODULES(X11, [x11 xrender xrandr xext xfixes cairo cairo-xlib-xrender pixman-1 libpng], [x11="yes"], [x11="no"])
AM_CONDITIONAL(HAVE_X11, test "x$x11" = "xyes")
+cpuid="yes"
+AC_TRY_LINK([
+ #include <cpuid.h>
+ #include <stddef.h>
+ ],
+ [
+ int eax, ebx, ecx, edx;
+ if (__get_cpuid_max(0, NULL) < 4)
+ return 0;
+ __cpuid_count(4, 0, eax, ebx, ecx, edx);
+ ],
+ [cpuid="yes"],
+ [cpuid="no"]
+)
+if test "x$cpuid" = "xyes"; then
+ AC_DEFINE(HAVE_CPUID_H,1,[Found a useable cpuid.h])
+fi
+
shm=yes
AC_CHECK_HEADERS([sys/ipc.h sys/ipc.h], [], [shm="no"])
AC_CHECK_HEADERS([X11/extensions/XShm.h], [], [shm="no"], [
diff --git a/src/sna/sna_cpuid.h b/src/sna/sna_cpuid.h
index ed28a0ae..430cc64f 100644
--- a/src/sna/sna_cpuid.h
+++ b/src/sna/sna_cpuid.h
@@ -30,9 +30,7 @@
#ifndef SNA_CPUID_H
#define SNA_CPUID_H
-#include "compiler.h"
-
-#if HAS_GCC(4, 4) /* for __cpuid_count() */
+#ifdef HAVE_CPUID_H
#include <cpuid.h>
#else
#define __get_cpuid_max(x, y) 0