libreoffice on armhf: ‘asm’ operand has impossible constraints or there are not enough registers
Rene Engelhard
rene at debian.org
Sun Jul 28 16:38:01 UTC 2024
[ Ccing libreoffice upstream ]
Hi,
see https://buildd.debian.org/status/fetch.php?pkg=libreoffice&arch=armhf&ver=4%3A24.8.0~rc2-1&stamp=1722178361&raw=1:
build CXX] bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx
S=/<<PKGBUILDDIR>> && I=$S/instdir && W=$S/workdir && mkdir -p $W/CxxObject/bridges/source/cpp_uno/gcc3_linux_arm/ $W/Dep/CxxObject/bridges/source/cpp_uno/gcc3_linux_arm/ && cd /<<PKGBUILDDIR>> && arm-linux-gnueabihf-g++ -DARM -DARM32 -DBOOST_SYSTEM_NO_DEPRECATED -DCPPU_ENV=gcc3 -DLINUX -DNDEBUG -DOSL_DEBUG_LEVEL=0 -DUNIX -DUNX -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -D_LARGEFILE_SOURCE -D_PTHREADS -D_REENTRANT -D_TIME_BITS=64 -Wdate-time -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -DHAVE_POSIX_FALLOCATE -fvisibility=hidden -Wall -Wno-missing-braces -Wendif-labels -Wextra -Wundef -Wunreachable-code -Wshadow -Wunused-macros -finput-charset=UTF-8 -fmessage-length=0 -fno-common -pipe -Wdeprecated-copy-dtor -Wduplicated-cond -Wlogical-op -Wshift-overflow=2 -Wunused-const-variable=1 -Wno-cast-function-type -fvisibility-inlines-hidden -fPIC -Wshadow -Woverloaded-virtual -std=c++20 -pthread -g1 -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -Wno-psabi -O0 -Wp,-U_FORTIFY_SOURCE -fstrict-aliasing -fstrict-overflow -fexceptions -fno-enforce-eh-specs -fno-omit-frame-pointer -fno-strict-aliasing -fno-lto -DLIBO_INTERNAL_ONLY -c $S/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx -o $W/CxxObject/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.o -MMD -MT $W/CxxObject/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.o -MP -MF $W/Dep/CxxObject/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.d_ -I$S/bridges/inc -I$S/include -I$S/config_host -I$W/UnoApiHeadersTarget/udkapi/comprehensive && mv $W/Dep/CxxObject/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.d_ $W/Dep/CxxObject/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.d
[...]
/<<PKGBUILDDIR>>/bridges/source/cpp_uno/gcc3_linux_arm/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
make[2]: *** Waiting for unfinished jobs....
(so far) only on armhf, not on armel. (And arm64/aarch64 is a different bridge code)
The code is https://git.libreoffice.org/core/+/refs/tags/libreoffice-24.8.0.2/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx#274 ff.
This didn't change in LO itself, so the only explanation is g++ 13 vs. g++ 14.
Indeed the same happens with LibreOffice 24.2.5 and building with g++ 13 works.
Any idea?
Regards,
Rene
More information about the LibreOffice
mailing list