Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[SOLVED] Cross compilation of gcc 4.3.4 doesn't work
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
Yttrium
n00b
n00b


Joined: 22 Oct 2009
Posts: 29
Location: Germany

PostPosted: Sun Oct 25, 2009 2:45 pm    Post subject: [SOLVED] Cross compilation of gcc 4.3.4 doesn't work Reply with quote

Hello,

I want to compile gcc 4.3.4-hardened for an i686 Athlon XP (Thunderbird) machine. The compiling machine is amd64 (x86_64) non-hardened.

I changed the CFLAGS CXXFLAGS USE-FLAGS, the CHOST and the profile symlink of make.profile so that it does match the target machine.

Here is my emerge info before the change:
Code:

Portage 2.1.6.13 (default/linux/amd64/10.0/desktop, gcc-4.3.4, glibc-2.9_p20081201-r2, 2.6.30-gentoo-r7 x86_64)                                                                                                           
=================================================================                                           
System uname: Linux-2.6.30-gentoo-r7-x86_64-Intel-R-_Core-TM-2_CPU_6600_@_2.40GHz-with-gentoo-1.12.11.1     
Timestamp of tree: Sun, 25 Oct 2009 08:15:02 +0000                                                           
ccache version 2.4 [disabled]                                                                               
app-shells/bash:     4.0_p28                                                                                 
dev-java/java-config: 2.1.8-r1                                                                               
dev-lang/python:     2.6.2-r1                                                                               
dev-util/ccache:     2.4-r7                                                                                 
dev-util/cmake:      2.6.4                                                                                   
sys-apps/baselayout: 1.12.11.1                                                                               
sys-apps/sandbox:    1.6-r2                                                                                 
sys-devel/autoconf:  2.13, 2.63-r1                                                                           
sys-devel/automake:  1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2                                                   
sys-devel/binutils:  2.18-r3                                                                                 
sys-devel/gcc-config: 1.4.1                                                                                 
sys-devel/libtool:   2.2.6a                                                                                 
virtual/os-headers:  2.6.27-r2                                                                               
ACCEPT_KEYWORDS="amd64"                                                                                     
CBUILD="x86_64-pc-linux-gnu"                                                                                 
CFLAGS="-march=native -O2 -pipe"                                                                             
CHOST="x86_64-pc-linux-gnu"                                                                                 
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config"     
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/udev/rules.d"                                                         
CXXFLAGS="-march=native -O2 -pipe"                                                                           
DISTDIR="/usr/portage/distfiles"                                                                             
FEATURES="buildpkg distlocks fixpackages metadata-transfer parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch"                                                                                 
GENTOO_MIRRORS="http://de-mirror.org/distro/gentoo/ http://gentoo.mneisen.org/ http://gentoo.tiscali.nl/"   
LANG="en_US.UTF-8"                                                                                           
LDFLAGS="-Wl,-O1"                                                                                           
LINGUAS="de en"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/rsync_excludes"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="X a52 aac acl acpi alsa amd64 apache2 arts berkdb branding bzip2 cairo cdr cli consolekit cracklib crypt dbus dri dts dvd dvdr eds emboss encode evo fam firefox flac fortran gd gdbm gif glx gpm gstreamer gtk hal iconv jpeg kde ldap libnotify lm_sensors mad mikmod mmx modules mp3 mp4 mpeg mudflap multilib mysql ncurses nls nptl nptlonly nvidia ogg opengl openmp pam pcre pdf pear perl php png ppds python qt3 qt3support qt4 quicktime readline reflection sdl session spell spl sql sqlite sse sse2 ssl startup-notification svg sysfs tcpd thunar tiff truetype unicode usb vorbis x264 xml xorg xulrunner xv xvid xvmc zlib" ALSA_CARDS="virtuoso" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="cfontz cfontz633 glk mtxorb ncurses text X" LINGUAS="de en" USERLAND="GNU" VIDEO_CARDS="nv nvidia"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTDIR_OVERLAY


And the emerge info after the change:

