Hprc banner tamu.png

SW:EasyBuild:Building Your Own Software:Another Example - LLVM

From TAMU HPRC
Revision as of 16:38, 3 October 2020 by J-perdue (talk | contribs) (Converting an existing LLVM EasyBuild "easyconfig" using GCC to a much newer LLVM built using the CLang)
Jump to: navigation, search

This example will cover building a very recent version of LLVM using the CLang compiler. Users may first want to visit HPRC's EasyBuild page and a previous example of modifying an existing easyconfig. At some point in the process, users might want to also review the official EasyBuild documentation.

Motivation

A user wants to build a modified version of the LLVM module that includes:

  1. a recent source from the LLVM Github repository
  2. adds support for CLang

LLVM is a rather long build (several hours using a single-processor). Additionally, the currently installed versions do not include CLang support. They are also rather dated (v9.01 released December 20, 2019). Newer releases include v10.0.1, released August 6, 2020. An even newer release candidate includes v11.0.0-rc5 released September 30, 2020 but as of this writing on October 3, 2020, there are already 7681 commits to master since this release. So, for this example we will use a recent (10/3/2020) .zip file of the master repo. Notes for using a bleeding edge (as of this moment) clone of the master repo are included below and are left as an exercise to the reader.

Converting an existing LLVM EasyBuild "easyconfig" using GCC to a much newer LLVM built using the CLang

Important note on using terra

The instructions below are for building on any ada (and previously curie) login node. At present, on terra, the needed directories are only mounted on terra2/login2, so if you want to build for terra you will need to build there. Some things to consider:

  1. If ada2 is currently, or was recently, down (e.g. for system maintenance), the needed directories won't be available on terra2. If ada2 is up and available for users and these directories are not yet available on terra2, please email help@hprc.tamu.edu to request they be mounted
  2. If the build requires a GPU at compile (build) time instead of just run time, you will need to use terra3/login3. If you find your programs has this compile-time requirement, please email help@hprc.tamu.edu and someone should be able to mount the needed directories there. However, for most builds, users should use terra2/login2.

Selecting an existing LLVM easyconfig

Making the desired changes to the easyconfig

The resulting easyconfig

Building the new easyconfig

Notes