[MPlayer-users] [BUG] Compile with ICC 10.1

Reimar Döffinger Reimar.Doeffinger at stud.uni-karlsruhe.de
Wed Jan 30 20:26:53 CET 2008


Hello,
On Tue, Jan 29, 2008 at 11:57:14PM +0100, Reimar Döffinger wrote:
> On Tue, Jan 29, 2008 at 11:32:49PM +0100, Guillaume POIRIER wrote:
> > On Jan 29, 2008 11:24 PM, Reimar Döffinger
> > <Reimar.Doeffinger at stud.uni-karlsruhe.de> wrote:
> > >
> > > On Tue, Jan 29, 2008 at 10:53:26PM +0100, Guillaume POIRIER wrote:
> > 
> > > > I wasn't compiling with -ipo. I didn't compile with make -jx. :-(This
> > > > problem is still a mystery for me.
> > >
> > > To me it looks like you did not (correctly) apply the patch...
> > 
> > Well it doesn't apply cleanly anymore. May I request an updated
> > version to be posted?
> 
> I do not yet have one, though it should just be a matter of dropping the
> libavc and libswscale parts and instead modify the define in
> libavutil/mem.h

This one works for me with SVN.
If you disable or use and external liba52 you'll probably have to modify
the mp3lib part though.
-------------- next part --------------
Index: libmpcodecs/vf_fspp.c
===================================================================
--- libmpcodecs/vf_fspp.c	(revision 25935)
+++ libmpcodecs/vf_fspp.c	(working copy)
@@ -702,7 +702,7 @@
 
 #ifdef HAVE_MMX
 
-static uint64_t attribute_used __attribute__((aligned(8))) temps[4];//!!
+uint64_t attribute_used __attribute__((aligned(8))) temps[4];//!!
 
 DECLARE_ASM_CONST(8, uint64_t, MM_FIX_0_382683433)=FIX64(0.382683433, 14); 
 DECLARE_ASM_CONST(8, uint64_t, MM_FIX_0_541196100)=FIX64(0.541196100, 14); 
Index: liba52/imdct.c
===================================================================
--- liba52/imdct.c	(revision 25935)
+++ liba52/imdct.c	(working copy)
@@ -73,7 +73,7 @@
 	7, 23, 39, 55, 71, 87, 103, 119, 15, 31, 47,  63, 79, 95, 111, 127
 }; 
 