Code:
Portage 2.1.6.13 (hardened/linux/x86/10.0, gcc-4.3.4, glibc-2.9_p20081201-r2, 2.6.30-gentoo-r7 x86_64)
=================================================================                                     
System uname: Linux-2.6.30-gentoo-r7-x86_64-Intel-R-_Core-TM-2_CPU_6600_@_2.40GHz-with-gentoo-1.12.11.1
Timestamp of tree: Sun, 25 Oct 2009 08:15:02 +0000                                                     
ccache version 2.4 [disabled]                                                                         
app-shells/bash:     4.0_p28                                                                           
dev-java/java-config: 2.1.8-r1                                                                         
dev-lang/python:     2.6.2-r1                                                                         
dev-util/ccache:     2.4-r7                                                                           
dev-util/cmake:      2.6.4                                                                             
sys-apps/baselayout: 1.12.11.1                                                                         
sys-apps/sandbox:    1.6-r2                                                                           
sys-devel/autoconf:  2.13, 2.63-r1                                                                     
sys-devel/automake:  1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2                                             
sys-devel/binutils:  2.18-r3                                                                           
sys-devel/gcc-config: 1.4.1                                                                           
sys-devel/libtool:   2.2.6a                                                                           
virtual/os-headers:  2.6.27-r2                                                                         
ACCEPT_KEYWORDS="x86"                                                                                 
CBUILD="i686-pc-linux-gnu"                                                                             
CFLAGS="-O2 -march=i686 -pipe"                                                                         
CHOST="i686-pc-linux-gnu"                                                                             
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/udev/rules.d"                                                         
CXXFLAGS="-O2 -march=i686 -pipe"                                                                             
DISTDIR="/usr/portage/distfiles"                                                                             
FEATURES="buildpkg distlocks fixpackages metadata-transfer parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://de-mirror.org/distro/gentoo/ http://gentoo.mneisen.org/ http://gentoo.tiscali.nl/"
LANG="en_US.UTF-8"
LDFLAGS="-Wl,-O1"
LINGUAS="de en"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/rsync_excludes"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="acl berkdb bzip2 cli cracklib crypt doc gdbm gpm hardened iconv loop-aes modules mudflap ncurses nls nptl nptlonly pam pcre perl pic pppd python readline reflection session spl ssl sysfs tcpd urandom x86 zlib" ALSA_CARDS="virtuoso" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="cfontz cfontz633 glk mtxorb ncurses text X" LINGUAS="de en" USERLAND="GNU" VIDEO_CARDS="nv nvidia"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTDIR_OVERLAY


Output of emerge -pvB gcc

Quote:
These are the packages that would be built, in order:

Calculating dependencies ... done!
[ebuild R ] sys-devel/gcc-4.3.4 USE="doc* hardened* -fortran* -gtk* (-multilib*) -openmp*"


