Commit Graph

288 Commits

Author SHA1 Message Date
Norman Feske
6894ced63b libc: execve
This patch implements 'execve' in Genode's libc.

The mechanism relies on the dynamic linker's ability to replace the
loaded binary while keeping crucial libraries - in particular the libc -
intact. The state outside the libc is wiped. For this reason, all libc
internal state needed beyond the 'execve' call must be allocated on a
heap separate from the application-owned malloc heap. E.g.,
libc-internal file-descriptor objects must not be allocated or refer to
any memory object allocated from the malloc heap.

Issue #3481
2019-08-28 14:19:45 +02:00
Norman Feske
808ff3714e rust: don't export cxx syms from libunwind-rust 2019-08-28 14:18:45 +02:00
Norman Feske
bb5827b4e3 libc: fork, getpid, and wait4
This patch complements the C runtime with support for fork, getpid, and
wait4 (and its cousin 'waitpid').

Fixes #3478
2019-08-28 14:18:45 +02:00
Johannes Kliemann
1bdd18a196 ada-runtime: update to 1.1 2019-08-21 13:25:25 +02:00
Josef Söntgen
18e586daed libc: merge RTC and time backends
Issue #3450
2019-08-21 12:37:03 +02:00
Christian Prochaska
35c724512d stdcxx: revert '_ZTISt16invalid_argument' symbol type to 'V'
Issue #3458
2019-08-21 12:37:01 +02:00
Christian Helmuth
a7835650e8 acpica: prevent contrib code warnings 2019-08-13 12:02:27 +02:00
Sebastian Sumpf
e43b848ac8 jitterentropy: ARM 64-Bit version
issue #3407
2019-07-09 08:55:23 +02:00
Sebastian Sumpf
59347d2560 stdcxx: make linkable for ARM 64-Bit
'typeinfo for std::invalid_argument' was not found when using 'V' (weak
object)

issue #3407
2019-07-09 08:55:23 +02:00
Emery Hemingway
dc8a2ec523 Remove libc_terminal
Fix #3378
2019-06-13 12:13:40 +02:00
Christian Prochaska
46f89d143b libports: ncurses: disable relative cursor movement
Fixes #3380
2019-06-13 12:13:40 +02:00
Johannes Kliemann
35b1440c97 ada-runtime: update to GCC 8.3.0
ref #3362
fixes #3371
2019-05-27 14:52:53 +02:00
Christian Prochaska
b4649d84ee ada-runtime: adjustments for Genode tool chain 19.05
Issue #3307
2019-05-27 14:52:52 +02:00
Christian Prochaska
eb4d431e76 stdcxx: update to version 8.3.0
Issue #3307
2019-05-27 14:52:52 +02:00
Christian Prochaska
8e2e4374f5 sanitizer: update to version 8.3.0
Issue #3307
2019-05-27 14:52:52 +02:00
Christian Prochaska
720919bc14 gcov: update to version 8.3.0
Issue #3307
2019-05-27 14:52:52 +02:00
Emery Hemingway
863654d188 Libc: update port to Freebsd 12
Fix #3289
2019-05-27 14:46:53 +02:00
Emery Hemingway
777d92f6de Port of OpenLibm
Replace the FreeBSD libm with OpenLibm, which is easier to port.
OpenLibm is used by Mirage's freestanding Ocaml runtime (sin POSIX).

https://openlibm.org/

Ref #3289
2019-05-27 14:46:53 +02:00
Christian Prochaska
4e6216bced libports: fix 'qt5_webcore' compile error with GCC 8.3.0
Fixes #3345
2019-05-27 14:46:52 +02:00
Christian Prochaska
5b232df503 libports: fix 'solo5' compile error with GCC 8.3.0
Fixes #3344
2019-05-27 14:46:52 +02:00
Emery Hemingway
62a4d1de0e Remove Nim tests
Nim is now built independently of the Genode repository using an SDK and
Nimble.

