This repository contains build instructions for the PPU (Plasticity Processing Unit) toolchain. It is the toplevel repository of the compiler/linker toolchain consisting of
- binutils-gdb: patched linker/assembler, gdb and object file helpers
- gcc: patched C, C++ compiler and libstdc++
- newlib: patched C library
Clone the repositories:
binutils-gdb@binutils-2_25-branch-nux
gcc@nux-on-gcc-4_9_4-release
newlib@master
oppulance@master
Each repository contains numbered build scripts in
repo/ci/*.sh
which are to be executed in the repository order above and in ascending number order inside a repository.
During build, a build folder will be created for each repository, namely
build_binutils
build_gcc
build_newlib
build_libstdc++
and an install folder for installation.
Prepend PATH with install/bin and LD_LIBRARY_PATH with install/lib.
For usage in singularity containers, SINGULARITYENV_PREPEND_PATH and SINGULARITYENV_LD_LIBRARY_PATH
are to be set in the same way.
The toolchain is built and deployed by a continuous integration Jenkins job. Is can be loaded via
module load ppu-toolchain
on either a frontend or cluster nodes.
The operating system target is ppu and the architecture is powerpc, therefore the binaries will be named like:
powerpc-ppu-gcc
powerpc-ppu-nm
For linking the toolchain with libc and libstdc++ using waf, the ordered list of ['stdc++', 'c', 'm', 'g', 'gcc']
needs to be appended to conf.env.STLIB in the configure step of the wscript.