From b98a1c840d1ae7df0ad3e6b48a9f63f4a813ee5b Mon Sep 17 00:00:00 2001 From: Andre McCurdy Date: Tue, 17 Feb 2015 22:22:12 -0800 Subject: [PATCH] qtwebkit: fix textrel QA warnings when building qtwebkit for x86 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] Patch from upstream webkit: https://bugs.webkit.org/show_bug.cgi?id=70610 Minor refresh required to apply cleanly to the older webkit sources used by qtwebkit. Specifically, the patch needed to be modified to account for PLATFORM(MAC) -> OS(DARWIN) renaming in recent webkit which is not part of qtwebkit yet ( https://bugs.webkit.org/show_bug.cgi?id=99683 ). (From meta-qt5 rev: a137e6e8b45f11c77f6615cfa6ff50d025669b11) Signed-off-by: Andre McCurdy Signed-off-by: Martin Jansa Signed-off-by: Mauro Carvalho Chehab --- meta-qt5/recipes-qt/qt5/qtwebkit.inc | 7 ++- .../qtwebkit/0002-qtwebkit-fix-textrel-x86.patch | 68 ++++++++++++++++++++++ 2 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 meta-qt5/recipes-qt/qt5/qtwebkit/0002-qtwebkit-fix-textrel-x86.patch diff --git a/meta-qt5/recipes-qt/qt5/qtwebkit.inc b/meta-qt5/recipes-qt/qt5/qtwebkit.inc index bdc676b..d9eaabb 100644 --- a/meta-qt5/recipes-qt/qt5/qtwebkit.inc +++ b/meta-qt5/recipes-qt/qt5/qtwebkit.inc @@ -8,6 +8,11 @@ LIC_FILES_CHKSUM = "file://LICENSE.GPLv2;md5=e782f55badfa137e5e59c330f12cc8ed \ DEPENDS += "qtbase qtdeclarative icu ruby-native sqlite3 glib-2.0 libxslt leveldb" +SRC_URI += "\ + file://0001-qtwebkit-fix-QA-issue-bad-RPATH.patch \ + file://0002-qtwebkit-fix-textrel-x86.patch \ +" + PACKAGECONFIG ??= "gstreamer qtlocation qtmultimedia qtsensors" PACKAGECONFIG[gstreamer] = "OE_GSTREAMER_ENABLED,,gstreamer1.0 gstreamer1.0-plugins-base" PACKAGECONFIG[gstreamer010] = "OE_GSTREAMER010_ENABLED,,gstreamer gst-plugins-base" @@ -39,8 +44,6 @@ EXTRA_QMAKEVARS_PRE += "${QTWEBKIT_DEBUG}" # remove default ${PN}-examples-dbg ${PN}-examples set in qt5.inc, because it conflicts with ${PN} from separate webkit-examples recipe 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 " -SRC_URI += "file://0001-qtwebkit-fix-QA-issue-bad-RPATH.patch" - # make sure rb files are used from sysroot, not from host # ruby-1.9.3-always-use-i386.patch is doing target_cpu=`echo $target_cpu | sed s/i.86/i386/` # we need to replace it too (a bit longer version without importing re) diff --git a/meta-qt5/recipes-qt/qt5/qtwebkit/0002-qtwebkit-fix-textrel-x86.patch b/meta-qt5/recipes-qt/qt5/qtwebkit/0002-qtwebkit-fix-textrel-x86.patch new file mode 100644 index 0000000..e5f1538 --- /dev/null +++ b/meta-qt5/recipes-qt/qt5/qtwebkit/0002-qtwebkit-fix-textrel-x86.patch @@ -0,0 +1,68 @@ +Fix textrel QA warnings when building qtwebkit for x86: + + 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] + +Patch from upstream webkit: + + https://bugs.webkit.org/show_bug.cgi?id=70610 + +Minor refresh required to apply cleanly to the older webkit sources used +by qtwebkit. Specifically, the patch needed to be modified to account +for PLATFORM(MAC) -> OS(DARWIN) renaming in recent webkit which is not +part of qtwebkit yet ( https://bugs.webkit.org/show_bug.cgi?id=99683 ). + +Upstream status [webkit] : backport +Upstream status [qtwebkit] : unclear + + +From: Magnus Granberg +Subject: Remove TEXTREL tag in x86 +Bug: https://bugs.webkit.org/show_bug.cgi?id=70610 +Index: webkitgtk/Source/WTF/wtf/InlineASM.h +=================================================================== +--- webkitgtk.orig/Source/WTF/wtf/InlineASM.h ++++ webkitgtk/Source/WTF/wtf/InlineASM.h +@@ -46,6 +46,8 @@ + #define GLOBAL_REFERENCE(name) #name "@plt" + #elif CPU(X86) && COMPILER(MINGW) + #define GLOBAL_REFERENCE(name) "@" #name "@4" ++#elif OS(LINUX) && CPU(X86) && defined(__PIC__) ++#define GLOBAL_REFERENCE(name) SYMBOL_STRING(name) "@plt" + #else + #define GLOBAL_REFERENCE(name) SYMBOL_STRING(name) + #endif +Index: webkitgtk/Source/JavaScriptCore/jit/ThunkGenerators.cpp +=================================================================== +--- webkitgtk.orig/Source/JavaScriptCore/jit/ThunkGenerators.cpp ++++ webkitgtk/Source/JavaScriptCore/jit/ThunkGenerators.cpp +@@ -524,6 +524,30 @@ double jsRound(double d) + } \ + static MathThunk UnaryDoubleOpWrapper(function) = &function##Thunk; + ++#elif CPU(X86) && COMPILER(GCC) && OS(LINUX) && defined(__PIC__) ++#define defineUnaryDoubleOpWrapper(function) \ ++ asm( \ ++ ".text\n" \ ++ ".globl " SYMBOL_STRING(function##Thunk) "\n" \ ++ HIDE_SYMBOL(function##Thunk) "\n" \ ++ SYMBOL_STRING(function##Thunk) ":" "\n" \ ++ "pushl %ebx\n" \ ++ "subl $20, %esp\n" \ ++ "movsd %xmm0, (%esp) \n" \ ++ "call __x86.get_pc_thunk.bx\n" \ ++ "addl $_GLOBAL_OFFSET_TABLE_, %ebx\n" \ ++ "call " GLOBAL_REFERENCE(function) "\n" \ ++ "fstpl (%esp) \n" \ ++ "movsd (%esp), %xmm0 \n" \ ++ "addl $20, %esp\n" \ ++ "popl %ebx\n" \ ++ "ret\n" \ ++ );\ ++ extern "C" { \ ++ MathThunkCallingConvention function##Thunk(MathThunkCallingConvention); \ ++ } \ ++ static MathThunk UnaryDoubleOpWrapper(function) = &function##Thunk; ++ + #elif CPU(X86) && COMPILER(GCC) && (PLATFORM(MAC) || OS(LINUX)) + #define defineUnaryDoubleOpWrapper(function) \ + asm( \ -- 2.7.4