Some patches to make SDL compile with armcc (ARM's C compiler).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
diff --git a/include/begin_code.h b/include/begin_code.h
index d2d45f7..444068f 100644
--- a/include/begin_code.h
+++ b/include/begin_code.h
@@ -111,7 +111,7 @@
#elif defined(_MSC_VER) || defined(__BORLANDC__) || \
defined(__DMC__) || defined(__SC__) || \
defined(__WATCOMC__) || defined(__LCC__) || \
- defined(__DECC)
+ defined(__DECC) || defined(__CC_ARM)
#define SDL_INLINE __inline
#ifndef __inline__
#define __inline__ __inline
diff --git a/src/SDL.c b/src/SDL.c
index bcfc8e0..0ed49a2 100644
--- a/src/SDL.c
+++ b/src/SDL.c
@@ -78,7 +78,7 @@ SDL_PrivateShouldInitSubsystem(Uint32 subsystem)
{
int subsystem_index = SDL_MostSignificantBitIndex32(subsystem);
SDL_assert(SDL_SubsystemRefCount[subsystem_index] < 255);
- return (SDL_SubsystemRefCount[subsystem_index] == 0);
+ return (SDL_SubsystemRefCount[subsystem_index] == 0) ? SDL_TRUE : SDL_FALSE;
}
/* Private helper to check if a system needs to be quit. */
@@ -92,7 +92,7 @@ SDL_PrivateShouldQuitSubsystem(Uint32 subsystem) {
/* If we're in SDL_Quit, we shut down every subsystem, even if refcount
* isn't zero.
*/
- return SDL_SubsystemRefCount[subsystem_index] == 1 || SDL_bInMainQuit;
+ return (SDL_SubsystemRefCount[subsystem_index] == 1 || SDL_bInMainQuit) ? SDL_TRUE : SDL_FALSE;
}
void
diff --git a/src/SDL_internal.h b/src/SDL_internal.h
index 0669275..654895c 100644
--- a/src/SDL_internal.h
+++ b/src/SDL_internal.h
@@ -29,7 +29,7 @@
/* This is for a variable-length array at the end of a struct:
struct x { int y; char z[SDL_VARIABLE_LENGTH_ARRAY]; };
Use this because GCC 2 needs different magic than other compilers. */
-#if (defined(__GNUC__) && (__GNUC__ <= 2))
+#if (defined(__GNUC__) && (__GNUC__ <= 2)) || defined(__CC_ARM)
#define SDL_VARIABLE_LENGTH_ARRAY 1
#else
#define SDL_VARIABLE_LENGTH_ARRAY
diff --git a/src/audio/SDL_audiocvt.c b/src/audio/SDL_audiocvt.c
index 691fb39..41ad345 100644
--- a/src/audio/SDL_audiocvt.c
+++ b/src/audio/SDL_audiocvt.c
@@ -439,7 +439,10 @@ SDL_ResampleCVT_si16_c2(SDL_AudioCVT *cvt, SDL_AudioFormat format)
const int srclen = cvt->len_cvt;
Sint16 *dst = (Sint16 *) cvt->buf;
const int dstlen = (cvt->len * cvt->len_mult);
- Sint16 state[2] = { src[0], src[1] };
+ Sint16 state[2];
+
+ state[0] = src[0];
+ state[1] = src[1];
SDL_assert(format == AUDIO_S16SYS);
diff --git a/src/video/SDL_shape.c b/src/video/SDL_shape.c
index d2c3af4..799266b 100644
--- a/src/video/SDL_shape.c
+++ b/src/video/SDL_shape.c
@@ -206,8 +206,14 @@ RecursivelyCalculateShapeTree(SDL_WindowShapeMode mode,SDL_Surface* mask,SDL_Rec
SDL_ShapeTree*
SDL_CalculateShapeTree(SDL_WindowShapeMode mode,SDL_Surface* shape)
{
- SDL_Rect dimensions = {0,0,shape->w,shape->h};
+ SDL_Rect dimensions;
SDL_ShapeTree* result = NULL;
+
+ dimensions.x = 0;
+ dimensions.y = 0;
+ dimensions.w = shape->w;
+ dimensions.h = shape->h;
+
if(SDL_MUSTLOCK(shape))
SDL_LockSurface(shape);
result = RecursivelyCalculateShapeTree(mode,shape,dimensions);