Andrei Tatar [Thu, 4 May 2023 14:20:31 +0000 (16:20 +0200)]
patches: Backport upstream fix for __is_convertible
Replicate upstream commit 484e64f7e7b2c0494d7b2dbfdd528bcd707ee652.
libcxx previously used the `__is_convertible_to` builtin which wasn't
supported by GCC; this patch adds support for `__is_convertible` which
is available as of GCC 13.
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: #28
Marco Schlumpp [Thu, 6 Apr 2023 16:56:16 +0000 (18:56 +0200)]
Use unikraft syscalls for futex
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: #28
Andrei Tatar [Fri, 5 May 2023 18:19:26 +0000 (20:19 +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: #28
Tu Dinh Ngoc [Mon, 19 Dec 2022 22:37:51 +0000 (23:37 +0100)]
patches: Remove hash templates for `pthread_t`
Musl defines `pthread_t` as `unsigned long`. This type already has a
hash template, causing a redefinition error on builds with C++
atomics/threads enabled.
Remove the offending patch.
Signed-off-by: Tu Dinh Ngoc <dinhngoc.tu@irit.fr> Reviewed-by: Radu Nichita <radunichita99@gmail.com> Approved-by: Razvan Deaconescu <razvand@unikraft.io> Tested-by: Unikraft CI <monkey@unikraft.io>
GitHub-Closes: #26
Maria Sfiraiala [Mon, 14 Nov 2022 10:30:39 +0000 (12:30 +0200)]
patches: Add patch with signature for vasprintf
Compilation step for __bsd_locale_fallbacks.h requires having a
signature for vasprintf.
This commit provides a patch that adds the needed function signature in
include/support/musl/xlocale.h, which will be included in
__bsd_locale_fallbacks.h.
Signed-off-by: Maria Sfiraiala <maria.sfiraiala@gmail.com> Reviewed-by: Stefan Jumarea <stefanjumarea02@gmail.com> Reviewed-by: Razvan Deaconescu <razvand@unikraft.io> Approved-by: Razvan Deaconescu <razvand@unikraft.io> Tested-by: Unikraft CI <monkey@unikraft.io>
GitHub-Closes: #23
Stefan Jumarea [Fri, 4 Nov 2022 10:41:28 +0000 (12:41 +0200)]
include/math.h: Add libcxx math.h header
When building `libcxx` with musl, some undefined functions errors appear
because the musl math.h header is used.
`cmath` looks for some funtions defined in an anonymous namespace, but they
are defined as macros within the `musl` headers. This leads to errors since
the macros can not match the required functions.
The functions are defined in `libcxx` headers, but they are not processed
since the `musl` headers are prioritised. We cannot prioritise the `libcxx`
headers since it leads to a lot of issues similar to this one.
Signed-off-by: Stefan Jumarea <stefanjumarea02@gmail.com> Reviewed-by: Maria Sfiraiala <maria.sfiraiala@gmail.com> Reviewed-by: Razvan Deaconescu <razvand@unikraft.io> Approved-by: Razvan Deaconescu <razvand@unikraft.io> Tested-by: Unikraft CI <monkey@unikraft.io>
GitHub-Closes: #22
Simon Kuenzer [Tue, 13 Jul 2021 19:13:13 +0000 (21:13 +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: 3602034 - Initial port of libcxx 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>
Felipe Huici [Tue, 28 Jan 2020 12:55:45 +0000 (13:55 +0100)]
Fix crash due to atomics on bare-metal arm64
At the moment atomic operations are working on ARM64 for KVM; however,
they are not working on baremetal on ARM64 (i.e., on the Raspberry Pi
3B+). This can be most likely be solved by enabling the caches and
setting up a compatible memory configuration. In the meantime, these
patches allow us to have functionally-equivalent non-atomic
implementations of the gcc builtins working on baremetal on ARM64.
Once the issue is fixed this workaround can be removed.
Signed-off-by: Felipe Huici <felipe.huici@neclab.eu> Reviewed-by: Simon Kuenzer <simon.kuenzer@neclab.eu>
The latest newlib patch, 05b35a729f9, enables the definitions of the
long double math functions. This patch solves the conflicts by removng
their external definitions from libcxx.
Signed-off-by: Vlad-Andrei Badoiu <vlad_andrei.badoiu@stud.acs.upb.ro> Reviewed-by: Felipe Huici <felipe.huici@neclab.eu>
Costin Lupu [Sun, 2 Jun 2019 13:46:16 +0000 (16:46 +0300)]
Fix some of the compiling warnings
This patch removes the "unused-parameter" warnings generated by the origin code
and the multiple definition warnings for _LIBCPP_BUILDING_LIBRARY and
_LIBCPPABI_VERSION macros.
Signed-off-by: Costin Lupu <costin.lupu@cs.pub.ro> Reviewed-by: Felipe Huici <felipe.huici@neclab.eu>
Costin Lupu [Sat, 1 Jun 2019 20:16:49 +0000 (23:16 +0300)]
Add features.h
When threads are enabled, cxx library includes a 'features.h' header in its
'include/__config' header from origin. The header introduced by this patch
includes the 'sys/features.h' header from newlib.
Signed-off-by: Costin Lupu <costin.lupu@cs.pub.ro> Reviewed-by: Felipe Huici <felipe.huici@neclab.eu>
This is our initial port of libcxx to Unikraft as an external
library. Libc is requiered for it to work. The dependency list
should contain: ...:$(UK_LIBS)/libunwind:
$(UK_LIBS)/compiler-rt:$(UK_LIBS)/libcxxabi:$(UK_LIBS)/libcxx:
$(UK_LIBS)/newlib:...
Signed-off-by: Vlad-Andrei Badoiu <vlad_andrei.badoiu@stud.acs.upb.ro> Reviewed-by: Felipe Huici <felipe.huici@neclab.eu>