Submitted By:            Randy McMurchy <randy_at_linuxfromscratch_dot_org>
Date:                    2005-08-27
Initial Package Version: 1.5.4
Upstream Status:         Unknown
Origin:                  Gentoo patch repo
Description:             Fixes GCC build issues to allow compiling with all
                         versions of GCC up to GCC-4.0.1

$LastChangedBy: randy $
$Date: 2005-08-26 23:58:28 -0500 (Fri, 26 Aug 2005) $


diff -Naur libmpeg3-1.5.4-orig/video/output.c libmpeg3-1.5.4/video/output.c
--- libmpeg3-1.5.4-orig/video/output.c	2003-11-07 21:32:32.000000000 +0000
+++ libmpeg3-1.5.4/video/output.c	2005-08-27 04:14:40.000000000 +0000
@@ -6,21 +6,21 @@
 
 static long long mpeg3_MMX_0 = 0L;
 static unsigned long  mpeg3_MMX_10w[]         = {0x00100010, 0x00100010};                     /*dd    00010 0010h, 000100010h */
-static unsigned long  mpeg3_MMX_80w[]         = {0x00800080, 0x00800080};                     /*dd    00080 0080h, 000800080h */
+static unsigned long  __attribute__((used)) mpeg3_MMX_80w[]         = {0x00800080, 0x00800080};                     /*dd    00080 0080h, 000800080h */
 
-static unsigned long  mpeg3_MMX_00FFw[]       = {0x00ff00ff, 0x00ff00ff};                     /*dd    000FF 00FFh, 000FF00FFh */
+static unsigned long  __attribute__((used)) mpeg3_MMX_00FFw[]       = {0x00ff00ff, 0x00ff00ff};                     /*dd    000FF 00FFh, 000FF00FFh */
 
-static unsigned short mpeg3_MMX_Ublucoeff[]   = {0x81, 0x81, 0x81, 0x81};                     /*dd    00081 0081h, 000810081h */
-static unsigned short mpeg3_MMX_Vredcoeff[]   = {0x66, 0x66, 0x66, 0x66};                     /*dd    00066 0066h, 000660066h */
+static unsigned short __attribute__((used)) mpeg3_MMX_Ublucoeff[]   = {0x81, 0x81, 0x81, 0x81};                     /*dd    00081 0081h, 000810081h */
+static unsigned short __attribute__((used)) mpeg3_MMX_Vredcoeff[]   = {0x66, 0x66, 0x66, 0x66};                     /*dd    00066 0066h, 000660066h */
 
-static unsigned short mpeg3_MMX_Ugrncoeff[]   = {0xffe8, 0xffe8, 0xffe8, 0xffe8};             /*dd    0FFE7 FFE7h, 0FFE7FFE7h */
-static unsigned short mpeg3_MMX_Vgrncoeff[]   = {0xffcd, 0xffcd, 0xffcd, 0xffcd};             /*dd    0FFCC FFCCh, 0FFCCFFCCh */
+static unsigned short __attribute__((used)) mpeg3_MMX_Ugrncoeff[]   = {0xffe8, 0xffe8, 0xffe8, 0xffe8};             /*dd    0FFE7 FFE7h, 0FFE7FFE7h */
+static unsigned short __attribute__((used)) mpeg3_MMX_Vgrncoeff[]   = {0xffcd, 0xffcd, 0xffcd, 0xffcd};             /*dd    0FFCC FFCCh, 0FFCCFFCCh */
 
-static unsigned short mpeg3_MMX_Ycoeff[]      = {0x4a, 0x4a, 0x4a, 0x4a};                     /*dd    0004A 004Ah, 0004A004Ah */
+static unsigned short __attribute__((used)) mpeg3_MMX_Ycoeff[]      = {0x4a, 0x4a, 0x4a, 0x4a};                     /*dd    0004A 004Ah, 0004A004Ah */
 
-static unsigned short mpeg3_MMX_redmask[]     = {0xf800, 0xf800, 0xf800, 0xf800};             /*dd    07c00 7c00h, 07c007c00h */
+static unsigned short __attribute__((used)) mpeg3_MMX_redmask[]     = {0xf800, 0xf800, 0xf800, 0xf800};             /*dd    07c00 7c00h, 07c007c00h */
 
-static unsigned short mpeg3_MMX_grnmask[]     = {0x7e0, 0x7e0, 0x7e0, 0x7e0};                 /*dd    003e0 03e0h, 003e003e0h */
+static unsigned short __attribute__((used)) mpeg3_MMX_grnmask[]     = {0x7e0, 0x7e0, 0x7e0, 0x7e0};                 /*dd    003e0 03e0h, 003e003e0h */
 
 static unsigned char mpeg3_601_to_rgb[256];
 