And here comes the error message
Code:
make[3]: Leaving directory `/var/tmp/portage/sys-devel/gcc-4.3.4/work/build/gcc'                             
mkdir -p -- i686-pc-linux-gnu/libgcc                                                                         
Checking multilib configuration for libgcc...                                                               
Configuring stage 1 in i686-pc-linux-gnu/libgcc                                                             
configure: creating cache ./config.cache                                                                     
checking for --enable-version-specific-runtime-libs... no                                                   
checking for a BSD-compatible install... /usr/bin/install -c                                                 
checking for gawk... gawk                                                                                   
checking build system type... i686-pc-linux-gnu                                                             
checking host system type... i686-pc-linux-gnu                                                               
checking for i686-pc-linux-gnu-ar... ar                                                                     
checking for i686-pc-linux-gnu-lipo... lipo                                                                 
checking for i686-pc-linux-gnu-nm... /var/tmp/portage/sys-devel/gcc-4.3.4/work/build/./gcc/nm               
checking for i686-pc-linux-gnu-ranlib... ranlib                                                             
checking for i686-pc-linux-gnu-strip... strip                                                               
checking whether ln -s works... yes                                                                         
checking for i686-pc-linux-gnu-gcc... /var/tmp/portage/sys-devel/gcc-4.3.4/work/build/./gcc/xgcc -B/var/tmp/portage/sys-devel/gcc-4.3.4/work/build/./gcc/ -B/usr/i686-pc-linux-gnu/bin/ -B/usr/i686-pc-linux-gnu/lib/ -isystem /usr/i686-pc-linux-gnu/include -isystem /usr/i686-pc-linux-gnu/sys-include                             
checking for suffix of object files... configure: error: cannot compute suffix of object files: cannot compile                                                                                                           
See `config.log' for more details.                                                                           
make[2]: *** [configure-stage1-target-libgcc] Error 1                                                       
make[2]: Leaving directory `/var/tmp/portage/sys-devel/gcc-4.3.4/work/build'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/var/tmp/portage/sys-devel/gcc-4.3.4/work/build'
make: *** [bootstrap-lean] Error 2
 *
 * ERROR: sys-devel/gcc-4.3.4 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_compile
 *             environment, line 4900:  Called toolchain_src_compile
 *             environment, line 5426:  Called gcc_src_compile
 *             environment, line 3102:  Called gcc_do_make
 *             environment, line 2892:  Called die
 * The specific snippet of code:
 *       emake LDFLAGS="${LDFLAGS}" STAGE1_CFLAGS="${STAGE1_CFLAGS}" LIBPATH="${LIBPATH}" BOOT_CFLAGS="${BOOT_CFLAGS}" ${GCC_MAKE_TARGET} || die "emake failed with ${GCC_MAKE_TARGET}";
 *  The die message:
 *   emake failed with bootstrap-lean
 *
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/var/tmp/portage/sys-devel/gcc-4.3.4/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sys-devel/gcc-4.3.4/temp/environment'.
 *

>>> Failed to emerge sys-devel/gcc-4.3.4, Log file:

>>>  '/var/tmp/portage/sys-devel/gcc-4.3.4/temp/build.log'


As you see, I used the option -B to create the gcc binary, because I don't want to mess up my main computer. Or is it a problem that I try to compile a hardened gcc on a non-hardened computer?

I hope someone can help.
_________________
LILA - Live Iptables Log Analyzer


Last edited by Yttrium on Wed Oct 28, 2009 5:57 pm; edited 1 time in total
Back to top
View user's profile Send private message
Hu
Watchman
Watchman


Joined: 06 Mar 2007
Posts: 8938

PostPosted: Sun Oct 25, 2009 4:02 pm    Post subject: Reply with quote

Although you might get this to work, in my opinion, this is the wrong way to create the cross-compiler. Look at sys-devel/crossdev and the Gentoo Embedded Handbook. Do not be misled by the embedded name. Cross compilation is very common when dealing with embedded systems, so the embedded project tends to accumulate cross compilation related information.
Back to top
View user's profile Send private message
Yttrium
n00b
n00b


Joined: 22 Oct 2009
Posts: 29
Location: Germany

PostPosted: Sun Oct 25, 2009 6:26 pm    Post subject: Reply with quote

Thanks for the link. I followed the instructions and built a toolchain with crossdev --target i686-pc-linux-gnu. Then I emerged crossdev-wrappers, updated the profile symlink in the /usr/i686-pc-linux-gnu/etc (the new root dir for the target machine) directory and added the USE flags from the target machine to make conf. (Well and I changed -Os to O2 and added march=athlon-tbird)

The /usr/i686.../etc/make.conf now looks like:
Code:

CHOST=i686-pc-linux-gnu
CBUILD=x86_64-pc-linux-gnu
ARCH=amd64

HOSTCC=x86_64-pc-linux-gnu-gcc
#E_MACHINE=__E_MACHINE__

ROOT=/usr/${CHOST}/

ACCEPT_KEYWORDS="amd64 ~amd64"

USE="${ARCH} zlib bindist make-symlinks minimal"
USE="$USE -qt3 -qt4 -kde -arts -gtk -X -glx -gtk -gnome -ipv6 -isdnlog -cups -midi -alsa"
USE="$USE -cdr -dvd -dri -xorg -fortran -openmp doc loop-aes -ldap"

#MARCH_TUNE="-march=armv4t -mtune=arm9tdmi"   #arm-softfloat-linux-uclibc
#MARCH_TUNE="-march=armv5t -mtune=xscale"   #armv5teb-softfloat-linux-gnueabi

#CFLAGS="-O2 -pipe ${MARCH_TUNE} -fomit-frame-pointer -I${ROOT}usr/include/ -I${ROOT}include/"
#CFLAGS="-Os -pipe ${MARCH_TUNE} -fomit-frame-pointer -I${ROOT}usr/include/ -I${ROOT}include/"
#CFLAGS="-O2 -march=i686 -pipe ${MARCH_TUNE} -fomit-frame-pointer -I${ROOT}usr/include/ -I${ROOT}include/"
CFLAGS="-O2 -march=athlon-tbird -pipe ${MARCH_TUNE} -fomit-frame-pointer -I${ROOT}usr/include/ -I${ROOT}include/"
CXXFLAGS="${CFLAGS}"
LDFLAGS="-L${ROOT}lib -L${ROOT}usr/lib"

FEATURES="-collision-protect sandbox buildpkg noman noinfo nodoc"
# Be sure we dont overwrite pkgs from another repo..
PKGDIR=${ROOT}packages/
PORTAGE_TMPDIR=${ROOT}tmp/

ELIBC="glibc"

PKG_CONFIG_PATH="${ROOT}usr/lib/pkgconfig/"
#PORTDIR_OVERLAY="/usr/portage/local/"

LIBDIR_${ARCH}="lib"
LIBDIR_amd64=lib64
MAKEOPTS=-j3
GENTOO_MIRRORS="http://de-mirror.org/distro/gentoo/ http://gentoo.mneisen.org/ http://gentoo.tiscali.nl/"


Now if I want to emerge gcc with

i686-pc-linux-gnu-emerge -avB gcc

or

i686-pc-linux-gnu-emerge -avB --root-deps=rdeps gcc

I get this error message:

Code:
checking whether we are using the GNU C compiler... yes                                                     
checking whether i686-pc-linux-gnu-gcc accepts -g... yes                                                     
checking for i686-pc-linux-gnu-gcc option to accept ANSI C... none needed                                   
checking for i686-pc-linux-gnu-g++... i686-pc-linux-gnu-g++                                                 
checking whether we are using the GNU C++ compiler... yes                                                   
checking whether i686-pc-linux-gnu-g++ accepts -g... yes                                                     
checking for i686-pc-linux-gnu-gnatbind... no                                                               
checking for gnatbind... no                                                                                 
checking for i686-pc-linux-gnu-gnatmake... no                                                               
checking for gnatmake... no                                                                                 
checking whether compiler driver understands Ada... no                                                       
checking how to compare bootstrapped objects... cmp --ignore-initial=16 $$f1 $$f2                           
checking for correct version of gmp.h... no                                                                 
configure: error: Building GCC requires GMP 4.1+ and MPFR 2.3.0+.                                           
Try the --with-gmp and/or --with-mpfr options to specify their locations.                                   
Copies of these libraries' source code can be found at their respective                                     
hosting sites as well as at ftp://gcc.gnu.org/pub/gcc/infrastructure/.                                       
See also http://gcc.gnu.org/install/prerequisites.html for additional info.                                 
If you obtained GMP and/or MPFR from a vendor distribution package, make                                     
sure that you have installed both the libraries and the header files.                                       
They may be located in separate packages.                                                                   
 *                                                                                                           
 * ERROR: sys-devel/gcc-4.3.4 failed.                                                                       
 * Call stack:                                                                                               
 *               ebuild.sh, line   49:  Called src_compile                                                   
 *             environment, line 4920:  Called toolchain_src_compile                                         
 *             environment, line 5446:  Called gcc_src_compile                                               
 *             environment, line 3100:  Called gcc_do_configure                                             
 *             environment, line 2813:  Called die                                                           
 * The specific snippet of code:                                                                             
 *       "${S}"/configure "$@" || die "failed to run configure";                                             
 *  The die message:                                                                                         
 *   failed to run configure                                                                                 
 *                                                                                                           
 * If you need support, post the topmost build error, and the call stack if relevant.                       
 * A complete build log is located at '/usr/i686-pc-linux-gnu/tmp/portage/sys-devel/gcc-4.3.4/temp/build.log'.                                                                                                           
 * The ebuild environment file is located at '/usr/i686-pc-linux-gnu/tmp/portage/sys-devel/gcc-4.3.4/temp/environment'.                                                                                                   
 *                                                                                                           

>>> Failed to emerge sys-devel/gcc-4.3.4 for /usr/i686-pc-linux-gnu/, Log file:

>>>  '/usr/i686-pc-linux-gnu/tmp/portage/sys-devel/gcc-4.3.4/temp/build.log'


Then I tried a

i686...-emerge -ev world that starts emerging >100 packages. This fails with the package flex-2.5.35.

Code:
i686-pc-linux-gnu-ranlib libfl_pic.a                                                                                                                                 
i686-pc-linux-gnu-gcc  -O2 -march=athlon-tbird -pipe  -fomit-frame-pointer -I/usr/i686-pc-linux-gnu/usr/include/ -I/usr/i686-pc-linux-gnu/include/  -L/usr/i686-pc-linux-gnu/lib -L/usr/i686-pc-linux-gnu/usr/lib -o flex  ccl.o dfa.o ecs.o scanflags.o gen.o main.o misc.o nfa.o parse.o scan.o skel.o sym.o tblcmp.o yylex.o options.o scanopt.o buf.o tables.o tables_shared.o filter.o regex.o  -lm                                                                                                       
dfa.o: In function `ntod':                                                                                                                                           
dfa.c:(.text+0x1967): undefined reference to `rpl_realloc'                                                                                                           
parse.o: In function `yyparse':                                                                                                                                     
parse.c:(.text+0x3cd): undefined reference to `rpl_malloc'                                                                                                           
scan.o: In function `yy_push_state':                                                                                                                                 
scan.c:(.text+0x6c3): undefined reference to `rpl_realloc'                                                                                                           
scan.c:(.text+0x70c): undefined reference to `rpl_malloc'                                                                                                           
scan.o: In function `yyensure_buffer_stack':                                                                                                                         
scan.c:(.text+0x77a): undefined reference to `rpl_realloc'                                                                                                           
scan.c:(.text+0x800): undefined reference to `rpl_malloc'                                                                                                           
scan.o: In function `yy_scan_buffer':                                                                                                                               
scan.c:(.text+0xa36): undefined reference to `rpl_malloc'                                                                                                           
scan.o: In function `yy_scan_bytes':                                                                                                                                 
scan.c:(.text+0xaa6): undefined reference to `rpl_malloc'                                                                                                           
scan.o: In function `yy_create_buffer':                                                                                                                             
scan.c:(.text+0xbf1): undefined reference to `rpl_malloc'                                                                                                           
scan.c:(.text+0xc05): undefined reference to `rpl_malloc'                                                                                                           
scan.o:scan.c:(.text+0xfd4): more undefined references to `rpl_malloc' follow                                                                                       
scan.o: In function `flexscan':                                                                                                                                     
scan.c:(.text+0x638b): undefined reference to `rpl_realloc'                                                                                                         
scan.o: In function `flex_realloc':                                                                                                                                 
scan.c:(.text+0x437): undefined reference to `rpl_realloc'                                                                                                           
scan.o: In function `yyrealloc':                                                                                                                                     
scan.c:(.text+0x447): undefined reference to `rpl_realloc'                                                                                                           
scan.o: In function `flex_alloc':                                                                                                                                   
scan.c:(.text+0x457): undefined reference to `rpl_malloc'                                                                                                           
scan.o: In function `yyalloc':                                                                                                                                       
scan.c:(.text+0x467): undefined reference to `rpl_malloc'                                                                                                           
scanopt.o: In function `scanopt_init':                                                                                                                               
scanopt.c:(.text+0x6e3): undefined reference to `rpl_malloc'                                                                                                         
scanopt.c:(.text+0x756): undefined reference to `rpl_malloc'                                                                                                         
scanopt.o: In function `scanopt_usage':                                                                                                                             
scanopt.c:(.text+0x92e): undefined reference to `rpl_malloc'                                                                                                         
collect2: ld returned 1 exit status                                                                                                                                 
make[2]: *** [flex] Error 1                                                                                                                                         
make[2]: Leaving directory `/usr/i686-pc-linux-gnu/tmp/portage/sys-devel/flex-2.5.35/work/flex-2.5.35'                                                               
make[1]: *** [all-recursive] Error 1                                                                                                                                 
make[1]: Leaving directory `/usr/i686-pc-linux-gnu/tmp/portage/sys-devel/flex-2.5.35/work/flex-2.5.35'                                                               
make: *** [all] Error 2
 *
 * ERROR: sys-devel/flex-2.5.35 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_compile
 *             environment, line 2592:  Called die
 * The specific snippet of code:
 *       emake || die
 *  The die message:
 *   (no error message)
 *
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/usr/i686-pc-linux-gnu/tmp/portage/sys-devel/flex-2.5.35/temp/build.log'.
 * The ebuild environment file is located at '/usr/i686-pc-linux-gnu/tmp/portage/sys-devel/flex-2.5.35/temp/environment'.
 *

