X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Finclude%2Fpipe%2Fp_config.h;h=ac14f86fdc496a49f6ffe70c9c3bd1a916be22bc;hb=0fc21ecfc0891d239f20bf7724e51bc75503570c;hp=064605a4a059189973751f9780aefe64575eae0d;hpb=447dddb93d8dc2551ef7a9c43004237c7a8dd2dd;p=mesa.git diff --git a/src/gallium/include/pipe/p_config.h b/src/gallium/include/pipe/p_config.h index 064605a4a05..ac14f86fdc4 100644 --- a/src/gallium/include/pipe/p_config.h +++ b/src/gallium/include/pipe/p_config.h @@ -1,6 +1,6 @@ /************************************************************************** * - * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas. + * Copyright 2008 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -18,7 +18,7 @@ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR + * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -40,13 +40,13 @@ * - echo | gcc -dM -E - | sort * - http://msdn.microsoft.com/en-us/library/b0084kay.aspx * - * @author José Fonseca + * @author José Fonseca */ #ifndef P_CONFIG_H_ #define P_CONFIG_H_ - +#include /* * Compiler */ @@ -58,6 +58,10 @@ /* * Meaning of _MSC_VER value: + * - 1800: Visual Studio 2013 + * - 1700: Visual Studio 2012 + * - 1600: Visual Studio 2010 + * - 1500: Visual Studio 2008 * - 1400: Visual C++ 2005 * - 1310: Visual C++ .NET 2003 * - 1300: Visual C++ .NET 2002 @@ -73,6 +77,10 @@ #define PIPE_CC_ICL #endif +#if defined(__SUNPRO_C) || defined(__SUNPRO_CC) +#define PIPE_CC_SUNPRO +#endif + /* * Processor architecture @@ -92,31 +100,89 @@ #else #define PIPE_ARCH_SSE #endif +#if defined(PIPE_CC_GCC) && (__GNUC__ * 100 + __GNUC_MINOR__) < 409 && !defined(__SSSE3__) +/* #warning SSE3 support requires -msse3 compiler options before GCC 4.9 */ +#else +#define PIPE_ARCH_SSSE3 +#endif #endif -#if defined(__PPC__) +#if defined(__ppc__) || defined(__ppc64__) || defined(__PPC__) #define PIPE_ARCH_PPC -#if defined(__PPC64__) +#if defined(__ppc64__) || defined(__PPC64__) #define PIPE_ARCH_PPC_64 #endif #endif +#if defined(__s390x__) +#define PIPE_ARCH_S390 +#endif + +#if defined(__arm__) +#define PIPE_ARCH_ARM +#endif + +#if defined(__aarch64__) +#define PIPE_ARCH_AARCH64 +#endif /* * Endian detection. */ -#if defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64) +#ifdef __GLIBC__ +#include + +#if __BYTE_ORDER == __LITTLE_ENDIAN +# define PIPE_ARCH_LITTLE_ENDIAN +#elif __BYTE_ORDER == __BIG_ENDIAN +# define PIPE_ARCH_BIG_ENDIAN +#endif + +#elif defined(__APPLE__) +#include + +#if __DARWIN_BYTE_ORDER == __DARWIN_LITTLE_ENDIAN +# define PIPE_ARCH_LITTLE_ENDIAN +#elif __DARWIN_BYTE_ORDER == __DARWIN_BIG_ENDIAN +# define PIPE_ARCH_BIG_ENDIAN +#endif + +#elif defined(__sun) +#include + +#if defined(_LITTLE_ENDIAN) +# define PIPE_ARCH_LITTLE_ENDIAN +#elif defined(_BIG_ENDIAN) +# define PIPE_ARCH_BIG_ENDIAN +#endif + +#elif defined(__OpenBSD__) || defined(__NetBSD__) +#include +#include + +#if _BYTE_ORDER == _LITTLE_ENDIAN +# define PIPE_ARCH_LITTLE_ENDIAN +#elif _BYTE_ORDER == _BIG_ENDIAN +# define PIPE_ARCH_BIG_ENDIAN +#endif + +#else + +#if defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64) || defined(PIPE_ARCH_ARM) || defined(PIPE_ARCH_AARCH64) #define PIPE_ARCH_LITTLE_ENDIAN -#elif defined(PIPE_ARCH_PPC) || defined(PIPE_ARCH_PPC_64) +#elif defined(PIPE_ARCH_PPC) || defined(PIPE_ARCH_PPC_64) || defined(PIPE_ARCH_S390) #define PIPE_ARCH_BIG_ENDIAN -#else -#define PIPE_ARCH_UNKNOWN_ENDIAN #endif +#endif + +#if !defined(PIPE_ARCH_LITTLE_ENDIAN) && !defined(PIPE_ARCH_BIG_ENDIAN) +#error Unknown Endianness +#endif /* - * Operating system family. + * Auto-detect the operating system family. * * See subsystem below for a more fine-grained distinction. */ @@ -126,7 +192,15 @@ #define PIPE_OS_UNIX #endif -#if defined(__FreeBSD__) +/* + * Android defines __linux__ so PIPE_OS_LINUX and PIPE_OS_UNIX will also be + * defined. + */ +#if defined(ANDROID) +#define PIPE_OS_ANDROID +#endif + +#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) #define PIPE_OS_FREEBSD #define PIPE_OS_BSD #define PIPE_OS_UNIX @@ -144,6 +218,17 @@ #define PIPE_OS_UNIX #endif +#if defined(__DragonFly__) +#define PIPE_OS_DRAGONFLY +#define PIPE_OS_BSD +#define PIPE_OS_UNIX +#endif + +#if defined(__GNU__) +#define PIPE_OS_HURD +#define PIPE_OS_UNIX +#endif + #if defined(__sun) #define PIPE_OS_SOLARIS #define PIPE_OS_UNIX @@ -163,8 +248,13 @@ #define PIPE_OS_UNIX #endif +#if defined(__CYGWIN__) +#define PIPE_OS_CYGWIN +#define PIPE_OS_UNIX +#endif + /* - * Subsystem. + * Try to auto-detect the subsystem. * * NOTE: There is no way to auto-detect most of these. */ @@ -174,20 +264,10 @@ #endif /* PIPE_OS_LINUX || PIPE_OS_BSD || PIPE_OS_SOLARIS */ #if defined(PIPE_OS_WINDOWS) -#if defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY) -/* Windows 2000/XP Display Driver */ -#elif defined(PIPE_SUBSYSTEM_WINDOWS_MINIPORT) -/* Windows 2000/XP Miniport Driver */ -#elif defined(PIPE_SUBSYSTEM_WINDOWS_USER) +#if defined(PIPE_SUBSYSTEM_WINDOWS_USER) /* Windows User-space Library */ -#elif defined(PIPE_SUBSYSTEM_WINDOWS_CE) -/* Windows CE 5.0/6.0 */ #else -#ifdef _WIN32_WCE -#define PIPE_SUBSYSTEM_WINDOWS_CE -#else /* !_WIN32_WCE */ -#error No PIPE_SUBSYSTEM_WINDOWS_xxx subsystem defined. -#endif /* !_WIN32_WCE */ +#define PIPE_SUBSYSTEM_WINDOWS_USER #endif #endif /* PIPE_OS_WINDOWS */