I have just began working with Intel Edison. I was surprised I need to set up a cross compilation toolchain for GCC from my Linux PC. I Thought Edison was x86. Why doesnt native GCC from x86 Linux PC work for Edison? I would appreciate all explanation.
Thank you for your interest in the Intel® Edison Breakout Board.
I'll be needing more to time to come up with an answer to your question.
As soon as I have relevant information I'll post it here.
Thank you for your patience.
The reason behind cross compilation has to do more with the particular Linux distribution and less on the fact that your PC and the Edison module use the x86 architecture.
A cross compilation toolchain needs to match what the Edison is running, if you want to build your own operating system, then you wouldn't need a GCC cross compiler.
If you are interested in downloading the Cross-Compile SDK, please follow this link https://software.intel.com/en-us/iot/hardware/edison/downloads.
Please let me know if you find this information useful.
Have a nice day.
Hi, thanks for answer.
What is so special about the distribution running on Edison that it needs cross compilation? If the architecture is the same, what is the cross for?
The need for setting cross-compilation in this situation is not related to the architecture, it depends on the all the differences associated with the distributions (it's more a software-related issue than hardware-related issue).
If you want more information regarding cross-compiling for Linux, please check this link https://landley.net/writing/docs/cross-compiling.html.
Have a nice day.
Your host may be amd64 while eds is i386. Further you will be linking your application with libraries that need to be on the eds, not on the host, with the right versions.
The sdk builds the lib and include directories that match the eds's and you set the compiler/linkers flags to match.
There is really nothing to it, it just takes up disk space.