Commit 81a9f041 authored by Ulf Samuelsson's avatar Ulf Samuelsson
Browse files

Make toolchain configration to fix mpg123 global and move to Makefile

parent b3f1b6a0
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -88,6 +88,14 @@ ifeq ($(BR2_LARGEFILE),y)
TARGET_CFLAGS+=-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
endif

# Handle bug fixes in toolchain
ifeq ($(BR2_arm),y)
ifeq ($(BR2_GCC_VERSION_4_3_2),y)
# Removes segment violation in mpg123.
TARGET_CFLAGS+=-DARM_UNROLL_FIX
endif
endif

TARGET_CXXFLAGS=$(TARGET_CFLAGS)

# else it's an external toolchain
+0 −3
Original line number Diff line number Diff line
@@ -11,6 +11,3 @@ config BR2_PACKAGE_MPG123_ALSA
	default y
	depends on BR2_PACKAGE_ALSA_LIB
config BR2_PACKAGE_MPG123_ARM_UNROLL_FIX
	bool
	default y if BR2_arm && BR2_GCC_VERSION_4_3_2
+9 −9
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@ diff -urN mpg123-0.66-0rig//src/layer2.c mpg123-0.66/src/layer2.c
 
 }
 
+#if	defined(MPG123_ARM_UNROLL_FIX)
+#if	defined(ARM_UNROLL_FIX)
+static int	al_table_get_d_out;
+void al_table_get_d(struct al_table * al)
+{
@@ -28,7 +28,7 @@ diff -urN mpg123-0.66-0rig//src/layer2.c mpg123-0.66/src/layer2.c
         if ( (ba=*bita++) ) 
         {
           k=(alloc2 = alloc1+ba)->bits;
+#if	defined(MPG123_ARM_UNROLL_FIX)
+#if	defined(ARM_UNROLL_FIX)
+	  al_table_get_d(alloc2);
+	  d1 = al_table_get_d_out;
+          if( (d1) < 0) 
@@ -42,7 +42,7 @@ diff -urN mpg123-0.66-0rig//src/layer2.c mpg123-0.66/src/layer2.c
       if ( (ba=*bita++) )
       {
         k=(alloc2 = alloc1+ba)->bits;
+#if	defined(MPG123_ARM_UNROLL_FIX)
+#if	defined(ARM_UNROLL_FIX)
+	al_table_get_d(alloc2);
+	d1 = al_table_get_d_out;
+        if( (d1) < 0)
@@ -60,7 +60,7 @@ diff -urN mpg123-0.66-0rig//src/layer3.c mpg123-0.66/src/layer3.c
 static int pretab1[22] = {0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,3,3,3,2,0};
 static int pretab2[22] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
-
+#if	defined(MPG123_ARM_UNROLL_FIX)
+#if	defined(ARM_UNROLL_FIX)
+extern int arm_funroll_data;
+extern void arm_funroll_fix(short *val);
+#endif
@@ -71,7 +71,7 @@ diff -urN mpg123-0.66-0rig//src/layer3.c mpg123-0.66/src/layer3.c
             step = 3;
           }
         }
+#if	defined(MPG123_ARM_UNROLL_FIX)
+#if	defined(ARM_UNROLL_FIX)
+	{
+	    register short *val = h->table;
+	    REFRESH_MASK;
@@ -104,7 +104,7 @@ diff -urN mpg123-0.66-0rig//src/layer3.c mpg123-0.66/src/layer3.c
             v = gr_info->pow2gain[((*scf++) + (*pretab++)) << shift];
 
         }
+#if	defined(MPG123_ARM_UNROLL_FIX)
+#if	defined(ARM_UNROLL_FIX)
+	{
+	    register short *val = h->table;
+	    REFRESH_MASK;
@@ -789,7 +789,7 @@ diff -urN mpg123-0.66-0rig//src/layer3.c~ mpg123-0.66/src/layer3.c~
+
+static int pretab1[22] = {0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,3,3,3,2,0};
+static int pretab2[22] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
+#if	defined(MPG123_ARM_UNROLL_FIX)
+#if	defined(ARM_UNROLL_FIX)
+extern int arm_funroll_data;
+extern void arm_funroll_fix(short *val);
+#endif
@@ -1081,7 +1081,7 @@ diff -urN mpg123-0.66-0rig//src/layer3.c~ mpg123-0.66/src/layer3.c~
+            v = gr_info->pow2gain[((*scf++) + (*pretab++)) << shift];
+
+        }
+#if	defined(MPG123_ARM_UNROLL_FIX)
+#if	defined(ARM_UNROLL_FIX)
+	{
+	    register short *val = h->table;
+	    REFRESH_MASK;
@@ -1171,7 +1171,7 @@ diff -urN mpg123-0.66-0rig//src/layer3.c~ mpg123-0.66/src/layer3.c~
+      register short *val = h->table,a;
+
+      REFRESH_MASK;
+#if	defined(MPG123_ARM_UNROLL_FIX)
+#if	defined(ARM_UNROLL_FIX)
+	do {
+		arm_funroll_fix(val); val++;
+		a = arm_funroll_data;