Package: src:qtscript-opensource-src Version: 5.15.2+dfsg-2 Severity: minor Tags: sid bookworm User: debian-...@lists.debian.org Usertags: ftbfs-lto
This package currently fails to build (at least on the amd64 architecture) with link time optimizations enabled. For a background for LTO please see https://wiki.debian.org/ToolChain/LTO The goal is to enable this optimization by default in an upcoming Debian release in dpkg-buildflags for 64bit architectures. The goal is to get this package to build with link time optimizations, or to explicitly disable link time optimizations for this package build. To reproduce the build failure, enable the lto optimization in testing/unstable by adding "optimize=+lto" to DEB_BUILD_MAINT_OPTIONS in the debian/rules file, or if this macro is unset, just set it: export DEB_BUILD_MAINT_OPTIONS = optimize=+lto Please try to fix the build with lto enabled, fixing the packaging or forwarding the issue upstream. If the issue cannot be fixed, explicitly disallow building the package with lto by adding to your rules file: export DEB_BUILD_MAINT_OPTIONS = optimize=-lto or adding that string to your existing setting of DEB_BUILD_MAINT_OPTIONS. The full build log can be found at: http://qa-logs.debian.net/2022/06/09/dpkglto/qtscript-opensource-src_5.15.2+dfsg-2_unstable_dpkglto.log The last lines of the build log are at the end of this report. [...] from api/qscriptengine_p.h:63, from api/qscriptengine.cpp:44: ../3rdparty/javascriptcore/JavaScriptCore/wtf/Vector.h: In instantiation of ‘static void QTWTF::VectorMover<true, T>::move(T*, const T*, T*) [with T = QTWTF::RefPtr<QTJSC::FunctionExecutable>]’: ../3rdparty/javascriptcore/JavaScriptCore/wtf/Vector.h:266:69: required from ‘static void QTWTF::VectorTypeOperations<T>::move(T*, const T*, T*) [with T = QTWTF::RefPtr<QTJSC::FunctionExecutable>]’ ../3rdparty/javascriptcore/JavaScriptCore/wtf/Vector.h:810:33: required from ‘void QTWTF::Vector<T, inlineCapacity>::reserveCapacity(size_t) [with T = QTWTF::RefPtr<QTJSC::FunctionExecutable>; long unsigned int inlineCapacity = 0; size_t = long unsigned int]’ ../3rdparty/javascriptcore/JavaScriptCore/wtf/Vector.h:745:9: required from ‘void QTWTF::Vector<T, inlineCapacity>::expandCapacity(size_t) [with T = QTWTF::RefPtr<QTJSC::FunctionExecutable>; long unsigned int inlineCapacity = 0; size_t = long unsigned int]’ ../3rdparty/javascriptcore/JavaScriptCore/wtf/Vector.h:763:23: required from ‘U* QTWTF::Vector<T, inlineCapacity>::expandCapacity(size_t, U*) [with U = const QTWTF::NonNullPassRefPtr<QTJSC::FunctionExecutable>; T = QTWTF::RefPtr<QTJSC::FunctionExecutable>; long unsigned int inlineCapacity = 0; size_t = long unsigned int]’ ../3rdparty/javascriptcore/JavaScriptCore/wtf/Vector.h:870:33: required from ‘void QTWTF::Vector<T, inlineCapacity>::append(const U&) [with U = QTWTF::NonNullPassRefPtr<QTJSC::FunctionExecutable>; T = QTWTF::RefPtr<QTJSC::FunctionExecutable>; long unsigned int inlineCapacity = 0]’ ../3rdparty/javascriptcore/JavaScriptCore/bytecode/CodeBlock.h:444:139: required from here ../3rdparty/javascriptcore/JavaScriptCore/wtf/Vector.h:169:19: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘class QTWTF::RefPtr<QTJSC::FunctionExecutable>’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] 169 | memcpy(dst, src, reinterpret_cast<const char*>(srcEnd) - reinterpret_cast<const char*>(src)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../3rdparty/javascriptcore/JavaScriptCore/wtf/HashFunctions.h:24, from ../3rdparty/javascriptcore/JavaScriptCore/wtf/HashTraits.h:24, from ../3rdparty/javascriptcore/JavaScriptCore/runtime/JSValue.h:32, from api/qscriptvalue_p.h:58, from api/qscriptengine_p.h:62, from api/qscriptengine.cpp:44: ../3rdparty/javascriptcore/JavaScriptCore/wtf/RefPtr.h:40:33: note: ‘class QTWTF::RefPtr<QTJSC::FunctionExecutable>’ declared here 40 | template <typename T> class RefPtr : public FastAllocBase { | ^~~~~~ In file included from ../3rdparty/javascriptcore/JavaScriptCore/wtf/HashCountedSet.h:27, from ../3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.h:27, from ../3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalData.h:32, from ../3rdparty/javascriptcore/JavaScriptCore/runtime/Identifier.h:24, from api/qscriptstring_p.h:57, from api/qscriptengine_p.h:63, from api/qscriptengine.cpp:44: ../3rdparty/javascriptcore/JavaScriptCore/wtf/Vector.h: In instantiation of ‘static void QTWTF::VectorMover<true, T>::move(T*, const T*, T*) [with T = QTWTF::RefPtr<QTJSC::RegExp>]’: ../3rdparty/javascriptcore/JavaScriptCore/wtf/Vector.h:266:69: required from ‘static void QTWTF::VectorTypeOperations<T>::move(T*, const T*, T*) [with T = QTWTF::RefPtr<QTJSC::RegExp>]’ ../3rdparty/javascriptcore/JavaScriptCore/wtf/Vector.h:810:33: required from ‘void QTWTF::Vector<T, inlineCapacity>::reserveCapacity(size_t) [with T = QTWTF::RefPtr<QTJSC::RegExp>; long unsigned int inlineCapacity = 0; size_t = long unsigned int]’ ../3rdparty/javascriptcore/JavaScriptCore/wtf/Vector.h:745:9: required from ‘void QTWTF::Vector<T, inlineCapacity>::expandCapacity(size_t) [with T = QTWTF::RefPtr<QTJSC::RegExp>; long unsigned int inlineCapacity = 0; size_t = long unsigned int]’ ../3rdparty/javascriptcore/JavaScriptCore/wtf/Vector.h:763:23: required from ‘U* QTWTF::Vector<T, inlineCapacity>::expandCapacity(size_t, U*) [with U = QTJSC::RegExp* const; T = QTWTF::RefPtr<QTJSC::RegExp>; long unsigned int inlineCapacity = 0; size_t = long unsigned int]’ ../3rdparty/javascriptcore/JavaScriptCore/wtf/Vector.h:870:33: required from ‘void QTWTF::Vector<T, inlineCapacity>::append(const U&) [with U = QTJSC::RegExp*; T = QTWTF::RefPtr<QTJSC::RegExp>; long unsigned int inlineCapacity = 0]’ ../3rdparty/javascriptcore/JavaScriptCore/bytecode/CodeBlock.h:450:144: required from here ../3rdparty/javascriptcore/JavaScriptCore/wtf/Vector.h:169:19: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘class QTWTF::RefPtr<QTJSC::RegExp>’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess] 169 | memcpy(dst, src, reinterpret_cast<const char*>(srcEnd) - reinterpret_cast<const char*>(src)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../3rdparty/javascriptcore/JavaScriptCore/wtf/HashFunctions.h:24, from ../3rdparty/javascriptcore/JavaScriptCore/wtf/HashTraits.h:24, from ../3rdparty/javascriptcore/JavaScriptCore/runtime/JSValue.h:32, from api/qscriptvalue_p.h:58, from api/qscriptengine_p.h:62, from api/qscriptengine.cpp:44: ../3rdparty/javascriptcore/JavaScriptCore/wtf/RefPtr.h:40:33: note: ‘class QTWTF::RefPtr<QTJSC::RegExp>’ declared here 40 | template <typename T> class RefPtr : public FastAllocBase { | ^~~~~~ rm -f libQt5Script.so.5.15.2 libQt5Script.so libQt5Script.so.5 libQt5Script.so.5.15 g++ -Wl,-z,relro -Wl,--as-needed -Wl,--no-undefined -Wl,--version-script,QtScript.version -flto=auto -ffat-lto-objects -Wl,-z,relro -Wl,--enable-new-dtags -shared -Wl,-Bsymbolic-functions -Wl,-soname,libQt5Script.so.5 -o libQt5Script.so.5.15.2 obj/release/pcre_compile.o obj/release/pcre_exec.o obj/release/pcre_tables.o obj/release/pcre_ucp_searchfuncs.o obj/release/pcre_xclass.o obj/release/JSBase.o obj/release/JSCallbackConstructor.o obj/release/JSCallbackFunction.o obj/release/JSCallbackObject.o obj/release/JSClassRef.o obj/release/JSContextRef.o obj/release/JSObjectRef.o obj/release/JSStringRef.o obj/release/JSValueRef.o obj/release/OpaqueJSString.o obj/release/ARMAssembler.o obj/release/MacroAssemblerARM.o obj/release/CodeBlock.o obj/release/JumpTable.o obj/release/Opcode.o obj/release/SamplingTool.o obj/release/StructureStubInfo.o obj/release/BytecodeGenerator.o obj/release/NodesCodegen.o obj/release/DebuggerActivation.o obj/release/DebuggerCallFrame.o obj/release/Debugger.o obj /release/CallFrame.o obj/release/Interpreter.o obj/release/RegisterFile.o obj/release/ExecutableAllocatorFixedVMPool.o obj/release/ExecutableAllocatorPosix.o obj/release/ExecutableAllocatorSymbian.o obj/release/ExecutableAllocatorWin.o obj/release/ExecutableAllocator.o obj/release/JITArithmetic.o obj/release/JITCall.o obj/release/JIT.o obj/release/JITOpcodes.o obj/release/JITPropertyAccess.o obj/release/JITStubs.o obj/release/Lexer.o obj/release/Nodes.o obj/release/ParserArena.o obj/release/Parser.o obj/release/Profile.o obj/release/ProfileGenerator.o obj/release/ProfileNode.o obj/release/Profiler.o obj/release/ArgList.o obj/release/Arguments.o obj/release/ArrayConstructor.o obj/release/ArrayPrototype.o obj/release/BooleanConstructor.o obj/release/BooleanObject.o obj/release/BooleanPrototype.o obj/release/CallData.o obj/release/Collector.o obj/release/CommonIdentifiers.o obj/release/Completion.o obj/release/ConstructData.o obj/release/DateConstructor.o obj/release/DateConversion.o o bj/release/DateInstance.o obj/release/DatePrototype.o obj/release/ErrorConstructor.o obj/release/Error.o obj/release/ErrorInstance.o obj/release/ErrorPrototype.o obj/release/ExceptionHelpers.o obj/release/Executable.o obj/release/FunctionConstructor.o obj/release/FunctionPrototype.o obj/release/GetterSetter.o obj/release/GlobalEvalFunction.o obj/release/Identifier.o obj/release/InitializeThreading.o obj/release/InternalFunction.o obj/release/JSActivation.o obj/release/JSAPIValueWrapper.o obj/release/JSArray.o obj/release/JSByteArray.o obj/release/JSCell.o obj/release/JSFunction.o obj/release/JSGlobalData.o obj/release/JSGlobalObject.o obj/release/JSGlobalObjectFunctions.o obj/release/JSImmediate.o obj/release/JSLock.o obj/release/JSNotAnObject.o obj/release/JSNumberCell.o obj/release/JSObject.o obj/release/JSONObject.o obj/release/JSPropertyNameIterator.o obj/release/JSStaticScopeObject.o obj/release/JSString.o obj/release/JSValue.o obj/release/JSVariableObject.o obj/release/JSWrapp erObject.o obj/release/LiteralParser.o obj/release/Lookup.o obj/release/MarkStackPosix.o obj/release/MarkStackSymbian.o obj/release/MarkStackWin.o obj/release/MarkStack.o obj/release/MathObject.o obj/release/NativeErrorConstructor.o obj/release/NativeErrorPrototype.o obj/release/NumberConstructor.o obj/release/NumberObject.o obj/release/NumberPrototype.o obj/release/ObjectConstructor.o obj/release/ObjectPrototype.o obj/release/Operations.o obj/release/PropertyDescriptor.o obj/release/PropertyNameArray.o obj/release/PropertySlot.o obj/release/PrototypeFunction.o obj/release/RegExpConstructor.o obj/release/RegExp.o obj/release/RegExpObject.o obj/release/RegExpPrototype.o obj/release/ScopeChain.o obj/release/SmallStrings.o obj/release/StringConstructor.o obj/release/StringObject.o obj/release/StringPrototype.o obj/release/StructureChain.o obj/release/Structure.o obj/release/TimeoutChecker.o obj/release/UString.o obj/release/UStringImpl.o obj/release/Assertions.o obj/release/ByteArray.o obj/release/CurrentTime.o obj/release/DateMath.o obj/release/dtoa.o obj/release/FastMalloc.o obj/release/HashTable.o obj/release/MainThread.o obj/release/MainThreadQt.o obj/release/ThreadingQt.o obj/release/RandomNumber.o obj/release/RefCountedLeakCounter.o obj/release/BlockAllocatorSymbian.o obj/release/RegisterFileAllocatorSymbian.o obj/release/ThreadingNone.o obj/release/Threading.o obj/release/TypeTraits.o obj/release/CollatorDefault.o obj/release/CollatorICU.o obj/release/UTF8.o obj/release/RegexCompiler.o obj/release/RegexInterpreter.o obj/release/RegexJIT.o obj/release/Grammar.o obj/release/TCSystemAlloc.o obj/release/qscriptclass.o obj/release/qscriptclasspropertyiterator.o obj/release/qscriptcontext.o obj/release/qscriptcontextinfo.o obj/release/qscriptengine.o obj/release/qscriptengineagent.o obj/release/qscriptextensionplugin.o obj/release/qscriptprogram.o obj/release/qscriptstring.o obj/release/qscriptvalue.o obj/release/qscriptvalueiterator.o obj/release/qscriptable.o obj/release/qscriptfunction.o obj/release/qscriptobject.o obj/release/qscriptclassobject.o obj/release/qscriptvariant.o obj/release/qscriptqobject.o obj/release/qscriptglobalobject.o obj/release/qscriptactivationobject.o obj/release/qscriptstaticscopeobject.o obj/release/qscriptdeclarativeobject.o obj/release/qscriptdeclarativeclass.o obj/release/qscriptast.o obj/release/qscriptastvisitor.o obj/release/qscriptgrammar.o obj/release/qscriptsyntaxchecker.o obj/release/qscriptlexer.o obj/release/moc_qscriptextensionplugin.o /usr/lib/x86_64-linux-gnu/libQt5Core.so -lpthread In member function ‘allocatePropertyStorageInline’, inlined from ‘allocatePropertyStorage’ at ../3rdparty/javascriptcore/JavaScriptCore/runtime/JSObject.cpp:546:34: ../3rdparty/javascriptcore/JavaScriptCore/runtime/JSObject.h:679:68: warning: argument 1 value ‘18446744073709551615’ exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 679 | PropertyStorage newPropertyStorage = new EncodedJSValue[newSize]; | ^ ../3rdparty/javascriptcore/JavaScriptCore/runtime/JSObject.h: In member function ‘allocatePropertyStorage’: /usr/include/c++/11/new:128:26: note: in a call to allocation function ‘operator new []’ declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /usr/bin/ld: /tmp/ccTaZszj.ltrans0.ltrans.o: in function `ctiVMThrowTrampoline': <artificial>:(.text+0x4c): undefined reference to `cti_vm_throw' collect2: error: ld returned 1 exit status make[3]: *** [Makefile:674: ../../lib/libQt5Script.so.5.15.2] Error 1 make[3]: Leaving directory '/<<PKGBUILDDIR>>/src/script' make[2]: *** [Makefile:48: sub-script-make_first-ordered] Error 2 make[2]: Leaving directory '/<<PKGBUILDDIR>>/src' make[1]: *** [Makefile:49: sub-src-make_first] Error 2 make[1]: Leaving directory '/<<PKGBUILDDIR>>' dh_auto_build: error: make -j8 returned exit code 2 make: *** [debian/rules:13: binary] Error 25 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2