Howdy,

I have been working on a BitBake [0] recipe for Parrot, which is a
tool that is a cousin to Portage, that the embedded Linux world uses
to compile software projects for various embedded hardware platforms.
Once we have a BitBake recipe, it is mostly a trivial matter to get
Parrot working on any system that OpenEmbedded [1] supports. Currently
I am stuck at the configure stage. I am giving Configure.pl an
incantation like this:

    ${HOSTPERL} Configure.pl   \
        --cc="/home/leto/oe/openembedded/tmp/cross/armv6/bin/${CC}"           \
        --ld="/home/leto/oe/openembedded/tmp/cross/armv6/bin/${CC}"           \
        --link="/home/leto/oe/openembedded/tmp/cross/armv6/bin/${CC}"
         \
        --ccflags="${CFLAGS}"  \
        --ldflags="${LDFLAGS}" \
        --verbose=2 \
        --optimize

You can see the full output here: http://gist.github.com/335494

Currently, the configure stage fails due to the test programs that
Configure.pl creates not being in the directory that it assumes:

 auto::alignptrs - Determine your minimum pointer alignment..
[..snip..]
| ./test_28101 1
| ./test_28101: ./test_28101: cannot execute binary file
| ./test_28101 2
| ./test_28101: ./test_28101: cannot execute binary file
| ./test_28101 4
| ./test_28101: ./test_28101: cannot execute binary file
| ./test_28101 8
| ./test_28101: ./test_28101: cannot execute binary file
| ./test_28101 16
| ./test_28101: ./test_28101: cannot execute binary file
| ./test_28101 32
| ./test_28101: ./test_28101: cannot execute binary file
| ./test_28101 64
| ./test_28101: ./test_28101: cannot execute binary file
|
| step auto::alignptrs died during execution: Can't determine alignment!

I think this is because Parrot's Configure.pl assumes that the test
programs that it creates are in $PWD, but when cross-compiling,
everything is done a separate build directory. Some ways I see around
this are:

1) Being able to specify the directory that test programs are generated in
2) Being able to specify the things that these test programs are
trying to figure out

In reference to 2), these are the configure steps that are failing:
| During configuration the following steps failed:
| 10: auto::gcc
| 11: auto::glibc
| 13: auto::msvc
| 24: auto::alignptrs
| 27: auto::byteorder
| 28: auto::va_ptr
| 51: auto::snprintf

If I could specify these via arguments to Configure.pl, I could
side-step this issue. I think that 1) is the better, more robust
solution, but I would be happy with either.

Any thoughts or comments on making this work would be greatly appreciated.

Duke

[0] http://en.wikipedia.org/wiki/BitBake
[1] http://wiki.openembedded.net/index.php/Main_Page


-- 
Jonathan "Duke" Leto
[email protected]
http://leto.net
_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev

Reply via email to