[oe-users] Cross Compiling for ARM

Ignacio Lorenzo Subirá Otal nachootal at salle.url.edu
Tue Dec 18 11:32:53 UTC 2007


Hi!, I'm trying to build a kernel for the i.MX21 with the cross
compilation tools delivered by freescale. To do that, I modified the
local.conf so that the cross compilers appeared there (I send as and
attachement) and run bitbake virtual/kernel.
I get an error that I don't know how to solve... and I also send the log
in order to ask for some help.

Thanks you all, 

Nacho
-------------- next part --------------
#
# OpenEmbedded local configuration file (sample)
#
# Please visit the Wiki at http://openembedded.org/ for more info.
#
#
# Be SURE to read this file in its entirety and the GettingStarted page on the
# wiki before proceeding.
#
# Once you have done that, remove the line at the end of this
# file and build away.
# 
# WARNING: lines starting with a space (' ') will result in parse failures.
# Remove '# ' from commented lines to activate them.
#
# NOTE: Do NOT use $HOME in your paths, BitBake does NOT expand ~ for you.  If you
# must have paths relative to your homedir use ${HOME} (note the {}'s there
# you MUST have them for the variable expansion to be done by BitBake).  Your
# paths should all be absolute paths (They should all start with a / after
# expansion.  Stuff like starting with ${HOME} or ${TOPDIR} is ok).

# Use this to specify where BitBake should place the downloaded sources into
DL_DIR = "/OE/sources"

# Delete the line below. Then specify which .bb files to consider for
# your build. Typically this will be something like BBFILES = "/path/to/openembedded/packages/*/*.bb"

# Los paquetes donde estar?n los archivos qyue necesito para compilar las cosas

BBFILES := "/OE/org.openembedded.dev/packages/*/*.bb"

# Use the BBMASK below to instruct BitBake to _NOT_ consider some .bb files
# This is a regulary expression, so be sure to get your parenthesis balanced.

# En principio, los considero todos....

BBMASK = ""

# Uncomment this if you want to use a prebuilt toolchain. You will need to
# provide packages for toolchain and additional libraries yourself. You also
# have to set PATH in your environment to make sure BitBake finds additional binaries.
# Note: You will definitely need to say:
ASSUME_PROVIDED += "virtual/arm-linux-gcc-2.95"
# to build any of two Linux 2.4 Embedix kernels,
# i.e. openzaurus-sa-2.4.18 and openzaurus-pxa-2.4.18 - and don't forget
# to rename the binaries as instructed in the Wiki.
# ASSUME_PROVIDED += "virtual/${TARGET_PREFIX}gcc virtual/libc"

# Select between multiple alternative providers, if more than one is eligible.
PREFERRED_PROVIDERS = "virtual/qte:qte virtual/libqpe:libqpe-opie"
PREFERRED_PROVIDERS += " virtual/libsdl:libsdl-x11"
PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"

# Uncomment this to specify where BitBake should create its temporary files.
# Note that a full build of everything in OpenEmbedded will take GigaBytes of hard
# disk space, so make sure to free enough space. The default TMPDIR is
# <build directory>/tmp
# Don't use symlinks in in the path to avoid problems

# Lo pongo aqu? 

TMPDIR = "/OE/build/tmp/${DISTRO}"

# Uncomment this to specify a machine to build for. See the conf directory
# for machines currently known to OpenEmbedded. This will automatically take care
# of TARGET_ARCH
MACHINE = "mx21ads"

# Use this to specify the target architecture. Note that this is only
# needed when building for a machine not known to OpenEmbedded. Better use
# the MACHINE attribute (see above)
# TARGET_ARCH = "arm"

# Use this to specify the target operating system.  The default is "linux",
# for a normal linux system with glibc. Set this to "linux-uclibc" if you want
# to build a uclibc based system.
# Normally the DISTRO of your choosing will take care of this 
# TARGET_OS = "linux"
# TARGET_OS = "linux-uclibc"

# Uncomment this to select a distribution policy. See the conf directory
# for distributions currently known to OpenEmbedded.
# Although it no longer contain version number in the (file-)name
# openzaurus-unstable is a so called "versioned"  distro, i.e. they 
# explicitely select specific versions of various packages.
# Stay away from unversioned distros unless you really know what you are doing
DISTRO = "angstrom-2007.1"

# So far, angstrom.conf sets ENABLE_BINARY_LOCALE_GENERATION
# to generate binary locale packages at build time using qemu-native and
# thereby guarantee i18n support on all devices. If your build breaks on 
# qemu-native consider disabling ENABLE_BINARY_LOCALE_GENERATION (note that
# this breaks i18n on devices with less than 128MB RAM) or installing
# a working third-party qemu (e.g. provided by your distribution) and
# adding qemu-native to ASSUME_PROVIDED. Caveat emptor, since third-party
# qemus lack patches needed to work with various OE targets.
# ENABLE_BINARY_LOCALE_GENERATION = "0"
# ASSUME_PROVIDED += "qemu-native"

# If ENABLE_BINARY_LOCALE_GENERATION is set to "1", you can limit locales
# generated to the list provided by GLIBC_GENERATE_LOCALES. This is huge
# time-savior for developmental builds. Format: list of locale.encoding pairs
# with spaces as separators.
# GLIBC_GENERATE_LOCALES = "en_GB.UTF-8 de_DE.UTF-8"

# Uncomment this to select a particular major kernel version if the MACHINE setting
# supports more than one major kernel version. Currently this is suported by the
# following MACHINE types: poodle, tosa and simpad.
# MACHINE_KERNEL_VERSION = "2.6"

# Uncomment one of these to build packages during the build process.
# This is done automatically if you set DISTRO (see above)
# INHERIT = "package_ipk"
# INHERIT = "package_tar"

# Add the required image file system types below. Valid are 
# jffs2, tar(.gz|bz2), cpio(.gz), cramfs, ext2(.gz), ext3(.gz)
# squashfs, squashfs-lzma
IMAGE_FSTYPES = "jffs2 tar.gz"

# Uncomment this to disable the parse cache (not recommended).
# CACHE = ""

# Uncomment this if you want BitBake to emit debugging output
# BBDEBUG = "yes"

# Uncomment these two if you want BitBake to build images useful for debugging. 
# Note that INHIBIT_PACKAGE_STRIP needs a package format to be defined.
# Also note that OE now produces -dbg packages which contain debugging symbols.
# DEBUG_BUILD = "1"
# INHIBIT_PACKAGE_STRIP = "1"

# Uncomment these to build a package such that you can use gprof to profile it.
# NOTE: This will only work with 'linux' targets, not
# 'linux-uclibc', as uClibc doesn't provide the necessary
# object files.  Also, don't build glibc itself with these
# flags, or it'll fail to build.
#
# PROFILE_OPTIMIZATION = "-pg"
# SELECTED_OPTIMIZATION = "${PROFILE_OPTIMIZATION}"
# LDFLAGS =+ "-pg"

# Uncomment this to enable parallel make.
# This allows make to spawn mutliple processes to take advantage of multiple 
# processors. Useful on SMP machines. This may break some packages - we're
# in the process of marking these so let us know if you find any.
PARALLEL_MAKE = "-j 4"

# Uncomment this if you want BitBake to emit the log if a build fails.
BBINCLUDELOGS = "yes"

# Specifies a location to search for pre-generated tarballs when fetching
# a cvs:// URI. Outcomment this, if you always want to pull directly from CVS.
#CVS_TARBALL_STASH = ""

# EDIT THIS FILE and then remove the line below before using!
# A?ado los exports de la toolchain para cross compilar
export CC = "arm-linux-gcc"
export CXX = "arm-linux-g++"
export CPP = "arm-linux-gcc -E"
export LD = "arm-linux-ld"
export AR = "arm-linux-ar"
export AS = "arm-linux-as"
export RANLIB = "arm-linux-ranlib"
export STRIP = "arm-linux-strip"
-------------- next part --------------
NOTE: make -j 4 ARCH_FLAGS_FOR_TARGET=-isystem/OE/build/tmp/angstrom/staging/i686-linux/include
make[1]: Entering directory `/OE/build/tmp/angstrom/work/armv5te-angstrom-linux-gnueabi/gcc-cross-initial-4.1.2-r13/gcc-4.1.2/build.i686-linux.arm-angstrom-linux-gnueabi'
mkdir -p -- ./fixincludes
mkdir -p -- ./intl
mkdir -p -- build-i686-linux/libiberty
Configuring in ./fixincludes
Configuring in build-i686-linux/libiberty
mkdir -p -- ./libiberty
Configuring in ./intl
Configuring in ./libiberty
configure: loading site script /OE/org.openembedded.dev/site/endian-little
configure: loading site script /OE/org.openembedded.dev/site/endian-little
configure: loading site script /OE/org.openembedded.dev/site/common-glibc
configure: loading site script /OE/org.openembedded.dev/site/common-glibc
configure: creating cache ../config.cache
configure: loading site script /OE/org.openembedded.dev/site/ix86-common
configure: loading site script /OE/org.openembedded.dev/site/ix86-common
configure: loading site script /OE/org.openembedded.dev/site/common
checking whether to enable maintainer-specific portions of Makefiles... no
checking for makeinfo... makeinfo --split-size=5000000
configure: loading site script /OE/org.openembedded.dev/site/common
configure: loading site script /OE/org.openembedded.dev/site/common
configure: loading site script /OE/org.openembedded.dev/site/endian-little
configure: creating cache ./config.cache
configure: loading site script /OE/org.openembedded.dev/site/common-glibc
configure: loading site script /OE/org.openembedded.dev/site/ix86-common
configure: loading site script /OE/org.openembedded.dev/site/common
configure: loading site script /OE/org.openembedded.dev/site/common
configure: creating cache ./config.cache
configure: loading site script /OE/org.openembedded.dev/site/common
configure: creating cache ./config.cache
checking whether to enable maintainer-specific portions of Makefiles... no
checking for makeinfo... makeinfo --split-size=5000000
checking whether make sets $(MAKE)... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether NLS is requested... yes
checking for msgfmt... checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... checking for perl... checking for perl... perl
perl
arm-angstrom-linux-gnueabi
checking for i686-linux-gcc... arm-linux-gcc
checking build system type... checking build system type... checking for C compiler default output file name... i686-pc-linux-gnu
i686-pc-linux-gnu
checking host system type... checking host system type... i686-pc-linux-gnu
/OE/build/tmp/angstrom/staging/i686-linux/bin/msgfmt
checking for gmsgfmt... i686-pc-linux-gnu
checking for i686-linux-ar... arm-linux-ar
checking for i686-linux-ranlib... arm-linux-ranlib
checking for i686-linux-gcc... arm-linux-gcc
checking for i686-linux-ar... /OE/build/tmp/angstrom/staging/i686-linux/bin/msgfmt
no
checking for ar... ar
checking for i686-linux-ranlib... checking for xgettext... no
checking for ranlib... ranlib
checking for i686-linux-gcc... arm-linux-gcc
/OE/build/tmp/angstrom/staging/i686-linux/bin/xgettext
checking for msgmerge... /OE/build/tmp/angstrom/staging/i686-linux/bin/msgmerge
checking for i686-linux-gcc... arm-linux-gcc
checking for C compiler default output file name... checking for C compiler default output file name... a.out
checking whether the C compiler works... checking for C compiler default output file name... a.out
checking whether the C compiler works... a.out
checking whether the C compiler works... a.out
checking whether the C compiler works... configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.
make[1]: *** [configure-libiberty] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [configure-fixincludes] Error 1
make[1]: *** [configure-intl] Error 1
make[1]: *** [configure-build-libiberty] Error 1
make[1]: Leaving directory `/OE/build/tmp/angstrom/work/armv5te-angstrom-linux-gnueabi/gcc-cross-initial-4.1.2-r13/gcc-4.1.2/build.i686-linux.arm-angstrom-linux-gnueabi'
make: *** [all] Error 2
FATAL: oe_runmake failed


More information about the Openembedded-users mailing list