Thanks, Khem.
Following your suggestion, I tried removing the com32/ subdirectory from
the build, by modifying the do_configure() routine in syslinux_6.01.bb
recipe. It did not work, there were errors related to missing .o files
in a later step.
Your response prompted me to look further.
It appears that in the do_install() step, the syslinux recipe is using
the host gcc and ld, and not the cross-compiler gcc and ld.
For example, from the do_install log:
gcc -Wp,-MT,ctime.o,-MD,./.ctime.o.d -std=gnu99 -fno-stack-protector
-fwrapv -freg-struct-return -Os -fPIC -fno-exceptions
-fno-asynchronous-unwind-tables -fno-strict-aliasing -falign-functions=0
-falign-jumps=0 -falign-labels=0 -falign-loops=0 -mregparm=3 -DREGPARM=3 -W
-Wall -Wstrict-prototypes -fomit-frame-pointer -D__COM32__ -nostdinc
-iwithprefix include
-I/home/markus/yocto/genericx86-64-dora-10.0.0/build/tmp/work/x86_64-linux/syslinux-native/6.01-r0/syslinux-6.01/com32/libutil/include
-I/home/markus/yocto/genericx86-64-dora-10.0.0/build/tmp/work/x86_64-linux/syslinux-native/6.01-r0/syslinux-6.01/com32/include
-I/home/markus/yocto/genericx86-64-dora-10.0.0/build/tmp/work/x86_64-linux/syslinux-native/6.01-r0/syslinux-6.01/com32/include/sys
-I/home/markus/yocto/genericx86-64-dora-10.0.0/build/tmp/work/x86_64-linux/syslinux-native/6.01-r0/syslinux-6.01/com32/gplinclude
-c -o ctime.o
/home/markus/yocto/genericx86-64-dora-10.0.0/build/tmp/work/x86_64-linux/syslinux-na
tive/6.01-r0/syslinux-6.01/com32/libupload/ctime.c
Additionally, according to the makefile fragment "com32.mk" (in the
directory
~/yocto/genericx86-64-dora-10.0.0/build/tmp/work/x86_64-poky-linux/syslinux/6.02-r0/syslinux-6.02/mk/)
there should be some architecture related parameters following "-std=gnu99".
To see why not, I had a look in the file "syslinux.mk" (in the same
directory). The architecture selection is done via the SUBARCH and ARCH
variables. I tried various sed commands in the BB recipe do_configure()
step to force ARCH to "x86_64", but nothing seemed to make it work.
Next I tried the following change in the do_install() step in the BB recipe:
Before:
oe_runmake install INSTALLROOT="${D}" firmware="bios"
After:
oe_runmake install CC="${CC} ${CFLAGS}" LDFLAGS="${LDFLAGS} -A
i386" INSTALLROOT="${D}" ${SYSLINUX_ARCH} firmware="bios"
Now the cross-compiler was being invoked, but with conflicting flags:
x86_64-poky-linux-gcc -m64
--sysroot=/home/markus/yocto/genericx86-64-dora-10.0.0/build/tmp/sysroots/genericx86-64
-O2 -pipe -g -feliminate-unused-debug-types
-Wp,-MT,ctime.o,-MD,./.ctime.o.d -std=gnu99 -m32 -march=i386
-mpreferred-stack-boundary=2 -fno-stack-protector -fwrapv
-freg-struct-return -Os -fPIC -fno-exceptions
-fno-asynchronous-unwind-tables -fno-strict-aliasing
-falign-functions=0 -falign-jumps=0 -falign-labels=0 -falign-loops=0
-mregparm=3 -DREGPARM=3 -W -Wall -Wstrict-prototypes
-fomit-frame-pointer -D__COM32__ -nostdinc -iwithprefix include
-I/home/markus/yocto/genericx86-64-dora-10.0.0/build/tmp/work/x86_64-poky-linux/syslinux/6.02-r0/syslinux-6.02/com32/libutil/include
-I/home/markus/yocto/genericx86-64-dora-10.0.0/build/tmp/work/x86_64-poky-linux/syslinux/6.02-r0/syslinux-6.02/com32/include
-I/home/markus/yocto/genericx86-64-dora-10.0.0/build/tmp/work/x86_64-poky-linux/syslinux/6.02-r0/syslinux-6.02/com32/include/sys
-I/home/markus/yocto/genericx86-64-dora-10.0.0/build/tmp/work/x86_64-poky-linux/syslinux/6.02-r0/syslinux-6.02/com32/gplinclude
-c -o ctime.o
/home/markus/yocto/genericx86-64-dora-10.0.0/build/tmp/work/x86_64-poky-linux/syslinux/6.02-r0/syslinux-6.02/com32/libupload/ctime.c
The build didn't work, there were more errors during the link stage.
Basically it looks like the syslinux recipe cannot handle
cross-compilation to x86_64 at the moment. Making it work is a little
bit outside my experience level. I feel like I am feeling around in the
dark here. Maybe could someone else take a look at this?
Thanks very much
Markus
On 10/29/2013 07:11 PM, Khem Raj wrote:
On Tue, Oct 29, 2013 at 3:55 PM, Markus Svilans <msvil...@aeonyx.ca> wrote:
Dear list,
A quick update:
- The same build failure occurred when I tried "bitbake core-image-minimal"
using a fresh poky 1.5 downloaded from the Yocto web site, with MACHINE set
to genericx86-64.
- The same build failure occurred when I manually created a recipe for
syslinux 6.02 and tried to build it directly "bitbake syslinux"
Any assistance would be greatly appreciated.
its failing while building syslinux-native package and as it seems
from errors, its not building com32 bits by passing -m32
flags to compiler. Seems like you need to hack syslinux build and add
-m32 when building com32/ subdir or alternatively
remove it from build
sed -e 's,com32/\S*,,g' -i Makefile
but that may not be best thing to do.
Thanks very much
Markus
On 10/29/2013 05:40 PM, Markus Svilans wrote:
Dear list,
I'm trying to build a core-image-minimal recipe using MACHINE=genericx86-64
but it always fails at syslinux-native-6.01 recipe. I've tried deleting my
tmp and build folders several times, but it will not build. I am using the
genericx86-64 BSP package downloaded from the Yocto website, located at:
https://www.yoctoproject.org/download/intel-x86-64-based-pcs-and-devices-genericx86-64
File: genericx86-64-dora-10.0.0.tar.bz2
I extracted it to:
/home/markus/yocto/genericx86-64-dora-10.0.0
Then ran the "oe-init-build-env" script and editted local.conf to enable
parallel make, and changed MACHINE to genericx86-64. (I've attached a copy
of my local.conf file.)
After that, I ran the command "bitbake core-image-minimal" and sat back,
waiting for it to build.
The build always fails at syslinux-native.
I tried several things:
- deleted tmp directory, re-try build = failure
- deleted build directory, re-try build = failure
- deleted build directory, build only syslinux = failure
- deleted build directory, build only syslinux-native = failure
I think I may be doing something wrong, because about an hour of Google
searching did not turn up anybody having a similar issue.
I am running Kubuntu 13.10 64-bit.
Can anyone please offer any advice, so that I can successfully build x86-64
images?
Thanks very much
Markus
_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto
_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto
_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto