diff options
-rw-r--r-- | recipes-qt/qt5/qtwebkit.inc | 7 | ||||
-rw-r--r-- | recipes-qt/qt5/qtwebkit/0002-qtwebkit-fix-textrel-x86.patch | 68 |
2 files changed, 73 insertions, 2 deletions
diff --git a/recipes-qt/qt5/qtwebkit.inc b/recipes-qt/qt5/qtwebkit.inc index bdc676be..d9eaabb6 100644 --- a/recipes-qt/qt5/qtwebkit.inc +++ b/recipes-qt/qt5/qtwebkit.inc | |||
@@ -8,6 +8,11 @@ LIC_FILES_CHKSUM = "file://LICENSE.GPLv2;md5=e782f55badfa137e5e59c330f12cc8ed \ | |||
8 | 8 | ||
9 | DEPENDS += "qtbase qtdeclarative icu ruby-native sqlite3 glib-2.0 libxslt leveldb" | 9 | DEPENDS += "qtbase qtdeclarative icu ruby-native sqlite3 glib-2.0 libxslt leveldb" |
10 | 10 | ||
11 | SRC_URI += "\ | ||
12 | file://0001-qtwebkit-fix-QA-issue-bad-RPATH.patch \ | ||
13 | file://0002-qtwebkit-fix-textrel-x86.patch \ | ||
14 | " | ||
15 | |||
11 | PACKAGECONFIG ??= "gstreamer qtlocation qtmultimedia qtsensors" | 16 | PACKAGECONFIG ??= "gstreamer qtlocation qtmultimedia qtsensors" |
12 | PACKAGECONFIG[gstreamer] = "OE_GSTREAMER_ENABLED,,gstreamer1.0 gstreamer1.0-plugins-base" | 17 | PACKAGECONFIG[gstreamer] = "OE_GSTREAMER_ENABLED,,gstreamer1.0 gstreamer1.0-plugins-base" |
13 | PACKAGECONFIG[gstreamer010] = "OE_GSTREAMER010_ENABLED,,gstreamer gst-plugins-base" | 18 | PACKAGECONFIG[gstreamer010] = "OE_GSTREAMER010_ENABLED,,gstreamer gst-plugins-base" |
@@ -39,8 +44,6 @@ EXTRA_QMAKEVARS_PRE += "${QTWEBKIT_DEBUG}" | |||
39 | # remove default ${PN}-examples-dbg ${PN}-examples set in qt5.inc, because it conflicts with ${PN} from separate webkit-examples recipe | 44 | # remove default ${PN}-examples-dbg ${PN}-examples set in qt5.inc, because it conflicts with ${PN} from separate webkit-examples recipe |
40 | PACKAGES = "${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN} ${PN}-qmlplugins-dbg ${PN}-tools-dbg ${PN}-plugins-dbg ${PN}-qmlplugins ${PN}-tools ${PN}-plugins ${PN}-mkspecs " | 45 | PACKAGES = "${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN} ${PN}-qmlplugins-dbg ${PN}-tools-dbg ${PN}-plugins-dbg ${PN}-qmlplugins ${PN}-tools ${PN}-plugins ${PN}-mkspecs " |
41 | 46 | ||
42 | SRC_URI += "file://0001-qtwebkit-fix-QA-issue-bad-RPATH.patch" | ||
43 | |||
44 | # make sure rb files are used from sysroot, not from host | 47 | # make sure rb files are used from sysroot, not from host |
45 | # ruby-1.9.3-always-use-i386.patch is doing target_cpu=`echo $target_cpu | sed s/i.86/i386/` | 48 | # ruby-1.9.3-always-use-i386.patch is doing target_cpu=`echo $target_cpu | sed s/i.86/i386/` |
46 | # we need to replace it too (a bit longer version without importing re) | 49 | # we need to replace it too (a bit longer version without importing re) |
diff --git a/recipes-qt/qt5/qtwebkit/0002-qtwebkit-fix-textrel-x86.patch b/recipes-qt/qt5/qtwebkit/0002-qtwebkit-fix-textrel-x86.patch new file mode 100644 index 00000000..e5f1538d --- /dev/null +++ b/recipes-qt/qt5/qtwebkit/0002-qtwebkit-fix-textrel-x86.patch | |||
@@ -0,0 +1,68 @@ | |||
1 | Fix textrel QA warnings when building qtwebkit for x86: | ||
2 | |||
3 | WARNING: QA Issue: ELF binary '/home/andre/rdk/rdk-master/build-vbox32/tmp/work/core2-32-rdk-linux/qtwebkit/5.4.0-r0/packages-split/qtwebkit/usr/lib/libQt5WebKit.so.5.4.0' has relocations in .text [textrel] | ||
4 | |||
5 | Patch from upstream webkit: | ||
6 | |||
7 | https://bugs.webkit.org/show_bug.cgi?id=70610 | ||
8 | |||
9 | Minor refresh required to apply cleanly to the older webkit sources used | ||
10 | by qtwebkit. Specifically, the patch needed to be modified to account | ||
11 | for PLATFORM(MAC) -> OS(DARWIN) renaming in recent webkit which is not | ||
12 | part of qtwebkit yet ( https://bugs.webkit.org/show_bug.cgi?id=99683 ). | ||
13 | |||
14 | Upstream status [webkit] : backport | ||
15 | Upstream status [qtwebkit] : unclear | ||
16 | |||
17 | |||
18 | From: Magnus Granberg <zorry@gentoo.org> | ||
19 | Subject: Remove TEXTREL tag in x86 | ||
20 | Bug: https://bugs.webkit.org/show_bug.cgi?id=70610 | ||
21 | Index: webkitgtk/Source/WTF/wtf/InlineASM.h | ||
22 | =================================================================== | ||
23 | --- webkitgtk.orig/Source/WTF/wtf/InlineASM.h | ||
24 | +++ webkitgtk/Source/WTF/wtf/InlineASM.h | ||
25 | @@ -46,6 +46,8 @@ | ||
26 | #define GLOBAL_REFERENCE(name) #name "@plt" | ||
27 | #elif CPU(X86) && COMPILER(MINGW) | ||
28 | #define GLOBAL_REFERENCE(name) "@" #name "@4" | ||
29 | +#elif OS(LINUX) && CPU(X86) && defined(__PIC__) | ||
30 | +#define GLOBAL_REFERENCE(name) SYMBOL_STRING(name) "@plt" | ||
31 | #else | ||
32 | #define GLOBAL_REFERENCE(name) SYMBOL_STRING(name) | ||
33 | #endif | ||
34 | Index: webkitgtk/Source/JavaScriptCore/jit/ThunkGenerators.cpp | ||
35 | =================================================================== | ||
36 | --- webkitgtk.orig/Source/JavaScriptCore/jit/ThunkGenerators.cpp | ||
37 | +++ webkitgtk/Source/JavaScriptCore/jit/ThunkGenerators.cpp | ||
38 | @@ -524,6 +524,30 @@ double jsRound(double d) | ||
39 | } \ | ||
40 | static MathThunk UnaryDoubleOpWrapper(function) = &function##Thunk; | ||
41 | |||
42 | +#elif CPU(X86) && COMPILER(GCC) && OS(LINUX) && defined(__PIC__) | ||
43 | +#define defineUnaryDoubleOpWrapper(function) \ | ||
44 | + asm( \ | ||
45 | + ".text\n" \ | ||
46 | + ".globl " SYMBOL_STRING(function##Thunk) "\n" \ | ||
47 | + HIDE_SYMBOL(function##Thunk) "\n" \ | ||
48 | + SYMBOL_STRING(function##Thunk) ":" "\n" \ | ||
49 | + "pushl %ebx\n" \ | ||
50 | + "subl $20, %esp\n" \ | ||
51 | + "movsd %xmm0, (%esp) \n" \ | ||
52 | + "call __x86.get_pc_thunk.bx\n" \ | ||
53 | + "addl $_GLOBAL_OFFSET_TABLE_, %ebx\n" \ | ||
54 | + "call " GLOBAL_REFERENCE(function) "\n" \ | ||
55 | + "fstpl (%esp) \n" \ | ||
56 | + "movsd (%esp), %xmm0 \n" \ | ||
57 | + "addl $20, %esp\n" \ | ||
58 | + "popl %ebx\n" \ | ||
59 | + "ret\n" \ | ||
60 | + );\ | ||
61 | + extern "C" { \ | ||
62 | + MathThunkCallingConvention function##Thunk(MathThunkCallingConvention); \ | ||
63 | + } \ | ||
64 | + static MathThunk UnaryDoubleOpWrapper(function) = &function##Thunk; | ||
65 | + | ||
66 | #elif CPU(X86) && COMPILER(GCC) && (PLATFORM(MAC) || OS(LINUX)) | ||
67 | #define defineUnaryDoubleOpWrapper(function) \ | ||
68 | asm( \ | ||