I'm trying to cross compile zsh with my i386-pc-linux-uclibc toolchain, so far ncurses and coreutils have been built just right. When it comes to zsh it fails with a lot of undefined references to tgetent,tgetstr,tgetflag,tgetnum,tputs and tgoto which are declared in <term.h> and defined in libcurses.so(.5.5). When adding LIBS=-lcurses and LDFLAGS=-L/mnt/temp/lib to the Makefile of the zsh source it compiles fine after invoking make in the source directory. I'm not sure if this is zsh or ebuild related. Probably i'm just screwing things up. :) Thanks for the help in advance. Here the steps i tried: emerge crossdev USE="-*" crossdev -t i386-pc-linux-uclibc export SYSROOT=/usr/i386-pc-linux-uclibc mkdir -p $SYSROOT/etc/portage/profile cp /etc/make.globals $SYSROOT/etc ln -sn /usr/portage/profiles/uclibc/x86 $SYSROOT/etc/make.profile cat > $SYSROOT/etc/make.conf << EOF ARCH="i386" CHOST="i386-pc-linux-uclibc" ACCEPT_KEYWORDS="x86" CFLAGS="-Os" CXXFLAGS="${CFLAGS}" EOF cat > /usr/local/bin/i386-pc-linux-uclibc-emerge << EOF #!/bin/sh CBUILD=$(portageq envvar CHOST) PORTAGE_CONFIGROOT="$SYSROOT" if [[ "$1" == "--root" ]] ; then ROOT="$2" shift 2 else ROOT="$SYSROOT" fi export CBUILD PORTAGE_CONFIGROOT ROOT emerge $* EOF USE="-pcre" /usr/local/bin/i386-pc-linux-uclibc-emerge --root /mnt/temp zsh I'm attaching the configure output and the Make error and emerge --info. Thanks again.
Created attachment 111239 [details] ./configure
Created attachment 111241 [details] emerge --info
Created attachment 111242 [details] make error
Using LDFLAGS=-L/my/root/lib USE="-pcre" /usr/local/bin/i386-pc-linux-uclibc-emerge --root /mnt/temp zsh works too but isn't that a feature ROOT should be capable of? Since it does the very same with the CPPFLAGS as shown in the configure attachment [...] preprocessor flags : -I/mnt/temp/usr/include [...]
what you're experiencing is the cross-compiler unable to locate the appropriate libraries that it needs the zsh ebuild should not be changed in the meantime, you can add a hack by using -I/-L paths in your CFLAGS/LDFLAGS to point to your ROOT