Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 937693 - media-libs/vulkan-layers-1.3.290.0 - [icu-75.1] [gcc-15] /.../robin_hood.h: error: class robin_hood::detail::Table<true, 80, unsigned int, OperandInfo, robin_hood::hash<u
Summary: media-libs/vulkan-layers-1.3.290.0 - [icu-75.1] [gcc-15] /.../robin_hood.h: e...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Gentoo X packagers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-08-10 07:51 UTC by Toralf Förster
Modified: 2024-08-16 03:18 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge-info.txt (emerge-info.txt,17.70 KB, text/plain)
2024-08-10 07:51 UTC, Toralf Förster
Details
emerge-history.txt (emerge-history.txt,55.19 KB, text/plain)
2024-08-10 07:51 UTC, Toralf Förster
Details
environment (environment,147.59 KB, text/plain)
2024-08-10 07:51 UTC, Toralf Förster
Details
etc.clang.tar.xz (etc.clang.tar.xz,1016 bytes, application/x-xz)
2024-08-10 07:51 UTC, Toralf Förster
Details
etc.portage.tar.xz (etc.portage.tar.xz,33.03 KB, application/x-xz)
2024-08-10 07:51 UTC, Toralf Förster
Details
media-libs:vulkan-layers-1.3.290.0:20240809-232248.log (media-libs:vulkan-layers-1.3.290.0:20240809-232248.log,111.80 KB, text/plain)
2024-08-10 07:51 UTC, Toralf Förster
Details
qlist-info.txt (qlist-info.txt,121.44 KB, text/plain)
2024-08-10 07:51 UTC, Toralf Förster
Details
temp.tar.xz (temp.tar.xz,40.34 KB, application/x-xz)
2024-08-10 07:51 UTC, Toralf Förster
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Toralf Förster gentoo-dev 2024-08-10 07:51:49 UTC
/usr/include/robin_hood.h:1705:9:   required from robin_hood::detail::Table<IsFlat, MaxLoadFactor100, Key, T, Hash, KeyEqual>::~Table() [with bool IsFlat = true; long unsigned int MaxLoadFactor100 = 80; Key = unsigned int; T = OperandInfo; Hash = robin_hood::hash<unsigned int>; KeyEqual = std::equal_to<unsigned int>]
 1705 |         destroy();
      |         ^~~~~~~
/var/tmp/portage/media-libs/vulkan-layers-1.3.290.0/work/Vulkan-ValidationLayers-vulkan-sdk-1.3.290.0/layers/vulkan/generated/spirv_grammar_helper.cpp:2285:5:   required from here
 2285 |     };  // clang-format on
      |     ^
/usr/include/robin_hood.h:1209:28: error: class robin_hood::detail::Table<true, 80, unsigned int, OperandInfo, robin_hood::hash<unsigned int>, std::equal_to<unsigned int> > has no member named mInfo
 1209 |                 if (0 != m.mInfo[idx]) {
      |                          ~~^~~~~

  -------------------------------------------------------------------

  This is an unstable amd64 chroot image at a tinderbox (==build bot)
  name: 23.0_no_multilib_systemd-20240808-163800

  UNMASKED:
    Please re-assign to toolchain@ if you get a test failure in C, C++, or Fortran code which makes no sense.
  <sys-devel/gcc-15.0.9999:15
    Requested by sam
  ~dev-libs/icu-75.1
  ~dev-libs/icu-layoutex-75.1

  The attached etc.portage.tar.xz has all details.
  -------------------------------------------------------------------

gcc-config -l:
 [1] x86_64-pc-linux-gnu-15 *
clang/llvm (if any):
clang version 18.1.8
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm/18/bin
Configuration file: /etc/clang/x86_64-pc-linux-gnu-clang.cfg
/usr/lib/llvm/18
18.1.8
Python 3.12.5
Available Ruby profiles:
  [1]   ruby31 (with Rubygems)
  [2]   ruby32 (with Rubygems)
  [3]   ruby33 (with Rubygems) *
Available Rust versions:
  [1]   rust-bin-1.79.0 *
The following VMs are available for generation-2:
*)	Eclipse Temurin JDK 21.0.4_p7 [openjdk-bin-21]
Available Java Virtual Machines:
  [1]   openjdk-bin-21  system-vm

The Glorious Glasgow Haskell Compilation System, version 9.2.8
php cli (if any):
go version go1.22.6 linux/amd64

  HEAD of ::gentoo
commit 328dbaf2468bcd93ba67e0693cc1c692019f41b3
Author: Repository mirror & CI <repomirrorci@gentoo.org>
Date:   Fri Aug 9 23:03:57 2024 +0000

    2024-08-09 23:03:56 UTC

