LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 858|回复: 1

LFS6.2到BLFS6.1和svn的XORG6.8.2都出现错误

[复制链接]
发表于 2006-12-26 14:56:46 | 显示全部楼层 |阅读模式
LFS6.2到BLFS6.1和svn的XORG6.8.2都出现错误
-I../../../include/fonts -I../../../programs/Xserver/hw/xfree86/common               -I../../../programs/Xserver/render -I../../../include/extensions -I../../../programs/Xserver/Xext  -I../../.. -I../../../exports/include   -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L            -D_POSIX_SOURCE -D_XOPEN_SOURCE                          -D_BSD_SOURCE -D_SVID_SOURCE                             -D_GNU_SOURCE               -DSHAPE -DXINPUT -DXKB -DLBX -DXAPPGROUP        -DXCSECURITY -DTOGCUP   -DXF86BIGFONT -DDPMSExtension    -DPIXPRIV -DPANORAMIX   -DRENDER -DRANDR    -DXFIXES -DDAMAGE -DCOMPOSITE -DXEVIE    -DGCCUSESGAS -DAVOID_GLYPHBLT -DPIXPRIV -DSINGLEDEPTH                          -DXFreeXDGA -DXvExtension                            -DXFree86LOADER -DDLOPEN_HACK -DXFree86Server                           -DXF86VIDMODE               -DXvMCExtension                          -DSMART_SCHEDULE                                -DBUILDDEBUG -DXResExtension                        -DX_BYTE_ORDER=X_LITTLE_ENDIAN                           -DXORG_VERSION_CURRENT="(((6) * 10000000) + ((8) * 100000) + ((2) * 1000) + 0)" -DNDEBUG   -DFUNCPROTO=15 -DNARROWPROTO  -DIN_MODULE -DXFree86Module   -mmmx -Winline --param inline-unit-growth=10000       --param large-function-growth=10000 -DUSE_GCC34_MMX fbmmx.c
fbmmx.c:37: 警告:指定矢量类型时使用 __attribute__ ((mode)) 已过时
fbmmx.c:37: 警告:改用 __attribute__ ((vector_size))
fbmmx.c:38: 警告:指定矢量类型时使用 __attribute__ ((mode)) 已过时
fbmmx.c:38: 警告:改用 __attribute__ ((vector_size))
fbmmx.c:39: 警告:指定矢量类型时使用 __attribute__ ((mode)) 已过时
fbmmx.c:39: 警告:改用 __attribute__ ((vector_size))
fbmmx.c:41: 警告:ISO C90 不支持 ‘long long’
fbmmx.c:73:20: warning: use of C99 long long integer constant
fbmmx.c:73: 警告:ISO C90 不允许指定子对象的初始值
fbmmx.c:74:21: warning: use of C99 long long integer constant
fbmmx.c:74: 警告:ISO C90 不允许指定子对象的初始值
fbmmx.c:75:21: warning: use of C99 long long integer constant
fbmmx.c:75: 警告:ISO C90 不允许指定子对象的初始值
fbmmx.c:76:22: warning: use of C99 long long integer constant
fbmmx.c:76: 警告:ISO C90 不允许指定子对象的初始值
fbmmx.c:77:20: warning: use of C99 long long integer constant
fbmmx.c:77: 警告:ISO C90 不允许指定子对象的初始值
fbmmx.c:78:20: warning: use of C99 long long integer constant
fbmmx.c:78: 警告:ISO C90 不允许指定子对象的初始值
fbmmx.c:79:20: warning: use of C99 long long integer constant
fbmmx.c:79: 警告:ISO C90 不允许指定子对象的初始值
fbmmx.c:80:21: warning: use of C99 long long integer constant
fbmmx.c:80: 警告:ISO C90 不允许指定子对象的初始值
fbmmx.c:81:21: warning: use of C99 long long integer constant
fbmmx.c:81: 警告:ISO C90 不允许指定子对象的初始值
fbmmx.c:82:21: warning: use of C99 long long integer constant
fbmmx.c:82: 警告:ISO C90 不允许指定子对象的初始值
fbmmx.c:83:21: warning: use of C99 long long integer constant
fbmmx.c:83: 警告:ISO C90 不允许指定子对象的初始值
fbmmx.c:84:25: warning: use of C99 long long integer constant
fbmmx.c:84: 警告:ISO C90 不允许指定子对象的初始值
fbmmx.c:85:34: warning: use of C99 long long integer constant
fbmmx.c:85: 警告:ISO C90 不允许指定子对象的初始值
fbmmx.c:86:30: warning: use of C99 long long integer constant
fbmmx.c:86: 警告:ISO C90 不允许指定子对象的初始值
fbmmx.c:87:30: warning: use of C99 long long integer constant
fbmmx.c:87: 警告:ISO C90 不允许指定子对象的初始值
fbmmx.c:88:30: warning: use of C99 long long integer constant
fbmmx.c:88: 警告:ISO C90 不允许指定子对象的初始值
fbmmx.c: 在函数 ‘negate’ 中:
fbmmx.c:107: 错误:incompatible type for argument 1 of ‘__builtin_ia32_pxor’
fbmmx.c:107: 错误:incompatible type for argument 2 of ‘__builtin_ia32_pxor’
fbmmx.c: 在函数 ‘expand_alpha’ 中:
fbmmx.c:166: 错误:incompatible type for argument 1 of ‘__builtin_ia32_por’
fbmmx.c:166: 错误:incompatible type for argument 2 of ‘__builtin_ia32_por’
fbmmx.c:166: 错误:赋值时类型不兼容
fbmmx.c:168: 错误:incompatible type for argument 1 of ‘__builtin_ia32_por’
fbmmx.c:168: 错误:incompatible type for argument 2 of ‘__builtin_ia32_por’
fbmmx.c:168: 错误:赋值时类型不兼容
fbmmx.c: 在函数 ‘expand_alpha_rev’ 中:
fbmmx.c:181: 错误:incompatible type for argument 1 of ‘__builtin_ia32_por’
fbmmx.c:181: 错误:incompatible type for argument 2 of ‘__builtin_ia32_por’
fbmmx.c:181: 错误:赋值时类型不兼容
fbmmx.c:183: 错误:incompatible type for argument 1 of ‘__builtin_ia32_por’
fbmmx.c:183: 错误:incompatible type for argument 2 of ‘__builtin_ia32_por’
fbmmx.c:183: 错误:赋值时类型不兼容
fbmmx.c: 在函数 ‘invert_colors’ 中:
fbmmx.c:195: 错误:incompatible type for argument 1 of ‘__builtin_ia32_pand’
fbmmx.c:195: 错误:incompatible type for argument 2 of ‘__builtin_ia32_pand’
fbmmx.c:195: 错误:赋值时类型不兼容
fbmmx.c:196: 错误:incompatible type for argument 1 of ‘__builtin_ia32_pand’
fbmmx.c:196: 错误:incompatible type for argument 2 of ‘__builtin_ia32_pand’
fbmmx.c:196: 错误:赋值时类型不兼容
fbmmx.c:197: 错误:incompatible type for argument 1 of ‘__builtin_ia32_pand’
fbmmx.c:197: 错误:incompatible type for argument 2 of ‘__builtin_ia32_pand’
fbmmx.c:197: 错误:赋值时类型不兼容
fbmmx.c:202: 错误:incompatible type for argument 1 of ‘__builtin_ia32_por’
fbmmx.c:202: 错误:incompatible type for argument 2 of ‘__builtin_ia32_por’
fbmmx.c:202: 错误:赋值时类型不兼容
fbmmx.c:203: 错误:incompatible type for argument 1 of ‘__builtin_ia32_por’
fbmmx.c:203: 错误:incompatible type for argument 2 of ‘__builtin_ia32_por’
fbmmx.c:203: 错误:赋值时类型不兼容
fbmmx.c: 在函数 ‘over_rev_non_pre’ 中:
fbmmx.c:237: 错误:incompatible type for argument 1 of ‘__builtin_ia32_por’
fbmmx.c:237: 错误:incompatible type for argument 2 of ‘__builtin_ia32_por’
fbmmx.c: 在函数 ‘expand565’ 中:
fbmmx.c:300: 警告:ISO C90 不允许混合使用声明和代码
fbmmx.c:303: 错误:incompatible type for argument 1 of ‘__builtin_ia32_por’
fbmmx.c:303: 错误:incompatible type for argument 2 of ‘__builtin_ia32_por’
fbmmx.c:303: 错误:赋值时类型不兼容
fbmmx.c:304: 错误:incompatible type for argument 1 of ‘__builtin_ia32_por’
fbmmx.c:304: 错误:incompatible type for argument 2 of ‘__builtin_ia32_por’
fbmmx.c:304: 错误:赋值时类型不兼容
fbmmx.c:305: 错误:incompatible type for argument 1 of ‘__builtin_ia32_pand’
fbmmx.c:305: 错误:incompatible type for argument 2 of ‘__builtin_ia32_pand’
fbmmx.c:305: 错误:赋值时类型不兼容
fbmmx.c: 在函数 ‘pack565’ 中:
fbmmx.c:327: 错误:incompatible type for argument 1 of ‘__builtin_ia32_pand’
fbmmx.c:327: 错误:incompatible type for argument 2 of ‘__builtin_ia32_pand’
fbmmx.c:327: 错误:赋值时类型不兼容
fbmmx.c:328: 错误:incompatible type for argument 1 of ‘__builtin_ia32_pand’
fbmmx.c:328: 错误:incompatible type for argument 2 of ‘__builtin_ia32_pand’
fbmmx.c:328: 错误:赋值时类型不兼容
fbmmx.c:329: 错误:incompatible type for argument 1 of ‘__builtin_ia32_pand’
fbmmx.c:329: 错误:incompatible type for argument 2 of ‘__builtin_ia32_pand’
fbmmx.c:329: 错误:赋值时类型不兼容
fbmmx.c:336: 错误:incompatible type for argument 1 of ‘__builtin_ia32_pand’
fbmmx.c:336: 错误:incompatible type for argument 2 of ‘__builtin_ia32_pand’
fbmmx.c:336: 错误:赋值时类型不兼容
fbmmx.c:338: 错误:incompatible type for argument 1 of ‘__builtin_ia32_pand’
fbmmx.c:338: 错误:incompatible type for argument 2 of ‘__builtin_ia32_pand’
fbmmx.c:338: 错误:赋值时类型不兼容
fbmmx.c:340: 错误:incompatible type for argument 1 of ‘__builtin_ia32_pand’
fbmmx.c:340: 错误:incompatible type for argument 2 of ‘__builtin_ia32_pand’
fbmmx.c:340: 错误:赋值时类型不兼容
fbmmx.c:342: 错误:incompatible type for argument 1 of ‘__builtin_ia32_pand’
fbmmx.c:342: 错误:incompatible type for argument 2 of ‘__builtin_ia32_pand’
fbmmx.c:342: 错误:赋值时类型不兼容
fbmmx.c:344: 错误:incompatible type for argument 1 of ‘__builtin_ia32_por’
fbmmx.c:344: 错误:incompatible type for argument 2 of ‘__builtin_ia32_por’
fbmmx.c:344: 错误:赋值时类型不兼容
fbmmx.c:345: 错误:incompatible type for argument 1 of ‘__builtin_ia32_por’
fbmmx.c:345: 错误:incompatible type for argument 2 of ‘__builtin_ia32_por’
fbmmx.c:345: 错误:赋值时类型不兼容
fbmmx.c:347: 错误:incompatible type for argument 1 of ‘__builtin_ia32_por’
fbmmx.c:347: 错误:incompatible type for argument 2 of ‘__builtin_ia32_por’
fbmmx.c: 在函数 ‘fbCompositeSolidMask_nx8x8888mmx’ 中:
fbmmx.c:652: 警告:ISO C90 不支持 ‘long long’
fbmmx.c:695: 警告:ISO C90 不支持 ‘long long’
fbmmx.c: 在函数 ‘fbCompositeSolidMask_nx8x0565mmx’ 中:
fbmmx.c:758: 警告:ISO C90 不支持 ‘long long’
fbmmx.c:818: 警告:ISO C90 不支持 ‘long long’
make[5]: *** [fbmmx.o] 错误 1
make[5]: Leaving directory `/sources/xcbuild/programs/Xserver/fb'
make[4]: *** [fb] 错误 2
make[4]: Leaving directory `/sources/xcbuild/programs/Xserver'
make[3]: *** [all] 错误 2
make[3]: Leaving directory `/sources/xcbuild/programs'
make[2]: *** [all] 错误 2
make[2]: Leaving directory `/sources/xcbuild'
make[1]: *** [World] 错误 2
make[1]: Leaving directory `/sources/xcbuild'
make: *** [World] 错误 2

最后一段的错误信息,是怎么回事阿?
发表于 2007-1-6 15:11:26 | 显示全部楼层
xorg 6.8.2 上fbmmx的问题是GCC4引起的,解决的方法,你可以打这个补丁,补丁源码如下

--- xc/programs/Xserver/fb/fbmmx.c.orig 2005-03-01 19:01:35.401903000 -0500
+++ xc/programs/Xserver/fb/fbmmx.c 2005-03-01 19:01:39.330305792 -0500
@@ -29,6 +29,8 @@

#ifdef RENDER

+#include <mmintrin.h>
+
#include "picturestr.h"
#include "mipict.h"
#include "fbpict.h"
@@ -48,6 +50,10 @@
#define CHECKPOINT()
#endif

+#define mmx_and(a,b) ((Vector1x64)_mm_and_si64((__m64)(a),(__m64)(b)))
+#define mmx_or(a,b) ((Vector1x64)_mm_or_si64((__m64)(a),(__m64)(b)))
+#define mmx_xor(a,b) ((Vector1x64)_mm_xor_si64((__m64)(a),(__m64)(b)))
+
typedef struct
{
ullong mmx_zero;
@@ -102,7 +108,7 @@
static __inline__ Vector4x16
negate (Vector4x16 mask)
{
- return (Vector4x16)__builtin_ia32_pxor (
+ return (Vector4x16)mmx_xor (
(Vector1x64)mask,
(Vector1x64)c.mmx_4x00ff);
}
@@ -163,9 +169,9 @@

t1 = shift ((Vector1x64)pixel, -48);
t2 = shift (t1, 16);
- t1 = __builtin_ia32_por (t1, t2);
+ t1 = mmx_or (t1, t2);
t2 = shift (t1, 32);
- t1 = __builtin_ia32_por (t1, t2);
+ t1 = mmx_or (t1, t2);

return (Vector4x16)t1;
}
@@ -178,9 +184,9 @@
t1 = shift ((Vector1x64)pixel, 48);
t1 = shift (t1, -48);
t2 = shift (t1, 16);
- t1 = __builtin_ia32_por (t1, t2);
+ t1 = mmx_or (t1, t2);
t2 = shift (t1, 32);
- t1 = __builtin_ia32_por (t1, t2);
+ t1 = mmx_or (t1, t2);

return (Vector4x16)t1;
}
@@ -192,15 +198,15 @@

x = y = z = (Vector1x64)pixel;

- x = __builtin_ia32_pand (x, (Vector1x64)c.mmx_ffff0000ffff0000);
- y = __builtin_ia32_pand (y, (Vector1x64)c.mmx_000000000000ffff);
- z = __builtin_ia32_pand (z, (Vector1x64)c.mmx_0000ffff00000000);
+ x = mmx_and (x, (Vector1x64)c.mmx_ffff0000ffff0000);
+ y = mmx_and (y, (Vector1x64)c.mmx_000000000000ffff);
+ z = mmx_and (z, (Vector1x64)c.mmx_0000ffff00000000);

y = shift (y, 32);
z = shift (z, -32);

- x = __builtin_ia32_por (x, y);
- x = __builtin_ia32_por (x, z);
+ x = mmx_or (x, y);
+ x = mmx_or (x, z);

return (Vector4x16)x;
}
@@ -234,7 +240,7 @@
over_rev_non_pre (Vector4x16 src, Vector4x16 dest)
{
Vector4x16 srca = expand_alpha (src);
- Vector4x16 srcfaaa = (Vector4x16)__builtin_ia32_por((Vector1x64)srca, (Vector1x64)c.mmx_full_alpha);
+ Vector4x16 srcfaaa = (Vector4x16)mmx_or((Vector1x64)srca, (Vector1x64)c.mmx_full_alpha);

return over(pix_multiply(invert_colors(src), srcfaaa), srca, dest);
}
@@ -300,9 +306,9 @@
Vector1x64 t1 = shift (p, 36 - 11);
Vector1x64 t2 = shift (p, 16 - 5);

- p = __builtin_ia32_por (t1, p);
- p = __builtin_ia32_por (t2, p);
- p = __builtin_ia32_pand (p, (Vector1x64)c.mmx_565_rgb);
+ p = mmx_or (t1, p);
+ p = mmx_or (t2, p);
+ p = mmx_and (p, (Vector1x64)c.mmx_565_rgb);

pixel = __builtin_ia32_pmullw ((Vector4x16)p, (Vector4x16)c.mmx_565_unpack_multiplier);
return __builtin_ia32_psrlw (pixel, 8);
@@ -324,27 +330,27 @@
Vector1x64 t = (Vector1x64)target;
Vector1x64 r, g, b;

- r = __builtin_ia32_pand (p, (Vector1x64)c.mmx_565_r);
- g = __builtin_ia32_pand (p, (Vector1x64)c.mmx_565_g);
- b = __builtin_ia32_pand (p, (Vector1x64)c.mmx_565_b);
+ r = mmx_and (p, (Vector1x64)c.mmx_565_r);
+ g = mmx_and (p, (Vector1x64)c.mmx_565_g);
+ b = mmx_and (p, (Vector1x64)c.mmx_565_b);

r = shift (r, - (32 - 8) + pos * 16);
g = shift (g, - (16 - 3) + pos * 16);
b = shift (b, - (0 + 3) + pos * 16);

if (pos == 0)
- t = __builtin_ia32_pand (t, (Vector1x64)c.mmx_mask_0);
+ t = mmx_and (t, (Vector1x64)c.mmx_mask_0);
else if (pos == 1)
- t = __builtin_ia32_pand (t, (Vector1x64)c.mmx_mask_1);
+ t = mmx_and (t, (Vector1x64)c.mmx_mask_1);
else if (pos == 2)
- t = __builtin_ia32_pand (t, (Vector1x64)c.mmx_mask_2);
+ t = mmx_and (t, (Vector1x64)c.mmx_mask_2);
else if (pos == 3)
- t = __builtin_ia32_pand (t, (Vector1x64)c.mmx_mask_3);
+ t = mmx_and (t, (Vector1x64)c.mmx_mask_3);

- p = __builtin_ia32_por (r, t);
- p = __builtin_ia32_por (g, p);
+ p = mmx_or (r, t);
+ p = mmx_or (g, p);

- return (Vector4x16)__builtin_ia32_por (b, p);
+ return (Vector4x16)mmx_or (b, p);
}

static __inline__ void
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表