[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