How to Cross compile Erlang/OTP R13B04 for TileraPro64

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

How to Cross compile Erlang/OTP R13B04 for TileraPro64

JR Zhang
Hi,

I couldn't cross compile Erlang/OTP R13B04 for Tilera board properly. I
follow the steps described in INSTALL-CROSS.md, which are :
(1) cd $ERL_TOP
(2) ./otp_build configure --xcomp-conf=<path to
erl-xcomp-TileraMDE2.0-tilepro.conf>
(3) ./otp_build boot -a
(4) ./otp_build release -a /lhome/x/otp
(5) ./Install -cross -minimal /lhome/x/otp
The compilation is successful without any errors. But after I upload it to
Tilera board and run it, I get an error, "Segmentation fault".

 I found a thread discussing how to cross compile R13B03 for Tilera Board
http://www.erlang.org/cgi-bin/ezmlm-cgi/4/49164 .  I tried to add steps like
"touch lib/crypto/SKIP', "touch lib/ssl/SKIP", "touch lib/ssh/SKIP". But I
still didn't succeed.

Could someone help me? Thank you in advance.

Best Regards,
Jianrong Zhang
Kista Multicore Center, SICS
Reply | Threaded
Open this post in threaded view
|

Re: How to Cross compile Erlang/OTP R13B04 for TileraPro64

Rickard Green-2
The following patch hopefully fixes you problem. The bug only
manifests itself when the number of logical processors found is fewer
than reported by sysconf(_SC_NPROCESSORS_CONF). This is normally never
the case, but on the tilera (with a relatively new MDE) it is.

Regards,
Rickard, Erlang/OTP, Ericsson AB

$ diff -Nau otp_src_R13B04/erts/lib_src/common/erl_misc_utils.c{~,}
--- otp_src_R13B04/erts/lib_src/common/erl_misc_utils.c~
2009-11-20 14:32:23.000000000 +0100
+++ otp_src_R13B04/erts/lib_src/common/erl_misc_utils.c 2010-03-29
15:53:28.000000000 +0200
@@ -373,8 +373,8 @@
        return 0;
     memcpy((void *) topology,
           (void *) cpuinfo->topology,
-          cpuinfo->configured*sizeof(erts_cpu_topology_t));
-    return cpuinfo->configured;
+          cpuinfo->topology_size*sizeof(erts_cpu_topology_t));
+    return cpuinfo->topology_size;
 }

 int



2010/3/27 JR Zhang <[hidden email]>:

> Hi,
>
> I couldn't cross compile Erlang/OTP R13B04 for Tilera board properly. I
> follow the steps described in INSTALL-CROSS.md, which are :
> (1) cd $ERL_TOP
> (2) ./otp_build configure --xcomp-conf=<path to
> erl-xcomp-TileraMDE2.0-tilepro.conf>
> (3) ./otp_build boot -a
> (4) ./otp_build release -a /lhome/x/otp
> (5) ./Install -cross -minimal /lhome/x/otp
> The compilation is successful without any errors. But after I upload it to
> Tilera board and run it, I get an error, "Segmentation fault".
>
>  I found a thread discussing how to cross compile R13B03 for Tilera Board
> http://www.erlang.org/cgi-bin/ezmlm-cgi/4/49164 .  I tried to add steps like
> "touch lib/crypto/SKIP', "touch lib/ssl/SKIP", "touch lib/ssh/SKIP". But I
> still didn't succeed.
>
> Could someone help me? Thank you in advance.
>
> Best Regards,
> Jianrong Zhang
> Kista Multicore Center, SICS
>

________________________________________________________________
erlang-questions (at) erlang.org mailing list.
See http://www.erlang.org/faq.html
To unsubscribe; mailto:[hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: How to Cross compile Erlang/OTP R13B04 for TileraPro64

JR Zhang
Thank you Rickard. It solved the problem.

Best Regards,
Jianrong Zhang
Kista Multicore Center, SICS

On Mon, Mar 29, 2010 at 4:13 PM, Rickard Green <[hidden email]> wrote:

> The following patch hopefully fixes you problem. The bug only
> manifests itself when the number of logical processors found is fewer
> than reported by sysconf(_SC_NPROCESSORS_CONF). This is normally never
> the case, but on the tilera (with a relatively new MDE) it is.
>
> Regards,
> Rickard, Erlang/OTP, Ericsson AB
>
> $ diff -Nau otp_src_R13B04/erts/lib_src/common/erl_misc_utils.c{~,}
> --- otp_src_R13B04/erts/lib_src/common/erl_misc_utils.c~
> 2009-11-20 14:32:23.000000000 +0100
> +++ otp_src_R13B04/erts/lib_src/common/erl_misc_utils.c 2010-03-29
> 15:53:28.000000000 +0200
> @@ -373,8 +373,8 @@
>        return 0;
>     memcpy((void *) topology,
>           (void *) cpuinfo->topology,
> -          cpuinfo->configured*sizeof(erts_cpu_topology_t));
> -    return cpuinfo->configured;
> +          cpuinfo->topology_size*sizeof(erts_cpu_topology_t));
> +    return cpuinfo->topology_size;
>  }
>
>  int
>
>
>
> 2010/3/27 JR Zhang <[hidden email]>:
> > Hi,
> >
> > I couldn't cross compile Erlang/OTP R13B04 for Tilera board properly. I
> > follow the steps described in INSTALL-CROSS.md, which are :
> > (1) cd $ERL_TOP
> > (2) ./otp_build configure --xcomp-conf=<path to
> > erl-xcomp-TileraMDE2.0-tilepro.conf>
> > (3) ./otp_build boot -a
> > (4) ./otp_build release -a /lhome/x/otp
> > (5) ./Install -cross -minimal /lhome/x/otp
> > The compilation is successful without any errors. But after I upload it
> to
> > Tilera board and run it, I get an error, "Segmentation fault".
> >
> >  I found a thread discussing how to cross compile R13B03 for Tilera Board
> > http://www.erlang.org/cgi-bin/ezmlm-cgi/4/49164 .  I tried to add steps
> like
> > "touch lib/crypto/SKIP', "touch lib/ssl/SKIP", "touch lib/ssh/SKIP". But
> I
> > still didn't succeed.
> >
> > Could someone help me? Thank you in advance.
> >
> > Best Regards,
> > Jianrong Zhang
> > Kista Multicore Center, SICS
> >
>