LinuxQuestions.org
Visit Jeremy's Blog.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Software
User Name
Password
Linux - Software This forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.

Notices


Reply
  Search this Thread
Old 12-19-2014, 06:34 AM   #1
vjn_bki
LQ Newbie
 
Registered: Oct 2014
Posts: 8

Rep: Reputation: Disabled
Is there any generic ARM Linux toolchain ?


I have to build an application that can run on any ARM-Linux platfrom. Is there any base line arm linux toolchain which I can use to build my application, such that it can run on all versions of ARM platform.

I used the toolchain 'arm-none-linux-gnueabi' (arm-2010q1-202-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar) from sourcery to build my application, but when I am trying to run my app on RaspberryPie (armv6) it is failing to load the shared libraries

"cannot open shared object file: No such file or directory" -
I have ensured that the RPATH set is pointing to the correct location and that the said library is present.

I suspect it is the problem with the toolchain I used to build my code
 
Old 12-19-2014, 08:04 AM   #2
jpollard
Senior Member
 
Registered: Dec 2012
Location: Washington DC area
Distribution: Fedora, CentOS, Slackware
Posts: 4,912

Rep: Reputation: 1513Reputation: 1513Reputation: 1513Reputation: 1513Reputation: 1513Reputation: 1513Reputation: 1513Reputation: 1513Reputation: 1513Reputation: 1513Reputation: 1513
Is there a generic ARM platform?

It is my understanding that each ARM CPU has its own peculiarities since each is tailored to a specific environment. Even the instruction sets vary depending on which level of ARM you are using.

And that makes it next to impossible to write an application that will run on all versions of ARM. Run on many, yes - but that only applies to most of the 32 bit CPUs and excludes the 64 bit versions...


for the number of differences, see http://en.wikipedia.org/wiki/List_of...oarchitectures, then check out the variations that GCC supports - https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html

The question becomes WHICH ARM (v7,8,9), WHICH floating point, using thumb instruction set or not(which I believe isn't supported for v9).

The problem you are reporting likely caused by the architecture not using the file you think it should (the path is actually different).

Last edited by jpollard; 12-19-2014 at 08:07 AM.
 
Old 12-22-2014, 10:35 AM   #3
vjn_bki
LQ Newbie
 
Registered: Oct 2014
Posts: 8

Original Poster
Rep: Reputation: Disabled
thanks much for the reply.. that was really helpful.

"Run on many, yes - but that only applies to most of the 32" -

Do you mean that it can run on different versions of ARM (even though not all version) if they are all 32 bit ? I thought that if I am using a toolchain which has support for armv4t and armv7 then it will work only for those platforms and not work for armv5, armv6 ?

I am wondering how to make my build generic, it seems as if I will have to get toolchains for all combinations of
-- All different ARM platfroms
-- Hard Floating point / Soft floating point support
-- 32 Bit / 64 Bit
-- Low Endian / Big Endian
-- Thumb support / No thumb

There has to be a better work around for this as ARM is now a very common platform.

The problem with Raspberry PI was that it was expecting a HF based binary and I was using a toolchain which was meant for soft floating point support.
 
Old 12-22-2014, 02:05 PM   #4
jpollard
Senior Member
 
Registered: Dec 2012
Location: Washington DC area
Distribution: Fedora, CentOS, Slackware
Posts: 4,912

Rep: Reputation: 1513Reputation: 1513Reputation: 1513Reputation: 1513Reputation: 1513Reputation: 1513Reputation: 1513Reputation: 1513Reputation: 1513Reputation: 1513Reputation: 1513
I believe the answer is a qualified "yes".

Qualified, because each chip version produced by a factory is/can be customized to that particular use the chip is for (it is an embedded processor). But as far as the user space goes
you can look at the product tables to see what is available for each.

http://en.wikipedia.org/wiki/List_of...oarchitectures

And yes, this is a repeat.

Some chips don't have the DSP instructions.
Some don't have floating point.
Some have half precision floating point.

Most of them after v5 have the "thumb" instruction set - but if you limit the application to these you also lose the extended capability of the higher versions (and can lose performance).

The cortex M base is a bit more standardized, (goes from v4 through v7) but even there, the variations may cause problems for some applications.

And the 64 bit version doesn't have the thumb instruction set.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Where can I download arm-linux-* toolchain ? unimous Linux - Embedded & Single-board computer 20 04-12-2013 07:43 AM
LXer: GNU ARM toolchain embedded development on Linux LXer Syndicated Linux News 0 05-22-2009 06:11 AM
GNU ToolChain for ARM, Linux 2.6.14-2/binutil-2.16/gcc 4.0.2/glibc-2.3.5 kumar_bst Linux - Software 0 01-22-2008 04:59 AM
ARM Toolchain Problem richardji Linux - General 2 08-08-2005 10:24 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Software

All times are GMT -5. The time now is 04:59 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration