This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
Inconsistency detected by ld.so big-endian libraries.
- From: "Afzal, Naeem M" <naeem dot m dot afzal at intel dot com>
- To: <libc-alpha at sources dot redhat dot com>
- Date: Sun, 23 Mar 2003 18:44:48 -0800
- Subject: Inconsistency detected by ld.so big-endian libraries.
I am having some strange problem with using glibc. I compiled a cross compiler for armv5b in big endian mode. I can build a kernel and bootup. I also create a root filesystem but when I try to use a filesystem for the target machine, I get this message for any dynamic binary I try to run. So the first binary init fails saying:
Inconsistency detected by ld.so: dl-version.c: 228: _dl_check_map_version Assertion 'needed != ((void *)0)' faild!
Binutils 2.13.2.1
Gcc 3.2.1
Glibc 2.2.5
Kernel 2.4.19-rmk6
Host: Redhat 7.3
I did try to do ldconfig on these shared libraries and I get on all share libraries that
" ...*.so.* is not a share object file (Type: 768)."
This is part of the script that I used to compile libraries for toolchain and for target filesystem:
################
##################
# compile glibc for toolchain
##############
rm -rf ${GLIBC}-bld
tar zxvf ${DNLD}/${GLIBC}.tar.gz
tar -C $GLIBC -zxvf ${DNLD}/${GLIBC_THREADS}.tar.gz
mkdir -p ${GLIBC}-bld
perl -pi -e 's/i386/arm*)\n\tlibc_cv_gcc_unwind_find_fde=yes\n\tarch_minimum_kernel=2.0.10\n\t;;\n i386/' ${GLIBC}/sysdeps/unix/sysv/linux/configure
perl -pi -e 's/weak_alias \(__old_sys_nerr/\/\/ $&/' ${GLIBC}/sysdeps/unix/sysv/linux/arm/errlist.c
cd ${GLIBC}-bld
echo "COMPILE GLIBC"
AR=xscale_be-ar RANLIB=xscale_be-ranlib LD=xscale_be-ld CC="xscale_be-gcc -mbig-endian" ../${GLIBC}/configure $TGT --build=$HOST --with-headers=$KERNEL/include --enable-add-ons=linuxthreads --enable-shared --prefix=$PREFIX --with-cpu=xscale
make
make install
cd ..
pushd ${PREFIX}/${TGT}/lib
ln -s ${PREFIX}/lib/* .
popd
# target libraries
mkdir -p $TGT_ROOT
cp -f ${PREFIX}/VERSIONS ${TGT_ROOT}/VERSIONS
############
# glibc for target root filesystem
############
###########
rm -rf $GLIBC ${GLIBC}-bld
tar zxvf ${DNLD}/${GLIBC}.tar.gz
tar -C $GLIBC -zxvf ${DNLD}/${GLIBC_THREADS}.tar.gz
mkdir -p ${GLIBC}-bld
perl -pi -e 's/i386/arm*)\n\tlibc_cv_gcc_unwind_find_fde=yes\n\tarch_minimum_kernel=2.0.10\n\t;;\n i386/' ${GLIBC}/sysdeps/unix/sysv/linux/configure
perl -pi -e 's/weak_alias \(__old_sys_nerr/\/\/ $&/' ${GLIBC}/sysdeps/unix/sysv/linux/arm/errlist.c
cd ${GLIBC}-bld
OLDPATH=$PATH
#PATH=$TC_2_95_3:$PATH
AR=xscale_be-ar RANLIB=xscale_be-ranlib LD=xscale_be-ld CC="xscale_be-gcc -mbig-endian" ../${GLIBC}/configure --host=$TGT --build=$HOST --with-headers=$KERNEL/include --enable-add-ons=linuxthreads --enable-shared --prefix="" --disable-profile --with-cpu=xscale
make
make install_root=${TGT_ROOT} install
pushd $TGT_ROOT
PATH=$OLDPATH
rm -rf include info libexec share
cd bin
rm -f gencat getent getconf glibcbug iconv locale* pcprofiledump rpcgen sprof
cd ../sbin
rm -f iconvconfig nscd* rpcinfo sln zdump zic
cd ../lib
rm -f *.o
rm -f `ls *.a | grep -v libc_notshared.a`
rm -rf gconv
popd
cd ..
rm -rf $GLIBC ${GLIBC}-bld
####################################################################
I am basically running out of ideas, could someone help me out with this one. Please point to me to the right mailing list if this is not where I am suppose to be asking this question.
Thanks
naeem