diff options
-rw-r--r-- | .SRCINFO | 6 | ||||
-rw-r--r-- | PKGBUILD | 13 | ||||
-rw-r--r-- | qt4-gcc8.patch | 314 | ||||
-rw-r--r-- | qt4-gcc9.patch | 46 |
4 files changed, 377 insertions, 2 deletions
@@ -1,7 +1,7 @@ pkgbase = lib32-qt4 pkgdesc = A cross-platform application and UI framework (32-bit) pkgver = 4.8.7 - pkgrel = 14 + pkgrel = 15 url = http://www.qt.io arch = x86_64 license = GPL3 @@ -48,6 +48,8 @@ pkgbase = lib32-qt4 source = l-qclipboard_fix_recursive.patch source = l-qclipboard_delay.patch source = qt4-gcc6.patch + source = qt4-gcc8.patch + source = qt4-gcc9.patch source = qt4-glibc-2.25.patch source = qt4-icu59.patch source = qt4-openssl-1.1.patch @@ -61,6 +63,8 @@ pkgbase = lib32-qt4 sha512sums = bd63961bcb695beebe8686142b84bff7702db4d85d737f5c2da927252b931700d03602f80048223cbbb05d85a5ddb9cb818321d756577f84843690b318f0c413 sha512sums = 0215f81fd0ed3483d1f79f46a53d9378f7462901410f4bc3f235325974c155454b0e75cba5222180e5ca62099cba7b80419b5fab86380ac6d951b9ae12714444 sha512sums = efe8e1842882b784a14ba137bc6a8a579d5133e579f98c61674f5d3d9b79ff8e895775a79fcf757f7726377cd221396a678d181fa069416b0760a5241d39845a + sha512sums = 503376d873a89ab0a31a71ea82434689725c5f97610ba0e37a2f4e3bcb41fe46b790bc2f04d488dcfdd06c4a1a9e752cf0baf7e23f99b1707852953704031450 + sha512sums = 8bb0f9f14f8ef751baac1048455e5238d0fd7e7464b09eb30cc131d9241102e9a6c35742f55e871f844fcbfa56729a692ed2f57103b7835905e089932ad4a47d sha512sums = a19e76d64bbbf148b088e3531135dc3ababd63ea8e71147dcf7d2966802abb2d83b839766882040e5c9efdea2e364d48bc38aa712dd35b850383c7747ffa9745 sha512sums = 483b382da8ad57f9792df1ad0c85948992d8293819c2774a381544235d9b6a7498b12beb3f9d7d06c4a814f8ded514973453314d71381368148d2fcbbf854e65 sha512sums = ce9bb1c9657660e7b6181271f4264d3f6e22788f13113dd6f97b73c7172d7dcea1d7daf5fe13d147643e89d50aaca23da70657ec217d616144aa79045524db5c @@ -7,7 +7,7 @@ pkgname=lib32-qt4 pkgver=4.8.7 -pkgrel=14 +pkgrel=15 pkgdesc='A cross-platform application and UI framework (32-bit)' arch=('x86_64') url='http://www.qt.io' @@ -35,6 +35,8 @@ source=("https://download.qt.io/archive/qt/4.8/${pkgver}/${_pkgfqn}.tar.gz" 'l-qclipboard_fix_recursive.patch' 'l-qclipboard_delay.patch' 'qt4-gcc6.patch' + 'qt4-gcc8.patch' + 'qt4-gcc9.patch' 'qt4-glibc-2.25.patch' 'qt4-icu59.patch' 'qt4-openssl-1.1.patch') @@ -48,6 +50,8 @@ sha512sums=('f9f81a2e7205e1fd05c8d923dc73244f29aa33f951fa6b7c5c8193449328b370847 'bd63961bcb695beebe8686142b84bff7702db4d85d737f5c2da927252b931700d03602f80048223cbbb05d85a5ddb9cb818321d756577f84843690b318f0c413' '0215f81fd0ed3483d1f79f46a53d9378f7462901410f4bc3f235325974c155454b0e75cba5222180e5ca62099cba7b80419b5fab86380ac6d951b9ae12714444' 'efe8e1842882b784a14ba137bc6a8a579d5133e579f98c61674f5d3d9b79ff8e895775a79fcf757f7726377cd221396a678d181fa069416b0760a5241d39845a' + '503376d873a89ab0a31a71ea82434689725c5f97610ba0e37a2f4e3bcb41fe46b790bc2f04d488dcfdd06c4a1a9e752cf0baf7e23f99b1707852953704031450' + '8bb0f9f14f8ef751baac1048455e5238d0fd7e7464b09eb30cc131d9241102e9a6c35742f55e871f844fcbfa56729a692ed2f57103b7835905e089932ad4a47d' 'a19e76d64bbbf148b088e3531135dc3ababd63ea8e71147dcf7d2966802abb2d83b839766882040e5c9efdea2e364d48bc38aa712dd35b850383c7747ffa9745' '483b382da8ad57f9792df1ad0c85948992d8293819c2774a381544235d9b6a7498b12beb3f9d7d06c4a814f8ded514973453314d71381368148d2fcbbf854e65' 'ce9bb1c9657660e7b6181271f4264d3f6e22788f13113dd6f97b73c7172d7dcea1d7daf5fe13d147643e89d50aaca23da70657ec217d616144aa79045524db5c') @@ -97,6 +101,12 @@ prepare() { # Fix build with GCC6 (Fedora) patch -p1 -i "$srcdir"/qt4-gcc6.patch + # Fix build with GCC-8.3 + patch -Np0 -i "$srcdir"/qt4-gcc8.patch + + # Fix build with GCC9 + patch -Np0 -i "$srcdir"/qt4-gcc9.patch + # Fix build of Qt4 applications with glibc 2.25 (Fedora) patch -p1 -i "$srcdir"/qt4-glibc-2.25.patch @@ -136,6 +146,7 @@ build() { -nomake demos \ -nomake examples \ -nomake docs \ + -xmlpatterns \ -silent \ -no-rpath \ -optimized-qmake \ diff --git a/qt4-gcc8.patch b/qt4-gcc8.patch new file mode 100644 index 000000000000..8ccb84dff47f --- /dev/null +++ b/qt4-gcc8.patch @@ -0,0 +1,314 @@ +--- src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp 2015-05-07 17:14:48.000000000 +0300 ++++ src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp 2019-05-04 13:10:49.491856288 +0300 +@@ -114,11 +114,11 @@ + COMPILE_ASSERT(offsetof(struct JITStackFrame, code) % 16 == 0x0, JITStackFrame_maintains_16byte_stack_alignment); + COMPILE_ASSERT(offsetof(struct JITStackFrame, savedEBX) == 0x3c, JITStackFrame_stub_argument_space_matches_ctiTrampoline); + COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x58, JITStackFrame_callFrame_offset_matches_ctiTrampoline); + COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x50, JITStackFrame_code_offset_matches_ctiTrampoline); + +-asm volatile ( ++asm ( + ".text\n" + ".globl " SYMBOL_STRING(ctiTrampoline) "\n" + HIDE_SYMBOL(ctiTrampoline) "\n" + SYMBOL_STRING(ctiTrampoline) ":" "\n" + "pushl %ebp" "\n" +@@ -136,11 +136,11 @@ + "popl %esi" "\n" + "popl %ebp" "\n" + "ret" "\n" + ); + +-asm volatile ( ++asm ( + ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" + HIDE_SYMBOL(ctiVMThrowTrampoline) "\n" + SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" + #if !USE(JIT_STUB_ARGUMENT_VA_LIST) + "movl %esp, %ecx" "\n" +@@ -152,11 +152,11 @@ + "popl %esi" "\n" + "popl %ebp" "\n" + "ret" "\n" + ); + +-asm volatile ( ++asm ( + ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n" + HIDE_SYMBOL(ctiOpThrowNotCaught) "\n" + SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n" + "addl $0x3c, %esp" "\n" + "popl %ebx" "\n" +@@ -177,11 +177,11 @@ + COMPILE_ASSERT(offsetof(struct JITStackFrame, code) % 32 == 0x0, JITStackFrame_maintains_32byte_stack_alignment); + COMPILE_ASSERT(offsetof(struct JITStackFrame, savedRBX) == 0x48, JITStackFrame_stub_argument_space_matches_ctiTrampoline); + COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x90, JITStackFrame_callFrame_offset_matches_ctiTrampoline); + COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x80, JITStackFrame_code_offset_matches_ctiTrampoline); + +-asm volatile ( ++asm ( + ".globl " SYMBOL_STRING(ctiTrampoline) "\n" + HIDE_SYMBOL(ctiTrampoline) "\n" + SYMBOL_STRING(ctiTrampoline) ":" "\n" + "pushq %rbp" "\n" + "movq %rsp, %rbp" "\n" +@@ -204,11 +204,11 @@ + "popq %r12" "\n" + "popq %rbp" "\n" + "ret" "\n" + ); + +-asm volatile ( ++asm ( + ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" + HIDE_SYMBOL(ctiVMThrowTrampoline) "\n" + SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" + "movq %rsp, %rdi" "\n" + "call " SYMBOL_STRING_RELOCATION(cti_vm_throw) "\n" +@@ -220,11 +220,11 @@ + "popq %r12" "\n" + "popq %rbp" "\n" + "ret" "\n" + ); + +-asm volatile ( ++asm ( + ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n" + HIDE_SYMBOL(ctiOpThrowNotCaught) "\n" + SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n" + "addq $0x48, %rsp" "\n" + "popq %rbx" "\n" +@@ -240,11 +240,11 @@ + + #if USE(JIT_STUB_ARGUMENT_VA_LIST) + #error "JIT_STUB_ARGUMENT_VA_LIST not supported on ARMv7." + #endif + +-asm volatile ( ++asm ( + ".text" "\n" + ".align 2" "\n" + ".globl " SYMBOL_STRING(ctiTrampoline) "\n" + HIDE_SYMBOL(ctiTrampoline) "\n" + ".thumb" "\n" +@@ -267,11 +267,11 @@ + "ldr lr, [sp, #0x20]" "\n" + "add sp, sp, #0x3c" "\n" + "bx lr" "\n" + ); + +-asm volatile ( ++asm ( + ".text" "\n" + ".align 2" "\n" + ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" + HIDE_SYMBOL(ctiVMThrowTrampoline) "\n" + ".thumb" "\n" +@@ -285,11 +285,11 @@ + "ldr lr, [sp, #0x20]" "\n" + "add sp, sp, #0x3c" "\n" + "bx lr" "\n" + ); + +-asm volatile ( ++asm ( + ".text" "\n" + ".align 2" "\n" + ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n" + HIDE_SYMBOL(ctiOpThrowNotCaught) "\n" + ".thumb" "\n" +@@ -303,11 +303,11 @@ + "bx lr" "\n" + ); + + #elif COMPILER(GCC) && CPU(ARM_TRADITIONAL) + +-asm volatile ( ++asm ( + ".globl " SYMBOL_STRING(ctiTrampoline) "\n" + HIDE_SYMBOL(ctiTrampoline) "\n" + SYMBOL_STRING(ctiTrampoline) ":" "\n" + "stmdb sp!, {r1-r3}" "\n" + "stmdb sp!, {r4-r8, lr}" "\n" +@@ -321,11 +321,11 @@ + "ldmia sp!, {r4-r8, lr}" "\n" + "add sp, sp, #12" "\n" + "mov pc, lr" "\n" + ); + +-asm volatile ( ++asm ( + ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" + HIDE_SYMBOL(ctiVMThrowTrampoline) "\n" + SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" + "mov r0, sp" "\n" + "bl " SYMBOL_STRING(cti_vm_throw) "\n" +@@ -416,11 +416,11 @@ + // need to change the assembly trampolines below to match. + COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x38, JITStackFrame_callFrame_offset_matches_ctiTrampoline); + COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x30, JITStackFrame_code_offset_matches_ctiTrampoline); + COMPILE_ASSERT(offsetof(struct JITStackFrame, savedEBX) == 0x1c, JITStackFrame_stub_argument_space_matches_ctiTrampoline); + +-asm volatile ( ++asm ( + ".text\n" + ".globl " SYMBOL_STRING(ctiTrampoline) "\n" + HIDE_SYMBOL(ctiTrampoline) "\n" + SYMBOL_STRING(ctiTrampoline) ":" "\n" + "pushl %ebp" "\n" +@@ -438,11 +438,11 @@ + "popl %esi" "\n" + "popl %ebp" "\n" + "ret" "\n" + ); + +-asm volatile ( ++asm ( + ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" + HIDE_SYMBOL(ctiVMThrowTrampoline) "\n" + SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" + #if !USE(JIT_STUB_ARGUMENT_VA_LIST) + "movl %esp, %ecx" "\n" +@@ -454,11 +454,11 @@ + "popl %esi" "\n" + "popl %ebp" "\n" + "ret" "\n" + ); + +-asm volatile ( ++asm ( + ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n" + HIDE_SYMBOL(ctiOpThrowNotCaught) "\n" + SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n" + "addl $0x1c, %esp" "\n" + "popl %ebx" "\n" +@@ -478,11 +478,11 @@ + // need to change the assembly trampolines below to match. + COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x58, JITStackFrame_callFrame_offset_matches_ctiTrampoline); + COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x48, JITStackFrame_code_offset_matches_ctiTrampoline); + COMPILE_ASSERT(offsetof(struct JITStackFrame, savedRBX) == 0x78, JITStackFrame_stub_argument_space_matches_ctiTrampoline); + +-asm volatile ( ++asm ( + ".text\n" + ".globl " SYMBOL_STRING(ctiTrampoline) "\n" + HIDE_SYMBOL(ctiTrampoline) "\n" + SYMBOL_STRING(ctiTrampoline) ":" "\n" + "pushq %rbp" "\n" +@@ -513,11 +513,11 @@ + "popq %r12" "\n" + "popq %rbp" "\n" + "ret" "\n" + ); + +-asm volatile ( ++asm ( + ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" + HIDE_SYMBOL(ctiVMThrowTrampoline) "\n" + SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" + "movq %rsp, %rdi" "\n" + "call " SYMBOL_STRING_RELOCATION(cti_vm_throw) "\n" +@@ -529,11 +529,11 @@ + "popq %r12" "\n" + "popq %rbp" "\n" + "ret" "\n" + ); + +-asm volatile ( ++asm ( + ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n" + HIDE_SYMBOL(ctiOpThrowNotCaught) "\n" + SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n" + "addq $0x78, %rsp" "\n" + "popq %rbx" "\n" +@@ -549,11 +549,11 @@ + + #if USE(JIT_STUB_ARGUMENT_VA_LIST) + #error "JIT_STUB_ARGUMENT_VA_LIST not supported on ARMv7." + #endif + +-asm volatile ( ++asm ( + ".text" "\n" + ".align 2" "\n" + ".globl " SYMBOL_STRING(ctiTrampoline) "\n" + HIDE_SYMBOL(ctiTrampoline) "\n" + ".thumb" "\n" +@@ -576,11 +576,11 @@ + "ldr lr, [sp, #0x20]" "\n" + "add sp, sp, #0x40" "\n" + "bx lr" "\n" + ); + +-asm volatile ( ++asm ( + ".text" "\n" + ".align 2" "\n" + ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" + HIDE_SYMBOL(ctiVMThrowTrampoline) "\n" + ".thumb" "\n" +@@ -594,11 +594,11 @@ + "ldr lr, [sp, #0x20]" "\n" + "add sp, sp, #0x40" "\n" + "bx lr" "\n" + ); + +-asm volatile ( ++asm ( + ".text" "\n" + ".align 2" "\n" + ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n" + HIDE_SYMBOL(ctiOpThrowNotCaught) "\n" + ".thumb" "\n" +@@ -612,11 +612,11 @@ + "bx lr" "\n" + ); + + #elif COMPILER(GCC) && CPU(ARM_TRADITIONAL) + +-asm volatile ( ++asm ( + ".text\n" + ".globl " SYMBOL_STRING(ctiTrampoline) "\n" + HIDE_SYMBOL(ctiTrampoline) "\n" + SYMBOL_STRING(ctiTrampoline) ":" "\n" + "stmdb sp!, {r1-r3}" "\n" +@@ -630,11 +630,11 @@ + "ldmia sp!, {r4-r8, lr}" "\n" + "add sp, sp, #12" "\n" + "mov pc, lr" "\n" + ); + +-asm volatile ( ++asm ( + ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" + HIDE_SYMBOL(ctiVMThrowTrampoline) "\n" + SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" + "mov r0, sp" "\n" + "bl " SYMBOL_STRING_RELOCATION(cti_vm_throw) "\n" +@@ -1022,11 +1022,11 @@ + + #define DEFINE_STUB_FUNCTION(rtype, op) \ + extern "C" { \ + rtype JITStubThunked_##op(STUB_ARGS_DECLARATION); \ + }; \ +- asm volatile ( \ ++ asm ( \ + ".text" "\n" \ + ".align 2" "\n" \ + ".globl " SYMBOL_STRING(cti_##op) "\n" \ + HIDE_SYMBOL(cti_##op) "\n" \ + ".thumb" "\n" \ +@@ -1051,11 +1051,11 @@ + + #define DEFINE_STUB_FUNCTION(rtype, op) \ + extern "C" { \ + rtype JITStubThunked_##op(STUB_ARGS_DECLARATION); \ + }; \ +- asm volatile ( \ ++ asm ( \ + ".globl " SYMBOL_STRING(cti_##op) "\n" \ + HIDE_SYMBOL(cti_##op) "\n" \ + SYMBOL_STRING(cti_##op) ":" "\n" \ + "str lr, [sp, #" STRINGIZE_VALUE_OF(THUNK_RETURN_ADDRESS_OFFSET) "]" "\n" \ + "bl " SYMBOL_STRING(JITStubThunked_##op) "\n" \ diff --git a/qt4-gcc9.patch b/qt4-gcc9.patch new file mode 100644 index 000000000000..28bbcd2d3eae --- /dev/null +++ b/qt4-gcc9.patch @@ -0,0 +1,46 @@ +--- src/corelib/global/qglobal.h 2015-05-07 17:14:48.000000000 +0300 ++++ src/corelib/global/qglobal.h 2019-05-28 20:04:15.689744432 +0300 +@@ -2480,26 +2480,35 @@ + typedef uint Flags; + #define Q_DECLARE_OPERATORS_FOR_FLAGS(Flags) + + #endif /* Q_NO_TYPESAFE_FLAGS */ + +-#if defined(Q_CC_GNU) && !defined(Q_CC_INTEL) && !defined(Q_CC_RVCT) ++#if defined(Q_CC_GNU) && !defined(Q_CC_RVCT) + /* make use of typeof-extension */ + template <typename T> + class QForeachContainer { + public: +- inline QForeachContainer(const T& t) : c(t), brk(0), i(c.begin()), e(c.end()) { } ++ inline QForeachContainer(const T& t) : c(t), i(c.begin()), e(c.end()), control(1) { } + const T c; +- int brk; + typename T::const_iterator i, e; ++ int control; + }; + +-#define Q_FOREACH(variable, container) \ +-for (QForeachContainer<__typeof__(container)> _container_(container); \ +- !_container_.brk && _container_.i != _container_.e; \ +- __extension__ ({ ++_container_.brk; ++_container_.i; })) \ +- for (variable = *_container_.i;; __extension__ ({--_container_.brk; break;})) ++// Explanation of the control word: ++// - it's initialized to 1 ++// - that means both the inner and outer loops start ++// - if there were no breaks, at the end of the inner loop, it's set to 0, which ++// causes it to exit (the inner loop is run exactly once) ++// - at the end of the outer loop, it's inverted, so it becomes 1 again, allowing ++// the outer loop to continue executing ++// - if there was a break inside the inner loop, it will exit with control still ++// set to 1; in that case, the outer loop will invert it to 0 and will exit too ++#define Q_FOREACH(variable, container) \ ++for (QForeachContainer<__typeof__(container)> _container_(container); \ ++ _container_.control && _container_.i != _container_.e; \ ++ ++_container_.i, _container_.control ^= 1) \ ++for (variable = *_container_.i; _container_.control; _container_.control = 0) + + #else + + struct QForeachContainerBase {}; + |