There are currently 0 users and 0 guests online.
Diablo is released under the GNU General Public License. As such you are free to use, modify and redistribute it free of charge, as long as you contribute all changes back to the community. We would very much appreciate it if you cited our LCTES paper [bibtex] if you publish something based on work you've done with Diablo.
Diablo is a research prototype that is under heavy development. Do not expect Diablo releases to be production quality code! However, we are willing to support Diablo users, so if you experience any problems using Diablo, or if you have any questions or suggestions, please contact us.
Latest development version
As the last stable Diablo release is relatively old and out of date, we encourage new users of Diablo to start using the development version instead. You can get this version by anonymous SVN with the following command:
A number of sample frontends for different architectures are included (in the frontends/ directory), which can be built with the corresponding Makefile.<arch>. Use these makefiles and frontends as inspiration to build your own Diablo-based tools.
Current Diablo release:
Please use the svn version described in the previous section.
Old Diablo releases:
In order to work correctly, Diablo needs some information about code and data in a program that a regular GCC-based toolchain does not preserve (the ARM ADS v1.1 does preserve this information). Therefore, you need to patch any GCC-based tool chain before you can use Diablo on programs generated by it. These patches do not influence the generated code, they only preserve some compile-time information that is also useful for Diablo but not for a regular linker.
Alternatively, we offer some pre-patched and pre-compiled tool chains as well. Please note that you can only generate statically linked binaries with these tool chains (which is all Diablo can handle). Installing them is as easy as unpacking the tar ball and setting up your PATH to point to the executables in the bin/ subdirectory.