Difference between revisions of "AArch64 ILP32 Toolchain"

From LEAP Wiki
Jump to: navigation, search
(Added the sources and patches section.)
Line 20: Line 20:
 
    
 
    
  
== Building ILP32 toolchain manually ==
 
 
== Sources and Patches ==
 
== Sources and Patches ==
== Licenses ==
+
 
 +
===GCC===
 +
 
 +
<u>Source</u>: [https://releases.linaro.org/15.06/components/toolchain/gcc-linaro/4.9/ Linaro GCC 4.9.4]
 +
 
 +
<u>Patches</u>:
 +
*[https://github.com/joulecpa/ilp32-toolchain-patches/blob/master/gcc-aarch64_ilp32-target-autoconf.patch gcc-aarch64_ilp32autoconf.patch]
 +
*[https://github.com/joulecpa/ilp32-toolchain-patches/blob/master/gcc-prequisites-aarch64_ilp32-target-autoconf.patch gcc-prequisites-aarch64_ilp32-target-autoconf.patch]
 +
<u>Licenses</u>: GNU GPLv2, GNU GPLv3
 +
 
 +
<u>Description</u>: This is Linaro's 4.9.4 GCC release from June 2015. The above two patches are there to allow building for the aarch64_ilp32 target.
 +
 
 +
===Binutils===
 +
<u>Source</u>: [http://sourceware.org/git/binutils-gdb.git Binutils (Master)]
 +
 
 +
<u>Patches</u>:
 +
*[https://github.com/joulecpa/ilp32-toolchain-patches/blob/master/binutils-aarch64_ilp32-target.patch binutils-aarch64_ilp32-target.patch]
 +
<u>Licenses</u>: GNU GPLv2, GNU GPLv3
 +
 
 +
<u>Description</u>: This is Binutils from the master branch. The above patch allows building for the aarch64_ilp32 target.
 +
 
 +
===GLIBC===
 +
<u>Source</u>: [https://github.com/norov/glibc/tree/thunderx-ilp32-32time_toff_t GLIBC thunderx-ilp32-32timetoff_t branch]
 +
 
 +
<u>Patches</u>:
 +
*[https://github.com/joulecpa/ilp32-toolchain-patches/blob/master/glibc-aarch64_ilp32-target-autoconf.patch glibc-update-aarch64_ilp32-target-autoconf.patch]
 +
<u>Licenses</u>: GNU GPLv2
 +
 
 +
<u>Description</u>: This is a WIP GLIBC with the ilp32 patches applied. The above patch allows building for the aarch64_ilp32 target.
 +
 
 +
 
 +
== Building ILP32 toolchain manually ==
 +
 
 +
 
 
== Extra links ==
 
== Extra links ==

Revision as of 20:17, 29 February 2016

Idea.png
This is a draft!
More details are coming soon.

Introduction

This page describes the details about using ILP32 AArch64 toolchain on LEAP.

Requirements

  • Latest LEAP kernel (4.3+)
  • Docker
  • Docker image with AArch64 ILP32 Toolchain

Using ILP32 toolchain

1. You need LEAP running on ARM64 platform: Installation instructions

2. Install the latest LEAP kernel (4.3+) and Docker

yum install kernel docker

3. Since docker is not able to start using systemctl start docker for some reasons, we can still start docker manually

systemctl start docker-storage-setup && screen -dm docker daemon

4. Fetch our AArch64 ILP32 docker image from DockerHub


Sources and Patches

GCC

Source: Linaro GCC 4.9.4

Patches:

Licenses: GNU GPLv2, GNU GPLv3

Description: This is Linaro's 4.9.4 GCC release from June 2015. The above two patches are there to allow building for the aarch64_ilp32 target.

Binutils

Source: Binutils (Master)

Patches:

Licenses: GNU GPLv2, GNU GPLv3

Description: This is Binutils from the master branch. The above patch allows building for the aarch64_ilp32 target.

GLIBC

Source: GLIBC thunderx-ilp32-32timetoff_t branch

Patches:

Licenses: GNU GPLv2

Description: This is a WIP GLIBC with the ilp32 patches applied. The above patch allows building for the aarch64_ilp32 target.


Building ILP32 toolchain manually

Extra links