From 87a98082c533a0ad131866e7a132c5d191e0e825 Mon Sep 17 00:00:00 2001 From: Funda Wang Date: Sat, 7 Dec 2024 12:18:16 +0800 Subject: [PATCH] fix LTO build --- fix-lto-build.patch | 49 +++++++++++++++++++++++++++++++++++++++++++++ qt.spec | 38 +++++++++-------------------------- 2 files changed, 58 insertions(+), 29 deletions(-) create mode 100644 fix-lto-build.patch diff --git a/fix-lto-build.patch b/fix-lto-build.patch new file mode 100644 index 0000000..35245ff --- /dev/null +++ b/fix-lto-build.patch @@ -0,0 +1,49 @@ +From 7004c3fe3148b1f081c1575341257dca18e804b2 Mon Sep 17 00:00:00 2001 +From: Richard Weickelt +Date: Tue, 28 Jul 2020 22:39:01 +0200 +Subject: [PATCH] Fix LTO Build of QtScript + +When building with link-time optimization, the function cti_vm_throw was +thrown away because it was only referenced by assembly code. The +function needs to be marked as used. + +Fixes: QTBUG-42989 +Change-Id: I9974a5db9105adf9079343b5e1564e58f419df97 +--- + src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.h b/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.h +index da801332..adf6d5dc 100644 +--- a/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.h ++++ b/src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.h +@@ -123,7 +123,7 @@ namespace JSC { + JSValue* exception; + Profiler** enabledProfilerReference; + JSGlobalData* globalData; +- ++ + // When JIT code makes a call, it pushes its return address just below the rest of the stack. + ReturnAddressPtr* returnAddressSlot() { return reinterpret_cast(this) - 1; } + }; +@@ -155,7 +155,7 @@ namespace JSC { + // These arguments passed on the stack. + Profiler** enabledProfilerReference; + JSGlobalData* globalData; +- ++ + ReturnAddressPtr* returnAddressSlot() { return &thunkReturnAddress; } + }; + #elif CPU(ARM_TRADITIONAL) +@@ -316,7 +316,7 @@ extern "C" { + EncodedJSValue JIT_STUB cti_op_to_primitive(STUB_ARGS_DECLARATION); + EncodedJSValue JIT_STUB cti_op_typeof(STUB_ARGS_DECLARATION); + EncodedJSValue JIT_STUB cti_op_urshift(STUB_ARGS_DECLARATION); +- EncodedJSValue JIT_STUB cti_vm_throw(STUB_ARGS_DECLARATION); ++ EncodedJSValue JIT_STUB cti_vm_throw(STUB_ARGS_DECLARATION) __attribute__((used)); + EncodedJSValue JIT_STUB cti_to_object(STUB_ARGS_DECLARATION); + JSObject* JIT_STUB cti_op_construct_JSConstruct(STUB_ARGS_DECLARATION); + JSObject* JIT_STUB cti_op_new_array(STUB_ARGS_DECLARATION); +-- +2.16.3 + diff --git a/qt.spec b/qt.spec index 36a4654..ef0e1ff 100644 --- a/qt.spec +++ b/qt.spec @@ -13,11 +13,11 @@ Name: qt Epoch: 1 Version: 4.8.7 -Release: 60 +Release: 61 Summary: A software toolkit for developing applications License: (LGPLv2 with exceptions or GPLv3 with exceptions) and ASL 2.0 and BSD and FTL and MIT -URL: http://qt-project.org/ -Source0: https://download.qt.io/archive/qt/4.8/4.8.7/qt-everywhere-opensource-src-4.8.7.tar.gz +URL: https://www.qt.io/ +Source0: https://download.qt.io/archive/qt/4.8/4.8.7/qt-everywhere-opensource-src-%{version}.tar.gz Source1: qconfig-multilib.h Source2: assistant.desktop Source3: designer.desktop @@ -81,6 +81,8 @@ Patch46: qt-everywhere-opensource-src-4.8.7-riscv64.patch Patch47: fix-build-error-for-loongarch64.patch %endif Patch48: fix-build-error-about-messagemodel.patch +# https://codereview.qt-project.org/c/qt/qtscript/+/308863 +Patch49: fix-lto-build.patch Patch6000: CVE-2018-19869.patch Patch6001: CVE-2018-19872.patch Patch6002: CVE-2018-19871.patch @@ -361,7 +363,6 @@ if [ $1 -gt 1 ] ; then fi %post -/sbin/ldconfig %{_sbindir}/update-alternatives \ --install %{_sysconfdir}/xdg/qtchooser/4.conf \ qtchooser-4 \ @@ -374,10 +375,7 @@ fi %{_sysconfdir}/xdg/qtchooser/4.conf \ %{priority} -touch --no-create %{_datadir}/icons/hicolor ||: - %postun -/sbin/ldconfig if [ $1 -eq 0 ]; then %{_sbindir}/update-alternatives \ --remove qtchooser-4 \ @@ -388,28 +386,6 @@ if [ $1 -eq 0 ]; then %{_sysconfdir}/xdg/qtchooser/4.conf fi -if [ $1 -eq 0 ] ; then -touch --no-create %{_datadir}/icons/hicolor ||: -gtk-update-icon-cache -q %{_datadir}/icons/hicolor 2> /dev/null ||: -fi - -%posttrans -gtk-update-icon-cache -q %{_datadir}/icons/hicolor 2> /dev/null ||: - -%post devel -touch --no-create %{_datadir}/icons/hicolor ||: - -%posttrans devel -gtk-update-icon-cache -q %{_datadir}/icons/hicolor 2> /dev/null ||: -update-desktop-database -q &> /dev/null ||: - -%postun devel -if [ $1 -eq 0 ] ; then -touch --no-create %{_datadir}/icons/hicolor ||: -gtk-update-icon-cache -q %{_datadir}/icons/hicolor 2> /dev/null ||: -update-desktop-database -q &> /dev/null ||: -fi - %files -f qt_all.lang %doc README %license LICENSE.GPL3 LICENSE.LGPL LGPL_EXCEPTION.txt @@ -470,6 +446,10 @@ fi %{_qt4_prefix}/examples/ %changelog +* Sat Dec 07 2024 Funda Wang - 1:4.8.7-61 +- fix LTO build +- cleanup spec + * Mon Nov 27 2023 hua_yadong - 1:4.8.7-60 - Type:cves - ID:CVE-2023-43114 -- Gitee