gcc-14-armhf-registers
authorDebian LibreOffice Maintainers <debian-openoffice@lists.debian.org>
Sun, 8 Sep 2024 14:58:19 +0000 (14:58 +0000)
committerRaspbian forward porter <root@raspbian.org>
Sun, 8 Sep 2024 14:58:19 +0000 (14:58 +0000)
commit f1a9a0be059727fddf48058b0084c89ec00f1eb9 (HEAD -> master)
Author: Rene Engelhard <rene@rene-engelhard.de>
Date:   Thu Aug 8 17:36:14 2024 +0200

    fix build on armhf with gcc 14

    /uno2cpp.cxx: In function ‘void {anonymous}::callVirtualMethod(void*, sal_Int32, void*, typelib_TypeDescriptionReference*, sal_uInt32*, sal_uInt32, sal_uInt32*, sal_uInt32, double*)’:
    /<<PKGBUILDDIR>>/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx:278:5: error: ‘asm’ operand has impossible constraints or there are not enough registers
      278 |     __asm__ __volatile__ (
          |     ^~~~~~~
    make[2]: *** [/<<PKGBUILDDIR>>/solenv/gbuild/LinkTarget.mk:338: /<<PKGBUILDDIR>>/workdir/CxxObject/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.o] Error 1

    Just removing them makes it work, they are mentioned before anyway, too
    (thanks Caolan)

    Change-Id: Ibb9118b268a587ebdcfce343e2ee2605ac979915

Gbp-Pq: Name gcc-14-armhf-registers.diff

bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx

index 001384e005fc1884ff7ae8e85746c1e952fe01b6..e08ec4ad8f850d751a2431d777d438533fbbf120 100644 (file)
@@ -298,7 +298,7 @@ void callVirtualMethod(
         "mov %[r1], r1\n\t"
         : [r0]"=r" (r0), [r1]"=r" (r1)
         : [pmethod]"m" (pMethod), [pgpr]"m" (pGPR), [pfpr]"m" (pFPR)
-        : "r0", "r1", "r2", "r3", "r4", "r5");
+        : "r2", "r3", "r4", "r5");
 
     MapReturn(r0, r1, pReturnType, static_cast<sal_uInt32*>(pRegisterReturn));
 }