>>> Failed to emerge sys-devel/flex-2.5.35 for /usr/i686-pc-linux-gnu/, Log file:


I don't know what to do now. Any ideas?

I just want to compile gcc (or better every package for the future) on my main computer then copy the binaries to the Athlon computer (or use a network fs as binary path) and do an emerge -uDNavk world there (or at least emerge -avk gcc for the moment). :-(
_________________
LILA - Live Iptables Log Analyzer
Back to top
View user's profile Send private message
sera
Developer
Developer


Joined: 29 Feb 2008
Posts: 992
Location: CET

PostPosted: Sun Oct 25, 2009 6:43 pm    Post subject: Reply with quote

If you issued the very command
Quote:
crossdev --target i686-pc-linux-gnu
you have built an unstable toolchain.

You might want to retry with:
Code:
crossdev -S --target i686-pc-linux-gnu
which will build a toolchain using the current stable versions of each package of your host system.
Back to top
View user's profile Send private message
Yttrium
n00b
n00b


Joined: 22 Oct 2009
Posts: 29
Location: Germany

PostPosted: Sun Oct 25, 2009 6:54 pm    Post subject: Reply with quote

Thanks for the tip. I am trying this at the moment (takes some time). I just used the command from the instructions without actually checking the man page, command line options etc.

I'll post the result asap...

P.S.
gcc 4.3.4 is marked stable for both archs and I am not using anything unstable on both systems (besides KDE 4.3.2 on the compiling computer). I hope this fixes the problem anyway...
_________________
LILA - Live Iptables Log Analyzer
Back to top
View user's profile Send private message
Yttrium
n00b
n00b


Joined: 22 Oct 2009
Posts: 29
Location: Germany

PostPosted: Sun Oct 25, 2009 8:03 pm    Post subject: Reply with quote

Ok I did everything you mentioned. Now it seems that gcc 4.3.2 is used as cross compiler (i686-...-gcc --version) and I started to emerge gcc 4.3.4 with i686...-emerge -avb gcc.

Now portage wants to install about 50 packages.

And....

it aborts with sed (of all things such a basic "tool" like sed causes the error):

Code:
checking for acl_free_text... no                                                                                                                                     
checking for working acl_get_file... cross-compiling                                                                                                                 
checking for acl... no                                                                                                                                               
checking for getacl... no                                                                                                                                           
checking for aclx_get... no                                                                                                                                         
checking for statacl... no                                                                                                                                           
configure: error: ACLs enabled but support not detected                                                                                                             

!!! Please attach the following file when seeking support:
!!! /usr/i686-pc-linux-gnu/tmp/portage/sys-apps/sed-4.2.1/work/sed-4.2.1/config.log
 *                                                                                 
 * ERROR: sys-apps/sed-4.2.1 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_compile
 *             environment, line 2610:  Called econf '--bindir=/bin' '--enable-acl' '--enable-nls'
 *               ebuild.sh, line  534:  Called die
 * The specific snippet of code:
 *                      die "econf failed"
 *  The die message:
 *   econf failed
 *
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/usr/i686-pc-linux-gnu/tmp/portage/sys-apps/sed-4.2.1/temp/build.log'.
 * The ebuild environment file is located at '/usr/i686-pc-linux-gnu/tmp/portage/sys-apps/sed-4.2.1/temp/environment'.
 *

>>> Failed to emerge sys-apps/sed-4.2.1 for /usr/i686-pc-linux-gnu/, Log file:

>>>  '/usr/i686-pc-linux-gnu/tmp/portage/sys-apps/sed-4.2.1/temp/build.log'

 * Messages for package sys-libs/timezone-data-2009o merged to /usr/i686-pc-linux-gnu/:

 * You do not have TIMEZONE set in /etc/timezone.
 * Setting /etc/localtime to Factory.

 * Messages for package sys-apps/sed-4.2.1 merged to /usr/i686-pc-linux-gnu/:

 *
 * ERROR: sys-apps/sed-4.2.1 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_compile
 *             environment, line 2610:  Called econf '--bindir=/bin' '--enable-acl' '--enable-nls'
 *               ebuild.sh, line  534:  Called die
 * The specific snippet of code:
 *                      die "econf failed"
 *  The die message:
 *   econf failed


Well I am still far away of creating a binary for my i686-athlon PC.

It seems to complain about ACLs. I don't use them on my computer and I don't even use them on the hardened target machine.

It's really annoying...

EDIT
ok sed did emerge after specifying -acl in /usr/i686.../etc/portage/package.use. That's just a "workaround" but as I am not using ACL I don't care. I'll just edit the post when the next error occurs. (And I am sure it will. At the latest when emerging of gcc itself starts...)

EDIT2
and here's the next one.

Code:
ake[3]: *** Waiting for unfinished jobs....                                                                                                                         
Found 1605 functions in libxml2-api.xml                                                                                                                             
Found 55 functions in libxml2-python-api.xml                                                                                                                         
Generated 886 wrapper functions, 558 failed, 216 skipped                                                                                                             

Missing type converters:
xmlRelaxNGValidityErrorFunc *:2  xmlXPathObjectPtr:22  const htmlEntityDesc *:2  xmlOutputMatchCallback:1  xmlElementContentPtr *:1  xmlStructuredErrorFunc:5  xmlSchematronValidCtxtPtr:3  xmlParserInputBufferCreateFilenameFunc:2  xmlSchemaValType:2  size_t:1  xmlEnumerationPtr:5  xmlSchemaWildcardPtr:1  xmlXIncludeCtxtPtr:4  xmlRelaxNGValidityErrorFunc:2  xmlSAXHandler *:4  ...:1  xmlShellReadlineFunc:1  xmlDict *:1  xmlAutomataPtr:19  unsigned long:1  xmlParserInputPtr:17  xmlCatalogAllow:2  xmlExpNodePtr:3  xmlElementContent *:1  xmlCharEncodingOutputFunc:1  xmlDictPtr:10  xmlTextWriterPtr:77  const htmlElemDesc *:1  xmlChRangeGroup *:1  xmlIDPtr:1  xmlSchemaValPtr:13  xmlInputMatchCallback:1  xmlElementTablePtr:2  xmlChar **:16  xmlXPathCompExprPtr:6  xmlTextReaderErrorFunc:1  xmlExternalEntityLoader:2  xmlNotationTablePtr:2  xmlXPathVariableLookupFunc:1  xmlParserNodeInfoPtr:1  xmlExpCtxtPtr:14  xmlPatternPtr:8  xmlC14NIsVisibleCallback:1  xmlDeregisterNodeFunc:2  va_list:1  xmlSchemaTypePtr:9  htmlStatus:1  xmlRegisterNodeFunc:2  xmlAttributeType:2  xmlRefPtr:1  xmlCharEncodingHandler *:4  xmlNotationPtr:3  xmlSaveCtxtPtr:8  xmlRegExecCallbacks:1  xmlNsPtr *:1  xmlLocationSetPtr:6  xmlSchemaSAXPlugPtr:1  xmlModulePtr:4  xmlEnumerationPtr *:2  xmlShellCtxtPtr:10  xlinkNodeDetectFunc:2  xmlRefTablePtr:1  xmlStreamCtxtPtr:6  xmlSchemaValidityErrorFunc *:2  xmlAttributeTablePtr:2  xmlSchematronParserCtxtPtr:5  xmlCatalogPrefer:1  xmlParserNodeInfoSeqPtr:3  xmlSchematronPtr:2  xmlNodePtr *:2  xmlInputReadCallback:7  char **:5  xmlCharEncoding:13  xmlRegExecCtxtPtr:5  xmlElementContentType:2  void *:87  xmlTextReaderErrorFunc *:1  xmlSAXHandlerPtr *:1  xmlEntityReferenceFunc:1  xmlDocPtr *:1  xmlBufferAllocationScheme:3  xmlSchemaValidityErrorFunc:2  xmlDOMWrapCtxtPtr:6  xmlOutputWriteCallback:2  xmlSchemaFacetPtr:7  xlinkHandlerPtr:2  xmlXPathFuncLookupFunc:1  htmlElemDesc *:3  xmlCharEncodingHandlerPtr:7  xmlCharEncodingInputFunc:1  xmlFeature:1  const xmlParserNodeInfo *:1  xmlNodeSetPtr:32  xmlEntitiesTablePtr:3  xmlIDTablePtr:1  xmlXPathFunction:4  xmlOutputBufferCreateFilenameFunc:2  xmlElementContentPtr:8  xmlElementTypeVal:1  xlinkType:1  xmlGenericErrorFunc *:1                                                                                                       
touch gen_prog                                                                                                                                                       
make[3]: Leaving directory `/usr/i686-pc-linux-gnu/tmp/portage/dev-libs/libxml2-2.7.4-r1/work/libxml2-2.7.4/python'                                                 
make[2]: *** [all-recursive] Error 1                                                                                                                                 
make[2]: Leaving directory `/usr/i686-pc-linux-gnu/tmp/portage/dev-libs/libxml2-2.7.4-r1/work/libxml2-2.7.4/python'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/i686-pc-linux-gnu/tmp/portage/dev-libs/libxml2-2.7.4-r1/work/libxml2-2.7.4'
make: *** [all] Error 2
 *
 * ERROR: dev-libs/libxml2-2.7.4-r1 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_compile
 *             environment, line 3589:  Called _eapi2_src_compile
 *               ebuild.sh, line  634:  Called die
 * The specific snippet of code:
 *              emake || die "emake failed"
 *  The die message:
 *   emake failed
 *
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/usr/i686-pc-linux-gnu/tmp/portage/dev-libs/libxml2-2.7.4-r1/temp/build.log'.
 * The ebuild environment file is located at '/usr/i686-pc-linux-gnu/tmp/portage/dev-libs/libxml2-2.7.4-r1/temp/environment'.
 *

>>> Failed to emerge dev-libs/libxml2-2.7.4-r1 for /usr/i686-pc-linux-gnu/, Log file:


I tried to manually emerge the last package that failed (libxml2). it fails again, this time complaining about ACL. (like before sed). So i added the (global) use flag -acl to my make.conf and remerged libxml2 (including 10 other packages like python for example as its dependencies).

now python fails (ARGH!!!)

Code:
 cr libpython2.6.a Python/_warnings.o Python/Python-ast.o Python/asdl.o Python/ast.o Python/bltinmodule.o Python/ceval.o Python/compile.o Python/codecs.o Python/errors.o Python/frozen.o Python/frozenmain.o Python/future.o Python/getargs.o Python/getcompiler.o Python/getcopyright.o Python/getmtime.o Python/getplatform.o Python/getversion.o Python/graminit.o Python/import.o Python/importdl.o Python/marshal.o Python/modsupport.o Python/mystrtoul.o Python/mysnprintf.o Python/peephole.o Python/pyarena.o Python/pyfpe.o Python/pymath.o Python/pystate.o Python/pythonrun.o Python/structmember.o Python/symtable.o Python/sysmodule.o Python/traceback.o Python/getopt.o Python/pystrcmp.o Python/pystrtod.o Python/formatter_unicode.o Python/formatter_string.o Python/dynload_shlib.o   Python/thread.o                             
ar cr libpython2.6.a Modules/config.o Modules/getpath.o Modules/main.o Modules/gcmodule.o                                                                           
ar cr libpython2.6.a Modules/threadmodule.o  Modules/signalmodule.o  Modules/posixmodule.o  Modules/errnomodule.o  Modules/pwdmodule.o  Modules/_sre.o  Modules/_codecsmodule.o  Modules/zipimport.o  Modules/symtablemodule.o  Modules/xxsubtype.o                                                                                       
i686-pc-linux-gnu-ranlib libpython2.6.a                                                                                                                             
i686-pc-linux-gnu-gcc -L/usr/i686-pc-linux-gnu/lib -L/usr/i686-pc-linux-gnu/usr/lib -L. -Xlinker -export-dynamic -o python \                                         
                        Modules/python.o \                                                                                                                           
                        -L. -lpython2.6 -lpthread -ldl  -lpthread -lutil   -lm                                                                                       
running build                                                                                                                                                       
running build_ext                                                                                                                                                   
error: /ffi.h: No such file or directory                                                                                                                             
make: *** [sharedmods] Error 1                                                                                                                                       
 *                                                                                                                                                                   
 * ERROR: dev-lang/python-2.6.3 failed.                                                                                                                             
 * Call stack:                                                                                                                                                       
 *               ebuild.sh, line   49:  Called src_compile                                                                                                           
 *             environment, line 4130:  Called _eapi2_src_compile                                                                                                   
 *               ebuild.sh, line  634:  Called die                                                                                                                   
 * The specific snippet of code:
 *              emake || die "emake failed"
 *  The die message:
 *   emake failed
 *
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/usr/i686-pc-linux-gnu/tmp/portage/dev-lang/python-2.6.3/temp/build.log'.
 * The ebuild environment file is located at '/usr/i686-pc-linux-gnu/tmp/portage/dev-lang/python-2.6.3/temp/environment'.
 *

>>> Failed to emerge dev-lang/python-2.6.3 for /usr/i686-pc-linux-gnu/, Log file:


What does that mean or better: how can I fix that: "/ffi.h: No such file or directory " ?

Of course I could add

=sys-apps/file-5.03 -python
=dev-libs/libxml2-2.7.4-r1 -python

to my package.use, but I'd like to have python compiled.

It can't be normal that every 5th package fails to emerge can it? Is anything else wrong with my setup?
_________________
LILA - Live Iptables Log Analyzer
Back to top
View user's profile Send private message
sera
Developer
Developer


Joined: 29 Feb 2008
Posts: 992
Location: CET

PostPosted: Mon Oct 26, 2009 9:48 am    Post subject: Reply with quote

The more the target installation differs to your host, the more likely it is to encounter such problems. Try to force the same versions for both installations (there is nothing which prevents you to add ACCEPT_KEYWORDS="amd64" to your x86 make.conf), use the same set of useflags.

Cross compilation is often not just straight forward. Bugzilla might be a good resource for current cross compile problems. By reading those bugs you also might get a better picture of what can go wrong.

For the python problem bug 269111 and 268887 might help.
Back to top
View user's profile Send private message
Yttrium
n00b
n00b


Joined: 22 Oct 2009
Posts: 29
Location: Germany

PostPosted: Wed Oct 28, 2009 5:57 pm    Post subject: Reply with quote

I solved the problem in a completely different way:

I chrooted into a copy of the target system, mounted the /usr/portage/packages directory as an SSH filesystem, emerged gcc and world and finally executed emerge -avk on the target system. Worked like a charm!
_________________
LILA - Live Iptables Log Analyzer
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum