elf: more informative exception from program::lookup_function

When program::lookup_function (used, for example, in our java.cc) can't
find the function it throws an std::runtime_error exception.
It used the not-very-useful message "symbol not found". This patch
adds the symbol's demangled name, so if this exception is printed (e.g.,
when not caught), we get a more informative message.

Signed-off-by: Nadav Har'El <nyh@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
Elf: Use abort(...) in elf.cc abort message

Ever since debug() defaults to putting the message in memory, not on the
console, it is not useful to call debug() before abort.
Need to pass the message to abort() itself, and it will do the right
thing (TM).

Signed-off-by: Nadav Har'El <nyh@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
apps: move submodule head

Tomek says:

commit 3617c691709e6bdefc19dea9a6604debe9f492f3
Author: Tomasz Grabiec <tgrabiec@cloudius-systems.com>

    tomcat: set logging properties on app level.

commit 27e967aace63133abb80c660202f65dae422cd7a
Author: Nadav Har'El <nyh@cloudius-systems.com>

    openjdk8: provide "java"

commit 428b94d1617fbaf413f427bab5e73b66342dbef8
Author: Nadav Har'El <nyh@cloudius-systems.com>

    Add "openjdk8" module

commit 0fe978a87d3a7c6a59e84fc9b1d77fe8c5771ebd
Author: Avi Kivity <avi@cloudius-systems.com>

    Add iperf module

Nadav also writes:

The openjdk8 "provides" java, meaning that other modules which need java
will be statisfied with openjdk8 instead. This means one can simply do

        make image=openjdk8,mgmt.shell

To get the Crsh shell running on OpenJDK 8, instead of our default OpenJDK 7.
Doing
        make image=mgmt.shell
will continue to use our default OpenJDK 7.

NOTE: Since OpenJDK 8 has not yet been officially released, the openjdk8
module fetches the latest OpenJDK sources (from their hg repository),
and compiles them. This is a very lengthy process, and requires quite a few
esoteric development packages (e.g., various X-Windows header files) to
be installed on the build machine. So the compilation is unlikely to
succeed on the first attempt - and is not to be attempted by the faint of
heart ;-) Also note that currently one needs to do
        cd apps/openjdk8; ./GET
to get and compile the sources (I didn't put a Makefile to cause this
to happen automatically)

Thanks to Gleb for the script to compile OpenJDK 8.

Fixes #193.

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
modules: Add "provides" feature

I recently added (thanks to Gleb!) the "openjdk8" module, which provides
Java 8. However, when one hopes to get a shell with OpenJDK8, using:

	make image=openjdk8,mgmt.shell

The mgmt.shell requires the "java" module, and we end up using both
the "java" and "openjdk8" modules.

This simple patch allows openjdk8's module.py to say:

	provides = ['java']

Which means that any later-loaded module which does require('java')
will *not* load the "java" module because opendjk8 claims it already
provides it.

Signed-off-by: Nadav Har'El <nyh@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
cleanup the libunwind stuff in .gitmodules

Signed-off-by: Zhi Yong Wu <zwu.kernel@gmail.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>