From nobody Fri May 29 23:01:47 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4gRzPm1r9gz6gF3h for ; Fri, 29 May 2026 23:01:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gRzPm07qMz3BnS for ; Fri, 29 May 2026 23:01:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1780095708; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hcP+CvDbGGibbQFnG8o+OuM9BOs2Sh8wV/LRDHVo4wg=; b=yXRhcF1gLfchJjatiyDMdY8i+MeMOyDMJ0Qbxm/dWH6AzHBjaEe4a+GmxNzc1AsOZkK2HG E7o3QfymFIbXCDuyPSej0rVqGvK4yqE0GbtcvxL8iKlLftohGAYWIn+HfV4HnbHTFZMjqL pSoqJfzmvhxSlFKQAlxvLu4Pm50vnHLthrXwlEj5WSXi0JPFMZmbJys5iH/IfGSkjs9I97 Iu1SW53Vh9AiDixHlmQmfh8E3dpYR91s8Ut/4lz4I3Cw+jyD3RGvqavNHmsihNH+Nm4c39 IjmRfLweOkW5U4GZIILymHymD83fx4FbpL15oX3Qr6PaUuVAP5FCIuTmpeT9JA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1780095708; a=rsa-sha256; cv=none; b=vzWkcIfl6Ha4rgJeVzUOL03/tZF2nF26rIPlSj6VNauGC6XB4Fhiu6LAReOtmLgdKnNoNE +tat+e2I8p/hhUL9y+mOvy2Ag61F2IZUN+dA7ed0RxJtmpJlPJmF+7RfLSUNSUjcORyk04 rusTYCiXCbOq45+KYi7c5qIM1M7CayjeFE61YJW/tegCSsqgBE0qw5M4/cDTHR39cBi2E8 LJn39wIHGJ1OchulRfUiV1/N6JDjmz3GV32mmyxUOrnZnJZSIwBHFgcUcn0A3xidGb8lG4 3PxxKcVI1ti/KJVuzl+tsO1AfNdz82xkbmNiV44dNTY47nv46VTU5uc1xu5JYw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1780095708; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hcP+CvDbGGibbQFnG8o+OuM9BOs2Sh8wV/LRDHVo4wg=; b=mxNbiiIBdQzTqAJxaxYkhDxCZvtEibEM629TB+DKTaBOKJ9GppnRHgmieDSTXiYJ7GIWtu xKAsGgsHVUk4E7pPmZsO9HIvS1Ij4c9jHSqFWky7/k3iTqqDqhD8fcu1V8riwQqlG9T+R4 rMCLj9D+tha0dbKCQZymViktKM5eq1otzy3i9Dbm/rbcg+zX8iqF/Bu5j+KJOs/JztronB f7M48U2XkS26Eji5WN7Yt3CfOY09mAVh176FKgr2Ksaj2uWsQVT7VhFqSmRCqSQIj8hb2z /Y1d/ol0jpfqgCNvNTj+GaeX7jeMfBtB6SAt9s9pQtiqbXOzqPR2+yiqta005Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gRzPl6cDnztS3 for ; Fri, 29 May 2026 23:01:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 4275f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 29 May 2026 23:01:47 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dimitry Andric Subject: git: d08fb64ae215 - stable/15 - Partially revert libc++ commit aa7f377c965c, restoring stdint.h List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dim X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: d08fb64ae2157d3bc65777589728e880e6409d72 Auto-Submitted: auto-generated Date: Fri, 29 May 2026 23:01:47 +0000 Message-Id: <6a1a1adb.4275f.61ddd9f6@gitrepo.freebsd.org> The branch stable/15 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=d08fb64ae2157d3bc65777589728e880e6409d72 commit d08fb64ae2157d3bc65777589728e880e6409d72 Author: Dimitry Andric AuthorDate: 2025-12-30 19:49:35 +0000 Commit: Dimitry Andric CommitDate: 2026-05-29 22:57:31 +0000 Partially revert libc++ commit aa7f377c965c, restoring stdint.h This partially reverts upstream libc++ commit aa7f377c965c: [libc++] Remove libc++'s own stdint.h and locale.h (#107436) These headers are not doing anything beyond the system or compiler provided equivalent headers, so there's no real reason to keep them around. Reducing the number of C headers we provide in libc++ simplifies our header layering and reduces the potential for confusion when headers are layered incorrectly. The problem is that libc++'s own `stdint.h` _does_ do something: it defines `__STDC_LIMIT_MACROS` and `__STDC_CONSTANT_MACROS` before including the system `stdint.h`, causing the latter to expose macros like `SIZE_MAX`, `UINT64_C`, and others. If the `__STDC_LIMIT_MACROS` and `__STDC_CONSTANT_MACROS` macros are not exposed, C++ programs compiled for standards before C++11 can fail with errors due to those macros not being available. PR: 292067 MFC after: 1 month (cherry picked from commit 00bee6fcd77f7812e967f85d1cacbc349ff312b3) --- ObsoleteFiles.inc | 1 - contrib/llvm-project/libcxx/include/cstdint | 8 ++ contrib/llvm-project/libcxx/include/stdint.h | 127 +++++++++++++++++++++++++++ lib/libc++/Makefile | 1 + lib/libc++/module.modulemap | 4 + 5 files changed, 140 insertions(+), 1 deletion(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 9945872c268c..df1a8f07050f 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -492,7 +492,6 @@ OLD_FILES+=usr/include/c++/v1/__type_traits/is_unsigned_integer.h OLD_FILES+=usr/include/c++/v1/__type_traits/noexcept_move_assign_container.h OLD_FILES+=usr/include/c++/v1/experimental/__config OLD_FILES+=usr/include/c++/v1/locale.h -OLD_FILES+=usr/include/c++/v1/stdint.h # 20260503: Kill off MANSUBDIRs OLD_DIRS+=usr/share/man/man4/amd64 diff --git a/contrib/llvm-project/libcxx/include/cstdint b/contrib/llvm-project/libcxx/include/cstdint index 11839eeb071e..7ae82f656fc9 100644 --- a/contrib/llvm-project/libcxx/include/cstdint +++ b/contrib/llvm-project/libcxx/include/cstdint @@ -149,6 +149,14 @@ Types: # include # endif +# ifndef _LIBCPP_STDINT_H +# error tried including but didn't find libc++'s header. \ + This usually means that your header search paths are not configured properly. \ + The header search paths should contain the C++ Standard Library headers before \ + any C Standard Library, and you are probably using compiler flags that make that \ + not be the case. +# endif + # if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header # endif diff --git a/contrib/llvm-project/libcxx/include/stdint.h b/contrib/llvm-project/libcxx/include/stdint.h new file mode 100644 index 000000000000..35e5b8cbdad2 --- /dev/null +++ b/contrib/llvm-project/libcxx/include/stdint.h @@ -0,0 +1,127 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCPP_STDINT_H +// AIX system headers need stdint.h to be re-enterable while _STD_TYPES_T +// is defined until an inclusion of it without _STD_TYPES_T occurs, in which +// case the header guard macro is defined. +#if !defined(_AIX) || !defined(_STD_TYPES_T) +# define _LIBCPP_STDINT_H +#endif // _STD_TYPES_T + +/* + stdint.h synopsis + +Macros: + + INT8_MIN + INT16_MIN + INT32_MIN + INT64_MIN + + INT8_MAX + INT16_MAX + INT32_MAX + INT64_MAX + + UINT8_MAX + UINT16_MAX + UINT32_MAX + UINT64_MAX + + INT_LEAST8_MIN + INT_LEAST16_MIN + INT_LEAST32_MIN + INT_LEAST64_MIN + + INT_LEAST8_MAX + INT_LEAST16_MAX + INT_LEAST32_MAX + INT_LEAST64_MAX + + UINT_LEAST8_MAX + UINT_LEAST16_MAX + UINT_LEAST32_MAX + UINT_LEAST64_MAX + + INT_FAST8_MIN + INT_FAST16_MIN + INT_FAST32_MIN + INT_FAST64_MIN + + INT_FAST8_MAX + INT_FAST16_MAX + INT_FAST32_MAX + INT_FAST64_MAX + + UINT_FAST8_MAX + UINT_FAST16_MAX + UINT_FAST32_MAX + UINT_FAST64_MAX + + INTPTR_MIN + INTPTR_MAX + UINTPTR_MAX + + INTMAX_MIN + INTMAX_MAX + + UINTMAX_MAX + + PTRDIFF_MIN + PTRDIFF_MAX + + SIG_ATOMIC_MIN + SIG_ATOMIC_MAX + + SIZE_MAX + + WCHAR_MIN + WCHAR_MAX + + WINT_MIN + WINT_MAX + + INT8_C(value) + INT16_C(value) + INT32_C(value) + INT64_C(value) + + UINT8_C(value) + UINT16_C(value) + UINT32_C(value) + UINT64_C(value) + + INTMAX_C(value) + UINTMAX_C(value) + +*/ + +#include <__config> + +#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) +# pragma GCC system_header +#endif + +/* C99 stdlib (e.g. glibc < 2.18) does not provide macros needed + for C++11 unless __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS + are defined +*/ +#if defined(__cplusplus) && !defined(__STDC_LIMIT_MACROS) +# define __STDC_LIMIT_MACROS +#endif +#if defined(__cplusplus) && !defined(__STDC_CONSTANT_MACROS) +# define __STDC_CONSTANT_MACROS +#endif + +#if __has_include_next() +# include_next +#endif + +#endif // _LIBCPP_STDINT_H diff --git a/lib/libc++/Makefile b/lib/libc++/Makefile index 4e487f0e8457..03b04afee7cc 100644 --- a/lib/libc++/Makefile +++ b/lib/libc++/Makefile @@ -232,6 +232,7 @@ STD_HEADERS+= stdatomic.h STD_HEADERS+= stdbool.h STD_HEADERS+= stddef.h STD_HEADERS+= stdexcept +STD_HEADERS+= stdint.h STD_HEADERS+= stdio.h STD_HEADERS+= stdlib.h STD_HEADERS+= stop_token diff --git a/lib/libc++/module.modulemap b/lib/libc++/module.modulemap index a6e6059ab60e..90d61bf5f44a 100644 --- a/lib/libc++/module.modulemap +++ b/lib/libc++/module.modulemap @@ -2433,6 +2433,10 @@ module std_stddef_h [system] { // supports being included multiple times with different pre-defined macros textual header "stddef.h" } +module std_stdint_h [system] { + // supports being included multiple times with different pre-defined macros + textual header "stdint.h" +} module std_stdio_h [system] { // supports being included multiple times with different pre-defined macros textual header "stdio.h"