1
0
mirror of https://github.com/openbsd/src.git synced 2026-06-18 07:13:36 +02:00
Commit Graph

362 Commits

Author SHA1 Message Date
robert fb5f5ea15f update build infrastructure for llvm-21.1.6
thanks for all the help with testing and fixing things up
2026-05-29 11:18:29 +00:00
kettenis 7850a610d3 amd64 needs the quad-precision support functions as well (for __float128
support).  From Brad (with a small comment tweak).

ok rsadowski@
2026-03-02 20:33:49 +00:00
rsadowski ab79de310e Fix PSTL backend (names) in __config_site
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@
2026-02-07 15:59:32 +00:00
robert 55bee3f78c remove special handling of __string/* headers
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
2025-12-06 09:27:54 +00:00
jca baa29930eb The libunwind guts used by libexecinfo no longer need "new" from libcxx
check_sym says: No dynamic export changes

Noticed and checked by rsadowski@
2025-11-04 13:17:05 +00:00
miod 43de91522a gcc3 is leaving the building. 2025-10-23 19:08:32 +00:00
miod 27664962f0 Prepare for gcc 3 leaving the building, COMPILER_VERSION can no longer get
set to "gcc3".
2025-10-23 19:06:09 +00:00
gkoehler 4583e465b6 Remove obsolete ppc/atomic_lock_free.c
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@
2025-09-10 03:38:56 +00:00
kettenis 0d6ca4c5a5 Clean up the handling of the "TF" (quad-precision) helper functions.
Create a single arch-independent list for them and allow for replacement
of the generic C implementation with arch-dependent assembly code.

ok rsadowski@
2025-09-05 17:05:14 +00:00
kettenis 4808c24575 Remove x86-specific stanza that adds Float16 conversion functions that
are already part of the generic list of files.

ok tb@
2025-09-02 18:06:02 +00:00
jca 72daaf9865 Hook up compiler-rt cpu_model detection on i386
Lack of support spotted by sthen@ in bulk build failures
(archivers/blosc2, archivers/unrar, etc).

ok kettenis@ tb@
2025-09-01 12:31:26 +00:00
miod 3e82a9a694 Disable forcing sjlj exceptions on m88k. 2025-08-29 16:19:12 +00:00
miod d8c38d2a68 Bump libstdc++ v3 major in order to prepare a smooth transition from gcc 3 to
gcc 4 on luna88k.
ok deraadt@
2025-08-28 06:07:29 +00:00
kettenis ded8dd10ba aarch64 supports Float16; also add two missing files for BFloat16 support.
ok rsadowski@, miod@
2025-08-27 20:18:11 +00:00
rsadowski 4a5f717c91 Bump major after libunwind,libcxx,libcxxabi 19.1.7 update 2025-08-21 15:46:09 +00:00
rsadowski 8cdfdf3cdc update build infrastructure for libunwind-, libcxxabi- and libcxx-19.1.7
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@
2025-08-21 15:26:58 +00:00
rsadowski 418e3d9a7b update build infrastructure for compiler-rt-19.1.7
- 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@
2025-08-21 10:42:46 +00:00
yasuoka b7f6c2eb76 Make the FILE object opaque. Move the __sFILE definition into
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
2025-07-16 15:33:05 +00:00
robert 08b94f0899 update build infrastructure for llvm-19.1.7
thanks for all the help with testing and fixing things up
2025-06-11 17:46:31 +00:00
schwarze d424735f13 .Lb libexecinfo ; OK jca@ 2025-06-07 20:54:35 +00:00
jca 34cf86345c Add risc-v support code for clang -msave-restore
ok kettenis@
2024-02-06 05:07:28 +00:00
jca c120e3490c Fix RTARCH in our Makefile and lets us access riscv-specific implementations
This brings us fp_mode.c used in softfloat code, and muldi3.S used when
the target ISA doesn't have the Multiply extension.

ok kettenis@
2024-02-06 05:00:12 +00:00
jca 07a83dd91d Adapt base libstdc++ to the new ctype.h defines
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@
2024-02-04 13:03:26 +00:00
robert 3bef86f7bc update libcxx, libcxxabi and libunwind to 16.0.6;
tested by and input from tb@; ok kettenis@
2024-01-26 11:51:45 +00:00
jca cdda5deda6 Fix install path, reminded by otto@ 2023-11-12 17:29:04 +00:00
nicm c7ef0cfc17 Update ncurses and associated libraries (form, panel, menu) to
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
2023-10-17 09:52:08 +00:00
jca fc532a6e4f Build with -std=gnu89 to fix the build with clang-16
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@
2023-09-06 11:49:11 +00:00
robert dcb03dac24 backport the implementation of ranges::find{, _if, _if_not}
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@
2023-07-05 15:34:52 +00:00
tb b9a442fa4b Do not neuter __attribute__ with __STRICT_ANSI__
This broke readline support in newer Pythons and generally seems a
bad idea.  Upstream have removed this conditional in 5.0.

ok millert
2022-11-01 20:26:20 +00:00
gnezdo eedbc2b4fe Plug ubsan_minimal into gnu/lib/libclang_rt build
ok jca@
2022-02-16 03:49:40 +00:00
patrick 9da016ebff Compile out-of-line helpers for atomic operations which can be enabled
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@
2021-12-28 15:45:17 +00:00
patrick 5a38ef86d0 Update build infrastructure for LLVM 13.0.0. 2021-12-17 14:55:43 +00:00
robert 35d073bd9a backport https://reviews.llvm.org/D107127 to fix shared libraries using emutls
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@
2021-11-12 10:08:35 +00:00
fcambus 841b1ecd64 Link libclang_rt.profile to the build.
"go for it" kettenis@
2021-09-28 08:35:06 +00:00
fcambus 51ea623227 Add build infrastructure for the libclang_rt.profile library.
Not linking it to the build yet.

"go for it" mortimer@
2021-09-15 10:21:30 +00:00
jmc 55e684b42d remove netbsd specific LIBRARY section; ok jca 2021-06-11 19:36:00 +00:00
jca daca582a2c Minor mandoc -Tlint fixes
ok mortimer@
2021-06-10 23:44:28 +00:00
jca 5487b40765 Indentation
ok mortimer@
2021-06-10 23:44:05 +00:00
jca a265a8f98e No RCS IDs in shlib_version files
ok mortimer@
2021-06-10 23:43:45 +00:00
mortimer 66e500ce5d Enable libexecinfo.
With some build plumbing help from jsg@

ok kettenis@ sthen@
2021-06-09 19:44:55 +00:00
mortimer 771fbea014 Add libexecinfo.
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@
2021-06-09 19:37:43 +00:00
drahn 12634b4376 Build libcompiler_rt for riscv64
ok kettenis@
2021-04-28 22:56:22 +00:00
patrick 998fd4492c Update build infrastructure for libc++ and libc++abi version 11.1.0. 2021-04-28 13:06:20 +00:00
patrick f08594bd08 Switch libc++ and libc++abi to version 10.0.1.
Further libc++ header fixes for ports thanks to kettenis@
Ports build test and fixes thanks to naddy@
"Startschuss!" naddy@
2021-01-11 15:27:21 +00:00
patrick 9ddbe89170 Adjust link path for libc++ to find libc++abi to match change of Makefile
and build location.
2021-01-02 20:43:26 +00:00
patrick f950054f2b Move Makefiles for libc++ and libc++abi to gnu/lib in preparation for an
upcoming update to those, which will see both codebases heading into the
gnu/llvm dumpster.

Feedback from jsg@
ok deraadt@ kettenis@
2021-01-02 20:04:36 +00:00
kettenis a6dd968cd1 Don't build double-double functions since long double is the same as double
on OpenBSD.

ok gkoehler@
2020-08-14 14:30:06 +00:00
patrick e951c694b9 Remove fixtfti.c from ppc-if to unbreak macppc build. I guess kettenis@
was right that this isn't really needed.  Now the list is the same as what
we had for the previous compiler-rt version.
2020-08-11 06:38:59 +00:00
jsg 6b8783ca1a fix path for testing if a .S exists 2020-08-11 03:23:47 +00:00
patrick 21f4387919 Un-hook and re-hook libcompiler_rt.
ok kettenis@
2020-08-10 21:09:39 +00:00