|
|

楼主 |
发表于 2007-1-8 16:04:07
|
显示全部楼层
多谢版主,我在 bugs.gentoo.org 上搜索到了 mplayer 的解决方法,现已解决(我用了sse 的 USE,现在补加 mmx 就好了),
但 zhcon 的问题依然存在,在网上看了些资料,也找到一个“解决方法”的,但作者只列出一些代码,没有做相应解释,我基础有限,看不明白,向版主请教,
另外,eix zhcon 发现要安装的 zhcon 是 0.2.6 版的,但发现下载源码是 0.2.5 的,还有一个 0.2.5 to 0.2.6 的 diff.gz 文件,没有 0.2.6 的,不知道问题是不是在这里,
以下是网上的引文,我用的是 x86,内核版本号和他的相同,gcc 不确定是不是 4.1.1,环境相差不大,但错误信息一样,希望这个引文对解决问题有所帮助:
zhcon0.2.6编译出错
Friday, 24. November 2006, 15:09:21
if i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I.. -DSYSCONF_DIR=\"/etc\" -O2 -march=athlon-xp -pipe -fomit-frame-pointer -fvisibility-inlines-hidden -funsigned-char -O2 -march=i686 -DNDEBUG -Wall -MT zhcon-inputserver.o -MD -MP -MF ".deps/zhcon-inputserver.Tpo" -c -o zhcon-inputserver.o `test -f 'inputserver.cpp' || echo './'`inputserver.cpp; \
then mv -f ".deps/zhcon-inputserver.Tpo" ".deps/zhcon-inputserver.Po"; else rm -f ".deps/zhcon-inputserver.Tpo"; exit 1; fi
/usr/include/linux/wait.h: In function ‘int wait_on_bit(void*, int, int (*)(void*), unsigned int)’:
/usr/include/linux/wait.h:376: 错误:从类型 ‘void*’ 到类型 ‘const volatile long unsigned int*’ 的转换无效
/usr/include/linux/wait.h:376: 错误: 初始化实参 2,属于 ‘int constant_test_bit(int, const volatile long unsigned int*)’
/usr/include/linux/wait.h:376: 错误:从类型 ‘void*’ 到类型 ‘const volatile long unsigned int*’ 的转换无效
/usr/include/linux/wait.h:376: 错误: 初始化实参 2,属于 ‘int variable_test_bit(int, const volatile long unsigned int*)’
/usr/include/linux/wait.h: In function ‘int wait_on_bit_lock(void*, int, int (*)(void*), unsigned int)’:
/usr/include/linux/wait.h:400: 错误:从类型 ‘void*’ 到类型 ‘volatile long unsigned int*’ 的转换无效
/usr/include/linux/wait.h:400: 错误: 初始化实参 2,属于 ‘int test_and_set_bit(int, volatile long unsigned int*)’
make[3]: *** [zhcon-inputmanager.o] 错误 1
make[3]: *** 正在等待未完成的任务....
make[3]: Leaving directory `/var/tmp/portage/app-i18n/zhcon-0.2.6/work/zhcon-0.2.5/src'
make[2]: *** [all-recursive] 错误 1
make[2]: Leaving directory `/var/tmp/portage/app-i18n/zhcon-0.2.6/work/zhcon-0.2.5/src'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/var/tmp/portage/app-i18n/zhcon-0.2.6/work/zhcon-0.2.5'
make: *** [all] 错误 2
!!! ERROR: app-i18n/zhcon-0.2.6 failed.
Call stack:
ebuild.sh, line 1568: Called dyn_compile
ebuild.sh, line 937: Called src_compile
ebuild.sh, line 608: Called die
!!! emake failed
!!! If you need support, post the topmost build error, and the call stack if relevant.
gcc4.1.1 gentoo-source-2.6.18
解决方法:
--- /usr/include/linux/wait.h2005-08-16 17:51:20.000000000 +0800
+++ /tmp/wait.h2005-08-16 17:50:57.000000000 +0800
@@ -373,7 +373,7 @@
static inline int wait_on_bit(void *word, int bit,
int (*action)(void *), unsigned mode)
{
-if (!test_bit(bit, word))
+if (!test_bit(bit, (const volatile long unsigned int *)word))
return 0;
return out_of_line_wait_on_bit(word, bit, action, mode);
}
@@ -397,7 +397,7 @@
static inline int wait_on_bit_lock(void *word, int bit,
int (*action)(void *), unsigned mode)
{
-if (!test_and_set_bit(bit, word))
+if (!test_and_set_bit(bit, (volatile long unsigned int *)word))
return 0;
return out_of_line_wait_on_bit_lock(word, bit, action, mode);
}
看近来的帖子,出现类似的错误似乎挺多的, |
|