This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
ncurses-5.3 fails on "make install" when cross-compiling because it runs $srcdir/shlib unconditionally. Here's a log after setting -x in run_tic.sh. It totally notices that CC != HOSTCC, but then it goes and tries to use the shared libraries we just compiled (d'oh!):
+ test gcc = /opt/cegl-2.0/powerpc-750-linux-gnu/gcc-3.3.1-glibc-2.3.2/bin/powerpc-750-linux-gnu-gcc ... + ../../ncurses-5.3/misc/shlib tic -s -o /tmp/ncurses/usr/share/terminfo ../../ncurses-5.3/misc/terminfo.src tic: error while loading shared libraries: ../lib/libncurses.so.5: ELF file data encoding not little-endian
I verified that this still happens even after applying all the latest incremental patches.
Here's a patch that seems to fix the problem for me, followed by a script to reproduce the problem and the fix. I'm cc'ing crossgcc because I have a funny feeling the bug-ncurses mailing list is ignoring me because of a spam filter, and I wanted to get the word out about the issue. - Dan
--- ncurses-5.3/misc/run_tic.in.old Thu Aug 28 20:20:43 2003 +++ ncurses-5.3/misc/run_tic.in Thu Aug 28 20:22:37 2003 @@ -66,6 +67,10 @@ *) PATH=../progs:../lib:${DESTDIR}$bindir:$PATH ;; esac export PATH +SHLIB=$srcdir/shlib +else +# Cross-compiling, so don't set PATH or run shlib. +SHLIB= fi
# @@ -111,7 +116,7 @@ problems for older ncurses applications.
EOF -if ( $srcdir/shlib tic$suffix -s -o $TERMINFO $source ) +if ( $SHLIB tic$suffix -s -o $TERMINFO $source ) then echo '** built new '$TERMINFO else
and here's a full-on script that demonstrates how to download, cross-compile, and install the latest ncurses (it assumes the above patch is saved as run_tic.patch):
#!/bin/sh set -x set -e
TARGET=powerpc-750-linux-gnu CROSSBIN=/opt/cegl-2.0/${TARGET}/gcc-3.3.1-glibc-2.3.2/bin
# If you uncomment the following, you don't need to override CC, CXX, AR, LD, RANLIB below # because autoconf will look for each tool with a ${TARGET}- prefix #PATH="$PATH":$CROSSBIN #export PATH
# Fetch ncurses and rollup patch (patch needed to cross-compile!) wget -c ftp://invisible-island.net/ncurses/ncurses-5.3.tar.gz wget -c ftp://invisible-island.net/ncurses/5.3/ncurses-5.3-20030719-patch.sh.bz2 # Fetch incremental patches in case they have anything important wget -c ftp://invisible-island.net/ncurses/5.3/ncurses-5.3-20030726.patch.gz wget -c ftp://invisible-island.net/ncurses/5.3/ncurses-5.3-20030802.patch.gz wget -c ftp://invisible-island.net/ncurses/5.3/ncurses-5.3-20030809.patch.gz wget -c ftp://invisible-island.net/ncurses/5.3/ncurses-5.3-20030816.patch.gz wget -c ftp://invisible-island.net/ncurses/5.3/ncurses-5.3-20030823.patch.gz
# Patch rm -rf ncurses-5.3 tar -xzvf ncurses-5.3.tar.gz cd ncurses-5.3 bzcat ../ncurses-5.3-20030719-patch.sh.bz2 | patch -p1 for p in ../ncurses-5.3-2003*.patch.gz; do zcat $p | patch -p1 done patch -p1 < ../run_tic.patch cd ..
# Configure and build rm -rf ncurses-demo mkdir ncurses-demo cd ncurses-demo # Note: in previous releases, had to specify --target. Now it's --host for some reason. ../ncurses-5.3/configure BUILD_CC=gcc CC=${CROSS}gcc CXX=${CROSS}g++ AR=${CROSS}ar LD=${CROSS}ld RANLIB=${CROSS}ranlib --host=$TARGET --with-shared make
# Install, as if /tmp/ncurses was the root directory of our target system image rm -rf /tmp/ncurses mkdir /tmp/ncurses make DESTDIR=/tmp/ncurses install
-- Dan Kegel http://www.kegel.com http://counter.li.org/cgi-bin/runscript/display-person.cgi?user=78045
------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |