All of lore.kernel.org
 help / color / mirror / Atom feed
From: Patrick Ohly <Patrick.Ohly@gmx.de>
To: openembedded-devel@lists.openembedded.org
Subject: Re: cross-compiling for x86_64
Date: Sat, 11 Nov 2006 20:24:37 +0100	[thread overview]
Message-ID: <1163273077.4395.96.camel@ip6-localhost> (raw)
In-Reply-To: <1162936801.4808.78.camel@ip6-localhost>

[-- Attachment #1: Type: text/plain, Size: 14853 bytes --]

On Di, 2006-11-07 at 23:00 +0100, Patrick Ohly wrote:
> I tried to build a cross-compilation SDK on a 32 bit Debian stable host
> with x86_64 as target. My idea is to regularly test 64 compilation of a
> project that I work on.

[...]

> Is this something that someone has done already and perhaps can share a
> local.conf for?

Apparently not, so let me describe in more detail what I am doing and
how it fails - perhaps then someone can give me a hint about how to fix
it. To be specific, something that I don't understand is why glibc is
built multiple times and why gcc-cross depends on it. Is there a
circular dependency between gcc and glibc that OE is trying to break
this way?

Here's a summary of the problems I had:
      * glibc-initial-2.3.2+cvs20040726-r22: generic bits/wordsize.h and
        bits/endian.h is used instead of the x86_64 ones
      * glibc-intermediate-2.5-r2: asm-x86_64 header files not found
      * glibc-intermediate-2.5-r2: config-name.h not created by
        configure although it is needed
      * glibc-intermediate-2.5-r2: #error "__NR_pread and __NR_pread64
        both defined???"

My setup:
OpenEmbedded: dev branch, pull/update today, revision e2fde1c5cf87c2b0a9be2dfac2a1a1937db68382
Bitbake: 1.6 branch, revision 638
local configs: conf/local.conf and conf/machine/x86_64.conf

x86_64.conf was derived from x86.conf with just some minor changes:
TARGET_ARCH = "x86_64", no IPKG_EXTRA_ARCHS. It is used by local.conf as
MACHINE together with DISTRO = "generic".

Bitbake tried to compile glibc-initial-2.3.2+cvs20040726-r22. The
configure task fails, with the final error being:
[...]
make[1]: Leaving directory `/home/patrick/x86_64/tmp/work/x86_64-linux/glibc-initial-2.3.2+cvs20040726-r22/libc'
make[1]: Entering directory `/home/patrick/x86_64/tmp/work/x86_64-linux/glibc-initial-2.3.2+cvs20040726-r22/libc'
{ echo '#include "posix/bits/posix1_lim.h"';            \
  echo '#define _LIBC 1';                                       \
  echo '#include "misc/sys/uio.h"'; } |                 \
ccache gcc  -E -dM -MD -MP -MF /home/patrick/x86_64/tmp/work/x86_64-linux/glibc-initial-2.3.2+cvs20040726-r22/build-x86_64-linux/bits/stdio_lim.dT -MT '/home/patrick/x86_64/tmp/work/x86_64-linux/glibc-initial-2.3.2+cvs20040726-r22/build-x86_64-linux/bits/stdio_lim.h /home/patrick/x86_64/tmp/work/x86_64-linux/glibc-initial-2.3.2+cvs20040726-r22/build-x86_64-linux/bits/stdio_lim.d'    \
      -Iinclude -I. -I/home/patrick/x86_64/tmp/work/x86_64-linux/glibc-initial-2.3.2+cvs20040726-r22/build-x86_64-linux  -Ilibio  -I/home/patrick/x86_64/tmp/work/x86_64-linux/glibc-initial-2.3.2+cvs20040726-r22/build-x86_64-linux -Isysdeps/x86_64/elf -Isysdeps/unix/sysv/linux/x86_64 -Isysdeps/unix/sysv/linux/wordsize-64 -Isysdeps/unix/sysv/linux -Isysdeps/gnu -Isysdeps/unix/common -Isysdeps/unix/mman -Isysdeps/unix/inet -Isysdeps/unix/sysv -Isysdeps/unix/x86_64 -Isysdeps/unix -Isysdeps/posix -Isysdeps/x86_64/fpu -Isysdeps/x86_64 -Isysdeps/wordsize-64 -Isysdeps/ieee754/ldbl-96 -Isysdeps/ieee754/dbl-64 -Isysdeps/ieee754/flt-32 -Isysdeps/ieee754 -Isysdeps/generic/elf -Isysdeps/generic -nostdinc -isystem /usr/lib/gcc-lib/i486-linux/3.3.5/include -isystem /home/patrick/x86_64/tmp/cross/x86_64-linux/include -xc - -o /home/patrick/x86_64/tmp/work/x86_64-linux/glibc-initial-2.3.2+cvs20040726-r22/build-x86_64-linux/bits/stdio_lim.hT
In file included from bits/types.h:28,
                 from posix/sys/types.h:31,
                 from include/sys/types.h:1,
                 from misc/sys/uio.h:24,
                 from <stdin>:3:
bits/wordsize.h:1:2: #error "This file must be written based on the data type sizes of the target"
In file included from posix/sys/types.h:31,
                 from include/sys/types.h:1,
                 from misc/sys/uio.h:24,
                 from <stdin>:3:
bits/types.h:127:3: #error 
In file included from string/endian.h:37,
                 from include/endian.h:1,
                 from posix/sys/types.h:213,
                 from include/sys/types.h:1,
                 from misc/sys/uio.h:24,
                 from <stdin>:3:
bits/endian.h:13:2: #error Machine byte order unknown.
make[1]: *** [/home/patrick/x86_64/tmp/work/x86_64-linux/glibc-initial-2.3.2+cvs20040726-r22/build-x86_64-linux/bits/stdio_lim.st] Error 1
make[1]: Leaving directory `/home/patrick/x86_64/tmp/work/x86_64-linux/glibc-initial-2.3.2+cvs20040726-r22/libc'
make: *** [sysdeps/gnu/errlist.c] Error 2

The configure completed, it is the GLIBC_2.3 hack with "make
sysdeps/gnu/errlist.c" which fails here. The problem comes from the fact
that -I. comes before -Isysdeps/x86_64. I have no idea where that
command line is assembled, so I went for another hack: removing the
"wrong" bits/wordsize.h and bits/endian.h.

That got me a step further to compiling glibc-intermediate-2.5-r2. Here
the problem is that it cannot find various asm-x86_64 header files like
asm-x86_64/param.h. Here's an example:

| gawk -f ../scripts/gen-as-const.awk ../nptl/sysdeps/x86_64/tcb-offsets.sym \
| | ccache x86_64-linux-gcc -S -o /home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/build-x86_64-linux/tcb-offsets.hT3 -std=gnu99 -O2 -Wall -Winline -Wwrite-strings -fexpensive-optimizations -fmerge-all-constants -frename-registers -Wstrict-prototypes      -I../include -I/home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/build-x86_64-linux/csu -I/home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/build-x86_64-linux -I../sysdeps/x86_64/elf -I../nptl/sysdeps/unix/sysv/linux/x86_64 -I../sysdeps/unix/sysv/linux/x86_64 -I../sysdeps/unix/sysv/linux/wordsize-64 -I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread -I../sysdeps/pthread -I../ports/sysdeps/unix/sysv/linux -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../nptl/sysdeps/unix/sysv -I../ports/sysdeps/unix/sysv -I../sysdeps/unix/sysv -I../sysdeps/unix/x86_64 -I../nptl/sysdeps/unix -I../ports/sysdeps/unix -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/x86_64/fpu -I../nptl/sysdeps/x86_64 -I../sysdeps/x86_64 -I../sysdeps/wordsize-64 -I../sysdeps/ieee754/ldbl-96 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -I../nptl -I../ports  -I.. -I../libio -I. -nostdinc -isystem /home/patrick/x86_64/tmp/cross/lib/gcc/x86_64-linux/4.1.1/include -isystem /home/patrick/x86_64/tmp/staging/x86_64-linux/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h       -DHAVE_INITFINI -x c - \
|       -MD -MP -MF /home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/build-x86_64-linux/tcb-offsets.h.dT -MT '/home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/build-x86_64-linux/tcb-offsets.h.d /home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/build-x86_64-linux/tcb-offsets.h'
| In file included from ../sysdeps/unix/sysv/linux/sys/syscall.h:25,
|                  from ../sysdeps/unix/sysdep.h:21,
|                  from ../sysdeps/unix/x86_64/sysdep.h:19,
|                  from ../sysdeps/unix/sysv/linux/x86_64/sysdep.h:23,
|                  from <stdin>:1:
| /home/patrick/x86_64/tmp/staging/x86_64-linux/include/asm/unistd.h:5:33: error: asm-x86_64/unistd.h: No such file or directory

Here's where I had that file at that moment:
$ find tmp -name unistd.h | grep x86_64/unistd.h
tmp/work/x86_64-linux/linux-libc-headers-2.6.18-r1/linux-2.6.18/include/asm-x86_64/unistd.h
tmp/work/x86_64-linux/linux-libc-headers-2.6.18-r1/install/linux-libc-headers-dev/usr/include/asm-x86_64/unistd.h
tmp/work/x86_64-linux/linux-libc-headers-2.6.18-r1/temp-staging/usr/include/asm-x86_64/unistd.h

Should they also be installed in tmp/staging/x86_64-linux?
"-isystem /home/patrick/x86_64/tmp/staging/x86_64-linux/include" is part
of the link line, but the x86_64 files haven't been installed there.
linux-libc-headers_2.6.18.bb only seems to copy linux, asm and
asm-generic there. I modified its do_stage() to also install asm-x86_64,
then removed everything related to x86_64 and reran bitbake.

Hmm, installing asm-x86_64 broke glibc-intermediate's Linux kernel
header version check during the configure, so I reverted the change to
linux-libc-headers_2.6.18.bb, let bitbake configure glibc-intermediate
and manually copied asm-x86_64 before compiling it.

Next problem during compilation of glibc-intermediate: config-name.h is
not found. glibc-2.5's configure contains a comment that "For
non-generic uname, we don't need to create config-name.h at all." but
apparently it is trying to compile the generic version:

| make[2]: Entering directory `/home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/glibc-2.5/posix'
| .././scripts/mkinstalldirs /home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/build-x86_64-linux/posix
| mkdir /home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/build-x86_64-linux/posix
| ccache x86_64-linux-gcc uname.c -c -std=gnu99 -O2 -Wall -Winline -Wwrite-strings -fexpensive-optimizations -fmerge-all-constants -frename-registers -Wstrict-prototypes  -fomit-frame-pointer    -I../include -I/home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/build-x86_64-linux/posix -I/home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/build-x86_64-linux -I../sysdeps/x86_64/elf -I../nptl/sysdeps/unix/sysv/linux/x86_64 -I../sysdeps/unix/sysv/linux/x86_64 -I../sysdeps/unix/sysv/linux/wordsize-64 -I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread -I../sysdeps/pthread -I../ports/sysdeps/unix/sysv/linux -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../nptl/sysdeps/unix/sysv -I../ports/sysdeps/unix/sysv -I../sysdeps/unix/sysv -I../sysdeps/unix/x86_64 -I../nptl/sysdeps/unix -I../ports/sysdeps/unix -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/x86_64/fpu -I../nptl/sysdeps/x86_64 -I../sysdeps/x86_64 -I../sysdeps/wordsize-64 -I../sysdeps/ieee754/ldbl-96 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -I../nptl -I../ports  -I.. -I../libio -I. -nostdinc -isystem /home/patrick/x86_64/tmp/cross/lib/gcc/x86_64-linux/4.1.1/include -isystem /home/patrick/x86_64/tmp/staging/x86_64-linux/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h       -o /home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/build-x86_64-linux/posix/uname.o -MD -MP -MF /home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/build-x86_64-linux/posix/uname.o.dt -MT /home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/build-x86_64-linux/posix/uname.o
| uname.c:25:25: error: config-name.h: No such file or directory
| uname.c: In function ‘__uname’:
| uname.c:57: error: ‘UNAME_SYSNAME’ undeclared (first use in this function)
| uname.c:57: error: (Each undeclared identifier is reported only once
| uname.c:57: error: for each function it appears in.)
| uname.c:58: error: ‘UNAME_RELEASE’ undeclared (first use in this function)
| uname.c:59: error: ‘UNAME_VERSION’ undeclared (first use in this function)
| uname.c:60: error: ‘UNAME_MACHINE’ undeclared (first use in this function)
| make[2]: *** [/home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/build-x86_64-linux/posix/uname.o] Error 1
| make[2]: Leaving directory `/home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/glibc-2.5/posix'
| make[1]: *** [posix/subdir_lib] Error 2
| make[1]: Leaving directory `/home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/glibc-2.5'
| make: *** [all] Error 2
| FATAL: oe_runmake failed

I manually created the file in
tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/build-x86_64-linux/config-name.h based on its template tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/glibc-2.5/config-name.in.

Then compilation failed again:
| ccache x86_64-linux-gcc ../sysdeps/unix/sysv/linux/pread.c -c -std=gnu99 -O2 -Wall -Winline -Wwrite-strings -fexpensive-optimizations -fmerge-all-constants -frename-registers -Wstrict-prototypes  -fomit-frame-pointer -fexceptions -fasynchronous-unwind-tables   -I../include -I/home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/build-x86_64-linux/posix -I/home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/build-x86_64-linux -I../sysdeps/x86_64/elf -I../nptl/sysdeps/unix/sysv/linux/x86_64 -I../sysdeps/unix/sysv/linux/x86_64 -I../sysdeps/unix/sysv/linux/wordsize-64 -I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread -I../sysdeps/pthread -I../ports/sysdeps/unix/sysv/linux -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../nptl/sysdeps/unix/sysv -I../ports/sysdeps/unix/sysv -I../sysdeps/unix/sysv -I../sysdeps/unix/x86_64 -I../nptl/sysdeps/unix -I../ports/sysdeps/unix -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/x86_64/fpu -I../nptl/sysdeps/x86_64 -I../sysdeps/x86_64 -I../sysdeps/wordsize-64 -I../sysdeps/ieee754/ldbl-96 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -I../nptl -I../ports  -I.. -I../libio -I. -nostdinc -isystem /home/patrick/x86_64/tmp/cross/lib/gcc/x86_64-linux/4.1.1/include -isystem /home/patrick/x86_64/tmp/staging/x86_64-linux/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h       -o /home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/build-x86_64-linux/posix/pread.o -MD -MP -MF /home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/build-x86_64-linux/posix/pread.o.dt -MT /home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/build-x86_64-linux/posix/pread.o
| ../sysdeps/unix/sysv/linux/pread.c:33:4: error: #error "__NR_pread and __NR_pread64 both defined???"
| make[2]: *** [/home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/build-x86_64-linux/posix/pread.o] Error 1
| make[2]: Leaving directory `/home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/glibc-2.5/posix'
| make[1]: *** [posix/subdir_lib] Error 2
| make[1]: Leaving directory `/home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/glibc-2.5'
| make: *** [all] Error 2
| FATAL: oe_runmake failed
NOTE: Task failed: /home/patrick/x86_64/tmp/work/x86_64-linux/glibc-intermediate-2.5-r2/temp/log.do_compile.29319

I did not investigate further. Any comments? What further information
should I provide?

-- 
Bye, Patrick Ohly
--  
Patrick.Ohly@gmx.de
http://www.estamos.de/

[-- Attachment #2: local.conf --]
[-- Type: text/plain, Size: 6564 bytes --]

#
# 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 = "/tmp/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"
BBFILES := "/home/patrick/oe/openembedded/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.
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-qpe"
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
# TMPDIR = /tmp/oe

# Uncomment this to specify a machine to build for. See the conf directory
# for machines currently known to OpenEmbedded.
# MACHINE = "collie"
MACHINE = "x86_64"

# 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 = ""

# 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.
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 they no longer contain version number in the (file-)name
# familiar-unstable and openzaurus-unstable are so called "versioned"
# distros, i.e. they explicitely select specific versions of various
# packages.
# Stay away from unversioned distros unless you really know what you are doing
# DISTRO = "familiar-unstable"
DISTRO = "generic"

# So far, angstrom.conf and familiar.conf set 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
# ENABLE_BINARY_LOCALE_GENERATION = "0"
# ASSUME_PROVIDED += "qemu-native"

# 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, cramfs and ext2
#IMAGE_FSTYPES = "jffs2 tar"

# 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
# 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!
#REMOVE_THIS_LINE:="${@oe.fatal('Read the comments in your conf/local.conf')}"

#PREFERRED_VERSION_glibc-initial ?= "2.2.5"
#PREFERRED_VERSION_glibc-intermediate ?= "2.4"
#PREFERRED_VERSION_gcc-cross-initial ?= "3.4.4"

[-- Attachment #3: x86_64.conf --]
[-- Type: text/plain, Size: 519 bytes --]

#@TYPE: Machine
#@NAME: X86
#@DESCRIPTION: Machine configuration for a Linux running on x86_64 compatible machines

TARGET_ARCH = "x86_64"
# TARGET_VENDOR = "-oe"
#IPKG_EXTRA_ARCHS = ""
# reuse .bb for "normal" x86
PREFERRED_PROVIDER_virtual/kernel = "linux-x86"
# todo: convert to task-base
BOOTSTRAP_EXTRA_RDEPENDS = "kernel pciutils udev kernel-modules"

udevdir = "/dev"
OLDEST_KERNEL = "2.6.17"
GLIBC_ADDONS = "nptl"
GLIBC_EXTRA_OECONF = "--with-tls"

#require conf/machine/include/tune-x86.conf

  reply	other threads:[~2006-11-11 19:39 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-11-07 22:00 cross-compiling for x86_64 Patrick Ohly
2006-11-11 19:24 ` Patrick Ohly [this message]
2006-12-30 15:12   ` Patrick Ohly
2006-12-30 15:37     ` Koen Kooi
2006-12-30 16:13       ` Patrick Ohly
2006-12-31 22:39         ` Richard Purdie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1163273077.4395.96.camel@ip6-localhost \
    --to=patrick.ohly@gmx.de \
    --cc=openembedded-devel@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.