#1149534 mit-scheme: 12.1-7 fails to build on Ubuntu 26.10

#1149534#5
Date:
2026-09-30 11:52:54 UTC
From:
To:
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

#1149534#10
Date:
2026-09-30 12:25:11 UTC
From:
To:
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.

#1149534#15
Date:
2026-09-30 12:35:46 UTC
From:
To:
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