about SpiderMonkey cross compile

View: New views
7 Messages — Rating Filter:   Alert me  

about SpiderMonkey cross compile

by Tony Wang-2 :: Rate this Message:

| View Threaded | Show Only this Message

Hi all,

I am cross compile SpiderMonkey for my ARC-Linux platform, I got the
lastest JS source code from the Mercurial repository, and i could find
the configure.in file in js/src dir.

I build it according to https://developer.mozilla.org/en/Building_only_SpiderMonkey,
here comes my cross-compile process:
1, export CC=arc-linux-uclibc-gcc
    export CXX=arc-linux-uclibc-g++
2, I mkdir arcbuild in js/src, and new one build file in it, as
follows:
../configure --prefix=/opt/webkitrelease --build=i686 --host=arc-linux-
uclibc --target=arc-linux-uclibc --with-dirctfb --without-x --disable-
tests --enable-static --enable-js-static-build --disable-shared
3, then in js/src/arcbuild, i run commands:
  [root@bogon arcbuild]# ./build
  [root@bogon arcbuild]# make
4, then i got following results:
----------------------------------------------------------------------------------------------------------------
/usr/bin/gmake export
gmake[1]: Entering directory `/home/mozilla-central-eb18fff240df/js/
src/arcbuild'
Creating /home/mozilla-central-eb18fff240df/js/src/arcbuild/.deps
gmake[2]: Entering directory `/home/mozilla-central-eb18fff240df/js/
src/arcbuild/config'
nsinstall.c
arc-linux-uclibc-gcc -o host_nsinstall.o -c -DXP_UNIX -O3  -I../../
config -I.  -I../dist/include   -I../dist/include  -I/sdk/
include  ../../config/nsinstall.c
pathsub.c
arc-linux-uclibc-gcc -o host_pathsub.o -c -DXP_UNIX -O3  -I../../
config -I.  -I../dist/include   -I../dist/include  -I/sdk/
include  ../../config/pathsub.c
arc-linux-uclibc-gcc -o nsinstall -DXP_UNIX -O3  host_nsinstall.o
host_pathsub.o
rm -f nfspwd
cp ../../config/nfspwd.pl nfspwd
chmod +x nfspwd
/home/mozilla-central-eb18fff240df/js/src/arcbuild/config/nsinstall -R
nsinstall ../dist/bin
/home/mozilla-central-eb18fff240df/js/src/arcbuild/config/nsinstall: /
home/mozilla-central-eb18fff240df/js/src/arcbuild/config/nsinstall:
cannot execute binary file
gmake[2]: *** [export] Error 126
gmake[2]: Leaving directory `/home/mozilla-central-eb18fff240df/js/src/
arcbuild/config'
gmake[1]: *** [export] Error 2
gmake[1]: Leaving directory `/home/mozilla-central-eb18fff240df/js/src/
arcbuild'
make: *** [default] Error 2
----------------------------------------------------------------------------------------------------------------

I know that we build nsinstall file by arc-linux-uclibc-gcc, while we
run it i686-linux, so we got the "cannot execute binary file" error.

Can anyone tell me how to change the C compile for nsinstall? or how
to adapt the Makefile?

Thanks in Advance,
Tony
_______________________________________________
dev-tech-js-engine mailing list
dev-tech-js-engine@...
https://lists.mozilla.org/listinfo/dev-tech-js-engine

Re: about SpiderMonkey cross compile

by Benjamin Smedberg :: Rate this Message:

| View Threaded | Show Only this Message

On 12/18/08 10:26 PM, Tony Wang wrote:

> ../configure --prefix=/opt/webkitrelease --build=i686 --host=arc-linux-
> uclibc --target=arc-linux-uclibc --with-dirctfb --without-x --disable-
> tests --enable-static --enable-js-static-build --disable-shared

When did you try this last? I believe that prior to a few days ago, you
needed to export CROSS_COMPILE=1 in your environment. Please try that, or
try updating your sources to the very latest.

> I know that we build nsinstall file by arc-linux-uclibc-gcc, while we
> run it i686-linux, so we got the "cannot execute binary file" error.

Yeah, we're supposed to compile it for the host... if my suggestion above
doesn't work, please report back and we can try a few more things.

--BDS
_______________________________________________
dev-tech-js-engine mailing list
dev-tech-js-engine@...
https://lists.mozilla.org/listinfo/dev-tech-js-engine

Re: about SpiderMonkey cross compile

by Tony Wang-2 :: Rate this Message:

| View Threaded | Show Only this Message

Thanks, Ben

I tried again by adding export CROSS_COMPILE=1, but got the same
error.

BTW, I got the source code from Mercurial repository yesterday, Dec
18, 2008.

Tony

On Dec 19, 11:36 am, Benjamin Smedberg <benja...@...> wrote:

