Browse Source

Some patches to make SDL compile with armcc (ARM's C compiler).

Ryan C. Gordon 8 years ago
parent
commit
d526b8a1e9
5 changed files with 15 additions and 6 deletions
  1. 1 1
      include/begin_code.h
  2. 2 2
      src/SDL.c
  3. 1 1
      src/SDL_internal.h
  4. 4 1
      src/audio/SDL_audiocvt.c
  5. 7 1
      src/video/SDL_shape.c

+ 1 - 1
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

+ 2 - 2
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

+ 1 - 1
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

+ 4 - 1
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);
 

+ 7 - 1
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);