diff --git a/include/SDL_endian.h b/include/SDL_endian.h index 1d24f5a44c6ed95c492c20b02d4dc9584a38d1e8..dba30ad1700d179e832311bc26df59875ba0c629 100644 --- a/include/SDL_endian.h +++ b/include/SDL_endian.h @@ -52,12 +52,13 @@ extern "C" { #endif -/* Use inline functions for compilers that support them, and static +/* Use __inline__ functions for compilers that support them, and static functions for those that do not. Because these functions become - static for compilers that do not support inline functions, this + static for compilers that do not support __inline__ functions, this header should only be included in files that actually use them. */ -#if defined(__GNUC__) && defined(__i386__) +#if defined(__GNUC__) && defined(__i386__) && + !(__GNUC__ == 2 && __GNUC_MINOR__ == 95 /* broken gcc version */) static __inline__ Uint16 SDL_Swap16(Uint16 x) { __asm__("xchgb %b0,%h0" : "=q" (x) : "0" (x)); diff --git a/include/SDL_stdinc.h b/include/SDL_stdinc.h index 2e5c5e2c4e4128ff3587b8141c18dab7bff9da70..090433d655b7ec4518a72562e7c0dcfc45c056aa 100644 --- a/include/SDL_stdinc.h +++ b/include/SDL_stdinc.h @@ -28,23 +28,19 @@ #include "SDL_config.h" /* AIX requires this to be the first thing in the file. */ -#ifdef __GNUC__ -# define alloca __builtin_alloca -#else -# ifdef _MSC_VER +#if HAVE_ALLOCA +# if HAVE_ALLOCA_H +# include <alloca.h> +# elif __GNUC__ +# define alloca __builtin_alloca +# elif _MSC_VER # include <malloc.h> # define alloca _alloca +# elif _AIX + #pragma alloca # else -# if HAVE_ALLOCA_H -# include <alloca.h> -# else -# ifdef _AIX - #pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ -char *alloca (); -# endif -# endif +# ifndef alloca /* predefined by HP cc +Olibcalls */ + char *alloca (); # endif # endif #endif