Skip to content

Latest commit

 

History

History
87 lines (51 loc) · 1.42 KB

tutorial.md

File metadata and controls

87 lines (51 loc) · 1.42 KB

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 wllvm.

>sudo apt-get update

>sudo apt-get install python-pip

>sudo pip install wllvm

Step 2.

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

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

``` Note `wllvm` is agnostic with respect to llvm versions, when you
use clang, 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 wllvm tool to use clang and be relatively quiet:

export LLVM_COMPILER=clang

export WLLVM_OUTPUT=WARNING



## Step 4.

 Fetch apache, untar, configure, then build:

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

tar xfz httpd-2.4.18.tar.gz

cd httpd-2.4.18

CC=wllvm ./configure

make


## Step 5.

Extract the bitcode.

extract-bc -l llvm-link-3.4 httpd

ls -la httpd.bc -rw-rw-r-- 1 vagrant vagrant 860608 Aug 4 16:55 httpd.bc


The extra command line argument to `extract-bc` is because `apt`
installs `llvm-link` as `llvm-link-3.4` so we need to tell `extract-bc`
to use that one.