fix LTO build

(cherry picked from commit 87a98082c533a0ad131866e7a132c5d191e0e825)
This commit is contained in:
Funda Wang 2024-12-07 12:18:16 +08:00 committed by openeuler-sync-bot
parent 96fd0b291c
commit 8dd0fdc669
2 changed files with 58 additions and 29 deletions

49
fix-lto-build.patch Normal file
View File

@ -0,0 +1,49 @@
From 7004c3fe3148b1f081c1575341257dca18e804b2 Mon Sep 17 00:00:00 2001
From: Richard Weickelt <richard@weickelt.de>
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<ReturnAddressPtr*>(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

38
qt.spec
View File

@ -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 <fundawang@yeah.net> - 1:4.8.7-61
- fix LTO build
- cleanup spec
* Mon Nov 27 2023 hua_yadong<huayadong@kylinos.cn> - 1:4.8.7-60
- Type:cves
- ID:CVE-2023-43114