From nobody Mon Jan 1 16:43:01 2024 X-Original-To: dev-commits-src-branches@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 4T3hcP3fYfz573cV; Mon, 1 Jan 2024 16:43:01 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4T3hcP2zdJz3FZ8; Mon, 1 Jan 2024 16:43:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1704127381; 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=4h9TJFK/kfvkSBprpAuhjiG6B16xmzFTccqMP/drKtg=; b=wUtR2L/edu4aXCvjt0SCQDa48OcmcZPQ9GI9hdlvD+iwJAPAk89254NcqBvsYvV3UdTbMs n/lu6ZTLTRiyezfGzw/eEr0MUMoUqMTcZnWSqWPE+r6mZcZQfYZfexLULW1bOOcyx6WJDo 6RZd7ddv8vXH+T5BUcHB+PS/7dL53YflXuyHX+ePKvNcj0/hjR+08EfDPAI2Z4getonKhr Kf/tN9ThSQqQC3DiIhWwJeodlUbfSPVPNj/t2ypek9GVSX3kP30HyPY3CO4rSMxbhMIZ7f tirfZkp2JSwuwjMkOxXwMo078U9PD2fDWfX0x+CiDKqnCEPfKw+EtFoGiv8QBw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1704127381; a=rsa-sha256; cv=none; b=oNdCoaUqNhbGCDo7vxk7icSE7bnb4H92eRxDMI/Zr6wkhe76rr50613A9QNXDzD9CvNzGA foQ05otF2/uDMt7qbuzN3HGAldTYgQZ6e+6AE5SyH9TdgbtslbhE55mrkFcZgxOfDcNSkG UQnwtX0tknqugeeeV33/EVisHtYRRKIko0ouhQ0j0ozLmIUykljbh3ARyM/3Z16E9ysLwz /NcUNAJfHEddH1tIl8A8y76HW4MGa7tYMhouM66CVYbMOZRh4rLm/UW5tSGk4M7thGrvsX tFPdZDihxWh7zlfNHBvPgSy11CT4gqEdO7IpF1UwgoiXpTNAuCcpXigny8iM1Q== 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=1704127381; 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=4h9TJFK/kfvkSBprpAuhjiG6B16xmzFTccqMP/drKtg=; b=XMY4IANxJKdVB8bGaCsmvwAJ1Xc2IohFY6tSoPSTqONIOEn5dsEHmSfoHeaiKGPYsQs2gY rtGKUbEWD+m3DX9CVwiLkictZQaloPeFaILQJK8YJwcONN6YIwpJDwJeW1V8/bcNiVdSBs aA0TXQTeawLZ4nSgWesZmnp5DWRcHmiDPDQ7S6AbCUAka/kGXqv0REXHMxRDPEKDCVmAr7 rNi33GBY8dY2r1fSUJlxbTWOwKjEfT7Ar3fy67xjbkc+mK47TQTaOVbd9FKjTRnC1QcKBY kdZlclaMQiAdb+aAWqtH+3T+j+f8ClqOHhG9bkrf+tsHnw7EfXilJuBNczdTiA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4T3hcP25H0z9dm; Mon, 1 Jan 2024 16:43:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 401Gh1QA089677; Mon, 1 Jan 2024 16:43:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 401Gh1RG089674; Mon, 1 Jan 2024 16:43:01 GMT (envelope-from git) Date: Mon, 1 Jan 2024 16:43:01 GMT Message-Id: <202401011643.401Gh1RG089674@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dimitry Andric Subject: git: f4cff561aefd - stable/13 - Minimize libc++ errno-related header diffs with upstream List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org 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/13 X-Git-Reftype: branch X-Git-Commit: f4cff561aefdaa588c93d8fbc7b103defb251945 Auto-Submitted: auto-generated The branch stable/13 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=f4cff561aefdaa588c93d8fbc7b103defb251945 commit f4cff561aefdaa588c93d8fbc7b103defb251945 Author: Dimitry Andric AuthorDate: 2023-12-25 17:18:31 +0000 Commit: Dimitry Andric CommitDate: 2024-01-01 16:41:58 +0000 Minimize libc++ errno-related header diffs with upstream In commit 88640c0e8b6f5 the new EINTEGRITY errno value was added, and this caused us to carry a patch for upstream libc++ since that time. Because it can cause merge conflicts when importing libc++ code from upstream, I have submitted an upstream pull request to get most of that patch integrated. It turns out that we do not need the errno.h part of it at all, since all supported FreeBSD versions define EOWNERDEAD and ENOTRECOVERABLE, and therefore the block that juggles with ELAST values is never used in FreeBSD. At the moment it only applies to older versions of Linux, or possibly other platforms. Therefore the only part that needs to stay is the definition of a enum errc value for EINTEGRITY, and this is made optional upon EINTEGRITY being defined, to make it suitable for upstreaming. No functional change is intended. MFC after: 1 week (cherry picked from commit 1ff41cad716adeba0d408652c92c81e59e3ba316) --- contrib/llvm-project/libcxx/include/__errc | 2 + contrib/llvm-project/libcxx/include/errno.h | 62 +++++++---------------------- 2 files changed, 16 insertions(+), 48 deletions(-) diff --git a/contrib/llvm-project/libcxx/include/__errc b/contrib/llvm-project/libcxx/include/__errc index f0c27b1c60a1..f939c99f7ed6 100644 --- a/contrib/llvm-project/libcxx/include/__errc +++ b/contrib/llvm-project/libcxx/include/__errc @@ -143,7 +143,9 @@ _LIBCPP_DECLARE_STRONG_ENUM(errc) identifier_removed = EIDRM, illegal_byte_sequence = EILSEQ, inappropriate_io_control_operation = ENOTTY, +#ifdef EINTEGRITY integrity_check_failed = EINTEGRITY, +#endif interrupted = EINTR, invalid_argument = EINVAL, invalid_seek = ESPIPE, diff --git a/contrib/llvm-project/libcxx/include/errno.h b/contrib/llvm-project/libcxx/include/errno.h index ea96c3a0f004..7b02d2b47953 100644 --- a/contrib/llvm-project/libcxx/include/errno.h +++ b/contrib/llvm-project/libcxx/include/errno.h @@ -34,79 +34,49 @@ Macros: #ifdef __cplusplus -#if !defined(EOWNERDEAD) || !defined(ENOTRECOVERABLE) || !defined(EINTEGRITY) +#if !defined(EOWNERDEAD) || !defined(ENOTRECOVERABLE) -#if defined(ELAST) +#ifdef ELAST static const int __elast1 = ELAST+1; static const int __elast2 = ELAST+2; -static const int __elast3 = ELAST+3; #else static const int __elast1 = 104; static const int __elast2 = 105; -static const int __elast3 = 106; #endif -#if !defined(EOWNERDEAD) && !defined(ENOTRECOVERABLE) && !defined(EINTEGRITY) -#define ENOTRECOVERABLE __elast1 -#define EOWNERDEAD __elast2 -#define EINTEGRITY __elast3 -#if defined(ELAST) -#undef ELAST -#define ELAST EINTEGRITY -#endif - -#elif !defined(EOWNERDEAD) && !defined(ENOTRECOVERABLE) && defined(EINTEGRITY) -#define ENOTRECOVERABLE __elast1 -#define EOWNERDEAD __elast2 -#if defined(ELAST) -#undef ELAST -#define ELAST EOWNERDEAD -#endif +#ifdef ENOTRECOVERABLE -#elif !defined(EOWNERDEAD) && defined(ENOTRECOVERABLE) && !defined(EINTEGRITY) #define EOWNERDEAD __elast1 -#define EINTEGRITY __elast2 -#if defined(ELAST) -#undef ELAST -#define ELAST EINTEGRITY -#endif -#elif !defined(EOWNERDEAD) && defined(ENOTRECOVERABLE) && defined(EINTEGRITY) -#define EOWNERDEAD __elast1 -#if defined(ELAST) +#ifdef ELAST #undef ELAST #define ELAST EOWNERDEAD #endif -#elif defined(EOWNERDEAD) && !defined(ENOTRECOVERABLE) && !defined(EINTEGRITY) -#define ENOTRECOVERABLE __elast1 -#define EINTEGRITY __elast2 -#if defined(ELAST) -#undef ELAST -#define ELAST EINTEGRITY -#endif +#elif defined(EOWNERDEAD) -#elif defined(EOWNERDEAD) && !defined(ENOTRECOVERABLE) && defined(EINTEGRITY) #define ENOTRECOVERABLE __elast1 -#if defined(ELAST) +#ifdef ELAST #undef ELAST #define ELAST ENOTRECOVERABLE #endif -#elif defined(EOWNERDEAD) && defined(ENOTRECOVERABLE) && !defined(EINTEGRITY) -#define EINTEGRITY __elast1 -#if defined(ELAST) +#else // defined(EOWNERDEAD) + +#define EOWNERDEAD __elast1 +#define ENOTRECOVERABLE __elast2 +#ifdef ELAST #undef ELAST -#define ELAST EINTEGRITY +#define ELAST ENOTRECOVERABLE #endif -#endif // !defined(OWNERDEAD) && !defined(NOTRECOVERABLE) && !defined(INTEGRITY) +#endif // defined(EOWNERDEAD) -#endif // !defined(OWNERDEAD) || !defined(NOTRECOVERABLE) || !defined(INTEGRITY) +#endif // !defined(EOWNERDEAD) || !defined(ENOTRECOVERABLE) // supply errno values likely to be missing, particularly on Windows @@ -424,10 +394,6 @@ static const int __elast3 = 106; #define EMLINK 9979 #endif -#ifndef EINTEGRITY -#define EINTEGRITY 9980 -#endif - #endif // __cplusplus #endif // _LIBCPP_ERRNO_H