- Package:
- src:mit-scheme
- Source:
- src:mit-scheme
- Submitter:
- Jeremy Bícha
- Date:
- 2026-09-30 12:39:02 UTC
- Severity:
- normal
mit-scheme 12.1-6 builds ok on Ubuntu 26.10. But 12.1-7 (and 12.1-2) do not. I see that there were some significant build system changes in https://salsa.debian.org/debian/mit-scheme/-/commit/9997d4431c3051 and I haven't tried isolating those changes to determine which patch or config is responsible. I see -Werror=lto-type-mismatch in the build log excerpt. Ubuntu build with LTO enabled by default but Debian doesn't. If that's the cause, then you could reproduce by adding this to the end of your DEB_BUILD_MAINT_OPTIONS line: optimize=+lto Build log excerpt ------------------------ tterm.c:72:15: error: type of ‘tparam’ does not match original declaration [-Werror=lto-type-mismatch] 72 | extern char * tparam (const char *, void *, int, ...); | ^ terminfo.c:38:1: note: types have different parameter counts 38 | tparam (const char * string, | ^ terminfo.c:38:1: note: ‘tparam’ was previously declared here sysprim.c:37:13: error: type of ‘OS_set_trap_state’ does not match original declaration [-Werror=lto-type-mismatch] 37 | extern long OS_set_trap_state (long); | ^ uxtrap.c:143:1: note: return value type mismatch 143 | OS_set_trap_state (enum trap_state state) | ^ uxtrap.c:143:1: note: type ‘trap_state’ should match type ‘long int’ uxtrap.c:143:1: note: ‘OS_set_trap_state’ was previously declared here uxtrap.c:143:1: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used lto1: all warnings being treated as errors lto-wrapper: fatal error: x86_64-linux-gnu-gcc returned 1 exit status compilation terminated. /usr/bin/x86_64-linux-gnu-ld.bfd: error: lto-wrapper failed collect2: error: ld returned 1 exit status make[6]: *** [Makefile:621: scheme] Error 1 rm cmpauxmd.s Build log ------------ https://launchpad.net/~jbicha/+archive/ubuntu/arch/+build/33802534 https://launchpad.net/~jbicha/+archive/ubuntu/arch/+build/33802535 Thank you, Jeremy Bícha
Okay, I'll look into the LTO deal, check if it is still an issue with 12.1-12 and with the latest upstream development snapshot. But fair warning: if it's a hassle I'll just disable it, because it won't matter for performance with the native back-ends, and with the bytecode back-end you're already giving away ×20 and I doubt LTO will make a difference because the code's fast-path is already pretty well tuned. Meantime I suggest you disable LTO in Ubuntu for mit-scheme.
Yes, the issue still happens with 12.1-12. And yes, I could set this in Ubuntu or you could set it yourself to disable LTO for Ubuntu: export DEB_BUILD_MAINT_OPTIONS = hardening=+all optimize=-lto Notice that this -lto insead of +lto to force disable instead of force enable. Thank you, Jeremy Bícha