@@ -207,12 +207,12 @@
 		);
 }
 
-static unsigned long long  mpeg3_MMX_U_80 = 0x0000008000800000LL;
-static unsigned long long  mpeg3_MMX_V_80 = 0x0000000000800080LL;
-static long long  mpeg3_MMX_U_COEF        = 0x00000058ffd30000LL;
-static long long  mpeg3_MMX_V_COEF        = 0x00000000ffea006fLL;
-static long long  mpeg3_MMX_601_Y_COEF    = 0x0000004800480048LL;
-static long long  mpeg3_MMX_601_Y_DIFF    = 0x0000000000000010LL;
+static unsigned long long  __attribute__((used)) mpeg3_MMX_U_80 = 0x0000008000800000LL;
+static unsigned long long  __attribute__((used)) mpeg3_MMX_V_80 = 0x0000000000800080LL;
+static long long  __attribute__((used)) mpeg3_MMX_U_COEF        = 0x00000058ffd30000LL;
+static long long  __attribute__((used)) mpeg3_MMX_V_COEF        = 0x00000000ffea006fLL;
+static long long  __attribute__((used)) mpeg3_MMX_601_Y_COEF    = 0x0000004800480048LL;
+static long long  __attribute__((used)) mpeg3_MMX_601_Y_DIFF    = 0x0000000000000010LL;
 
 inline void mpeg3_bgra32_mmx(unsigned long y, 
 		unsigned long u, 
@@ -297,10 +297,10 @@
 : "r" (&y), "r" (&u), "r" (&v), "r" (output));
 }
 
-static unsigned long long  mpeg3_MMX_U_80_RGB    = 0x0000000000800080LL;
-static unsigned long long  mpeg3_MMX_V_80_RGB    = 0x0000008000800000LL;
-static long long  mpeg3_MMX_U_COEF_RGB    = 0x00000000ffd30058LL;
-static long long  mpeg3_MMX_V_COEF_RGB    = 0x0000006fffea0000LL;
+static unsigned long long  __attribute__((used)) mpeg3_MMX_U_80_RGB    = 0x0000000000800080LL;
+static unsigned long long  __attribute__((used)) mpeg3_MMX_V_80_RGB    = 0x0000008000800000LL;
+static long long  __attribute__((used)) mpeg3_MMX_U_COEF_RGB    = 0x00000000ffd30058LL;
+static long long  __attribute__((used)) mpeg3_MMX_V_COEF_RGB    = 0x0000006fffea0000LL;
 
 inline void mpeg3_rgba32_mmx(unsigned long y, 
 		unsigned long u, 
@@ -497,7 +497,7 @@
 	*data++ = 0;
 
 #define STORE_PIXEL_RGB565 \
-	*((unsigned short*)data)++ = \
+	*data++ = \
 		((CLIP(r_l) & 0xf8) << 8) | \
 		((CLIP(g_l) & 0xfc) << 3) | \
 		((CLIP(b_l) & 0xf8) >> 3);
diff -Naur libmpeg3-1.5.4-orig/video/reconstruct.c libmpeg3-1.5.4/video/reconstruct.c
--- libmpeg3-1.5.4-orig/video/reconstruct.c	2003-10-14 07:54:14.000000000 +0000
+++ libmpeg3-1.5.4/video/reconstruct.c	2005-08-27 04:14:40.000000000 +0000
@@ -271,8 +271,8 @@
 }
 
 #else  // HAVE_3DNOW
-	static long long ADD_1	=	0x0101010101010101LL;
-	static long long MASK_AND = 0x7f7f7f7f7f7f7f7fLL;
+	static long long __attribute__((used)) ADD_1	= 0x0101010101010101LL;
+	static long long __attribute__((used)) MASK_AND = 0x7f7f7f7f7f7f7f7fLL;
 #endif
 
 static inline void rec_mmx(unsigned char *s, unsigned char *d, int lx2, int h)
diff -Naur libmpeg3-1.5.4-orig/video/slice.c libmpeg3-1.5.4/video/slice.c
--- libmpeg3-1.5.4-orig/video/slice.c	2003-10-14 07:54:14.000000000 +0000
+++ libmpeg3-1.5.4/video/slice.c	2005-08-27 04:14:40.000000000 +0000
@@ -6,7 +6,7 @@
 
 #define CLIP(x)  ((x) >= 0 ? ((x) < 255 ? (x) : 255) : 0)
 
-static unsigned long long MMX_128 = 0x80008000800080LL;
+static unsigned long long __attribute__((used)) MMX_128 = 0x80008000800080LL;
 
 int mpeg3_new_slice_buffer(mpeg3_slice_buffer_t *slice_buffer)
 {
