Upstream libc++ renamed these macros in the following commit:
https://github.com/llvm/llvm-project/commit/d423d80
We had the correct names in the libcxx* makefiles, so no ABI changes are
required.
Reported by c2qd and also provided the __config_site diff. OK robert@
we had to add special handling for the __string directory because CVS
cannot handle file to directory transitions so we had to move this
directory to __string.d and copy files over at install time, however
when libcxx19 was imported this directory was actually commited, making
rendering the handling of the special directory obsolete, but it was kept
there and it was installing files to the wrong directory
Back when compiler-rt was missing __atomic_is_lock_free, we added it
for 64-bit atomic ops on powerpc. A later version of compiler-rt
added __atomic_is_lock_free to builtins/atomic.c; the linker has been
finding atomic.c and ignoring atomic_lock_free.c.
ok kettenis@
Create a single arch-independent list for them and allow for replacement
of the generic C implementation with arch-dependent assembly code.
ok rsadowski@
This gives us a modern c++ lib in base!
- gkoehler tested on powerpc64
- amd64 and aarch64 are well tested (including bulks by tb and phessler)
- armv7 by phessler
- sparc64 base + xenocara build/release went ok
As always with such a major update, it was a great achievement by the OpenBSD
team!
ok jca@ tb@
- Adds SANITIZER_COMMON_NO_REDEFINE_BUILTINS define for ubsan_minimal
- Enable Float16 and BFloat16 support
- Includes Float16 conversion functions (extendhfsf2.c, etc.)
- Adds BFloat16 support for x86_64 and aarch64
- Adds CPU model detection (x86.c)
- Adds 80-bit extended precision support (divxc3.c, fixunsxfdi.c, etc.)
- Removes generic cpu_model from common sources
- Adds arch-specific CPU model detection (aarch64, x86_64)
Quad-Precision Support:
- Restructures TF (128-bit float) functions into separate TF_SRCS variable
- Enables quad-precision for aarch64, mips64, riscv, and sparc64
- Adds arch-specific TF functions (addtf3.c, divtf3.c, etc.)
TODO:
- Comments out SME (Scalable Matrix Extension) support.
Special thanks to kettenis@, who put all the magic in the right place.
ok jca@ kettenis@
libc/hidden/_stdio.h. All programs that refer to the internal
structure of the FILE object can't be compiled from now on.
std{in,out,err} doesn't refer __sF[] now, but the hidden __sF along
with __srget and __swbuf symbols are kept temporarily to make our
transition easier. But those symbols will be deleted soon. The shared
library versions are bumped for libc and all the other libraries that
refer to std{in,out,err}.
diff from guenther, tweak by me, tested by many
ok sthen tb
ctype_base.h is correctly installed by make includes so the transition should
be automatic. If you hit a failure with this header, make sure ctype.h and
ctype_base.h are in sync.
ok miod@ tb@
6.4-20230826 (from 5.7-20081102).
Based on result from Thomas Dickey's ncu2openbsd script and then
modified. Switches to the upstream tput. Major bump for the ncurses
libraries and for libedit and libreadline.
Help from tb, millert.
ok deraadt sthen
This is ancient GNU software that tends to break whenever clang adds
more warnings about deprecated features in new languages versions or
turns them into errors. Using -std=gnu89 (the defaults for base-gcc)
for those packages means we'll probably avoid most new warnings, errors,
and possible miscompilations when updating clang.
This fixes the build of libiberty and texinfo with clang-16.
ok robert@
this will be required by future chromium releases
From ee0f8c4010309a25c95115a9f727a02741e2de48 Mon Sep 17 00:00:00 2001
From: Nikolas Klauser <nikolasklauser@berlin.de>
Date: Sat, 12 Mar 2022 01:45:35 +0100
Subject: [PATCH] [libc++][ranges] Implement ranges::find{, _if, _if_not}
ok tb@
through -moutline-atomics. These are included by default in this updated
version of compiler-rt, we just haven't enabled them yet. Some ports start
to make use of that option, so it makes sense to provide these helpers.
The helpers would make use of the ARMv8.1 LSE instructions, if we flagged
that the running system supports those. As we do not yet have a mechanism
to show support for LSE, the code will always fall back to regular atomics.
Issue raised by jca@
Tested by phessler@
Input from jsg@
ok kettenis@
Our emulated TLS implementation relies on local state (e.g. for the pthread
key), and if we duplicate this state across different shared libraries,
accesses to the same TLS variable from different shared libraries will yield
different results (see https://github.com/android/ndk/issues/1551 for an
example). __emutls_get_address is the only external entry point for emulated
TLS, and by making it default visibility and weak, we can rely on the dynamic
linker to coalesce multiple copies at runtime and ensure a single unique copy
of TLS state. This is a best effort;
Also bump the libc++abi minor because now it picks up the __emutls_get_address
symbol.
ok kettenis@
Based on NetBSD implementation, without the libelf dependency. Architectures
which have libunwind use libunwind, and others use a stub implementation
that does nothing since __builtin methods are unreliable.
Much feedback and help from jca@.
ok kettenis@ sthen@