emerge -qpvO =media-libs/vulkan-layers-1.3.290.0
[ebuild  N    ] media-libs/vulkan-layers-1.3.290.0  USE="X -wayland"
Comment 1 Toralf Förster gentoo-dev 2024-08-10 07:51:50 UTC
Created attachment 899733 [details]
emerge-info.txt
Comment 2 Toralf Förster gentoo-dev 2024-08-10 07:51:51 UTC
Created attachment 899734 [details]
emerge-history.txt
Comment 3 Toralf Förster gentoo-dev 2024-08-10 07:51:53 UTC
Created attachment 899735 [details]
environment
Comment 4 Toralf Förster gentoo-dev 2024-08-10 07:51:53 UTC
Created attachment 899736 [details]
etc.clang.tar.xz
Comment 5 Toralf Förster gentoo-dev 2024-08-10 07:51:54 UTC
Created attachment 899737 [details]
etc.portage.tar.xz
Comment 6 Toralf Förster gentoo-dev 2024-08-10 07:51:56 UTC
Created attachment 899738 [details]
media-libs:vulkan-layers-1.3.290.0:20240809-232248.log
Comment 7 Toralf Förster gentoo-dev 2024-08-10 07:51:57 UTC
Created attachment 899739 [details]
qlist-info.txt
Comment 8 Toralf Förster gentoo-dev 2024-08-10 07:51:58 UTC
Created attachment 899740 [details]
temp.tar.xz
Comment 9 Nick Sarnie gentoo-dev 2024-08-16 00:45:21 UTC
I can reproduce this with sys-devel/gcc-15.0.0_pre20240804 (unkeyworded) but not with the latest unstable keyworded version sys-devel/gcc-14.2.0. 

Seems like gcc issue, unclear if compiler bug or existing issue in the code exposed by a compiler change.

Reassigning to toolchain.
Comment 10 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-08-16 01:06:55 UTC
The bit I've been pasting for these is:
"""
GCC 15 now diagnoses failed lookups in non-instantiated templates
since r15-2117-g313afcfdabeab3 [0]. This exposes broken latent code.

[0] https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=r15-2117-g313afcfdabeab3.
"""

Clang 19 makes the same change.

Now, here, I think we're in some bad luck, as it looks like the broken template is in /usr/include/robin_hood.h which is archived upstream? :(
Comment 11 Nick Sarnie gentoo-dev 2024-08-16 01:08:46 UTC
We could just add a gentoo-only patch to fix it right?
Comment 12 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-08-16 01:14:53 UTC
Yeah, that should be fine.
Comment 13 Nick Sarnie gentoo-dev 2024-08-16 01:15:36 UTC
Is that something the toolchain team can handle or should I try to figure it out? Thanks
Comment 14 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-08-16 01:33:37 UTC
Can you take a look, then punt it to us if you get stuck?

It should be straightforward (maybe look at the other fixes on the tracker if stuck) but at worst, if nothing else uses robin-hood, we can even remove the template if necessary because this only shows up in templates which weren't instantiated.
Comment 15 Nick Sarnie gentoo-dev 2024-08-16 01:34:05 UTC
Will do
Comment 16 Nick Sarnie gentoo-dev 2024-08-16 01:56:03 UTC
Oh wow it's literally just a cstdint include, I thought it was the dependent type lookup change. This is luckily trivial. I should have read the error more closely before reassigning, my bad.
Comment 17 Larry the Git Cow gentoo-dev 2024-08-16 02:08:29 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8f532e79627b5ded47979f9d9707d49ab306fab0

commit 8f532e79627b5ded47979f9d9707d49ab306fab0
Author:     Nick Sarnie <sarnex@gentoo.org>
AuthorDate: 2024-08-16 02:05:59 +0000
Commit:     Nick Sarnie <sarnex@gentoo.org>
CommitDate: 2024-08-16 02:08:04 +0000

    dev-cpp/robin-hood-hashing: Fix build with gcc-15
    
    Closes: https://bugs.gentoo.org/937693
    
    Signed-off-by: Nick Sarnie <sarnex@gentoo.org>

 .../files/robin-hood-hashing-include-cstdint.patch | 12 +++++++++++
 .../robin-hood-hashing-3.11.5-r2.ebuild            | 25 ++++++++++++++++++++++
 2 files changed, 37 insertions(+)
Comment 18 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-08-16 02:20:30 UTC
Haha, I just assumed it must be the template stuff from the snippet, oops :D

(We've had loads which look _exactly_ like this, where it's like "minfo" instead of "m_info" or similar)
Comment 19 Nick Sarnie gentoo-dev 2024-08-16 02:23:36 UTC
At least it was easy! Thanks for the help!