summaryrefslogtreecommitdiff
path: root/sys-devel
diff options
context:
space:
mode:
Diffstat (limited to 'sys-devel')
-rw-r--r--sys-devel/Manifest.gzbin10474 -> 10476 bytes
-rw-r--r--sys-devel/dwz/Manifest4
-rw-r--r--sys-devel/dwz/dwz-0.15-r1.ebuild (renamed from sys-devel/dwz/dwz-0.15.ebuild)7
-rw-r--r--sys-devel/dwz/metadata.xml10
-rw-r--r--sys-devel/gcc/Manifest2
-rw-r--r--sys-devel/gcc/gcc-13.0.1_pre20230319.ebuild54
-rw-r--r--sys-devel/gdb/Manifest3
-rw-r--r--sys-devel/gdb/files/gdb-13.1-Wenum-constexpr-conversion-clang16.patch128
-rw-r--r--sys-devel/gdb/gdb-13.1-r1.ebuild1
9 files changed, 197 insertions, 12 deletions
diff --git a/sys-devel/Manifest.gz b/sys-devel/Manifest.gz
index a50fb4605001..6c26e56a6c28 100644
--- a/sys-devel/Manifest.gz
+++ b/sys-devel/Manifest.gz
Binary files differ
diff --git a/sys-devel/dwz/Manifest b/sys-devel/dwz/Manifest
index f2cfd28d0856..0272255a2f27 100644
--- a/sys-devel/dwz/Manifest
+++ b/sys-devel/dwz/Manifest
@@ -1,5 +1,5 @@
DIST dwz-0.14.tar.xz 147428 BLAKE2B 286350a8276a1a674937a7adc99560562782044fd6caa50c9a55ec08343f34d8bd27140cca904e648859aba61d181e01ab0755f2115151fab16d498aa1549450 SHA512 62c39f79723ca99305dbb08d1d24a17699b9a84dd98c30904103da116831b1253bf1edbfb905c76fdc4d48305bd1ea0046314c5619209c40a1e624b8ae4908b1
DIST dwz-0.15.tar.xz 150080 BLAKE2B 4ce1722a53cb588cda8195211a26b28d69891ed32cc59e44897270298d033590c79c8c73168dc3b261cb017fc12874a9cbd50db3bfaa0aa7de8ed7cf8a588cca SHA512 43eb4b08c1f529859dc3466697d5ad7e172d6efbf21409530a67a2492ae4acc3734d5134bbd6e07c089ecc358d915871b13e22f6e4f1dd4c3af19ef804f8fcc5
EBUILD dwz-0.14.ebuild 621 BLAKE2B 892ea38de8e0eb1abc0cbc5c22b584bd3bab2dfef69a73835645e91e5519bfc2b978f312d7b45afd91eb0fe7411aac71e0211e2b437620ec9f72bbf0bba59736 SHA512 2195fe11600128e2adf53d97b50edcccfbb89d505660ea243dfb12ece0bf3daeac03c0f1b756a47968faf340bb6f35cd34ca13a425543f213cf9c6922e41878f
-EBUILD dwz-0.15.ebuild 769 BLAKE2B 8527b66d8e0a81fe96965e5cc3aa6a3be6d7b9f1747161b5dc175dd8e8c6031e9febde61411a8e5843957a1c57d638df8fb52c350322a65ac2623582c77e6b34 SHA512 5c4660c9779ec1ce658d68ef7098183944d4dce2dff0f03782b270bbafba484b194a43a291acd6d094a7479411e6bbffafaa4656bc87eede0ebfa3705f25032f
-MISC metadata.xml 949 BLAKE2B 4e97ec169e83733a6510fa7d7ad82d307791f56734ae6236d6b21ec457d27e9b8c507129101823c333baf62185314d46fe6cca808fb6d4fb31b21ac97ee22aaa SHA512 26ee92dcaf3c78d4e2116b79451e62240454a0ddb6308966afa2661b61dbc9f28323633551ae4548aacdbf0dae9e02322099f5ee601e59579c8f0d45de3adda2
+EBUILD dwz-0.15-r1.ebuild 804 BLAKE2B 1c8cd35e898da3af7759f83be05341d0b930e19a1e8992207f43e4930b6bb7f872d365a81789aaba2191b660e2b96820638ffef4009c9872432526411638912d SHA512 5e234b11086c1aa827f24211e966a4f3fafc08fde3867f62674fae87f53abe33a128ffd1e83fc583eea5907b70221acab7a755e2fc6031bbd3ebab9b80de41cf
+MISC metadata.xml 812 BLAKE2B abd6e645ab8cf502bfb6b90cd5712ff43d22a4e17ed7a2025bfbb16407a907b6b482497ce060ffb55b250a441fcbc495a37cb540b9d1152ed42dbdbbb4b074ca SHA512 7dea9a490d130dc0a03291b01000f38b880be517c13d762a6b6ac82e7313375c0dc5c0506ead51dd6789e72ffc612ade73e734456bfa8696777ede3f90dd6394
diff --git a/sys-devel/dwz/dwz-0.15.ebuild b/sys-devel/dwz/dwz-0.15-r1.ebuild
index f0f823edc849..a34aab7c8b3f 100644
--- a/sys-devel/dwz/dwz-0.15.ebuild
+++ b/sys-devel/dwz/dwz-0.15-r1.ebuild
@@ -17,7 +17,10 @@ KEYWORDS="~amd64"
IUSE="test"
RESTRICT="!test? ( test )"
-RDEPEND="dev-libs/elfutils"
+RDEPEND="
+ dev-libs/elfutils
+ dev-libs/xxhash
+"
DEPEND="${RDEPEND}"
BDEPEND="test? (
dev-libs/elfutils[utils]
@@ -39,5 +42,5 @@ src_test() {
}
src_install() {
- emake CFLAGS="${CFLAGS}" srcdir="${S}" install
+ emake DESTDIR="${D}" CFLAGS="${CFLAGS}" srcdir="${S}" install
}
diff --git a/sys-devel/dwz/metadata.xml b/sys-devel/dwz/metadata.xml
index 319c2d8312f8..c87f24a66212 100644
--- a/sys-devel/dwz/metadata.xml
+++ b/sys-devel/dwz/metadata.xml
@@ -1,13 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person" proxied="yes">
- <email>annulen@yandex.ru</email>
- <name>Konstantin Tokarev</name>
- </maintainer>
- <maintainer type="project" proxied="proxy">
- <email>proxy-maint@gentoo.org</email>
- <name>Proxy Maintainers</name>
+ <maintainer type="project">
+ <email>toolchain@gentoo.org</email>
+ <name>Gentoo Toolchain Project</name>
</maintainer>
<longdescription>
The dwz package contains a program that attempts to optimize DWARF
diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest
index 5716d5bb73bc..b1a9440c0613 100644
--- a/sys-devel/gcc/Manifest
+++ b/sys-devel/gcc/Manifest
@@ -32,6 +32,7 @@ DIST gcc-12.2.0.tar.xz 84645292 BLAKE2B 715574af9ad678f9dc8cfd19c866bf910c7edfd4
DIST gcc-13-20230226.tar.xz 84264388 BLAKE2B fea763a1627bff19eb0f7869b83c00337dc2a203178d17143c98c2c1d3fd385d2f853f195ff79ecc1cae659a1f8704c88e7fd77456eed4510bdcba7631e49353 SHA512 38de82dd54e1b57490f5492a4adcd05b9da3ace2235654dff19bade8d378e75be1495f3b2b4e7f7e57ea144351c4ade1e9a5b141546259024f0359f43b2025ac
DIST gcc-13-20230305.tar.xz 84314220 BLAKE2B cf4971cddea6981e3dfb62dd7d69b85b85df0a137e0596f71530966186f2919e800e60b6712b1d676b4250e835db8601af5376a77dad82fff7b1d9faae012da8 SHA512 39320f90bcdc2d8f5cefa2c8ac551d7a6f0d20744cdff5ed8956321d6b0813bbc44d18266bf7bb7ebbe642078a6d9677216e6db939dd56186959e5454d7d3a85
DIST gcc-13-20230312.tar.xz 84361832 BLAKE2B 4099036d7224cbdb9cfd8fb454201a80f76ea9569d8625d4cedc14ed30caf0a4b88a60b5f9fff12001a19a928909489609da3634c109e457f9b6dedcd20a947d SHA512 7513ebdbe9e6116658c4bafdc71f122cae3cf7233b91402bc1d05fe1fec0ff036ed613b1db3af2b235fc153c862f428cd297da6ba0e6e81e1e7962fa0550e01e
+DIST gcc-13-20230319.tar.xz 83729684 BLAKE2B b57681574691f7909017ea1b8a5d101e09c22632d9f2aef166eaafc55cd7b2f8bca065b16a7b902130da55edf5f16994608601dfb2dacd7661a477afc4482a32 SHA512 461a70570ae3944f317b778feb67cfc3bd29945c0a825b558abd9311cb5297b390725896b81a494c3c592c231d77a7147338cb4962a1feba304f13e6e19b4538
DIST gcc-13.1.0-musl-patches-1.tar.xz 3528 BLAKE2B c572ab4a0fb929b16ec36b3a3616cdcccd62f7ee27ded8077008b9beb50539db64cc251ff8a3eade54e8ebfe1012f8f32d0802379bf8ffb0f1b8ce7c8457da37 SHA512 ffb7dfa54a9d23b5333664e915efd9f18a43cd696f4ff5669a8b072a0e9cf4978de53e315123542441a2533e4f269de0bb7d90ee7a37d3a7517b7cda6ea06681
DIST gcc-13.1.0-patches-8.tar.xz 11644 BLAKE2B aaa135a7d22badc22eeba42fe92c2de40e1a779836f42b5ba15884ad3d756020421b99e29b9a27f40368013fb9d8348e3ca1ef3541a6de55129d66f4645caf8f SHA512 a71ef0f215451c840a99d7100489e8364e4e7a71d83e9be42e35fb06d4276afadb64834801ef3469a4edb78eede5a03c18104215fef3039f98da3b3d0c8e69af
DIST gcc-13.1.0-patches-9.tar.xz 11720 BLAKE2B c26a2924fa8aab318a1f4a4974ca4aeba255f3605fa0cbf448a4e48b6f3e9359012aeae15726299059257b93043c5cdd86bf1b2f2fffd4b9a096ab411a0503ba SHA512 98e48abaa664ea18bf00ba7bdb29cc1e908cc55ba9d12d52061e86fc917753ade8e38a190c04d23c63102808ac5a9e8ecf085dcc29a1568a329ceb5d43cf0290
@@ -61,6 +62,7 @@ EBUILD gcc-13.0.1.9999.ebuild 1252 BLAKE2B e8feaecedb676e0ddce69ec0e7fc5e944d8df
EBUILD gcc-13.0.1_pre20230226.ebuild 1299 BLAKE2B 636e7cbe0eb844ad4cd92b20a4e1e7747d4dc05e90aa043a410077c99593cb92cb8d0c6d226cfb3819223954d1ea9344fb50e385142daa790c26ead4de4c1628 SHA512 d1cbd97fe9362c44aa81679a4267bde19030dcea0e0303063c998f8b6e7d7ff4eec3538313dbcb4c4636ce5a577f563f7a2c67141caa02b89d07b17dbce0324a
EBUILD gcc-13.0.1_pre20230305.ebuild 1299 BLAKE2B 636e7cbe0eb844ad4cd92b20a4e1e7747d4dc05e90aa043a410077c99593cb92cb8d0c6d226cfb3819223954d1ea9344fb50e385142daa790c26ead4de4c1628 SHA512 d1cbd97fe9362c44aa81679a4267bde19030dcea0e0303063c998f8b6e7d7ff4eec3538313dbcb4c4636ce5a577f563f7a2c67141caa02b89d07b17dbce0324a
EBUILD gcc-13.0.1_pre20230312-r1.ebuild 1299 BLAKE2B 4211ad6c7af79a5be1b6d465f28c5a68538f5c0b4b5bc635c6d8d02d793110f56aa86389c271e297e27ba9ed952fccb78df2ecdf6d675c46774f9e41e4551d2c SHA512 b9c3e60ccf632992a2f850b74663b40ca2280aa2017e25924c00881338656edb288d4ab92d98bb0e33e45dcbb50ef3d65db61d27c4b1dfa79ad7d5b73c452065
+EBUILD gcc-13.0.1_pre20230319.ebuild 1299 BLAKE2B 4211ad6c7af79a5be1b6d465f28c5a68538f5c0b4b5bc635c6d8d02d793110f56aa86389c271e297e27ba9ed952fccb78df2ecdf6d675c46774f9e41e4551d2c SHA512 b9c3e60ccf632992a2f850b74663b40ca2280aa2017e25924c00881338656edb288d4ab92d98bb0e33e45dcbb50ef3d65db61d27c4b1dfa79ad7d5b73c452065
EBUILD gcc-8.5.0-r1.ebuild 498 BLAKE2B e24f62fdb50bf2e9957cbb85c72adc96d369938a7f552735772de964f7023b8b34bd11e7e544d268cc308e25272084a728bd061f37c568d42ea65d55bb2a2e93 SHA512 f35b353e9f54eb3e1c6f8e0ea262458b41da9bddb993793aff79f765c4d93811744979d34e50c6470a9b2cfb63b7006bd284d819b7a98e56a8b3a34ae570ae76
EBUILD gcc-9.5.0.ebuild 844 BLAKE2B 719c259a6f39c72f7d1748095a9e649d4ab3dde04b118125313ab9b915eb9cbd038592532185317080dbc46d73a8bd324b498462db73b12d23144cd58378dd9c SHA512 1ed19c79239d155be3b267fcad4d7230821406ba8fb2c11857168fc0e717c4edcd8d7fb0972bc6df0fbcfbd8a9f085aa023f452368278c0e7e0af014c1124d89
MISC metadata.xml 4885 BLAKE2B 2029ff68e73fa6d97abb5d03df8efbfd03b2145ad6ced9ca7a048d48d16e5f50e12448b9d0343f8d22262dccdf4c7c4fb2554b1894a13eddc502924f9ad70220 SHA512 9c22fba4bcdb7ac3f1e8a6a36903e940f9b53c284b446e240cf3bf51590efe8af0b9219688693dad233bf8593dd306b85af9c18fb9ef253a8e3413e3b926fd9e
diff --git a/sys-devel/gcc/gcc-13.0.1_pre20230319.ebuild b/sys-devel/gcc/gcc-13.0.1_pre20230319.ebuild
new file mode 100644
index 000000000000..1f65b8ba8aab
--- /dev/null
+++ b/sys-devel/gcc/gcc-13.0.1_pre20230319.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+TOOLCHAIN_PATCH_DEV="sam"
+PATCH_VER="9"
+PATCH_GCC_VER="13.1.0"
+MUSL_VER="1"
+MUSL_GCC_VER="13.1.0"
+
+if [[ $(ver_cut 3) == 9999 ]] ; then
+ MY_PV_2=$(ver_cut 2)
+ MY_PV_3=$(($(ver_cut 3) - 9998))
+ if [[ ${MY_PV_2} == 0 ]] ; then
+ MY_PV_2=0
+ MY_PV_3=0
+ else
+ MY_PV_2=$(($(ver_cut 2) - 1))
+ fi
+
+ # e.g. 12.2.9999 -> 12.1.1
+ TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3}
+fi
+
+inherit toolchain
+# Needs to be after inherit (for now?), bug #830908
+EGIT_BRANCH=master
+
+# Don't keyword live ebuilds
+if ! tc_is_live && [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
+# KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+ KEYWORDS="~loong"
+fi
+
+# Technically only if USE=hardened *too* right now, but no point in complicating it further.
+# If GCC is enabling CET by default, we need glibc to be built with support for it.
+# bug #830454
+RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )"
+DEPEND="${RDEPEND}"
+BDEPEND="${CATEGORY}/binutils[cet(-)?]"
+
+src_prepare() {
+ local p upstreamed_patches=(
+ # add them here
+ )
+ for p in "${upstreamed_patches[@]}"; do
+ rm -v "${WORKDIR}/patch/${p}" || die
+ done
+
+ toolchain_src_prepare
+
+ eapply_user
+}
diff --git a/sys-devel/gdb/Manifest b/sys-devel/gdb/Manifest
index de711c43bcc7..7ca5b862f7f4 100644
--- a/sys-devel/gdb/Manifest
+++ b/sys-devel/gdb/Manifest
@@ -1,12 +1,13 @@
AUX gdb-12.1-configure-clang16.patch 2893 BLAKE2B 15079fc458db3f57a99340800afccebb03a4d3067a9f14e44b8915588dc7c4f528047601d9c53257ea1e84a4b3b2eb17de08c43cc45334176e5cb37ccda0438e SHA512 c55b9afdaea5f482ceef34263b08ecda96109fa55208b2eca744734a29b4b364d44384e4e15b3a625fed6e781abe77775ead7773f1544371893f2a80ff2016d6
AUX gdb-12.1-core-file-detach.patch 5853 BLAKE2B 4442a9d6357f751f9953236a068ffc5e8a1f57eef1bf9e118d572614164486197db44cb6e5f1ab20906ae97ca1c4805a01ce5c2c3cbd1509bb383c108b6b8b1e SHA512 e044053dec340e6373b4a3546adf36ea121bb63a5277d6a1f24f5551edb0cf408f3f862076d6760b27501d54025063afd4a9375914c3f2321f5410466a89f75b
AUX gdb-12.1-readline-8.2-build.patch 926 BLAKE2B f483dd1054b019d44dd4731ba22113551d3530a9da1af8c5e83aeae3ba820d96b8a1c2cb7758ecc3fbe8a56cdc7232cdece809d15c30dbfffadc30d81738a7ca SHA512 f865349953181fe3502abbe6042ebab249e2ebbc4c0017ebad756aadfd63e72f57b009fe2e7d036543f326e54518a656101bef572d03a7a7170c9ec305807ed8
+AUX gdb-13.1-Wenum-constexpr-conversion-clang16.patch 5795 BLAKE2B 22f8d242a13f7068ffe367d945be320e3f5e289adcfd60de24bcf53eb90a2b2334b7f3c71e3ab323064b64eb1a3b19f707fa70ab9e725d8391d05ea5d3e25035 SHA512 87c121615e6bf535c4a5988fcdc8214d8e2ddb6cd48eafd314ba963f57d9d1ac0f77b73e71e63e9cb16224d304b30baf78c7ef541b19f40b0dee796d3d640aef
AUX gdb-8.3.1-verbose-build.patch 395 BLAKE2B e2e82307ceae64d16aa9b57a5e639eb5d217c4d977aed0847fdf125bb13ebc004906d9afb8e3f629c41efccca88df0040015e7799c1fd24de5fb50f62f5bbd90 SHA512 c2bb013e4fcabefddcd8042bd3cbb53471f83182cc8769fe0d19eed80ccc4a83bd84d120006fa25b3b7d0310dc2f2ec6b44a6ff74909cd312b7e491f371777a3
DIST gdb-12.1-patches-1.tar.xz 12340 BLAKE2B 071ff492f6cf7b0969d76db6f7414eeec564daf773c3334fb0d3f669e328bb4ae403ba8c709f3e33a56caa92273f762a5597a34dd7e7a1056f473b7ede2d8e59 SHA512 dc4a1a8d501dd1adfdcd6dcbd2559f1e2cc6aadeb18eacb2e9152f6858510e7392253db9568fe782da6d160221412e3e13dfd42a47a2a4a1addba2c1804a45b5
DIST gdb-12.1.tar.xz 22470332 BLAKE2B 7f6f853d1640908cf2c79932cdc1ba02549a07721c005d9c7ce2946a715761719cc164a4e68235a18664ec8a029afe3a2a0cfb57e1635f280076d6bed91317fd SHA512 425568d2e84672177d0fb87b1ad7daafdde097648d605e30cf0656970f66adc6a82ca2d83375ea4be583e9683a340e5bfdf5819668ddf66728200141ae50ff2d
DIST gdb-13.1.tar.xz 23665472 BLAKE2B ab3a77ef35d21597dd1299787eebc422c3ca9764d0866223752c3036c0f9e198bf25ab4730bf6e7025bc2db148c66e98b191e15abc2d69c3088aed146728beef SHA512 e65054ffbc0357eeed4b17e1edc5ef45aa73c9ddf3b1210651e3d859576e27c1d27b266800fe26328eda58857455ccd8632f4000cfc5f63f90854096290187ca
EBUILD gdb-12.1-r3.ebuild 8100 BLAKE2B 48a993f5a5319bb9326a1f045b4b4ca2706011f77a4c1ef96c135bff3aacf3a7b2e20862645f443f7558c405ea1864e2d8251407a5e208fce6817e0079c6cc50 SHA512 9519decae94744ffa27371879b222f21be38036b8b5642be4a37fc5d2930e2f92ede7373b0e56f66208d57a6d36b94762e9395cd42e89c55bfedc90f05bf0e98
EBUILD gdb-12.1-r4.ebuild 8352 BLAKE2B b70813155233f843c45cc853b4b1d5d14d9abc861fd9d244c67b14fe6e708cbc452fdc0064f8e0183c247c0c62ffb9e1390f843ad0b7344c75a177570a8fb4b5 SHA512 1d407f528c52b3b7930df48658d9c956fd7ff1416cb9e8ca01325febf689b69fbcffaa60fb55245a3e98de46c55a5390a5d63d3748be8da0b39a83a5519a42f6
-EBUILD gdb-13.1-r1.ebuild 8519 BLAKE2B f5ef2bff55dbee67a71100bb1e8bab0bb74698bbec93a5f12e65ed99ab4b6942e3b0ebef8488d35d8c410bea8cd083013ce0e9045590b37dafe0d9a5665d42f0 SHA512 bc9f0b32eb91be3983f896a2bc6266cf3168d4b47b1c492f80abca4b5fa44c13363f49e85e8f420ee41977e8c16f0d5aea238bd1553c540df5e2325ad6ba4bee
+EBUILD gdb-13.1-r1.ebuild 8580 BLAKE2B d0f7ca6e6015b066b1b87d2c6b12fdf30d7775f925285659220fdfc39e0f236cc9a194300a886c800e2d5a028043d8e67fb1f446961b28e733e7e0430cee4747 SHA512 e7725dd0bfbffb46b14503d93a94c663b4b1c2f0590d80d0cdf2752bdd93c71c046f00e3d47d1393b9cf3c88b867c824fadeceb540081ddc251b9dbaef47050f
EBUILD gdb-9999.ebuild 8519 BLAKE2B f5ef2bff55dbee67a71100bb1e8bab0bb74698bbec93a5f12e65ed99ab4b6942e3b0ebef8488d35d8c410bea8cd083013ce0e9045590b37dafe0d9a5665d42f0 SHA512 bc9f0b32eb91be3983f896a2bc6266cf3168d4b47b1c492f80abca4b5fa44c13363f49e85e8f420ee41977e8c16f0d5aea238bd1553c540df5e2325ad6ba4bee
MISC metadata.xml 1242 BLAKE2B 368d8798d7d3b610653f635eb36ee5517912e8a2cb392622b32ac0aa90f336e3b391ba25811dee110644e50fabec0d64f6bcf3b219cdd240ec806e709a198eed SHA512 192fa340899680413c3d6c886ecd7d2262475a33aecc452192e5fe1d8e3eb5cf17546e57181e720128cf9b39cd8e4b1b1a73cb1f0c9887866c0ce88b288636e2
diff --git a/sys-devel/gdb/files/gdb-13.1-Wenum-constexpr-conversion-clang16.patch b/sys-devel/gdb/files/gdb-13.1-Wenum-constexpr-conversion-clang16.patch
new file mode 100644
index 000000000000..adc09f83ea68
--- /dev/null
+++ b/sys-devel/gdb/files/gdb-13.1-Wenum-constexpr-conversion-clang16.patch
@@ -0,0 +1,128 @@
+https://bugs.gentoo.org/894174
+https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=ae61525fcf456ab395d55c45492a106d1275873a
+
+From ae61525fcf456ab395d55c45492a106d1275873a Mon Sep 17 00:00:00 2001
+From: Simon Marchi <simon.marchi@efficios.com>
+Date: Thu, 23 Feb 2023 12:35:40 -0500
+Subject: [PATCH] gdbsupport: ignore -Wenum-constexpr-conversion in
+ enum-flags.h
+
+When building with clang 16, we get:
+
+ CXX gdb.o
+ In file included from /home/smarchi/src/binutils-gdb/gdb/gdb.c:19:
+ In file included from /home/smarchi/src/binutils-gdb/gdb/defs.h:65:
+ /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/enum-flags.h:95:52: error: integer value -1 is outside the valid range of values [0, 15] for this enumeration type [-Wenum-constexpr-conversion]
+ integer_for_size<sizeof (T), static_cast<bool>(T (-1) < T (0))>::type
+ ^
+
+The error message does not make it clear in the context of which enum
+flag this fails (i.e. what is T in this context), but it doesn't really
+matter, we have similar warning/errors for many of them, if we let the
+build go through.
+
+clang is right that the value -1 is invalid for the enum type we cast -1
+to. However, we do need this expression in order to select an integer
+type with the appropriate signedness. That is, with the same signedness
+as the underlying type of the enum.
+
+I first wondered if that was really needed, if we couldn't use
+std::underlying_type for that. It turns out that the comment just above
+says:
+
+ /* Note that std::underlying_type<enum_type> is not what we want here,
+ since that returns unsigned int even when the enum decays to signed
+ int. */
+
+I was surprised, because std::is_signed<std::underlying_type<enum_type>>
+returns the right thing. So I tried replacing all this with
+std::underlying_type, see if that would work. Doing so causes some
+build failures in unittests/enum-flags-selftests.c:
+
+ CXX unittests/enum-flags-selftests.o
+ /home/smarchi/src/binutils-gdb/gdb/unittests/enum-flags-selftests.c:254:1: error: static assertion failed due to requirement 'gdb::is_same<selftests::enum_flags_tests::check_valid_expr254::archetype<enum_flags<s
+ elftests::enum_flags_tests::RE>, selftests::enum_flags_tests::RE, enum_flags<selftests::enum_flags_tests::RE2>, selftests::enum_flags_tests::RE2, enum_flags<selftests::enum_flags_tests::URE>, selftests::enum_fla
+ gs_tests::URE, int>, selftests::enum_flags_tests::check_valid_expr254::archetype<enum_flags<selftests::enum_flags_tests::RE>, selftests::enum_flags_tests::RE, enum_flags<selftests::enum_flags_tests::RE2>, selfte
+ sts::enum_flags_tests::RE2, enum_flags<selftests::enum_flags_tests::URE>, selftests::enum_flags_tests::URE, unsigned int>>::value == true':
+ CHECK_VALID (true, int, true ? EF () : EF2 ())
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ /home/smarchi/src/binutils-gdb/gdb/unittests/enum-flags-selftests.c:91:3: note: expanded from macro 'CHECK_VALID'
+ CHECK_VALID_EXPR_6 (EF, RE, EF2, RE2, UEF, URE, VALID, EXPR_TYPE, EXPR)
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/valid-expr.h:105:3: note: expanded from macro 'CHECK_VALID_EXPR_6'
+ CHECK_VALID_EXPR_INT (ESC_PARENS (typename T1, typename T2, \
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/valid-expr.h:66:3: note: expanded from macro 'CHECK_VALID_EXPR_INT'
+ static_assert (gdb::is_detected_exact<archetype<TYPES, EXPR_TYPE>, \
+ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+This is a bit hard to decode, but basically enumerations have the
+following funny property that they decay into a signed int, even if
+their implicit underlying type is unsigned. This code:
+
+ enum A {};
+ enum B {};
+
+ int main() {
+ std::cout << std::is_signed<std::underlying_type<A>::type>::value
+ << std::endl;
+ std::cout << std::is_signed<std::underlying_type<B>::type>::value
+ << std::endl;
+ auto result = true ? A() : B();
+ std::cout << std::is_signed<decltype(result)>::value << std::endl;
+ }
+
+produces:
+
+ 0
+ 0
+ 1
+
+So, the "CHECK_VALID" above checks that this property works for enum flags the
+same way as it would if you were using their underlying enum types. And
+somehow, changing integer_for_size to use std::underlying_type breaks that.
+
+Since the current code does what we want, and I don't see any way of doing it
+differently, ignore -Wenum-constexpr-conversion around it.
+
+Change-Id: Ibc82ae7bbdb812102ae3f1dd099fc859dc6f3cc2
+--- a/gdbsupport/enum-flags.h
++++ b/gdbsupport/enum-flags.h
+@@ -91,9 +91,12 @@ template<> struct integer_for_size<8, 1> { typedef int64_t type; };
+ template<typename T>
+ struct enum_underlying_type
+ {
++ DIAGNOSTIC_PUSH
++ DIAGNOSTIC_IGNORE_ENUM_CONSTEXPR_CONVERSION
+ typedef typename
+ integer_for_size<sizeof (T), static_cast<bool>(T (-1) < T (0))>::type
+ type;
++ DIAGNOSTIC_POP
+ };
+
+ namespace enum_flags_detail
+--- a/include/diagnostics.h
++++ b/include/diagnostics.h
+@@ -76,6 +76,11 @@
+ # define DIAGNOSTIC_ERROR_SWITCH \
+ DIAGNOSTIC_ERROR ("-Wswitch")
+
++# if __has_warning ("-Wenum-constexpr-conversion")
++# define DIAGNOSTIC_IGNORE_ENUM_CONSTEXPR_CONVERSION \
++ DIAGNOSTIC_IGNORE ("-Wenum-constexpr-conversion")
++# endif
++
+ #elif defined (__GNUC__) /* GCC */
+
+ # define DIAGNOSTIC_IGNORE_DEPRECATED_DECLARATIONS \
+@@ -155,4 +160,8 @@
+ # define DIAGNOSTIC_ERROR_SWITCH
+ #endif
+
++#ifndef DIAGNOSTIC_IGNORE_ENUM_CONSTEXPR_CONVERSION
++# define DIAGNOSTIC_IGNORE_ENUM_CONSTEXPR_CONVERSION
++#endif
++
+ #endif /* DIAGNOSTICS_H */
+--
+2.31.1
diff --git a/sys-devel/gdb/gdb-13.1-r1.ebuild b/sys-devel/gdb/gdb-13.1-r1.ebuild
index bc86849c6276..60adac18680f 100644
--- a/sys-devel/gdb/gdb-13.1-r1.ebuild
+++ b/sys-devel/gdb/gdb-13.1-r1.ebuild
@@ -101,6 +101,7 @@ BDEPEND="
PATCHES=(
"${FILESDIR}"/${PN}-8.3.1-verbose-build.patch
+ "${FILESDIR}"/${P}-Wenum-constexpr-conversion-clang16.patch
)
pkg_setup() {