Fix #3300
2019-05-16 12:52:59 +02:00
Emery Hemingway
3e848dff10 solo5: update bindings
Update the Solo5 upstream to accomadate changes to the Block session and
stack protection support in the base library.

Ref #3275
Ref #3283
2019-05-06 16:15:27 +02:00
Christian Helmuth
9948a77558 spark: provide rcheck symbols in ABI 2019-04-09 12:30:35 +02:00
Norman Feske
724761565d libsparkcrypto: don't override CUSTOM_ADA_OPT
CUSTOM_ADA_OPT must not be defined outside <build-dir>/etc/tools.conf
2019-04-09 12:30:35 +02:00
Stefan Kalkowski
d6376f8188 rustc: select ARM target correctly (fix #3087) 2019-04-01 19:33:48 +02:00
Christian Prochaska
2a71c8fa82 pcsc-lite: read vendor id and product id from USB device
Fixes #3211
2019-03-18 15:56:23 +01:00
Alexander Senier
4c8d787918 Port libsparkcrypto 2019-03-18 15:56:23 +01:00
Emery Hemingway
127e5a2726 Add more features and symbols to libcrypto
Fix #3203
2019-03-18 15:56:23 +01:00
Christian Prochaska
23220a98b9 qt5: don't use 'HEADERS' variable in library makefiles
The 'HEADERS' variable is currently only supported for applications with
qmake project files.

Fixes #3183
2019-02-28 11:34:07 +01:00
Johannes Kliemann
fa5de776a6 ada: add arit64 to runtime 2019-02-28 11:34:06 +01:00
Johannes Kliemann
fd6047f5d8 ada: add Interfaces.C
extensively in auto-generated bindings
2019-02-28 11:34:05 +01:00
Alexander Senier
f30a82d599 ada: provide runtime symbols for elaboration code 2019-02-28 11:32:53 +01:00
Christian Prochaska
ee423e5bf1 qt5: remove deprecated APIs
Issue #3162
2019-02-26 14:38:03 +01:00
Josef Söntgen
5bab5f4cca libc: extent vbox specific pthread_create API
Make it possible to adopt normal Genode::Threads for use within in a
pthread environment.

Issue #3164.
2019-02-19 11:12:13 +01:00
Alexander Senier
5ccae43552 Rename Ada runtime to SPARK runtime
The minimal-footprint Ada runtime for implementing library-like
functionality in SPARK is now called "spark" runtime.

The full Ada runtime for entire components written in Ada and using the
libc as glue to the underlying system will move to the world repository
as "ada" runtime.

Issue #3144
2019-02-19 11:08:17 +01:00
Alexander Senier
80a607ee0c Abandon gnatmake and generate elaboration code 2019-02-19 10:50:51 +01:00
Emery Hemingway
968e220fd2 Update jbig2dec to version 0.15
Ref #3131
2019-02-12 10:33:14 +01:00
Emery Hemingway
13268ec401 Update libpng to version 1.6.36
Fix #3131
2019-02-12 10:33:14 +01:00
Norman Feske
6154d9067e libports: avoid using deprecated APIs
Issue #1987
Issue #3125
2019-01-30 13:49:55 +01:00
Christian Prochaska
a155d0e531 qt5: fix parallel build issues related to generated files
Store all files generated by moc and rcc in the application's build
directory to prevent the use of unfinished generated files for other
applications built at the same time.

Issue #3115
2019-01-30 13:35:28 +01:00
Alexander Senier
14cd115c82 Support GNAT.IO in Ada programs 2019-01-14 12:21:10 +01:00
Christian Prochaska
119a12cba5 qt5: support relative paths in qmake project files
Support paths like '../util.h' or 'resources/panel.qrc' in the HEADERS and
RESOURCES variables in qmake project files.

Fixes #3115
2019-01-14 12:21:09 +01:00
Josef Söntgen
f113460348 Move FUSE to world
Fixes #3104.
2019-01-07 12:43:37 +01:00
Norman Feske
39085f08fc Move libav, avplay, and qt_avplay to genode-world
Fixes #3103
2019-01-07 12:43:37 +01:00
Norman Feske
a15b825418 Move libsdl and companion libs to genode-world
Fixes #3100
2019-01-07 12:43:37 +01:00
Christian Prochaska
46b68b0e66 gmp: search headers in REP_DIR first
Fixes #3068
2019-01-07 12:33:55 +01:00
Josef Söntgen
c58ad11f2f libports: update OpenSSL to 1.0.2q
And enable SSL_CONF_* in libssl, needed by lighttpd's mod_openssl.

Issue #3069.
2019-01-07 12:33:54 +01:00
Christian Prochaska
c2884a6e63 libports: libubsan and libsanitizer_common
Issue #3072
2019-01-07 12:33:54 +01:00
Christian Helmuth
8236a18260 Revert "Use strictly-typed Microseconds for Libc timeout scheduling"
This reverts commit 4808565a28afe9ff248fb5c98aceb6f8d3e791c1.
2019-01-07 12:25:44 +01:00
Emery Hemingway
f2df40f58b Add simple Solo5 tests to depot autopilot
Add the following Solo5 tests to Autopilot: hello, fpu, globals, quiet,
blk. The remaining tests require a Rtc service or IP routing.

Ref #3027
2019-01-07 12:25:43 +01:00
Emery Hemingway
5c2599e24e Remove 'clock()' implementation, print warning
FreeBSD implements 'clock' with an accuracy of 128 ticks-per-second for
compatibility reasons, Linux uses 1000000 per-second. Remove 'clock' and
print an error because it is unlikely that this is the resolution
expected by the application.

Fix #3057
2019-01-07 12:25:43 +01:00
Emery Hemingway
8cb8082206 Remove Nim support from toolchain
Nim components are best build externally using the Nimble tools and a
Genode SDK.

See https://github.com/ehmry/nim-genode

Fix #2949
2019-01-07 12:25:42 +01:00
Emery Hemingway
8a3b0ebea9 Use strictly-typed Microseconds for Libc timeout scheduling
Fix #3050
2019-01-07 12:25:42 +01:00
Emery Hemingway
8ad56a6c0e Move libc headers to conform to x86_32, x86_64, and arm SPECS
Move the libc-i386, libc-amd64, and libc-arm include directories into
the standard "include/spec" directory. This allows the platform specific
headers in the libc API package to be detected in a generic manner.

Ref #3051
2018-11-29 11:46:01 +01:00
Emery Hemingway
7a11384177 Merge pthread into libc library
The pthread API is considered a standard feature of libc so better to
simply merge it with the libc. Pthreads are in fact already a part of
the libc in the form of weak symbols. This merger is also a prerequisite
for better integrating pthreads with the libc I/O task.

Fix #3054
2018-11-29 11:46:01 +01:00
Christian Prochaska
e74771e047 libports: add libgcov and gcov tool
Issue #3048
2018-11-29 11:46:01 +01:00
Emery Hemingway
18e855e4d5 Genode toolchain depot package
Fix #3028
2018-11-27 11:38:13 +01:00
Emery Hemingway
63b6e04dae Move GMP spec directories to standard locations
Ref #3028
2018-11-27 11:38:13 +01:00
Johannes Kliemann
eb7c367e25 ada: replace local runtime implementation with port
Fixes #3044
2018-11-27 11:36:36 +01:00
Martin Stein
0c60b312be liports/recipes: api/ and src/python 2018-11-16 15:07:53 +01:00
Emery Hemingway
bc539ce892 Native Solo5 bindings
A shared library implementation of the unikernel middleware.

https://github.com/Solo5/solo5

Fix #2945
2018-11-16 15:07:52 +01:00
Martin Stein
ebdb3c4c32 ada lib: prepare for creation of packages 2018-11-16 14:37:19 +01:00
Josef Söntgen
9ab288d8e3 libports: update libssh to 0.8.4
Issue #3014.
2018-10-29 09:36:22 +01:00
Emery Hemingway
874ba409ca Libc: single-user getpwent implementation
Implement the passwd database subroutines with single-user database.
This database is populated with a <passwd/> sub-node of the libc
configuration node. All fields of the "passwd" struct may be specified
with reasonable defaults provided for a "root" user. This allows a
libc-based component to spoof user information for the sake of porting
existing Unix software.

A test is provided at run/libc_getpwent.

Fix #2919
2018-09-13 15:21:10 +02:00
Emery Hemingway
fcbe060096 Remove legacy lwIP plugins
Now that the lwIP VFS plugin has become a first class IP stack it is
time to remove the lwIP 1.x library and the associated libc plugins.

Fix #2958
2018-09-05 11:04:22 +02:00
Christian Prochaska
14a338af40 qt5: QtTest support
Fixes #2933
2018-08-28 16:45:27 +02:00
Alexander Senier
069a9ad56f Ada: runtime support for 64bit arithmetics 2018-08-08 10:59:02 +02:00
Alexander Senier
ad3f020605 Ada: support for memcmp 2018-08-08 10:59:02 +02:00
Johannes Kliemann
ea8b7d8128 Ada: exception support 2018-08-08 10:59:02 +02:00
Emery Hemingway
bf8b52ec3a Update LwIP to 2.1.0.rc1
This release candidate suppresses the remaining build warnings.

Ref #2335
2018-08-02 14:36:49 +02:00
Emery Hemingway
d9a4773194 LwIP VFS plugin
This patch reintroduces the LwIP stack to libc as a VFS plugin
implementing the socket_fs interface. Rather than use LwIP's socket
emulation layer this plugin interfaces directly to LwIP raw API and is
single threaded.

The internal TCP parameters of the stack are untuned.

Fix #2050
Fix #2335
2018-08-02 14:36:48 +02:00
Emery Hemingway
d2923253f3 Remove 'libc' from vfs_jitterentropy dependencies
Libc is no longer necessary for building the jitterentropy VFS plugin.

Ref #2900
2018-08-02 14:36:36 +02:00
Johannes Schlatow
4ae47c3f38 libc: add clock_getres (required by python 3) 2018-06-29 10:44:56 +02:00
Norman Feske
df9eb55c5a depot: recipe for api/jitterentropy
The API archive makes the library usable for src/gpt_write.
2018-05-30 13:36:24 +02:00
Emery Hemingway
e36ddaf659 Rename lwip library to lwip_legacy
Rename LwIP library in preparation for removal of LwIP libc plugin. The
current LwIP library will be replaced with a new version stripped of its
synchronous socket support. The next version will be incompatible with
the current, so removing 'lwip.lib.so' completely for a period makes it
easy to identify legacy users.

Fix #2797
2018-05-30 13:36:22 +02:00
Johannes Kliemann
e8e2fc48f8 ada: secondary stack support 2018-05-30 13:36:08 +02:00
Christian Helmuth
a6e0fdd505 libc: support syscall(SYS_thr_self,...)
This syscall returns the thread ID / light-weight PID of the calling
thread under FreeBSD.

Issue #2791
2018-05-30 13:36:07 +02:00
Sebastian Sumpf
ea6b4a0caf libports: port of ffi library
required by jdk

issue #2791

Forein function interface library, which takes care of calling
conventions of different platforms.
2018-05-30 13:36:07 +02:00
Sebastian Sumpf
dfc2e2bd68 pthread: 'phtread_join'
issue #2791
2018-05-30 13:36:05 +02:00
Sebastian Sumpf
8605e15b4f libc: add suspend and resume_all to symbol map
This commit enables the pthread library to hook into the libc execution
model and can be reverted after #2812 is fixed.

Issue #2791
2018-05-30 13:36:05 +02:00
Christian Prochaska
f347cb90f1 depot: qt5 recipes
Fixes #2792
2018-05-30 12:26:19 +02:00
Emery Hemingway
60eeddf639 Port of libyaml
http://pyyaml.org/wiki/LibYAML

Ref #2682
2018-05-03 15:31:58 +02:00
Christian Prochaska
cbdeb41094 depot: icu recipe
Fixes #2785
2018-05-03 15:31:54 +02:00
Christian Prochaska
be8addc608 depot: mesa recipe
Fixes #2784
2018-05-03 15:31:53 +02:00
Johannes Kliemann
c02ef3ec94 ada: compile runtime bodies, customizable tools
This is a follow-up commit for "ada: runtime and library support".

Issue #2748
2018-05-03 15:31:21 +02:00
Christian Prochaska
b2935b504d depot: drm recipe
Fixes #2772
2018-05-03 15:31:20 +02:00
Christian Prochaska
1d6301c689 depot: expat recipe
Fixes #2769
2018-05-03 15:31:20 +02:00
Christian Prochaska
4aefa395af depot: pcre16 recipe
Fixes #2768
2018-05-03 15:31:19 +02:00
Johannes Kliemann
1261c18ce9 ada: runtime and library support
The Ada runtime can now be set with the ADA_RTS variable. The ada
library builds a (currently) minimal runtime from the gcc sources that
come with Genode (to stay consistent with the used compiler) and sets
the runtime path accordingly. It is build as a shared library ada.lib.so
which needs to be added to the build files.

I split the existing Ada test into program and library, and moved it
to libports as it depends on the runtime library residing in this
repository too.

Fixes #2748
2018-04-19 12:38:54 +02:00
Alexander Senier
ac42670a0e Add fstatfs to libc ABI symbols
Fixes #2721
2018-03-29 14:59:05 +02:00
Emery Hemingway
219c2fa2e1 EGL api library
Library for EGL headers only. Useful for components that dynamically
load an EGL shared library.

Fix #2718
2018-03-27 13:44:27 +02:00
Christian Helmuth
f2b9a6238c stdcxx: std::istream::ignore support 2018-03-27 13:43:08 +02:00
Emery Hemingway
4b165190ee Link EGL to Mesa
Link the EGL library with Mesa. SDL's `GL_GetProcAddress` now calls
`eglGetProcAddress` rather than lookup procedures directly in the Mesa
library.

Components may still wish to list 'mesa_api' in LIBS to access OpenGL
headers.

Fix #2711
2018-03-27 13:43:08 +02:00
Alexander Senier
37b08797c0 pthread: basic pthread_rwlock_* operations
Fixes #2656
2018-03-08 12:05:06 +01:00
Norman Feske
c2590995c0 posix ABI: require 'main' symbol
Issue #2648
2018-02-09 13:34:20 +01:00
Alexander Senier
33ba587813 stdcxx: Add missing symbols to ABI
- typeinfo for std::runtime_error
- typeinfo for std::regex_error
- vtable for std::regex_error
2018-02-09 13:34:16 +01:00
Norman Feske
f1ce555cd9 depot: recipes for src/extract and used libs 2018-02-09 13:34:13 +01:00
Norman Feske
5b6bd8459f Signature checking tool based on GnuPG
The new 'verify' component facilitates the code of GnuPG to verify
detached OpenPGP signatures against public keys.

Since GnuPG depends on libgcrypt and libgpg-error, the patch adds these
libraries to the libports repository.

Fixes #2640
2018-02-09 13:34:13 +01:00
Christian Helmuth
b7fffb1b24 abi: remove duplicates and internal symbols, fix sizes
The most important part of this patch are symbol-size changes, which
potentially lead to data corruption.

Issue #2639
2018-01-17 12:14:42 +01:00
Norman Feske
219218dd38 libarchive: enable support for tar.xz
Issue #2528
2018-01-17 12:14:39 +01:00