diff options
| -rw-r--r-- | package/Makefile.in | 8 | ||||
| -rw-r--r-- | package/multimedia/mpg123/Config.in | 3 | ||||
| -rw-r--r-- | package/multimedia/mpg123/mpg123-0.66-arm-unroll.patch | 18 | 
3 files changed, 17 insertions, 12 deletions
| diff --git a/package/Makefile.in b/package/Makefile.in index e9cf014f0..25aadf7a5 100644 --- a/package/Makefile.in +++ b/package/Makefile.in @@ -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 diff --git a/package/multimedia/mpg123/Config.in b/package/multimedia/mpg123/Config.in index 6b17dc133..e3e8047b7 100644 --- a/package/multimedia/mpg123/Config.in +++ b/package/multimedia/mpg123/Config.in @@ -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 diff --git a/package/multimedia/mpg123/mpg123-0.66-arm-unroll.patch b/package/multimedia/mpg123/mpg123-0.66-arm-unroll.patch index 6d8ff2258..7697a03b2 100644 --- a/package/multimedia/mpg123/mpg123-0.66-arm-unroll.patch +++ b/package/multimedia/mpg123/mpg123-0.66-arm-unroll.patch @@ -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; | 
