[oe] x86_64
Michael Smith
msmith at cbnco.com
Tue May 10 15:47:10 UTC 2011
On Tue, 10 May 2011, Enrico Scholz wrote:
> Jaap de Jong <jaap.dejong at nedap.com> writes:
>
> > TARGET_ARCH = "x86_64"
>
> did this ever work? OE uses hardcoded 'lib' (instead of 'lib64') at
> various places.
Hi Enrico,
This is my MACHINE config:
TARGET_ARCH = "x86_64"
# We can't reuse the same -native builds as 32-bit machines, because
# ours need to be staged into staging/blah/lib64 instead of lib.
# Set blah to x86_64-buildoe64-linux to keep them separate.
BUILD_VENDOR = "-buildoe64"
base_libdir = "${base_prefix}/lib64"
libdir = "${exec_prefix}/lib64"
# Some packages install files into /lib/packagename, not /lib64/packagename.
FILES_${PN} += "${prefix}/lib/${PN}/*"
FILES_${PN}-dbg += "${prefix}/lib/${PN}/.debug"
# glibc's sysdeps/unix/sysv/linux/configure script only fixes
# libc_cv_slibdir if prefix is "/usr". With prefix of "", we need to fix it
# so libc libs don't get installed into /lib.
export libc_cv_slibdir="/lib64"
--------
I had to amend gcc-cross-intermediate:
do_compile_prepend() {
# On x86_64, glibc-initial stages crti.o to
# x86_64-oe-linux/lib64/crti.o.
# When gcc-cross-intermediate tries to build libgcc, it looks
# for x86_64-oe-linux/lib/../lib64/crti.o.
# Create the "lib" dir so this shenanigan works.
install -d ${STAGING_DIR_TARGET}/lib
}
And gcc-cross:
# glibc only built the 64-bit stubs, so don't try to build a 32-bit gcc
# XXX maybe belongs in oe recipes/gcc/gcc-cross4.inc
EXTRA_OECONF_append_x86_64 = " --disable-multilib"
I think that's it - for the recipes I build, all the other fixes have been
pushed long ago.
Mike
More information about the Openembedded-devel
mailing list