-static uint8_t attribute_used bit_reverse_512[] = {
+uint8_t attribute_used bit_reverse_512[] = {
 	0x00, 0x40, 0x20, 0x60, 0x10, 0x50, 0x30, 0x70, 
 	0x08, 0x48, 0x28, 0x68, 0x18, 0x58, 0x38, 0x78, 
 	0x04, 0x44, 0x24, 0x64, 0x14, 0x54, 0x34, 0x74, 
@@ -121,19 +121,19 @@
 #if defined(ARCH_X86) || defined(ARCH_X86_64)
 // NOTE: SSE needs 16byte alignment or it will segfault 
 // 
-static float __attribute__((aligned(16))) sseSinCos1c[256];
-static float __attribute__((aligned(16))) sseSinCos1d[256];
-static float attribute_used __attribute__((aligned(16))) ps111_1[4]={1,1,1,-1};
+float __attribute__((aligned(16))) sseSinCos1c[256];
+float __attribute__((aligned(16))) sseSinCos1d[256];
+float attribute_used __attribute__((aligned(16))) ps111_1[4]={1,1,1,-1};
 //static float __attribute__((aligned(16))) sseW0[4];
-static float __attribute__((aligned(16))) sseW1[8];
-static float __attribute__((aligned(16))) sseW2[16];
-static float __attribute__((aligned(16))) sseW3[32];
-static float __attribute__((aligned(16))) sseW4[64];
-static float __attribute__((aligned(16))) sseW5[128];
-static float __attribute__((aligned(16))) sseW6[256];
-static float __attribute__((aligned(16))) *sseW[7]=
+float __attribute__((aligned(16))) sseW1[8];
+float __attribute__((aligned(16))) sseW2[16];
+float __attribute__((aligned(16))) sseW3[32];
+float __attribute__((aligned(16))) sseW4[64];
+float __attribute__((aligned(16))) sseW5[128];
+float __attribute__((aligned(16))) sseW6[256];
+float __attribute__((aligned(16))) *sseW[7]=
 	{NULL /*sseW0*/,sseW1,sseW2,sseW3,sseW4,sseW5,sseW6};
-static float __attribute__((aligned(16))) sseWindow[512];
+float __attribute__((aligned(16))) sseWindow[512];
 #endif
 
 /* Root values for IFFT */
Index: liba52/resample_mmx.c
===================================================================
--- liba52/resample_mmx.c	(revision 25935)
+++ liba52/resample_mmx.c	(working copy)
@@ -31,10 +31,10 @@
 #include "a52_internal.h"
 
 
-static uint64_t attribute_used __attribute__((aligned(8))) magicF2W= 0x43c0000043c00000LL;
-static uint64_t attribute_used __attribute__((aligned(8))) wm1010= 0xFFFF0000FFFF0000LL;
-static uint64_t attribute_used __attribute__((aligned(8))) wm0101= 0x0000FFFF0000FFFFLL;
-static uint64_t attribute_used __attribute__((aligned(8))) wm1100= 0xFFFFFFFF00000000LL;
+uint64_t attribute_used __attribute__((aligned(8))) magicF2W= 0x43c0000043c00000LL;
+//uint64_t attribute_used __attribute__((aligned(8))) wm1010= 0xFFFF0000FFFF0000LL;
+uint64_t attribute_used __attribute__((aligned(8))) wm0101= 0x0000FFFF0000FFFFLL;
+uint64_t attribute_used __attribute__((aligned(8))) wm1100= 0xFFFFFFFF00000000LL;
 
 static int a52_resample_MONO_to_5_MMX(float * _f, int16_t * s16){
     int32_t * f = (int32_t *) _f;
Index: mp3lib/decode_i586.c
===================================================================
--- mp3lib/decode_i586.c	(revision 25935)
+++ mp3lib/decode_i586.c	(working copy)
@@ -33,9 +33,9 @@
 #include "mangle.h"
 #define real float /* ugly - but only way */
 
-static int attribute_used buffs[1088]={0};
-static int attribute_used bo=1;
-static int attribute_used saved_ebp=0;
+int attribute_used buffs[1088]={0};
+int attribute_used bo=1;
+int attribute_used saved_ebp=0;
 
 int synth_1to1_pent(real *bandPtr, int channel, short *samples)
 {
Index: mp3lib/dct64_3dnow.c
===================================================================
--- mp3lib/dct64_3dnow.c	(revision 25935)
+++ mp3lib/dct64_3dnow.c	(working copy)
@@ -13,7 +13,7 @@
 #include "mangle.h"
 
 static unsigned long long int attribute_used __attribute__((aligned(8))) x_plus_minus_3dnow = 0x8000000000000000ULL;
-static float attribute_used plus_1f = 1.0;
+float attribute_used plus_1f = 1.0;
 
 void dct64_MMX_3dnow(short *a,short *b,real *c)
 {
Index: mp3lib/decode_mmx.c
===================================================================
--- mp3lib/decode_mmx.c	(revision 25935)
+++ mp3lib/decode_mmx.c	(working copy)
@@ -12,8 +12,8 @@
 #define real float /* ugly - but only way */
 
 extern void (*dct64_MMX_func)(short*, short*, real*);
-static unsigned long long attribute_used __attribute__((aligned(8))) null_one = 0x0000ffff0000ffffULL;
-static unsigned long long attribute_used __attribute__((aligned(8))) one_null = 0xffff0000ffff0000ULL;
+unsigned long long attribute_used __attribute__((aligned(8))) null_one = 0x0000ffff0000ffffULL;
+unsigned long long attribute_used __attribute__((aligned(8))) one_null = 0xffff0000ffff0000ULL;
 unsigned int __attribute__((aligned(16))) costab_mmx[] =
 {
 	1056974725,
Index: libswscale/swscale.c
===================================================================
--- libswscale/swscale.c	(revision 25935)
+++ libswscale/swscale.c	(working copy)
@@ -189,10 +189,10 @@
 DECLARE_ASM_CONST(8, uint64_t, bm11111000)=0xFFFFFFFFFF000000LL;
 DECLARE_ASM_CONST(8, uint64_t, bm01010101)=0x00FF00FF00FF00FFLL;
 
-static volatile uint64_t attribute_used __attribute__((aligned(8))) b5Dither;
-static volatile uint64_t attribute_used __attribute__((aligned(8))) g5Dither;
-static volatile uint64_t attribute_used __attribute__((aligned(8))) g6Dither;
-static volatile uint64_t attribute_used __attribute__((aligned(8))) r5Dither;
+volatile uint64_t attribute_used __attribute__((aligned(8))) b5Dither;
+volatile uint64_t attribute_used __attribute__((aligned(8))) g5Dither;
+volatile uint64_t attribute_used __attribute__((aligned(8))) g6Dither;
+volatile uint64_t attribute_used __attribute__((aligned(8))) r5Dither;
 
 static uint64_t __attribute__((aligned(8))) dither4[2]={
         0x0103010301030103LL,
Index: libavcodec/i386/flacdsp_mmx.c
===================================================================
--- libavcodec/i386/flacdsp_mmx.c	(revision 11670)
+++ libavcodec/i386/flacdsp_mmx.c	(working copy)
@@ -20,8 +20,9 @@
  */
 
 #include "dsputil_mmx.h"
+#include "common.h"
 
-static void apply_welch_window_sse2(const int32_t *data, int len, double *w_data)
+static void av_noinline apply_welch_window_sse2(const int32_t *data, int len, double *w_data)
 {
     double c = 2.0 / (len-1.0);
     int n2 = len>>1;
Index: libavutil/mem.h
===================================================================
--- libavutil/mem.h	(revision 11670)
+++ libavutil/mem.h	(working copy)
@@ -26,13 +26,13 @@
 #ifndef FFMPEG_MEM_H
 #define FFMPEG_MEM_H
 
-#ifdef __GNUC__
+//#ifdef __GNUC__
   #define DECLARE_ALIGNED(n,t,v)       t v __attribute__ ((aligned (n)))
-  #define DECLARE_ASM_CONST(n,t,v)     static const t v attribute_used __attribute__ ((aligned (n)))
-#else
-  #define DECLARE_ALIGNED(n,t,v)      __declspec(align(n)) t v
-  #define DECLARE_ASM_CONST(n,t,v)    __declspec(align(n)) static const t v
-#endif
+  #define DECLARE_ASM_CONST(n,t,v)     const t v attribute_used __attribute__ ((aligned (n)))
+//#else
+//  #define DECLARE_ALIGNED(n,t,v)      __declspec(align(n)) t v
+//  #define DECLARE_ASM_CONST(n,t,v)    __declspec(align(n)) static const t v
+//#endif
 
 /**
  * Allocate a block of \p size bytes with alignment suitable for all


More information about the MPlayer-users mailing list