gllvm/examples/tutorial.md
2018-04-30 13:31:21 -07:00

1.2 KiB

Compiling Apache on Ubuntu

On a clean 14.04 machine I will build apache.

>pwd

/vagrant

>more /etc/lsb-release

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.2 LTS"

Step 1.

Install gllvm.

>export GOPATH=/vagrant/go

>mkdir -p ${GOPATH}

>go get github.com/SRI-CSL/gllvm/cmd/...

>export PATH=${GOPATH}/bin:${PATH}

Step 2.

I am only going to build apache, not apr, so I first install the prerequisites.

>sudo apt-get install llvm libclang-dev clang libapr1-dev libaprutil1-dev

``` Note `gclang` is agnostic with respect to llvm versions
so feel free to install a more recent version if you
wish. However, if you are going to use dragonegg the llvm version is
tightly coupled to the gcc and plugin versions you are using.


## Step 3.

  Configure the gllvm tool to be relatively quiet:

export WLLVM_OUTPUT_LEVEL=WARNING export WLLVM_OUTPUT_FILE=/vagrant/apache-build.log



## Step 4.

 Fetch apache, untar, configure, then build:

wget https://archive.apache.org/dist/httpd/httpd-2.4.33.tar.gz

tar xfz httpd-2.4.33.tar.gz

cd httpd-2.4.33

CC=gclang ./configure

make


## Step 5.

Extract the bitcode.

get-bc httpd