Commit e10be513 authored by Julian Kranz's avatar Julian Kranz

README

parent e9cd679e
In order to build the decoder and semantics translations (for x86 or Atmel
AVR) and to test the liveness analysis follow the steps below.
# vim: tw=80:fo+=t
In order to build the GDSL toolkit with its demo applications and libraries the
following steps need to be followed.
Dependencies
The following software packages are needed to compile the liveness analysis:
The GDSL compiler and core libraries require the following software to be
installed beforehand:
- Standard ML of New Jersey interactive compiler [>= version 110.75]
- Make
- A C compiler, preferably GCC
- Mlton (see http://www.mlton.org/) [version from 15/07/2013]
- GNU autoconf and make
Furthermore, the following software packages and features are required by some
of the optional demo applications:
- GNU C library extensions
- A C compiler that supports the C11 standard
- Libelf (http://www.mr511.de/software/) [>= version 0.152]
- Automake and Git (only needed in order to work with the sources from the
version control system)
Building the Application
The following steps need to be taken in order to build the application. It is
assumed that the GDSL root directory is the current working directory.
The first build step only needs to be performed if the sources are checked out
from the version control system. In this case, change to the the main directory
of the sources and run the following command:
autoreconf -i
./configure
make
By default, the x86 decoder and semantic translation to RReil are built.
Furthermore, there are a few supporting libraries and some demo applications
that are by default built but not installed. In order to generate a different front-end pass the --with-frontend= option to ./configure.
After this or as a first step if the source archieve is used, the sources need
to be configured; the following command uses the default build settings that
compile the x86 decoder with semantic translation:
The sources of the decoders can be found under the specifications/ directory.
In particular, the decoder for the x86 is in specifications/x86/x86.ml.
./configure
The liveness analyzer itself is a small C program that uses the API offered by the GDSL modules. The following commands compile the liveness analyzer:
Other architectures can be chosen by passing the "--with-frontend=..." option to
"./configure". For an overview of all available frontends and other options run
"./configure --help".
cd specifications/x86/c
make liveness-sweep
Finally,
The compilation outputs an executable file called "liveness-sweep". It
analyses a binary passed as command line argument:
make
./liveness-sweep liveness-example.bin
and (optionally)
The above example file only contains a bunch of instructions to be decoded,
translated and optimised. In case however one wishes to analyse the ".text"
section of a standard ELF executable it also is possible to directly pass such
a file:
make install
./liveness-sweep --elf `which ls`
build and install the respective frontend. The demo applications and libraries
are built but not installed by default; see "./configure --help" for information
on how to change this.
This command analyses the binary of the "ls" command.
The GDSL toolkit contains a number of demo applications and libraries. Depending
on the whether the build machine satisfies all dependencies, some or all of them
are built together with the GDSL frontend. The tools and libraries are presented
on the website of the toolkit (http://code.google.com/p/gdsl-toolkit/).
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment