scratchbox出现Inconsistency detected by ld.so..
时间:2009-03-29 来源:hipboi
以前scratchbox是可以正常使用的,可是今天出现了下面的问题
$/scratchbox/login
Inconsistency detected by ld.so: rtld.c: 1192: dl_main: Assertion `(void *) ph->p_vaddr == _rtld_local._dl_sysinfo_dso’ failed!
You dont have active target in scratchbox chroot.
Please create one by running "sb-menu" before continuing
Welcome to Scratchbox, the cross-compilation toolkit!
Use ’sb-menu’ to change your compilation target.
See /scratchbox/doc/ for documentation.
Inconsistency detected by ld.so: rtld.c: 1192: dl_main: Assertion `(void *) ph->p_vaddr == _rtld_local._dl_sysinfo_dso’ failed!
Inconsistency detected by ld.so: rtld.c: 1192: dl_main: Assertion `(void *) ph->p_vaddr == _rtld_local._dl_sysinfo_dso’ failed!
Inconsistency detected by ld.so: rtld.c: 1192: dl_main: Assertion `(void *) ph->p_vaddr == _rtld_local._dl_sysinfo_dso’ failed!
重新装了scratchbox也还是不行
以为是更新了内核的原因,于是下了一个老的RT内核,2.27.3
还是上面的错误
google了一下
发现
www.scratchbox.org/wiki/HostDistributions
有讲到
However some Linux distributions have interesting issues:
vdso (Virtual Dynamic Shared Object)
-
Most modern kernels (at least Fedora core and Debian lenny) seem to have this option on. It breaks Scratchbox. You cannot even install SB with this option on.
Solution (64-bit kernels): add "vdso32=0" to kernel boot command line
Solution (32-bit Fedora 7, Debian lenny and newer): echo 0 >/proc/sys/vm/vdso_enabled
Solution (32-bit older): echo 0 > /proc/sys/kernel/vdso
这里
www.scratchbox.org/wiki/DisablingVdso
With 64-bit kernels (e.g. a Debian kernel built for amd64 architecture), VDSO can only be disabled for 32-bit applications, but that is all that is needed for Scratchbox.
This can only be specified using a kernel boot command line option:
vdso32=0
There is no way to dynamically disable VDSO after boot with a 64-bit kernel.
64位的不能在启动之后动态的disable VDSO,只能在boot command line加一句vdso32=0
重启,再来,终于是login到Scratchbox