Index: configure =================================================================== --- configure (Revision 23529) +++ configure (Arbeitskopie) @@ -2221,7 +2221,20 @@ fi +echocheck "compiler support of __attribute__((used))" +_def_attribute_used="#undef HAVE_ATTRIBUTE_USED" +cat > $TMPC << EOF +static unsigned long long __attribute__((used)) x = 0xdeadbeefdeadbeefLL, y; +int main (void) { + asm volatile ("movq x, %%mm0\n\t" + "movq %%mm0, y\n\t" : :); + printf ("%llx\n", y); + return 0; +} +EOF +cc_check && _def_attribute_used="#define HAVE_ATTRIBUTE_USED 1" && echores "yes" || echores "no" + echocheck "assembler support of -pipe option" cat > $TMPC << EOF int main(void) { return 0; } @@ -8353,6 +8373,7 @@ $_def_armv5te // only define if you have Enhanced DSP Extensions (ARM) $_def_armv6 // only define if you have ARMv6 $_def_iwmmxt // only define if you have XScale IWMMX (ARM) +$_def_attribute_used // only define if __attribute__((used)) works $_def_altivec_h // enables usage of altivec.h Index: mp3lib/sr1.c =================================================================== --- mp3lib/sr1.c (Revision 23529) +++ mp3lib/sr1.c (Arbeitskopie) @@ -460,12 +460,14 @@ } else #endif +#ifdef HAVE_ATTRIBUTE_USED if (gCpuCaps.cpuType >= CPUTYPE_I586) { synth_func = synth_1to1_pent; mp_msg(MSGT_DECAUDIO,MSGL_V,"mp3lib: using Pentium optimized decore!\n"); } else +#endif #endif /* ARCH_X86_32 */ #ifdef HAVE_ALTIVEC if (gCpuCaps.hasAltiVec) Index: liba52/imdct.c =================================================================== --- liba52/imdct.c (Revision 23529) +++ liba52/imdct.c (Arbeitskopie) @@ -723,7 +723,7 @@ // Stuff below this line is borrowed from libac3 #include "srfftp.h" -#if defined(ARCH_X86) || defined(ARCH_X86_64) +#if (defined(ARCH_X86) || defined(ARCH_X86_64)) && defined(HAVE_ATTRIBUTE_USED) #ifndef HAVE_3DNOW #define HAVE_3DNOW 1 #endif @@ -1071,7 +1071,7 @@ : "%"REG_S, "%"REG_D ); } -#endif // ARCH_X86 || ARCH_X86_64 +#endif // (ARCH_X86 || ARCH_X86_64) && HAVE_ATTRIBUTE_USED void a52_imdct_256(sample_t * data, sample_t * delay, sample_t bias) { @@ -1269,7 +1269,7 @@ ifft128 = ifft128_c; ifft64 = ifft64_c; -#if defined(ARCH_X86) || defined(ARCH_X86_64) +#if (defined(ARCH_X86) || defined(ARCH_X86_64)) && defined(HAVE_ATTRIBUTE_USED) if(mm_accel & MM_ACCEL_X86_SSE) { fprintf (stderr, "Using SSE optimized IMDCT transform\n"); @@ -1288,7 +1288,7 @@ a52_imdct_512 = imdct_do_512_3dnow; } else -#endif // ARCH_X86 || ARCH_X86_64 +#endif // (ARCH_X86 || ARCH_X86_64) && HAVE_ATTRIBUTE_USED #ifdef HAVE_ALTIVEC if (mm_accel & MM_ACCEL_PPC_ALTIVEC) { Index: liba52/resample.c =================================================================== --- liba52/resample.c (Revision 23529) +++ liba52/resample.c (Arbeitskopie) @@ -15,7 +15,7 @@ #include "resample_c.c" -#if defined(ARCH_X86) || defined(ARCH_X86_64) +#if (defined(ARCH_X86) || defined(ARCH_X86_64)) && HAVE_ATTRIBUTE_USED #include "resample_mmx.c" #endif @@ -26,7 +26,7 @@ void* a52_resample_init(uint32_t mm_accel,int flags,int chans){ void* tmp; -#if defined(ARCH_X86) || defined(ARCH_X86_64) +#if (defined(ARCH_X86) || defined(ARCH_X86_64)) && defined(HAVE_ATTRIBUTE_USED) if(mm_accel&MM_ACCEL_X86_MMX){ tmp=a52_resample_MMX(flags,chans); if(tmp){