Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

elftosb 2.x read me
-------------------

Directories

elftosb2 - elftosb 2.x
sbtool - sbtool 1.x
keygen - keygen 1.x
common - source files common between elftosb2, sbtool, and keygen
winsupport - files needed only by the windows build
elftosb - old elftosb 1.x, does not use anything from common
generatekeys - old key generation tool for elftosb 1.x
decrypt - old decryption tool for elftosb 1.x
unittests - old unit tests for elftosb 1.x
test_files - test ELF and Srecord files
old - contains old makefiles for elftosb 1.x

Development

The preferred way to work on elftosb and related tools is to use Xcode on Mac OS X. The
elftosb.xcodeproj directory is an Xcode project "file". It has targets for elftosb,
keygen, sbtool, and an aggregate target that builds all of the above. The main reason
to use Xcode is that the project is set up so that the flex and bison input files are
processed automatically and the output files compiled.

The Windows project and Linux makefile are not configured to build the flex or bison
source files. They simply use the output files copied into the elftosb2 directory.
You can run flex or bison manually to generate these files if you don't want to use Xcode.
If you do use the Xcode project and make changes to the .l or .y files, be sure to copy
the output .cpp files into the elftosb2 directory before you move the changes to either
Windows or Linux.

Building

On Windows, open the .sln file in Microsoft Visual Studio. The solution contains projects
for each of the individual projects, including the old elftosb 1.x and related tools.

For Linux, run 'make all' from within the top level elftosb directory. This will build only
the new elftosb 2.x, sbtool, and keygen. The old makefile to build elftosb 1.x and its
tools is located in the "old" directory.

On Mac OS X just open the .xcodeproj project and build the "Everything" target.