Linaro Toolchain 2013.09 ======================== This package contains pre-built versions of Linaro GCC and Linaro GDB that target either the Linaro Evaluation Build or baremetal systems. Installation ------------ To install: * On Linux, ensure the 32 bit LSB libraries installed * Extract the tarball to a convenient location such as `/opt` * Add the `bin` directory to your path See below for more detailed instructions. This package can be installed in any location. Consider using the included `arm-*-pkg-config` to make finding libraries and dependencies easier. What's included --------------- * Linaro GCC 4.8 2013.09 * Linaro GDB 7.6 2013.05 * A statically linked gdbserver in arm-linux-gnueabihf/debug-root * A system root * Manuals under share/doc/ The system root contains the basic header files and libraries to link your programs against. Support ------- Need help? Ask a question on https://ask.linaro.org/ Already on Launchpad? Submit a bug at https://bugs.launchpad.net/linaro-toolchain-binaries On IRC? See us on #linaro on Freenode. Other ways that you can contact us or get involved are listed at https://wiki.linaro.org/GettingInvolved. Target compatibility -------------------- The arm-linux-gnueabihf version targets the Linaro Evaluation Build 12.05 flavour of Ubuntu 12.04 "Precise Pangolin". The default configuration is: * Runs on all Cortex-A profile devices * Tuned for the Cortex-A9 * Thumb-2 * 'hard float' calling convention * Uses the VFPv3-D16 FPU * Multiarch and multilib enabled * EGLIBC 2.17 * A GCC 4.8 series libgcc and libstdc++ For more information on the LEB, see the Linaro Wiki at https://wiki.linaro.org/ Precise comes with a 4.6 based runtime. To use all of the features of Linaro GCC 4.8, and especially if you get runtime errors about a missing 'GCC_4.8.X version', please download the runtime package from: https://launchpad.net/linaro-toolchain-binaries/+download and extract on the target. Future LEB images will include the 4.8 runtime by default. To use all of the features of Linaro eglibc, and especially if you get runtime errots about libc version, please get the sysroot from the release tarball. unzip a release tarball. The sysroot is gcc-linaro-../arm-linux-gnueabihf/libc In addition to the default configuration, a basic ARMv4T runtime is included for use when building baremetal projects such as Linux and u-boot for earlier architectures. To use it, pass the following flags to GCC: -marm -march=armv4t -mfloat-abi=soft If ARMv4T does not work, please try to add "-mno-unaligned-access" to disable unaligned access. Host compatibility ------------------ The Linux version is supported on: * Ubuntu 10.04.3 and later * Debian 6.0.2 * Fedora 16 * openSUSE 12.1 * Red Hat Enterprise Linux Workstation 5.7 and later and should run on any Linux Standard Base 3.0 compatible distribution. Installing the LSB depends on the distribution: * On Ubuntu or Debian, run `sudo apt-get install lsb` * On Fedora 16, run `sudo yum install redhat-lsb.i686` * On openSUSE 12, run `sudo zypper install lsb.i586` * Red Hat 5 is LSB compatible by default * For other distributions, please see the distribution documentation This package contains 32 bit executables that also run on 64 bit hosts. In some cases you may need to install the 32 bit support libraries. On Ubuntu or Debian run `sudo apt-get install ia32-libs`. For other distributions, please see the distribution documentation. The Windows version is supported on: * Windows XP Pro SP3 * Windows Vista Business SP2 * Windows 7 Pro SP1 on both 32 bit and 64 bit hosts. No other files are required. For best results, make sure there are no spaces in the directory name. Source ------ This package was built using an Ubuntu 10.04 i686 host, crosstool-NG, and the source tarballs included in the `src` archive. The following instructions are untested. Patches are welcome! To reproduce this build: * Install the build dependencies: * apt-get build-dep gcc binutils gdb * apt-get install lsb lsb-build-cc3 lsb-appchk3 ccache * apt-get install gcc-mingw32 gcc-4.1 g++-4.1 gcc-4.1-multilib g++-4.1-multilib * apt-get install texlive flip * Building requires /bin/sh to be bash. See http://crosstool-ng.org/ for more * Download the `src` archive * Download and extract the crosstool-NG tarball * Change to the crosstool-NG directory * Extract the `src` archive giving `tarballs/binutils-*` and similar * Run `make -f contrib/linaro/build.mk TARGETS=arm-linux-gnueabihf` The builds will end up in `builds/$target-$host`. See `contrib/linaro/build.mk` for more. Alternatively, you can build directly using the sample configurations. See the crosstool-NG documentation and `samples/linaro-arm-linux-gnueabihf`. A patched version of the LSB is used to work around configuration and host GCC compatibility issues. `build.mk` builds and uses this automatically. See `contrib/linaro/lsb/make-lsb.sh` for manual builds. Links ----- This project: https://launchpad.net/linaro-toolchain-binaries Unsupported builds: https://launchpad.net/linaro-toolchain-unsupported The Linaro version of crosstool-NG: https://code.launchpad.net/~linaro-toolchain-dev/crosstool-ng/linaro