From nobody Tue Feb 21 01:19:42 2023 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 4PLLzy5gJxz3slbG; Tue, 21 Feb 2023 01:19:42 +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 4PLLzy58tNz4Cxv; Tue, 21 Feb 2023 01:19:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1676942382; 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=eCPDyLf/WfAhqN5H7BF3PUNidvBZDJ5OQfGG/vS2leE=; b=x5WaBNUpcmq5eaHOc1FhY7GoLV1ILOw6my0vkiJdvtRWCM83T3bUVNYf7KUlW7dNcMyqzJ ucKMCbSPvRNQMYkOeu682v/DSLnBmJIiQpWoMjgbnu8ClKR/uGENAUoTKxo/I0rQq3krcf CG/DcPIMP2NdExl4czIZCR4JNePtivNuGVWzX411f+jStElzdCgLJVCsbJe3takMfWdrSJ y9aRu+3DNdQIbg+7QpDUh1h16722xpUbXsD32fUggbIOq9Ju7I0ETIDeah0EGIHz0D3gj5 +lRMeLvPpW6I+x8oDV/cyOHi/fwuPzACNAMMwqVIFSbciySgMbqbIH5V8oSESg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1676942382; 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=eCPDyLf/WfAhqN5H7BF3PUNidvBZDJ5OQfGG/vS2leE=; b=CgyWSNU+2yxrEKYHwINyDnMNtMEghbGBCJBY0DY6aSr/pEfcL7PIFBz23EuItQiYA8k9Nx 5C03ZBFbUWWiSa+TvtW3EZ+3MYIFUOwaf+/Z//kYgnJ2QsitpTWZ/qybyc/DGUN1WJcKWn ROzGVCpSgMt+cEVMJSIrbrGsCIZuxT3JVqv3GqOYtWvXHbdXz+vc2Drlt8BXBoUjtrsJ2w X0DlMP/Z63GfPQgkrqS4PWJUuEAQ7E2LLNy/JCK8wXzYQx7DZq9HUgOGf/q3FzKWnbPyvW bNEMIAYysnCzck63qfazl311vdL8vkvqCig6kS1b8Npx63yNvYh3mc7FsxZtpg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1676942382; a=rsa-sha256; cv=none; b=B78dGcCVCkLbnUCWr8wwAktFZ+WM+iv7arlxjiQvYBao7mG07ywOQYUi9O3lWcB4xTAAox qCZ/2B6RAtY1KBYy/yQo4OPYXIzhwHNxsuwf4jspW4HTlgQV7Dob2HdjZzOdMK5H6ymAiN qMsh/TKHssnmpfMerRN4cNDooWTubsQ/gcdKCxjhsUvodpjL1hQyO+g4yxUDzcDPiVJ0D1 kC6K4YSEsAWIP4H3M/V0dehdIv9lADmxjLREpI1JeG8oFyXw7zVJPe9rY+9LvOJLW8tdaf 0DKbLhnK8Z0vBD5EZBvojj1rHaEO4omAsqE85OE7EKQK1XIgLkI7NrJJ7/ddsg== 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 4PLLzy449cz12c6; Tue, 21 Feb 2023 01:19:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 31L1JgFT026058; Tue, 21 Feb 2023 01:19:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 31L1JgXv026057; Tue, 21 Feb 2023 01:19:42 GMT (envelope-from git) Date: Tue, 21 Feb 2023 01:19:42 GMT Message-Id: <202302210119.31L1JgXv026057@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Piotr Kubaj Subject: git: 8f39cbf4f30c - stable/13 - llvm: make sure to use ELFv2 ABI on powerpc64 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: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: pkubaj X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 8f39cbf4f30c9a8cd3f593dc2b373a289785d4b6 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by pkubaj: URL: https://cgit.FreeBSD.org/src/commit/?id=8f39cbf4f30c9a8cd3f593dc2b373a289785d4b6 commit 8f39cbf4f30c9a8cd3f593dc2b373a289785d4b6 Author: Piotr Kubaj AuthorDate: 2023-02-16 23:49:43 +0000 Commit: Piotr Kubaj CommitDate: 2023-02-21 01:19:33 +0000 llvm: make sure to use ELFv2 ABI on powerpc64 Currently LLVM is more or less set up to use ELFv2, but it still defaults to ELFv1 in some places. This causes lld to generate broken binaries when used with LTO. PR: 269455 Approved by: dim MFC after: 3 days (cherry picked from commit a1ffc2fe9ce54a498c410dcab86495569dbaa7cc) --- contrib/llvm-project/clang/lib/Basic/Targets/PPC.h | 3 +++ contrib/llvm-project/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/contrib/llvm-project/clang/lib/Basic/Targets/PPC.h b/contrib/llvm-project/clang/lib/Basic/Targets/PPC.h index ac52eb219f54..cd9bf0d8e359 100644 --- a/contrib/llvm-project/clang/lib/Basic/Targets/PPC.h +++ b/contrib/llvm-project/clang/lib/Basic/Targets/PPC.h @@ -425,6 +425,9 @@ public: } else if ((Triple.getArch() == llvm::Triple::ppc64le)) { DataLayout = "e-m:e-i64:64-n32:64"; ABI = "elfv2"; + } else if (Triple.isOSFreeBSD() && (Triple.getOSMajorVersion() == 0 || Triple.getOSMajorVersion() >= 13)) { + DataLayout = "E-m:e-i64:64-n32:64"; + ABI = "elfv2"; } else { DataLayout = "E-m:e-i64:64-n32:64"; ABI = "elfv1"; diff --git a/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp b/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp index 3eff00fc3c05..9b7145aafead 100644 --- a/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp +++ b/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp @@ -221,8 +221,11 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT, assert(Options.MCOptions.getABIName().empty() && "Unknown target-abi option!"); - if (TT.isMacOSX()) + if (TT.isMacOSX()) { return PPCTargetMachine::PPC_ABI_UNKNOWN; + } else if (TT.isOSFreeBSD() && TT.getArch() == Triple::ppc64 && (TT.getOSMajorVersion() == 0 || TT.getOSMajorVersion() >= 13)) { + return PPCTargetMachine::PPC_ABI_ELFv2; + } switch (TT.getArch()) { case Triple::ppc64le: