Building an ARM GCC Toolchain from Source
2011-09-06 19:28
537 查看
Step by step guide on building a GCC cross-compilation toolchain from source on Windows and Linux
While we'd strongly recommend starting with one of the precompiled GNU GCC toolchains available for ARM such as CodeSourcery G++ Lite orYagarto (see Setting
up a GCC Development Environment for the Cortex M0/M3 for more information), using a precompiled toolchain leaves you at the mercy of someone else's whims and fancies about what features to include, what libraries to use, etc. Depending on precompiled
toolchains also means that you're depending on their authors to regularly update them when new releases of GCC become available.
This tutorial came to life precisely because of a situation like that: GCC 4.5.0 is the first version to have official support for the ARM Cortex-M0 core, but unfortunately all the precompiled toolchains at the time this article was written were still based
on GCC 4.4.x. Roel Verdult (from
libnfc.org) came to the rescue and provided this step-by-step tutorial on building GCC from source in both Linux and Windows for us. If you need to build your own toolchain as well, this tutorial should at least get you well on your way.
Linux
Building GCC under Linux requires less steps than in Windows since a number of required packages are typically already installed on most Linux distributions or they can be easily installed from pre-compiled binaries. GCC compile times are also generallya lot faster under Linux than in Windows, which is helpful for packages as 'large' as a custom GNU GCC for ARM toolchain. That said ... the entire build process will probably still take about an hour on most machines.
This tutorial was written and tested for Ubuntu 10.10, but should be easily adaptable to most modern Linux distributions. The build script currently builds GCC 4.5.2, Binutils 2.21, Newlib 1.19 and GDB 7.2.
Step 1: Install build tools and packages
From the command-prompt, enter the following command:sudo apt-get update sudo apt-get install build-essential sudo apt-get install libmpc-dev sudo apt-get install zlib1g-dev sudo apt-get install texinfo sudo apt-get install libncurses5-dev
Step 2: Build the GCC Toolchain
Downloadsummon-arm-toolchain.tar.gz, decompress it and run it using the following commands:
wget http://www.microbuilder.eu/Files/Tutorials/summon-arm-toolchain.tar.gz tar -xvzf summon-arm-toolchain.tar.gz sh summon-arm-toolchain.sh ~/ arm-none-eabi
Step 3: Add the GCC Toolchain to PATH
Next you need to add the location of the compiled binaries to your path variable with the following command:$ echo "PATH=$PATH:~/arm-none-eabi/bin" >> .bashrc
Note: You will need to restart the console for these changes to take effect.
Windows
Building GCC under Windows is a little bit more complicated than in Linux, since a number of packages need to be installed beforehand. This guide will help you install and configure the required software packages to be able to build a GCC cross-compilingtoolchain for ARM.
Note for Windows Users: It will take 90 minutes or more under Windows to build all the tools and libraries required for a GNU GCC cross-compiling toolchain for ARM. To make the installation process as easy as possible
and avoid having to restart the process, we strongly recommend using the default folders for MINGW and MSYS, since changing them from "<drive>:\MINGW" and "<drive>:\MSYS" will require extra steps that aren't documented here.
Step 1: Install MinGW and MSYS Base System
Before you can do anything useful, you will need to download Minimalist GNU for Windows (MinGW) andMSYS Base System with GNU Utilities (MSYS), both of which are available from theMinGWSourceForge download page. You can also download the files directly with the following links (which were the most recent versions at the publication of this article, 19 April 2010):
Direct Download:
Minimalist GNU for Windows (MinGW) 5.1.6
Direct Download:
MSYS Base System with GNU Utilities 1.0.11
Step 2: Download GNU wget
Next you need to download wget (a non-interactive network retriever) using the link below, and place the executable file in the "msys\1.0\bin" folder:Direct Download: wget
Step 3: Load the MSYS Environment and Start Building
Next you need to start the MSYS environment by selecting "Start -> Programs -> MinGW -> MSYS -> MSYS" in the start menu. (The menu options may vary slightly depending on which version of Windows you are using, and how you're start menu isconfigured.). This UNIX console will be used to build the necessary packages as well as the GNU GCC ARM Toolchain:
Mount MinGW in MSYS
To access MinGW from MSYS, you will need to configure MSYS to associate "/mingw" with the MinGW installation path (presumably "c:\mingw" if you used the default settings during installation). This can be done with the following command:
mount c:/mingw /mingw
Build GMP ([b]GNU Multiple Precision Arithmetic Library)[/b]
$ wget ftp://ftp.gmplib.org/pub/gmp-5.0.1/gmp-5.0.1.tar.gz $ tar -xvzf gmp-5.0.1.tar.gz $ cd gmp-5.0.1 $ ./configure --prefix=/mingw $ make $ make install $ cd ..
Build MPFR (Multi-Precision Floating Point Library)
$ wget http://www.mpfr.org/mpfr-current/mpfr-2.4.2.tar.gz $ tar -xvzf mpfr-2.4.2.tar.gz $ cd mpfr-2.4.2 $ ./configure --prefix=/mingw $ make $ make install $ cd ..
Build MPC (Multi-Precision Complex Arithmetic Library)
$ wget http://www.multiprecision.org/mpc/download/mpc-0.8.1.tar.gz $ tar -xvzf mpc-0.8.1.tar.gz $ cd mpc-0.8.1 $ ./configure --prefix=/mingw $ make $ make install $ cd ..
Step 4: Build GNU GCC ARM Toolchain
Last, you need to download a simple script file that will handle the compilation of the GNU GCC ARM Toolchain (GCC 4.5.0, Newlib 1.18.0, GDB 7.1 and Binutils 2.20.1). Download the following file, and unzip it in the "<drive>:\msys\1.0\home\<username>\"folder:
Direct Download:
GCC Build Script
Build GNU GCC
$ sh summon-arm-toolchain.sh ~ arm-none-eabi
Step 5: Adding the Environment Variables in Windows
In order to access the newly built GCC toolchain from the command-prompt, you will need to add the appropriate paths to the Windows "path". You can do this using the following steps:Right-click on My Computer and select Properties from the popup-menu
Switch to the Advanced tab
From there, select the Environment Variables button at the bottom
Find the Path system variable and click the Edit button
"Path" Environment Variables
C:\msys\1.0\home\<username>\arm-none-eabi\bin;C:\msys\1.0\bin\
You may need to reset your system in order for the new path variables to take effect. At this point, you should be able to build makefile-based projects from the command-line using "make" with the new GNU GCC ARM cross-compiling toolchain!
转载地址:http://www.microbuilder.eu/Tutorials/SoftwareDevelopment/BuildingGCCToolchain.aspx
相关文章推荐
- building-gcc-4-8-from-source-on-ubunu-12-04/
- Getting Started With OData Part 2: Building an OData Services from Any Data Source
- Building a GNU/Linux ARM Toolchain (from scratch)
- Building Visual Leak Detector from Source
- 关于Cygwin中编译FFmpeg时执行sh文件出现arm-linux-androideabi-gcc is unable to create an executable file.
- From Source Code to an Executalbe File ----- Learning of Gcc on Linux Operating Systems
- Osmocombb项目编译GnuArmToolchain中的GCC4.5.2时遇到recipe for target 'doc/cpp.info' failed(texinfo)错误的解决方法
- 哪里有编译好的gcc 4.0 toolchain for ARM
- building an array from several ranges
- Pro Open Source Mail: Building an Enterprise Mail Solution
- About Xorg building from the source codes
- Create an ISO Image from a source CD or DVD on ubuntu
- ubuntu下安装gcc-arm-embedded-toolchain
- (OK) Building Android from AOSP source code
- Security Tutorials系列第十二章:Building an Interface to Select One User Account from Many
- Building armlinux toolchain for ARM/XScaleiWMMXt(new ABI)
- A guide to get you building OGRE from source with the default settings in the shortest possible time
- OpenWrt编译出ARM/MIPS等平台的native GCC (toolchain)
- Building arm-linux toolchain for ARM/XSCALE
- Chapter 3. Building from Source