Add stdcxx-4.6.1 to libports, fix #339

This patch adds libstdc++ to libports. With the previous version of the
stdcxx library, the build system used the C++ standard library that
comes with the compiler. This mechanism was prone to inconsistencies of
types defined in the header files used at compile time of the tool chain
and the types provided by our libc. By building the C++ standard library
as part of the Genode build process, such inconsistencies cannot happen
anymore.

Note that the patch changes the meaning of the 'stdcxx' library for
users that happened to rely on 'stdcxx' for hybrid Linux/Genode
applications. For such uses, the original mechanism is still available,
in the renamed form of 'toolchain_stdcxx'.
Adapt Qt4 to change of stdcxx, issue #339

The new C++ standard library provided by libports is a shared library.
We need to include it in each run script that uses Qt4.
Extend Cpu_session with thread-affinity API

This patch introduces the functions 'affinity' and 'num_cpus' to the CPU
session interface. The interface extension will allow the assignment of
individual threads to CPUs. At this point, it is just a stub with no
actual platform support.
Fix binary size for 64bit

Every 64-bit binary is effectively 4M too big currently [0]. The GNU linker ld
aligns the text section of the binary to the maximum page size. On i386
the default section alignment is fixed typically to 4K.

Avoid wasting mainly 4M on x86_64 by telling the linker the max page size to
be 4K.

[0] http://sourceware.org/ml/binutils/2009-04/msg00099.html
libc_fs: handle 'Packet_alloc_failed' exception

With this patch, when a 'Packet_alloc_failed' exception occurs in the
'write()' function, the function waits for a packet acknowledgement and
the release of the packet and then tries the packet allocation again.

Fixes #348.
Noux: use correct member in Vfs_io_channel::size()

Fixes #351.
Noux: fix 'Vfs_io_channel::lseek()' calculations

With this patch the 'Vfs_io_channel::lseek()' function takes the offset
argument into account when calculating the new seek offset in the SEEK_CUR
and SEEK_END cases.

Fixes #352.
Noux: return dummy time in 'gettimeofday()'

The 'find' program can abort if the 'gettimeofday()' function returns -1,
which it currently does. With this patch the 'gettimeofday()' returns a
dummy time instead to prevent such a termination.

Fixes #353.
ffat_fs: work with absolute paths

The recently added 'Genode::Path' class makes it easy to create absolute
paths. With this patch the 'ffat_fs' server uses the 'Genode::Path' class
where possible instead of working with 'f_chdir()' and relative paths.
This also solves the problem reported in issue #355, which was caused by
storing a relative file name in the 'File' node.

Fixes #355.
Noux: fix SYSCALL_READ return value

There is an error if reading from a Io_channel returns -1. In this
case the syscall should fail.

Fixes #356.
Fiasco.OC: implement thread-affinity function
Fiasco.OC: enable SMP for L4Linux

This commit comprises the following changes to enable L4Linux to use several
CPUs:
* change default configuration for x86 and ARM
* add atomic cmpxchg operation to l4re library
* implement l4_sleep (per thread)
* enable setting affinity for VCPUs and IRQs
* move "per CPU" section within linker-script (x86 only)
* introduce SMP run-script for pandaboard
* deactivate direct scheduler (Fiasco.OC syscall) access by L4Linux
Enable noux_bash and noux_gdb on Pandaboard
libports: add lwIP tests for Pandaboard on foc
Fiasco.OC: update to recent version (svn rev. 40)
L4Linux: update to recent version (svn rev. 25)
Increase quota of USB driver

The memory allocation heuristics in the usb driver provided by dde_linux
changed with the recent commit 71b2b42936df049ae0e80e7650774ad23275d635.
Apparently, the new variant requires a larger memory pool. Increasing
the quota is a temporary fix until the memory allocator gets revisited.
Fiasco.OC: fix io-port fault answer in sigma0

In sigma0 normally no answer tag to a request/fault is created. It simply uses
the message tag received with the request. This doesn't work out when I/O ports
are requested. This patch constructs an appropriate answer tag. Moreover,
we have to enable I/O port protection in the kernel configuration.
Make first block of allocator_avl 64bit fit

The first metadata-block, which is inherent part of the allocator object
itself has a fixed size which isn't suitable enough for some 64bit platforms
(e.g. core's RAM-allocator on a 64bit platform with lots of different regions).
This commit let the block size be address-width aware.
Adapt timer quota to change in 'Allocator_avl'