x86_64 multilib system
Kees Jongenburger
kees.jongenburger at gmail.com
Thu Feb 21 21:23:20 UTC 2008
Hello Casey,
I played with getting mamona to compile "native" on my amd64 machine
(I was quite far but gave up at one point). Here a some notes that
might or might not be helpfull
they where certainly not checked against somebody with positive OE
karma. but who knows
in kernel-arch I I removed the "," between x81_64 and i386 I think
this was a bug causing
some flags to not be set correctly
============================================================
--- classes/kernel-arch.bbclass 2c3267a2a81eb0cb438cf4a9c97de95535bedf94
+++ classes/kernel-arch.bbclass 7ea458d4d49227e7004dac30da9b196af78b7adc
@@ -5,7 +5,7 @@ valid_archs = "alpha cris ia64 \
#
valid_archs = "alpha cris ia64 \
- x86_64,i386 \
+ x86_64 i386 \
m68knommu m68k ppc powerpc ppc64 \
sparc sparc64 \
arm arm26 \
glibc (I think the scripts where not ready for x86_64 ) they do some magic with
the header files but not in this situation (therefore I pointed to the
"running" headers
============================================================
--- packages/glibc/glibc_2.6.1.bb 1753994ceec7d4c54e81239f486d92052e46c752
+++ packages/glibc/glibc_2.6.1.bb b10038068973152df71cda0d5b20ba23c8db5dbd
@@ -80,7 +80,7 @@ EXTRA_OECONF = "--enable-kernel=${OLDEST
--without-cvs --disable-profile --disable-debug --without-gd \
--enable-clocale=gnu \
--enable-add-ons=${GLIBC_ADDONS} \
- --with-headers=${STAGING_INCDIR} \
+ --with-headers=${STAGING_DIR_TARGET}/kernel/include \
--without-selinux \
${GLIBC_EXTRA_OECONF}"
I was missing a site file for the amd64 therefore I copied pasted
until it all worked
============================================================
--- site/ix86-common d8fa481822d52ac3e2192ceabc012ca07c564206
+++ site/ix86-common cf3e197d35f354997be356fc45deb95c81d66aff
@@ -262,3 +262,5 @@ ac_cv_have_abstract_sockets=${ac_cv_have
#dbus
ac_cv_have_abstract_sockets=${ac_cv_have_abstract_sockets=yes}
+
+ac_cv_func_shmat=${ac_cv_func_shmat=no}
============================================================
--- site/x86_64-linux 05744d78da6f03499c0638db01b23ffc637b18b2
+++ site/x86_64-linux e102617a308de8f8fe7d7bfd738b26bfb0b0426a
@@ -1,8 +1,10 @@ ac_cv_func_malloc_0_nonnull=${ac_cv_func
ac_cv_func_getpgrp_void=${ac_cv_func_getpgrp_void=yes}
ac_cv_func_getpwuid_r=${ac_cv_func_getpwuid_r=yes}
ac_cv_func_lstat_dereferences_slashed_symlink=${ac_cv_func_lstat_dereferences_slashed_symlink=yes}
ac_cv_func_lstat_empty_string_bug=${ac_cv_func_lstat_empty_string_bug=no}
ac_cv_func_malloc_0_nonnull=${ac_cv_func_malloc_0_nonnull=yes}
+ac_cv_func_realloc_works=${ac_cv_func_realloc_works=yes}
+ac_cv_func_realloc_0_nonnull=${ac_cv_func_realloc_0_nonnull=yes}
ac_cv_func_posix_getpwnam_r=${ac_cv_func_posix_getpwnam_r=yes}
ac_cv_func_posix_getpwuid_r=${ac_cv_func_posix_getpwuid_r=yes}
ac_cv_func_setpgrp_void=${ac_cv_func_setpgrp_void=yes}
@@ -48,6 +50,7 @@ glib_cv_sane_realloc=${glib_cv_sane_real
glib_cv_long_long_format=${glib_cv_long_long_format=ll}
glib_cv_rtldglobal_broken=${glib_cv_rtldglobal_broken=yes}
glib_cv_sane_realloc=${glib_cv_sane_realloc=yes}
+lf_cv_sane_realloc=${lf_cv_sane_realloc=yes}
glib_cv_sizeof_gmutex=${glib_cv_sizeof_gmutex=40}
glib_cv_sizeof_intmax_t=${glib_cv_sizeof_intmax_t=8}
glib_cv_sizeof_ptrdiff_t=${glib_cv_sizeof_ptrdiff_t=8}
@@ -78,5 +81,14 @@ am_cv_func_working_getline=${am_cv_func_
# gettext
am_cv_func_working_getline=${am_cv_func_working_getline=yes}
+#gstreamer
+as_cv_unaligned_access=${as_cv_unaligned_access=no}
+
#gcc
ac_cv_lib_m_sin=${ac_cv_lib_m_sin=yes}
+
+apr_cv_process_shared_works=${apr_cv_process_shared_works=no}
+apr_cv_tcp_nodelay_with_cork=${apr_cv_tcp_nodelay_with_cork=yes}
+
+dpkg_cv_va_copy=${ac_cv_va_copy=yes}
+dpkg_cv___va_copy=${ac_cv___va_copy=yes}
On Thu, Feb 21, 2008 at 8:57 PM, Casey Marshall
<cmarshall at pacificbiosciences.com> wrote:
> I'm trying to use OpenEmbedded to build a x86_64 system (hosted on x86),
> and am running into many errors getting gcc-cross to build properly
> here.
>
> GCC 4.1.x seems to automatically add /usr/include to the header search
> path on x86, and this fails to work with the no-local-headers patch.
>
> GCC 4.2.x will mostly build, but will try to link 32-bit libraries
> against the (only) 64-bit glibc. Adding --disable-multilib to the
> configure flags also fails, because some parts of the GCC install seem
> to be looking in lib64 still, and the build of gcc-cross fails:
>
> > | /bin/sh /oe/tmp/work/x86_64-linux/gcc-cross-4.2.2-r3/gcc-4.2.2/libiberty/../mkinstalldirs /oe/tmp/cross/x86_64-linux/lib/`/oe/tmp/work/x86_64-linux/gcc-cross-4.2.2-r3/gcc-4.2.2/build.i686-linux.x86_64-linux/./gcc/xgcc -B/oe/tmp/work/x86_64-linux/gcc-cross-4.2.2-r3/gcc-4.2.2/build.i686-linux.x86_64-linux/./gcc/ -isystem/oe/tmp/staging/i686-linux/include -B/oe/tmp/cross/x86_64-linux/bin/ -B/oe/tmp/cross/x86_64-linux/lib/ -isystem /oe/tmp/cross/x86_64-linux/include -isystem /oe/tmp/cross/x86_64-linux/sys-include -g -Os -print-multi-os-directory`
> > | /usr/bin/install -c -m 644 ./libiberty.a /oe/tmp/cross/x86_64-linux/lib/`/oe/tmp/work/x86_64-linux/gcc-cross-4.2.2-r3/gcc-4.2.2/build.i686-linux.x86_64-linux/./gcc/xgcc -B/oe/tmp/work/x86_64-linux/gcc-cross-4.2.2-r3/gcc-4.2.2/build.i686-linux.x86_64-linux/./gcc/ -isystem/oe/tmp/staging/i686-linux/include -B/oe/tmp/cross/x86_64-linux/bin/ -B/oe/tmp/cross/x86_64-linux/lib/ -isystem /oe/tmp/cross/x86_64-linux/include -isystem /oe/tmp/cross/x86_64-linux/sys-include -g -Os -print-multi-os-directory`/./libiberty.an
> > | ( cd /oe/tmp/cross/x86_64-linux/lib/`/oe/tmp/work/x86_64-linux/gcc-cross-4.2.2-r3/gcc-4.2.2/build.i686-linux.x86_64-linux/./gcc/xgcc -B/oe/tmp/work/x86_64-linux/gcc-cross-4.2.2-r3/gcc-4.2.2/build.i686-linux.x86_64-linux/./gcc/ -isystem/oe/tmp/staging/i686-linux/include -B/oe/tmp/cross/x86_64-linux/bin/ -B/oe/tmp/cross/x86_64-linux/lib/ -isystem /oe/tmp/cross/x86_64-linux/include -isystem /oe/tmp/cross/x86_64-linux/sys-include -g -Os -print-multi-os-directory` ; chmod 644 ./libiberty.an; /oe/tmp/cross/x86_64-linux/bin/ranlib ./libiberty.an )
> > | /bin/sh: line 0: cd: /oe/tmp/cross/x86_64-linux/lib/../lib64: No such file or directory
> > | chmod: cannot access `./libiberty.an': No such file or directory
> > | /oe/tmp/cross/x86_64-linux/bin/ranlib: './libiberty.an': No such file
> > | make[2]: *** [install_to_tooldir] Error 1
> > | make[2]: Leaving directory `/oe/tmp/work/x86_64-linux/gcc-cross-4.2.2-r3/gcc-4.2.2/build.i686-linux.x86_64-linux/x86_64-linux/libiberty'
> > | make[1]: *** [install-target-libiberty] Error 2
> > | make[1]: Leaving directory `/oe/tmp/work/x86_64-linux/gcc-cross-4.2.2-r3/gcc-4.2.2/build.i686-linux.x86_64-linux'
> > | make: *** [install] Error 2
> > | FATAL: oe_runmake failed
>
> I *think* what I'd prefer doing is installing a multilib glibc, since it
> will actually come in handy in the final system. Is there a
> straightforward way to do that?
>
> Thanks.
>
> _______________________________________________
> Openembedded-users mailing list
> Openembedded-users at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-users
>
More information about the Openembedded-users
mailing list