Bug#1117741: python3.14: Please include patch to fix build with GCC 15 on m68k
John Paul Adrian Glaubitz <[email protected]> Fri, 10 Oct 2025 16:32:02 +0200
| Newsgroups | gmane.linux.debian.ports.68k |
|---|---|
| Message-ID | <176010672289.1712383.5544521922450901957.reportbug__23723.6064554722$1760106819$gmane$org@login1.physik.fu-berlin.de> |
Source: python3.14 Version: 3.14.0-2 Severity: normal Tags: patch upstream User: [email protected] Usertags: m68k X-Debbugs-Cc: [email protected] Hello, the previously reported FTBFS regression with GCC 15 turned out to be a bug in the m68k-specific assembler code in the Python interpretor, see [1]. The attached patch fixes the problem. I will send the patch upstream. Adrian > [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122211 -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer `. `' Physicist `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
m68k-asm-fix.patch
(text/plain, 2.3 KB)
Index: python3.14-3.14.0/Include/internal/pycore_pymath.h
===================================================================
--- python3.14-3.14.0.orig/Include/internal/pycore_pymath.h
+++ python3.14-3.14.0/Include/internal/pycore_pymath.h
@@ -146,17 +146,17 @@ extern void _Py_set_387controlword(unsig
unsigned int old_fpcr, new_fpcr
#define _Py_SET_53BIT_PRECISION_START \
do { \
- __asm__ ("fmove.l %%fpcr,%0" : "=g" (old_fpcr)); \
+ __asm__ ("fmove.l %%fpcr,%0" : "=dm" (old_fpcr)); \
/* Set double precision / round to nearest. */ \
new_fpcr = (old_fpcr & ~0xf0) | 0x80; \
if (new_fpcr != old_fpcr) { \
- __asm__ volatile ("fmove.l %0,%%fpcr" : : "g" (new_fpcr));\
+ __asm__ volatile ("fmove.l %0,%%fpcr" : : "dm" (new_fpcr)); \
} \
} while (0)
#define _Py_SET_53BIT_PRECISION_END \
do { \
if (new_fpcr != old_fpcr) { \
- __asm__ volatile ("fmove.l %0,%%fpcr" : : "g" (old_fpcr)); \
+ __asm__ volatile ("fmove.l %0,%%fpcr" : : "dm" (old_fpcr)); \
} \
} while (0)
#endif
Index: python3.14-3.14.0/configure.ac
===================================================================
--- python3.14-3.14.0.orig/configure.ac
+++ python3.14-3.14.0/configure.ac
@@ -6074,8 +6074,8 @@ AS_VAR_IF([ac_cv_gcc_asm_for_x87], [yes]
AC_CACHE_CHECK([whether we can use gcc inline assembler to get and set mc68881 fpcr], [ac_cv_gcc_asm_for_mc68881], [
AC_LINK_IFELSE( [AC_LANG_PROGRAM([[]], [[
unsigned int fpcr;
- __asm__ __volatile__ ("fmove.l %%fpcr,%0" : "=g" (fpcr));
- __asm__ __volatile__ ("fmove.l %0,%%fpcr" : : "g" (fpcr));
+ __asm__ __volatile__ ("fmove.l %%fpcr,%0" : "=dm" (fpcr));
+ __asm__ __volatile__ ("fmove.l %0,%%fpcr" : : "dm" (fpcr));
]])],[ac_cv_gcc_asm_for_mc68881=yes],[ac_cv_gcc_asm_for_mc68881=no])
])
AS_VAR_IF([ac_cv_gcc_asm_for_mc68881], [yes], [