Commit Graph

258 Commits

Author SHA1 Message Date
Norman Feske d0d5ec92b6 ports/libports: Use repository-local PWD
The PWD variable contains the current working directory of the original
location where 'make -C' is executed, not the directory specified as
argument of '-C'. The tools referenced by ports/libports, however,
expect PWD to point to the root of the respective repository.
2013-06-12 11:35:13 +02:00
Norman Feske d2e883e235 libports: Fix qoost download 2013-06-12 11:35:13 +02:00
Norman Feske 9d778a658d ports/libports: Avoid multi-target rules
This patch splits the download of signatures from the download of the
archive to improve robustness. This way, signature files will be
downloaded even if the corresponding archive is already in place.

Issue #748
2013-06-12 11:35:13 +02:00
Stefan Kalkowski 8fae7131c8 Unify buffer sizes of RX and TX in nic_session
In fact, the sizes were the same the whole time, but by using
the same enum in both cases to instantiate the Packet_stream_tx
and Packet_stream_rx members of the e.g. RPC object, it allows
for more flexible generalization between e.g. source or, sink
objects, when programming event-driven, and implementing generic
handlers for their signals.
2013-06-12 11:35:13 +02:00
Stefan Kalkowski 973efe945b Add sd_card drivers to some run scripts (fix #757)
Moreover, extend l4android script to run on OMAP4 and Exynos5.
2013-06-12 11:35:12 +02:00
Christian Helmuth b355897f53 update x86emu to 1.20
+ document x86emu move from os -> libports

Fixes #456
2013-06-12 11:35:12 +02:00
Norman Feske 179f742924 ports/libports: Handle failed integrity checks
This patch makes the handling of failed integrity checks of 3rd-party
packages more robust. Previously, a once failed 'make prepare PKG=curl'
would not leave any trace of the verification state. Hence, a successive
attempt to perform the 'make prepare' step again succeeded even if the
signature check failed.

To solve this problem, the outcome of a successful signature check is
represented by a tag file called 'download/<archive-name>.verified'.
Because the rule for extracting the archive depends on the .verify tag
file, the extraction step is not performed until the signature check
succeeds.

Issue #748
2013-06-10 10:44:10 +02:00
Stephan Mueller 056e0792e5 libports: Verify signatures of 3rd-party code
This patch adds integrity checks for the packages of the libports
repository.

Issue #748
2013-06-10 10:44:09 +02:00
Stephan Mueller a140f134c7 libports: Global variables for integrity check
Add global variables to the signature and hash verification tool for use
in the individual make templates.

Issue #748
2013-06-10 10:44:09 +02:00
Christian Prochaska 4a9b1c6aab base-linux: add ARM support
This patch introduces a new platform 'linux_arm' for building and running
Genode/Linux on an ARM device.

Known limitations:

- libc 'setjmp()'/'longjmp()' doesn't currently save/restore floating
  point registers

Fixes #746.
2013-05-24 14:55:37 +02:00
Stefan Kalkowski 89a8c2c211 Update run scripts using usb_drv (fix #744)
Updates all run scripts, which use the usb_drv to enable the appropriated
USB host controllers.
2013-05-22 18:52:54 +02:00
Sebastian Sumpf cda25a481b usb: Make host controller types configurable
The host controller type (u/e/xhci) usded by the drivers can be configured
through attributes of the config node. See: README
2013-05-18 11:23:02 +02:00
Alexander Boettcher 688375619a run: extend lwip test for arndale board 2013-05-17 12:04:12 +02:00
Alexander Boettcher 7566aaebb9 run: add succeeded message to network_test 2013-05-17 11:52:34 +02:00
Christian Prochaska ff28ce77b2 libports: update zlib to version 1.2.8
Fixes #741.
2013-05-15 19:58:46 +02:00
Alexander Tarasikov d8f0392c9f Add a service to log into a file
Original version by Alexander Tarasikov, refined by Norman Feske.

Fixes #736
2013-05-10 11:16:13 +02:00
Alexander Boettcher 3a884bd873 lwip: add "window scaling" support, RFC 1323
Apply patch from lwip webpage to recent lwip git master branch.
2013-05-10 11:16:12 +02:00
Alexander Boettcher 5e91acbaa9 lwip: use git and master branch 2013-05-10 11:16:12 +02:00
Alexander Boettcher 2349cd2dc3 lwip: enable SO_RCVBUF socket option
In issue #313 the SO_RCVBUF was intended to be enabled, however the current
lwip port looks for another define LWIP_SO_RCVBUF instead of LWIP_RCVBUF.

Fixes #716
2013-05-10 11:16:11 +02:00
Alexander Boettcher 94629ad493 run: adjust lwip pingpong test for x86 2013-05-10 11:16:11 +02:00
Christian Prochaska cab27dd713 run: adjust lwip pingpong test for foc_arndale 2013-05-10 11:16:10 +02:00
Josef Söntgen 0b906207bb run: add lwip pingpong test using tcp 2013-05-10 11:16:10 +02:00
Alexander Boettcher 5c6f13b0d3 run: lwip use is_qemu 2013-05-10 11:16:10 +02:00
Christian Prochaska b8d690b9aa libc_lwip: accept 'AF_INET' sockets only
lwIP only supports the 'AF_INET' domain, but doesn't check the 'domain'
argument of the 'lwip_socket()' function.

This patch avoids an error message from lwIP when the Arora browser
tries to connect a socket of the 'AF_LOCAL' domain.

Fixes #732.
2013-05-07 21:56:07 +02:00
Stefan Kalkowski 8e9e866161 Unify framebuffer driver binary names (fix #720)
Introduce 'framebuffer' SPEC variable to distinguish hardware framebuffer
drivers furthermore from the SDL framebuffer driver used by Genode/Linux.
2013-05-07 13:04:30 +02:00
Sebastian Sumpf 4873f35945 LWIP: Use LWIP_SO_RCVBUF instead of LWIP_RCVBUF
The name of this option has changed

Issue #382
2013-05-06 18:50:35 +02:00
Christian Prochaska e879cb1c32 libc_fs: don't throw exception in 'open()'
Fixes #729.
2013-05-06 11:11:03 +02:00
Christian Prochaska 339a0354ce libc_lwip_nic_dhcp: provide '/etc/resolv.conf'
With this patch, the 'libc_lwip_nic_dhcp' plugin provides the DNS server
address acquired by lwIP via DHCP in the file '/etc/resolv.conf'.

This feature can be disabled from the config file:

<libc resolv="no" />

The static network interface configuration attributes are now also a part
of the '<libc>' config node:

<libc ip_addr="..." netmask="..." gateway="..." />

Fixes #731.
2013-05-06 11:11:03 +02:00
Christian Prochaska d184599a89 libc: print 'not implemented' in pthread stubs
Print a 'not implemented' debug message if one of the libc-internal
pthread dummy functions gets called.

Fixes #730.
2013-05-06 11:11:03 +02:00
Alexander Boettcher fb0ca69fe4 libports: make include paths absolute
If contrib and/or download in libports are symlinks, then using ".." ends up
in the wrong directory. Use CURDIR variable set by make.
2013-04-15 13:14:04 +02:00
Alexander Boettcher b85447c602 run scripts: add "Test succeeded" message
Issue #679
2013-04-12 10:56:27 +02:00
Alexander Boettcher 5d04f88816 lwip: adjust test to run with remote machine (AMT)
Issue #679
2013-04-12 10:56:27 +02:00
Norman Feske 5da281c1d8 libports: Add GNU FriBidi 2013-04-05 12:49:55 +02:00
Norman Feske 7552d352b6 libports/SDL: Add ttf, image, mixer, loadso 2013-04-05 12:49:55 +02:00
Norman Feske 973fdae9d8 libc_fs: Fix seek report for ro (non-append) files 2013-03-29 22:48:44 +01:00
Norman Feske 3968766170 lwip: Print IP address in release mode 2013-03-27 19:27:25 +01:00
Norman Feske c36909e5dc acpi: Adjust device_pd quota for 64bit machines 2013-03-22 12:45:31 +01:00
Norman Feske 9d0a377efe Add 'seoul_libc_support' library
This library contains the subset of the libc that is needed for the
Seoul VMM.

Related to issue #666.
2013-03-18 13:09:16 +01:00
Josef Söntgen a875b3ea11 libports: enable SSL in curl
Fixes #681
2013-03-08 12:07:58 +01:00
Josef Söntgen abf0563815 libports: workaround for downloading libssh
Since checking if the certificate is valid is not that important
(we currently do not check the signature of the archive which is the
bigger issue) we disable the checking to prevent certain wget version
from refusing to download the archive.

Fixes #681
2013-03-08 12:07:31 +01:00
Josef Söntgen 613784f560 libports: fix missing clean-libiconv target
Fixes #681
2013-03-08 12:07:18 +01:00
Alexander Boettcher 751af95b46 lwip: adjust run script to run with new pci_drv 2013-02-27 16:47:21 +01:00
Josef Söntgen 323ab39582 libports: add iconv-1.14
Fixes #669
2013-02-25 22:14:21 +01:00
Josef Söntgen f3864f673b libports: add curl-7.29.0
For now the port is x86_* only because it depends on libcrypto which
is currently not available (as in tested) on arm.

Fixes #669
2013-02-25 22:14:21 +01:00
Josef Söntgen 814c6fc9d5 libports: add libssh-0.5.4
Fixes #669
2013-02-25 22:14:21 +01:00
Josef Söntgen 15dc2f3642 libports: add missing import-libcrypto.mk
Fixes #669
2013-02-25 22:14:21 +01:00
Norman Feske 97b27ee62f ncurses: Add vt102 to builtin termcaps 2013-02-22 20:28:28 +01:00
Norman Feske 1009d00168 libc: Handle dup2 with two equal arguments 2013-02-22 20:28:28 +01:00
Norman Feske fbd4b5f6df libc_terminal: Support for dup2 and TIOCGWINSZ 2013-02-22 20:28:28 +01:00
Norman Feske fae63f4fa9 Merge base libraries into a single library
This patch simplifies the way of how Genode's base libraries are
organized. Originally, the base API was implemented in the form of many
small libraries such as 'thread', 'env', 'server', etc. Most of them
used to consist of only a small number of files. Because those libraries
are incorporated in any build, the checking of their inter-dependencies
made the build process more verbose than desired. Also, the number of
libraries and their roles (core only, non-core only, shared by both core
and non-core) were not easy to capture.

Hereby, the base libraries have been reduced to the following few
libraries:

- startup.mk contains the startup code for normal Genode processes.
  On some platform, core is able to use the library as well.
- base-common.mk contains the parts of the base library that are
  identical by core and non-core processes.
- base.mk contains the complete base API implementation for non-core
  processes

Consequently, the 'LIBS' declaration in 'target.mk' files becomes
simpler as well. In the most simple case, only the 'base' library must
be mentioned.

Fixes #18
2013-02-19 14:45:55 +01:00
Norman Feske 4c3d49459b moon.run: Increase quota of 'test-moon'
With the use of the new timer interface, each timer client uses signals.
Hence, programs that have not used signals before will consume slightly
more quota. This is the case for the moon test (triggered on foc_x64_64
only).
2013-02-14 17:23:47 +01:00
Norman Feske cb225a1216 Adaptation to Timer::Session change 2013-02-14 13:23:33 +01:00
Norman Feske 62bb85255a libc_lwip: use libc's 'get-/freeaddrinfo()'
This patch reduces problems when connecting Arora to lighttpd via
nic_bridge. Patch by Christian Prochaska
2013-02-11 12:01:27 +01:00
Ivan Loskutov 291064b5c1 nic_bridge: Add tests for static IP address configuration 2013-01-24 11:35:56 +01:00
Ivan Loskutov 2271f3e7b3 libc_lwip_nic_dhcp: Add static IP configuration 2013-01-24 11:35:56 +01:00
Christian Prochaska 1fdee7a2cc libc_lock_pipe: implement F_GETFL 'fcntl()' command
Fixes #622.
2013-01-21 11:40:38 +01:00
Norman Feske af66043b79 New Input::Event::FOCUS, rename keycode to code
This patch introduces keyboard-focus events to the 'Input::Event' class
and changes the name 'Input::Event::keycode' to 'code'. The 'code'
represents the key code for PRESS/RELEASE events, and the focus state
for FOCUS events (0 - unfocused, 1 - focused).

Furthermore, nitpicker has been adapted to deliver FOCUS events to its
clients.

Fixes #609
2013-01-15 10:18:11 +01:00
Norman Feske fca8994584 Introduce notifications to file-system interface
This patch extends the file-system interface with the ability to monitor
changes of files or directories. The new 'File_system::sigh' function
can be used to install a signal handler for an open node.

The 'ram_fs' server has been enhanced to support the new interface. So
any file or directory changes can now be observed by 'ram_fs' clients.

Fixes #607
2013-01-15 10:18:07 +01:00
Robert Campbell f7b1bf8745 Update url of freetype-2.3.9
Fixes #611
2013-01-12 15:20:13 +01:00
Robert Campbell 17966b707b Fix download of jbig2dec
Fixes #613
2013-01-12 15:20:09 +01:00
Sebastian Sumpf 5aea55e417 Audio: Replace old with new audio interface
Issue #602
2013-01-10 23:05:43 +01:00
Sebastian Sumpf 47bb48bdd6 Audio: Adjust components to new audio interface
OSS driver, ALSA driver, audio-out test, avplay, and mixer

Issue #602
2013-01-10 23:05:37 +01:00
Norman Feske 73ab30c22c Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
Norman Feske 13d4108fea Unify 'Signal_dispatcher' interfaces
Several users of the signal API used custom convenience classes to
invoke signal-handling functions on the reception of incoming signals.
The 'Signal_dispatcher' pattern turned out to be particularly useful. To
avoid the duplication of this code across the code base, this patch
adds the interface to 'base/signal.h'.

Furthermore, the patch changes the 'Signal::num()' return type from int
to unsigned because negative numbers are meaningless here.

Fixes #511
2013-01-10 21:09:14 +01:00
Christian Helmuth f51ce6f5a5 prepare: Serialize preparation in Makefile
Any recursively invoked `make' command will still be run in parallel
(unless its makefile contains .NOTPARALLEL).

Related to #535.
2012-12-05 14:02:18 +01:00
Martin Stein 1ac1d802ee moon: provide IO_MEM for base-hw timers
Fix #536
2012-11-29 09:55:09 +01:00
Norman Feske 0dbb5e1696 Propagate 'Range_allocator::alloc_aligned' errors
This patch reflects eventual allocation errors in a more specific way to
the caller of 'alloc_aligned', in particular out-of-metadata and
out-of-memory are considered as different conditions.

Related to issue #526.
2012-11-28 22:51:09 +01:00
Josef Söntgen 14c1f64733 libports: set getrlimit() to weak in libc
This functions needs to be overriden by libc_noux.
2012-11-26 20:58:10 +01:00
Josef Söntgen 569e0a2e6c Remove unneeded PDBG() messages 2012-11-26 20:58:10 +01:00
Josef Söntgen 42df6e3d01 libports: add test/libc_resolv target
libc_resolv is used by noux-pkgs and is only a runtime dependency but
therefore needs to be build.
2012-11-26 20:58:09 +01:00
Christian Prochaska c39e5557c5 libports: stdcxx 4.7.2 update
Fixes #469.
2012-11-14 16:55:33 +01:00
Josef Söntgen bb33c9f3cf libports: add dup() to libc
Fixes #492.
2012-11-14 16:52:33 +01:00
Christian Prochaska cb8910b40c Update lwip to version STABLE-1_4_1
Fixes #366.
2012-11-07 13:35:36 +01:00
Christian Prochaska d46c79b428 libc_lock_pipe: match alloc. and dealloc. funcs
Fixes #460.
2012-11-03 09:51:56 +01:00
Christian Helmuth 20ddd1bcdc lwip: setup static IP if provided
Fixes #349.
2012-11-02 14:57:47 +01:00
Norman Feske 05e60691cb Add missing libs
The eglgears application depends on 'sqrt'. With the old tool chain,
this symbol was resolved through the dependencies of the 'gallium'
library. This does not work anymore for the new tool chain.

A similar issue arised for avplay, where we need to explicitly
state the av components in the LIBS declaration of the target.
2012-10-31 18:24:08 +01:00
Christian Prochaska 9d08c2b675 libports: update Qoost to version ce3d328928
Update Qoost to version ce3d328928 for GCC 4.7 support.

Fixes #408.
2012-10-30 12:16:45 +01:00
Sebastian Sumpf 97dd1d57cf EGL: Aligned memory allocation
Free memory allocated with 'align_malloc' using 'align_free'.

Fixes issue #391
2012-10-11 17:10:21 +02:00
Christian Prochaska be171d86bb libc: handle 'O_APPEND' flag for 'open()'
Fixes #319.
2012-10-11 17:10:21 +02:00
Christian Prochaska f635cc4a19 Python: use 'libc-rom' plugin
This patch removes the libc plugin of the Python port. The Python test
uses the 'libc_rom' plugin instead.

Fixes #392.
2012-10-08 15:10:22 +02:00
Norman Feske 64245dde3a Avoid superfluous compiler warnings
GCC warns about uninitialized local variables in cases where no
initialization is needed, in particular in the overloads of the
'Capability::call()' function. Prior this patch, we dealt with those
warnings by using an (unreliable) GCC pragma or by disabling the
particular warning altogether (which is a bad idea). This patch removes
the superfluous warnings by telling the compiler that the variable in
question is volatile.
2012-10-08 15:08:21 +02:00
Christian Prochaska e9ac4b653b Add support for symbolic links
This patch adds support for symbolic links in libc, libc plugins, file
system servers and Noux.

Fixes #322.
2012-10-08 15:05:02 +02:00
Christian Prochaska 2c9c7c817b libc: return 0 in 'fchmod' and 'utimes' dummies
Fixes #371.
2012-09-28 17:07:21 +02:00
Sebastian Sumpf ad70160847 LWIP: Fix dead lock in semaphore back-end
Make sure unlock is called when 'global_mutex' reaches zero count. Add verbose
variable in order to disable some output. Disable irritating 'Overflow' messages
in 'sys_mbox_post' and 'sys_mbox_try_post' per default. This may happen and is
not an error, since the ring buffer is full and will be emptied eventually.
Remove priority from genode_org run script.

Should fix #347
2012-09-28 17:06:35 +02:00
Sebastian Sumpf 8ed489c4bc libc: Decrease noise level of debugging output
Changed 'libc_fs', 'libc_lwip' and 'libc/clock_gettime'
2012-09-24 09:18:00 +02:00
Sebastian Sumpf 825dc783e6 libc: Change malloc's allocator
Use slab allocators for small object sizes, do it the usual way otherwise.

This patch is related to #363. Using this optimization may be a viable
alternative to switching to the FreeBSD's malloc implementation.
2012-09-24 09:17:59 +02:00
Sebastian Sumpf 7ca7b4417d lwIP: Rewrite NIC packet allocation
Use 'Nic::Packet_allocator', wait for acknowledgements if packet allocation
fails. Updated 'lwip.run' and 'genode_org.run' to support OMAP4 correctly. Use
memcpy to copy PBUFs

May resolve issue #347
2012-09-24 09:17:59 +02:00
Christian Prochaska 97c3f6599d Noux, libc_terminal: initialize 'stat' buffer
Initialize the 'stat' buffer in the 'stat()' function to avoid potential
non-deterministic program behavior.

Fixes #362.
2012-09-24 09:17:59 +02:00
Norman Feske b57c629449 Adapt timer quota to change in 'Allocator_avl' 2012-09-18 17:14:28 +02:00
Josef Söntgen 6259fcf736 libports: add lwIP tests for Pandaboard on foc 2012-09-18 10:52:57 +02:00
Christian Prochaska 97308f963a 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.
2012-09-14 12:23:26 +02:00
Christian Prochaska 3cfc691c77 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.
2012-09-14 12:13:05 +02:00
Norman Feske 9651974448 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'.
2012-09-04 12:37:56 +02:00
Josef Söntgen f7dd8aa688 libports: adjust lwip's TCP_SND_BUF size
The old values were much too small and the current ones are probably to
large but the TCP send throuhgput has increased noticeable (a few MiB/s
on the Pandaboard).

Fixes #343.
2012-09-03 11:10:39 +02:00
Taru Karttunen bff86ab74d libc_terminal: TIOCGETA return always echo on 2012-09-03 11:05:23 +02:00
Taru Karttunen 27bbaf75ba libc_terminal: add fstat and fake some ioctls, fix #344 2012-09-03 11:05:00 +02:00
Christian Prochaska 9c278d6b8f libc_fs: release libc file descriptor in 'close()'
Fixes #334.
2012-08-22 16:50:03 +02:00
Christian Prochaska 7f092be94c libc: allocate file descriptor sets on the stack
The 'fd_set' size calculation in the current version of the 'poll()'
function results in an  amount which is smaller than the size of the
'fd_set' data type. With this patch the file descriptor sets get
allocated as plain stack variables.

Fixes #335.
2012-08-22 16:48:35 +02:00
Christian Prochaska 3084c6f500 TAR file system service
This patch implements a service which provides the contents of a tar
archive via the 'File_system::Session' interface.

Configuration:

<config>
	<archive name="tar_archive.tar" />
	<policy label="label_of_client" root="/rootdir/for/client" />
</config>

Fixes #333.
2012-08-22 09:51:31 +02:00
Norman Feske 2b5cf1342d libc: Dummy fallbacks for user and net support 2012-08-22 09:51:29 +02:00