Alexander Jung [Tue, 11 Jul 2023 21:25:56 +0000 (21:25 +0000)]
Introduce `Library.uk`
This new file represents the first step towards proper versioning support of
external microlibrary in Unikraft. The file itself acts as mechanism for
holding metadata-only values about the microlibrary. This metadata is designed
to be compatible with GNU Make whilst simultaneously being human-readable and
readable by programs that are not GNU Make (e.g. tools such as KraftKit).
An important feature of this file is the inclusion of microlibrary versions.
In a later step, once relevant integrations have been made to Unikrat's core
build system and to relevant tools such as KraftKit, the user will be able to
see and select from different versions of the microlibrary.
In this initial commit, the relevant metadata is absorbed from both Makefile.uk,
Config.uk, but also includes new information such as SPDX License identifier.
Andrei Tatar [Mon, 7 Aug 2023 16:39:50 +0000 (18:39 +0200)]
Makefile.uk: Remove redundant check for libunwind
Commit b5b1cf8 (Split off functionality that depends on libunwind)
removed the cyclic dependency between libunwind and libcompiler-rt and
correctly expressed the relationship through Kconfig, making the
build-time check for libunwind in Makefile.uk redundant.
This change removes said redundant check.
Signed-off-by: Andrei Tatar <andrei@unikraft.io> Reviewed-by: Stefan Jumarea <stefanjumarea02@gmail.com> Reviewed-by: Eduard Vintilă <eduard.vintila47@gmail.com> Approved-by: Razvan Deaconescu <razvand@unikraft.io> Tested-by: Unikraft CI <monkey@unikraft.io>
GitHub-Closes: #19
Andrei Tatar [Tue, 25 Jul 2023 14:39:21 +0000 (16:39 +0200)]
Split off functionality that relies on libm
Previously some parts of compiler-rt depended on functions provided by a
math library, commonly supplied together with a real libc.
This change sections off the parts dependent on libm, allowing a minimal
compiler-rt to be built with nolibc alone.
Signed-off-by: Andrei Tatar <andrei@unikraft.io> Reviewed-by: Stefan Jumarea <stefanjumarea02@gmail.com> Approved-by: Razvan Deaconescu <razvand@unikraft.io> Tested-by: Unikraft CI <monkey@unikraft.io>
GitHub-Closes: #18
Andrei Tatar [Wed, 24 May 2023 13:45:44 +0000 (16:45 +0300)]
Split off functionality that depends on libunwind
Previously lib-compiler-rt depended on libunwind as it pulled in
<unwind.h>; this dependency however is isolated in gcc_personality_v0.c.
This change makes gcc personality an optional part of lib-compiler-rt,
allowing it to be built without an entire supporting C++ runtime.
Signed-off-by: Andrei Tatar <andrei@unikraft.io> Reviewed-by: Stefan Jumarea <stefanjumarea02@gmail.com> Reviewed-by: Eduard Vintilă <eduard.vintila47@gmail.com> Approved-by: Razvan Deaconescu <razvand@unikraft.io> Tested-by: Unikraft CI <monkey@unikraft.io>
GitHub-Closes: #14
Andrei Tatar [Wed, 24 May 2023 10:45:17 +0000 (13:45 +0300)]
Bring back the fix for GCC atomic builtins
Commit d53cbfe6035f ("Update to LLVM 14.0.6") removed the patch that
adapts atomic.c to use GCC builtins instead of clang, however its
functionality is still required.
This change brings back this functionality in a cleaner and more
future-proof way, by providing a header that implements clang builtins
in terms of GCC ones.
Signed-off-by: Andrei Tatar <andrei@unikraft.io> Reviewed-by: Stefan Jumarea <stefanjumarea02@gmail.com> Reviewed-by: Maria Sfiraiala <maria.sfiraiala@gmail.com> Reviewed-by: Razvan Deaconescu <razvand@unikraft.io> Approved-by: Eduard Vintilă <eduard.vintila47@gmail.com> Tested-by: Unikraft CI <monkey@unikraft.io>
GitHub-Closes: #12
Andrei Tatar [Fri, 5 May 2023 19:20:40 +0000 (21:20 +0200)]
Update to LLVM 14.0.6
Co-authored-by: Marco Schlumpp <marco@unikraft.io> Signed-off-by: Marco Schlumpp <marco@unikraft.io> Signed-off-by: Andrei Tatar <andrei@unikraft.io> Reviewed-by: Stefan Jumarea <stefanjumarea02@gmail.com> Reviewed-by: Maria Sfiraiala <maria.sfiraiala@gmail.com> Reviewed-by: Razvan Deaconescu <razvand@unikraft.io> Approved-by: Eduard Vintilă <eduard.vintila47@gmail.com> Tested-by: Unikraft CI <monkey@unikraft.io>
GitHub-Closes: #12
Simon Kuenzer [Tue, 13 Jul 2021 19:11:48 +0000 (21:11 +0200)]
Correct license headers introduced by University Politehnica of Bucharest
This commit removes the additional clause
"THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY"
from BSD license headers that got introduced by mistake
with the following commits: 64d5663 - Initial port of compiler-rt to Unikraft (Vlad-Andrei BĂDOIU (78692))
On the one hand, this additional clause is redundant because
the BSD license already states that it must remain and the
copyright notice must be kept.
On the other hand, the clause freezes the file header
and prohibits future contributors from extending the
copyright notice for their contributions. This additional
clause is not part of the official BSD 3-clause.
The original author(s) or an authorized representative from
the author's affiliation consents to the change with a
`Reviewed-by` tag to this commit.
Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu> Reviewed-by: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
This is our initial port of compiler-rt to Unikraft as an external
library. The port currently requires a libc-equivalent (e.g.,
newlib), libunwind, libcxxabi and libcxx.
Signed-off-by: Vlad-Andrei Badoiu <vlad_andrei.badoiu@stud.acs.upb.ro> Reviewed-by: Felipe Huici <felipe.huici@neclab.eu>