Cross compiling for ARM processor

I am new to Ruby and I have an application which would be well-suited to
Rails. The difficulty is that this application will run on an embedded
ARM processor (Arcom-based armv5tel). I have searched the archives, but
I haven't yet found a solution for cross-compiling from i386 to ARM. I
found this:

ac_cv_func_getpgrp_void=yes \
ac_cv_func_setpgrp_void=yes \
ac_cv_sizeof_long_long=8 \
ac_cv_func_memcmp_clean=yes \
ac_cv_func_getrlimit=yes \
./configure \
--target=arm-linux \
--host=arm-linux \
--build=`sh config.guess`

but when I try to run the ruby executable on my target machine, I just
get a 'cannot execute binary file'.

I would appreciate any help anyone has to offer.

Thanks,
Shawn

Never mind, I worked it out.

Shawn

Quoting Shawn Church <shawn@boxity.com>:

···

I am new to Ruby and I have an application which would be well-suited
to
Rails. The difficulty is that this application will run on an
embedded
ARM processor (Arcom-based armv5tel). I have searched the archives,
but
I haven't yet found a solution for cross-compiling from i386 to ARM.
I
found this:

ac_cv_func_getpgrp_void=yes \
ac_cv_func_setpgrp_void=yes \
ac_cv_sizeof_long_long=8 \
ac_cv_func_memcmp_clean=yes \
ac_cv_func_getrlimit=yes \
./configure \
--target=arm-linux \
--host=arm-linux \
--build=`sh config.guess`

but when I try to run the ruby executable on my target machine, I
just
get a 'cannot execute binary file'.

I would appreciate any help anyone has to offer.

Thanks,
Shawn

Never mind, I worked it out.

Would you mind sharing what you ran into and what you did to solve it? I
would be interested in cross compiling ruby too, but haven't tried yet.

Guillaume.

···

On Wed, 2005-07-27 at 06:29 +0900, Shawn Church wrote:

Shawn

Quoting Shawn Church <shawn@boxity.com>:

> I am new to Ruby and I have an application which would be well-suited
> to
> Rails. The difficulty is that this application will run on an
> embedded
> ARM processor (Arcom-based armv5tel). I have searched the archives,
> but
> I haven't yet found a solution for cross-compiling from i386 to ARM.
> I
> found this:
>
> ac_cv_func_getpgrp_void=yes \
> ac_cv_func_setpgrp_void=yes \
> ac_cv_sizeof_long_long=8 \
> ac_cv_func_memcmp_clean=yes \
> ac_cv_func_getrlimit=yes \
> ./configure \
> --target=arm-linux \
> --host=arm-linux \
> --build=`sh config.guess`
>
> but when I try to run the ruby executable on my target machine, I
> just
> get a 'cannot execute binary file'.
>
> I would appreciate any help anyone has to offer.
>
> Thanks,
> Shawn
>
>

After loading arm-linux-gcc, glib, and binutils, I ran this:

CC=/usr/local/arm/bin/arm-linux-gcc \
LD=/usr/local/arm/bin/arm-linux-gcc \
AR=/usr/local/arm/bin/arm-linux-ar \
RANLIB=/usr/local/arm/bin/arm-linux-ranlib \
env ac_cv_func_getpgrp_void=yes \
ac_cv_func_setpgrp_void=yes \
./configure --prefix=/usr/local/arm \
--target=arm-linux \
--host=arm-linux \
--build=`sh config.guess`

and then make.

Ruby seems to work fine, but I'm now having a little trouble getting
RubyGems to work. I'm absolutely new to Ruby, so I'm still learning how
everything fits together. I'm getting a LoadError in manage_gems when
running:

./ruby ../bin/gem install rails --remote

I've set the RUBYLIB environment variable to point to both the lib and
ext directories, but something is still wrong. The full exception is:

/usr/local/ruby-1.8.2-arm/lib/rubygems/custom_require.rb:21:in
`require__': No such file to load -- syck (LoadError)
from /usr/local/ruby-1.8.2-arm/lib/rubygems/custom_require.rb:21:in
`require'
from /usr/local/ruby-1.8.2-arm/lib/yaml/syck.rb:5
from /usr/local/ruby-1.8.2-arm/lib/rubygems/custom_require.rb:21:in
`require__'
from /usr/local/ruby-1.8.2-arm/lib/rubygems/custom_require.rb:21:in
`require'
from /usr/local/ruby-1.8.2-arm/lib/yaml.rb:9
from /usr/local/ruby-1.8.2-arm/lib/rubygems/custom_require.rb:21:in
`require__'
from /usr/local/ruby-1.8.2-arm/lib/rubygems/custom_require.rb:21:in
`require'
from /usr/local/ruby-1.8.2-arm/lib/rubygems/package.rb:6
from /usr/local/ruby-1.8.2-arm/lib/rubygems/custom_require.rb:21:in
`require__'
from /usr/local/ruby-1.8.2-arm/lib/rubygems/custom_require.rb:21:in
`require'
from /usr/local/ruby-1.8.2-arm/lib/rubygems/builder.rb:1
from /usr/local/ruby-1.8.2-arm/lib/rubygems/custom_require.rb:21:in
`require__'
from /usr/local/ruby-1.8.2-arm/lib/rubygems/custom_require.rb:21:in
`require'
from /usr/local/ruby-1.8.2-arm/lib/rubygems.rb:61:in `manage_gems'
from ../bin/gem:4

Thanks,
Shawn

Quoting Guillaume Marcais <guslist@free.fr>:

···

On Wed, 2005-07-27 at 06:29 +0900, Shawn Church wrote:
> Never mind, I worked it out.

Would you mind sharing what you ran into and what you did to solve
it? I
would be interested in cross compiling ruby too, but haven't tried
yet.

Guillaume.

> Shawn
>
>
> Quoting Shawn Church <shawn@boxity.com>:
>
> > I am new to Ruby and I have an application which would be
well-suited
> > to
> > Rails. The difficulty is that this application will run on an
> > embedded
> > ARM processor (Arcom-based armv5tel). I have searched the
archives,
> > but
> > I haven't yet found a solution for cross-compiling from i386 to
ARM.
> > I
> > found this:
> >
> > ac_cv_func_getpgrp_void=yes \
> > ac_cv_func_setpgrp_void=yes \
> > ac_cv_sizeof_long_long=8 \
> > ac_cv_func_memcmp_clean=yes \
> > ac_cv_func_getrlimit=yes \
> > ./configure \
> > --target=arm-linux \
> > --host=arm-linux \
> > --build=`sh config.guess`
> >
> > but when I try to run the ruby executable on my target machine,
I
> > just
> > get a 'cannot execute binary file'.
> >
> > I would appreciate any help anyone has to offer.
> >
> > Thanks,
> > Shawn
> >
> >
>
>
>
>