Skip to content
/ zllvm Public
forked from notcarbide/zllvm

ZapDragon variant of the LLVM toolchain

Notifications You must be signed in to change notification settings

uzap/zllvm

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 

Repository files navigation

ZapDragon LLVM

ZLLVM is a flavor of LLVM for x86 with minimal support for ARM, AArch64, and Native (x86) targets. It is built with "Thin" Link Time Optimization and Profile-Guided Optimization (profiled specifically for building the ZapPi Kernel). The scripts to update and build ZapDragon are heavily based on/inspired by Debian's tools for creating LLVM Snapshots.

Projects enabled

Runtimes enabled (used by default)

Compiled builds can be found in releases.

Build

The kernel source for ZapPi Kernel is required to run the tests for PGO. It is recommended to clone it alongside this repo, although it can be configured by the KERNEL_DIR parameter.

This project is compiled using the LLVM made available via apt.

Clone the repository:

git clone https://github.com/uzap/zllvm.git

Pull and patch the LLVM source:

cd zllvm && sh zap/pullsrc.sh

Start the build:

zap/pgo

Note that options can be configured via passing the parameter after zap/pgo, ex:

zap/pgo KERNEL_DIR=/my/kernel/dir KERNEL_BRANCH=example ARM_CRT=no

The separate zap/arm-crt script can be used to cross compile the compiler-rt runtime for ARM and AArch64, although it has requirements and will need to be configured to the local build env. All of the variables that might require modifying should be noted within the zap/arm-crt file. This build step can be disabled via the ARM_CRT parameter (see above).

About

ZapDragon variant of the LLVM toolchain

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Makefile 78.4%
  • Shell 21.6%