> On 12/18/08 10:26 PM, Tony Wang wrote:
>
> > ../configure --prefix=/opt/webkitrelease --build=i686 --host=arc-linux-
> > uclibc --target=arc-linux-uclibc --with-dirctfb --without-x --disable-
> > tests --enable-static --enable-js-static-build --disable-shared
>
> When did you try this last? I believe that prior to a few days ago, you
> needed to export CROSS_COMPILE=1 in your environment. Please try that, or
> try updating your sources to the very latest.
>
> > I know that we build nsinstall file by arc-linux-uclibc-gcc, while we
> > run it i686-linux, so we got the "cannot execute binary file" error.
>
> Yeah, we're supposed tocompileit for the host... if my suggestion above
> doesn't work, please report back and we can try a few more things.
>
> --BDS

_______________________________________________
dev-tech-js-engine mailing list
dev-tech-js-engine@...
https://lists.mozilla.org/listinfo/dev-tech-js-engine

Re: about SpiderMonkey cross compile

by Benjamin Smedberg :: Rate this Message:

| View Threaded | Show Only this Message

On 12/19/08 12:08 AM, Tony Wang wrote:
> Thanks, Ben
>
> I tried again by adding export CROSS_COMPILE=1, but got the same
> error.

In your object directory, look at the contents of the config/autoconf.mk
file: it should have a line

CROSS_COMPILE =

or

CROSS_COMPILE = 1

which value do you see?

When is the last time you ran autoconf-2.13 to regenerate your configure script?

--BDS

_______________________________________________
dev-tech-js-engine mailing list
dev-tech-js-engine@...
https://lists.mozilla.org/listinfo/dev-tech-js-engine

Re: about SpiderMonkey cross compile

by Tony Wang-2 :: Rate this Message:

| View Threaded | Show Only this Message

On Dec 19, 10:56 pm, Benjamin Smedberg <benja...@...> wrote:

> On 12/19/08 12:08 AM, Tony Wang wrote:
>
> > Thanks, Ben
>
> > I tried again by adding export CROSS_COMPILE=1, but got the same
> > error.
>
> In your object directory, look at the contents of the config/autoconf.mk
> file: it should have a line
>
> CROSS_COMPILE =
>
> or
>
> CROSS_COMPILE = 1
>
> which value do you see?
>
> When is the last time you ran autoconf-2.13 to regenerate your configure script?
>
> --BDS

Yeath,i see CROSS_COMPILE = 1.
[root@bogon src]# ll configure
-rwxr-xr-x 1 root root 384621 Dec 19 16:55 configure
we can get that the last time i ran autoconf-2.13 to generate
configure is Dec 19, 2008.

_______________________________________________
dev-tech-js-engine mailing list
dev-tech-js-engine@...
https://lists.mozilla.org/listinfo/dev-tech-js-engine

Re: about SpiderMonkey cross compile

by Benjamin Smedberg :: Rate this Message:

| View Threaded | Show Only this Message

On 12/21/08 9:51 PM, Tony Wang wrote:

> Yeath,i see CROSS_COMPILE = 1.

So, interesting, from your original post:

gmake[2]: Entering directory `/home/mozilla-central-eb18fff240df/js/
src/arcbuild/config'
nsinstall.c
arc-linux-uclibc-gcc -o host_nsinstall.o -c -DXP_UNIX -O3  -I../../
config -I.  -I../dist/include   -I../dist/include  -I/sdk/
include  ../../config/nsinstall.c
pathsub.c

This indicates that you are building *host* programs with arc-linux-uclibc-gcc

In autoconf.mk, what is the value of HOST_CC?

If it is wrong, try setting HOST_CC explicitly in your environment when
configuring, e.g.

export HOST_CC=/usr/bin/gcc

--BDS
_______________________________________________
dev-tech-js-engine mailing list
dev-tech-js-engine@...
https://lists.mozilla.org/listinfo/dev-tech-js-engine

Re: about SpiderMonkey cross compile

by Tony Wang-2 :: Rate this Message:

| View Threaded | Show Only this Message

On Dec 23, 4:59 am, Benjamin Smedberg <benja...@...> wrote:

> On 12/21/08 9:51 PM, Tony Wang wrote:
>
> > Yeath,i see CROSS_COMPILE = 1.
>
> So, interesting, from your original post:
>
> gmake[2]: Entering directory `/home/mozilla-central-eb18fff240df/js/
> src/arcbuild/config'
> nsinstall.c
> arc-linux-uclibc-gcc -o host_nsinstall.o -c -DXP_UNIX -O3  -I../../
> config -I.  -I../dist/include   -I../dist/include  -I/sdk/
> include  ../../config/nsinstall.c
> pathsub.c
>
> This indicates that you are building *host* programs with arc-linux-uclibc-gcc
>
> In autoconf.mk, what is the value of HOST_CC?
>
> If it is wrong, try setting HOST_CC explicitly in your environment when
> configuring, e.g.
>
> export HOST_CC=/usr/bin/gcc
>
> --BDS

Now i could cross-compile SpiderMonkey source form mozilla-central-
eb18fff240df/js separately.
BTW, we should also set HOST_CXX=/usr/bin/g++ in autoconf.mk.

Thanks & Merry Chrismas,
Tony
_______________________________________________
dev-tech-js-engine mailing list
dev-tech-js-engine@...
https://lists.mozilla.org/listinfo/dev-tech-js-engine