Skip to content

hanswinderix/sllvm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

417 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Security Enhanced LLVM

This is the main source code repository for Security Enhanced LLVM (SLLVM).

Building from Source

This section documents the current best way to build and install the SLLVM toolchain from source. The GNU make based build system has been developed to work on a fresh Ubuntu 18.04.1 LTS installation, but it should be fairly straightforward to port to other GNU/Linux distributions.

  1. Make sure you have installed the following dependencies.

    • GNU make 3.81 or later
    • git
    sudo apt install make git
  2. Clone the Git repository.

    git clone https://github.com/hanswinderix/sllvm.git
    cd sllvm
  3. Install the following additional dependencies.

    • curl
    • cmake 3.4.3 or later
    • g++ 4.7 or later
    • texinfo
    • Python 3
    • pip3 (for Python 3+)
    • pyelftools (Python 3+)
    • msp430-gcc 4.6 or later
    • expect
    • tcl
    • iverilog
    • clang-sancus
    sudo -H make install-deps

    Note: The msp430-gcc and clang-sancus dependencies are only required to build the legacy sancus compiler. These dependencies will disappear in the future.

  4. (Optional) Create and edit Makefile.local for local build configuration.

    The following GNU make variables can be set.

    Variable name Purpose
    JOBS Specifies the number of jobs to run simultaneously
    BUILD_TYPE Debug or Release build
    SANCUS_KEY Sancus master key in hexadecimal notation
  5. Fetch other repositories and configure the build.

    $ make fetch
    $ make configure
  6. Build and install.

    $ make install

Running the Sancus examples

$ make test-sancus

Sancus Protected Modules in C

See Sancus Examples for examples on how to develop Sancus protected modules with the SLLVM-based toolchain.

Intel SGX enclaves in C

See the Security Enhanced LLVM master's thesis for more information on how to develop Intel SGX enclaves in C with the SLLVM-based toolchain.

Sancus Protected modules in Rust

See the Security Enhanced LLVM master's thesis for more information on how to develop Sancus protected modules in Rust with the SLLVM-based toolchain.

Intel SGX enclaves in Rust

See the Security Enhanced LLVM master's thesis for more information on how to develop Intel SGX enclaves in Rust with the SLLVM-based toolchain.

License

See LICENSE for details.

About

Security Enhanced LLVM

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors