#1143508 Baseline violation on amd64: godot requires SSE4.1 (pinsrq), causing SIGILL

Package:
godot
Source:
godot
Description:
Full 2D and 3D game engine with editor
Submitter:
Jakob Haufe
Date:
2026-08-07 06:07:02 UTC
Severity:
normal
#1143508#5
Date:
2026-08-03 08:03:21 UTC
From:
To:
Simply calling godot crashes on an AMD Athlon II X4 605e:

$ godot
Illegal instruction        (core dumped) godot

GDB:

(gdb) bt
#0  0x0000555d2242a988 in std::_Rb_tree_header::_M_reset (this=<optimized out>) at /usr/include/c++/15/bits/stl_tree.h:206
#1  std::_Rb_tree_header::_Rb_tree_header (this=0x555d2a53a908 <doctest::detail::getRegisteredTests()::data+8>) at /usr/include/c++/15/bits/stl_tree.h:174
#2  std::_Rb_tree<doctest::detail::TestCase, doctest::detail::TestCase, std::_Identity<doctest::detail::TestCase>, std::less<doctest::detail::TestCase>, std::allocator<doctest::detail::TestCase> >::_Rb_tree_impl<std::less<doctest::detail::TestCase>, true>::_Rb_tree_impl (
    this=0x555d2a53a900 <doctest::detail::getRegisteredTests()::data>) at /usr/include/c++/15/bits/stl_tree.h:1314
#3  std::_Rb_tree<doctest::detail::TestCase, doctest::detail::TestCase, std::_Identity<doctest::detail::TestCase>, std::less<doctest::detail::TestCase>, std::allocator<doctest::detail::TestCase> >::_Rb_tree (this=0x555d2a53a900 <doctest::detail::getRegisteredTests()::data>)
    at /usr/include/c++/15/bits/stl_tree.h:1553
#4  std::set<doctest::detail::TestCase, std::less<doctest::detail::TestCase>, std::allocator<doctest::detail::TestCase> >::set (this=0x555d2a53a900 <doctest::detail::getRegisteredTests()::data>) at /usr/include/c++/15/bits/stl_set.h:172
#5  doctest::detail::getRegisteredTests () at ./thirdparty/doctest/doctest.h:4387
#6  doctest::detail::getRegisteredTests () at ./thirdparty/doctest/doctest.h:4386
#7  0x0000555d2242a9fa in doctest::detail::regTest (tc=...) at ./thirdparty/doctest/doctest.h:4533
#8  0x0000555d219b7493 in __static_initialization_and_destruction_0 () at ./tests/core/config/test_project_settings.h:47
#9  0x00007fa988a3409f in call_init (argc=2, argv=0x7ffd2de9dbe8, env=<optimized out>) at ../csu/libc-start.c:145
#10 __libc_start_main_impl (main=0x555d219b5350 <main(int, char**)>, argc=2, argv=0x7ffd2de9dbe8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd2de9dbd8) at ../csu/libc-start.c:347
#11 0x0000555d21a4e1f1 in _start ()

(gdb) disassemble
Dump of assembler code for function _ZN7doctest6detail18getRegisteredTestsEv:
   0x0000555d2242a930 <+0>:	endbr64
   0x0000555d2242a934 <+4>:	movzbl 0x810ffbd(%rip),%eax        # 0x555d2a53a8f8 <_ZGVZN7doctest6detail18getRegisteredTestsEvE4data>
   0x0000555d2242a93b <+11>:	test   %al,%al
   0x0000555d2242a93d <+13>:	je     0x555d2242a950 <_ZN7doctest6detail18getRegisteredTestsEv+32>
   0x0000555d2242a93f <+15>:	lea    0x810ffba(%rip),%rcx        # 0x555d2a53a900 <_ZZN7doctest6detail18getRegisteredTestsEvE4data>
   0x0000555d2242a946 <+22>:	mov    %rcx,%rax
   0x0000555d2242a949 <+25>:	ret
   0x0000555d2242a94a <+26>:	nopw   0x0(%rax,%rax,1)
   0x0000555d2242a950 <+32>:	sub    $0x18,%rsp
   0x0000555d2242a954 <+36>:	lea    0x810ff9d(%rip),%rdi        # 0x555d2a53a8f8 <_ZGVZN7doctest6detail18getRegisteredTestsEvE4data>
   0x0000555d2242a95b <+43>:	call   0x555d2199b560 <__cxa_guard_acquire@plt>
   0x0000555d2242a960 <+48>:	lea    0x810ff99(%rip),%rcx        # 0x555d2a53a900 <_ZZN7doctest6detail18getRegisteredTestsEvE4data>
   0x0000555d2242a967 <+55>:	test   %eax,%eax
   0x0000555d2242a969 <+57>:	jne    0x555d2242a978 <_ZN7doctest6detail18getRegisteredTestsEv+72>
   0x0000555d2242a96b <+59>:	mov    %rcx,%rax
   0x0000555d2242a96e <+62>:	add    $0x18,%rsp
   0x0000555d2242a972 <+66>:	ret
   0x0000555d2242a973 <+67>:	nopl   0x0(%rax,%rax,1)
   0x0000555d2242a978 <+72>:	lea    0x8(%rcx),%rax
   0x0000555d2242a97c <+76>:	pxor   %xmm0,%xmm0
   0x0000555d2242a980 <+80>:	mov    %rcx,%rsi
   0x0000555d2242a983 <+83>:	mov    %rcx,0x8(%rsp)
=> 0x0000555d2242a988 <+88>:	pinsrq $0x1,%rax,%xmm0
   0x0000555d2242a98f <+95>:	lea    0x80ef672(%rip),%rdx        # 0x555d2a51a008
   0x0000555d2242a996 <+102>:	lea    0x110b3(%rip),%rdi        # 0x555d2243ba50 <_ZNSt3setIN7doctest6detail8TestCaseESt4lessIS2_ESaIS2_EED2Ev>
   0x0000555d2242a99d <+109>:	movl   $0x0,0x810ff61(%rip)        # 0x555d2a53a908 <_ZZN7doctest6detail18getRegisteredTestsEvE4data+8>
   0x0000555d2242a9a7 <+119>:	movaps %xmm0,0x810ff62(%rip)        # 0x555d2a53a910 <_ZZN7doctest6detail18getRegisteredTestsEvE4data+16>
   0x0000555d2242a9ae <+126>:	mov    %rax,0x810ff6b(%rip)        # 0x555d2a53a920 <_ZZN7doctest6detail18getRegisteredTestsEvE4data+32>
   0x0000555d2242a9b5 <+133>:	movq   $0x0,0x810ff68(%rip)        # 0x555d2a53a928 <_ZZN7doctest6detail18getRegisteredTestsEvE4data+40>
   0x0000555d2242a9c0 <+144>:	call   0x555d2199aa60 <__cxa_atexit@plt>
   0x0000555d2242a9c5 <+149>:	lea    0x810ff2c(%rip),%rdi        # 0x555d2a53a8f8 <_ZGVZN7doctest6detail18getRegisteredTestsEvE4data>
   0x0000555d2242a9cc <+156>:	call   0x555d2199dd60 <__cxa_guard_release@plt>
   0x0000555d2242a9d1 <+161>:	mov    0x8(%rsp),%rcx
   0x0000555d2242a9d6 <+166>:	add    $0x18,%rsp
   0x0000555d2242a9da <+170>:	mov    %rcx,%rax
   0x0000555d2242a9dd <+173>:	ret
End of assembler dump.
(gdb)

#1143508#10
Date:
2026-08-03 08:15:27 UTC
From:
To:
Hi Jakob!

Thanks for reporting this issue.. Probably due to your processor from 2009
not supporting some newer amd64 instruction (pinsrq?).

This is either due to the toolchain in Debian, or something in Godot itself.

Have you had issues with any other app in Debian? That would indicate this
might be a toolchain problem.

Or did you already debug this the use of SSE4.1 (pinsrq) is from Godot
specifically, and where in that case? Can it be easily patched to use some
fallback on older cpus?

#1143508#15
Date:
2026-08-03 08:32:32 UTC
From:
To:
Hi Otto,

Yes exactly. But the CPU still meets the baseline requirements, so any
application that unconditionally requires SSE4.1 on amd64 is rc-buggy.

I suspect the latter, or at least the build system of Godot.

I found something similar in freerdp (#1095808) and numpy (#1142428).

The backtrace and disassembly is from godot 4.6.3+ds-1, as indicated.

I currently lack the time to familiarize myself with Godots packaging
and/or build system, so I can't say how easy it is to fix.

Cheers,
sur5r

[TOFU discarded]

#1143508#20
Date:
2026-08-03 09:50:09 UTC
From:
To:
Control: severity -1 serious

Indeed. Updating the bug severity to match.

Best,
Chris

#1143508#27
Date:
2026-08-03 23:50:04 UTC
From:
To:
to Godot 4 as upstream decided [0] to support only SSE4.2+ on amd64.

Cheers,
Travis

[0] http://github.com/godotengine/godot/pull/59595

#1143508#32
Date:
2026-08-07 06:05:33 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
godot, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1143508@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Travis Wrightsman <travis@wrightsman.org> (supplier of updated godot package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Wed, 05 Aug 2026 12:04:58 -0700
Source: godot
Architecture: source
Version: 4.6.3+ds-2
Distribution: unstable
Urgency: medium
Maintainer: Debian Games Team <pkg-games-devel@lists.alioth.debian.org>
Changed-By: Travis Wrightsman <travis@wrightsman.org>
Closes: 1130159 1143508
Changes:
 godot (4.6.3+ds-2) unstable; urgency=medium
 .
   * Add patch to make editor builds reproducible
   * Enforce the SSE4.2 minimum on amd64 at install time (Closes: #1143508)
   * Enable OpenXR support (Closes: #1130159)
Checksums-Sha1:
 29b808d25bfe1428c438dd5ad7f7d45ad703978c 2922 godot_4.6.3+ds-2.dsc
 eb97d961e911047b184430abfbee64af922e7426 23700 godot_4.6.3+ds-2.debian.tar.xz
 2bfd42c98186d0b4a71ab773b00d0eab59091cba 12577 godot_4.6.3+ds-2_source.buildinfo
Checksums-Sha256:
 9f89e1c5b42cf7dfdccaf18aa5dc80dbab290aca2b332ed856ac7a2bcbdae602 2922 godot_4.6.3+ds-2.dsc
 0c558f5c932429a6fa2d5b074742264706483f3dd4a8b7943116caa83f6c7928 23700 godot_4.6.3+ds-2.debian.tar.xz
 8df0fc2f404028cca2daf8cd2ec9e1d16f09014b1c9e4c948f4f149403e7b050 12577 godot_4.6.3+ds-2_source.buildinfo
Files:
 0c831bbb07b57487d42b75cbb892dde3 2922 devel optional godot_4.6.3+ds-2.dsc
 e1092a98c10b9e11993354653a2d422f 23700 devel optional godot_4.6.3+ds-2.debian.tar.xz
 1459fdf316c61cfe796aebfe48801c3c 12577 devel optional godot_4.6.3+ds-2_source.buildinfo
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEmbRSsR88dMO0U+RvvthEn87o2ogFAmp1b3EACgkQvthEn87o
2ojslQ/+KyesMT0ZLmRb1HgNPH/y5mCja9wVNtvaONLdUmttNA4bolyDDScAsTes
Hv9UvspjDQZmD+dRxq8YFJ2TZzA3LIMC+IAq1lXO0Dn1tEd4EN0reiulHpwu8J27
2Hd4uB/77c4zPZnLlfmxsg0RpMsxqNG1BfmkuOw7zZDQ+7tQES47rpELt59R/pyu
3Cz4AF9Yym7Mm+CDZqAZmg5mO6W/naL3xqrP9huNS7kBEIjIfZnowU5TE6iFY9xr
YFjutoXuN9vvD5p07HbNvuodW4mFdMAT9J6tl3E62BoIBr/aSufRipmV3/7EtAw9
Y00u452X8fZbZxUoFUI66hhgqqjazBOvnTaog/028RQrYXtGOx8q4P3IfAuT3WKW
7Hw/K/IceBlfwVNqwuTdJwqa3qCQ+7a503j/shpLJyPacy7D4txDZln+ArgSXhp/
IByFfBBxh5yS5xZFNRiVh2fQ75QgWimsuzC8KznOF/ErLkgfXjTI2H4uZXC81t5j
Fa1jSu4qajsL7VHe/3aty6VxKUTvGYcpV7x9a+3gqjWVqzPfc51zALKd5fNoiLts
6/L5wtebu2Cu7JCVb6W3qUMPHrHAl7Ik2qAfMpaaTDH3/SCQHZrXp064ZRi95sKe
bnG1jCjL4MyhRzfa4z8bTumyInAFZtECKSmbMq3HbpbBK95gaKc=
=l3mc
-----END PGP SIGNATURE-----