From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 145A8138334 for ; Fri, 24 May 2019 06:41:33 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 4E6F6E0964; Fri, 24 May 2019 06:41:32 +0000 (UTC) Received: from smtp.gentoo.org (mail.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 204EFE0964 for ; Fri, 24 May 2019 06:41:32 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 9CCC8344F28 for ; Fri, 24 May 2019 06:41:30 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 119785E7 for ; Fri, 24 May 2019 06:41:29 +0000 (UTC) From: "Sergei Trofimovich" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sergei Trofimovich" Message-ID: <1558680003.552e864ab334ae8d6546dd2e49bff11c56f302a9.slyfox@gentoo> Subject: [gentoo-commits] proj/gcc-patches:master commit in: 6.5.0/gentoo/ X-VCS-Repository: proj/gcc-patches X-VCS-Files: 6.5.0/gentoo/23_all_std_pair_ABI.patch 6.5.0/gentoo/README.history X-VCS-Directories: 6.5.0/gentoo/ X-VCS-Committer: slyfox X-VCS-Committer-Name: Sergei Trofimovich X-VCS-Revision: 552e864ab334ae8d6546dd2e49bff11c56f302a9 X-VCS-Branch: master Date: Fri, 24 May 2019 06:41:29 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 61b89d85-7608-4998-a9eb-3d38a9d6e479 X-Archives-Hash: 8fdeb4435f4af5f46af62fd02dcb4d2c commit: 552e864ab334ae8d6546dd2e49bff11c56f302a9 Author: Sergei Trofimovich gentoo org> AuthorDate: Fri May 24 06:40:03 2019 +0000 Commit: Sergei Trofimovich gentoo org> CommitDate: Fri May 24 06:40:03 2019 +0000 URL: https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=552e864a 6.5.0: fix std::pair ABI breakage It will cause immediate pain for existing bianries for 6.5.0 users but longer-term should be more compatible with other gcc versions. Bug: https://gcc.gnu.org/PR87822 Signed-off-by: Sergei Trofimovich gentoo.org> 6.5.0/gentoo/23_all_std_pair_ABI.patch | 47 ++++++++++++++++++++++++++++++++++ 6.5.0/gentoo/README.history | 3 +++ 2 files changed, 50 insertions(+) diff --git a/6.5.0/gentoo/23_all_std_pair_ABI.patch b/6.5.0/gentoo/23_all_std_pair_ABI.patch new file mode 100644 index 0000000..3f79be0 --- /dev/null +++ b/6.5.0/gentoo/23_all_std_pair_ABI.patch @@ -0,0 +1,47 @@ +https://gcc.gnu.org/PR87822 + +From 581b5447f18f4758a55b1fda4f8bf597e9466d40 Mon Sep 17 00:00:00 2001 +From: redi +Date: Wed, 31 Oct 2018 12:29:02 +0000 +Subject: [PATCH] PR libstdc++/87822 fix layout change for nested std::pair + +The introduction of the empty __pair_base base class for PR 86751 +changed the layout of std::pair, ...>. The outer pair and +its first member both have a base class of the same type, which cannot +exist at the same address. This causes the first member to be at a +non-zero offset. + +The solution is to make the base class depend on the template +parameters, so that each pair type has a different base class type, +which allows the base classes of the outer pair and its first member to +have the same address. + + PR libstdc++/87822 + * include/bits/stl_pair.h (__pair_base): Change to class template. + (pair): Make base class type depend on template parameters. + * testsuite/20_util/pair/87822.cc: New test. + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265678 138bc75d-0d04-0410-961f-82ee72b054a4 +--- + libstdc++-v3/include/bits/stl_pair.h | 4 +- + +--- a/libstdc++-v3/include/bits/stl_pair.h ++++ b/libstdc++-v3/include/bits/stl_pair.h +@@ -187,7 +187,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + }; + #endif // C++11 + +- class __pair_base ++ template class __pair_base + { + #if __cplusplus >= 201103L + template friend struct pair; +@@ -206,7 +206,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + */ + template + struct pair +- : private __pair_base ++ : private __pair_base<_T1, _T2> + { + typedef _T1 first_type; /// @c first_type is the first bound type + typedef _T2 second_type; /// @c second_type is the second bound type diff --git a/6.5.0/gentoo/README.history b/6.5.0/gentoo/README.history index 52b438b..c3c504f 100644 --- a/6.5.0/gentoo/README.history +++ b/6.5.0/gentoo/README.history @@ -1,3 +1,6 @@ +2 TODO + + 23_all_std_pair_ABI.patch + 1 27 Oct 2018 + 01_all_default-fortify-source.patch + 02_all_default-warn-format-security.patch