path: root/mkspecs
diff options
authorThiago Macieira <>2016-01-29 13:41:38 -0800
committerJani Heikkinen <>2016-02-02 19:23:36 +0000
commit3726c46735edb23ad37af818ff7d52d661ec87e7 (patch)
tree18915d79a6549e30e72565660396a50b2bb0b49a /mkspecs
parent46c73be4710a6aa1be84a19151f73d87413a52b4 (diff)
Work around Clang < 3.7 integrated assembler bug PC-relative relocs
The qversiontagging.h inline assembly expands to: .long qt_version_tag@GOTPCREL Which, with GCC, Clang >= 3.7 and with the option -no-integrated-as in previous versions, produces the proper relocation (a R_X86_64_GOTPCREL). With Clang < 3.7, it instead produces a R_X86_64_32, which is unsuitable for use in shared libraries: 32-bit displacement is insufficiently wide and would produce linker errors like obj/qftp.o: requires dynamic R_X86_64_32 reloc against 'qt_version_tag' which may overflow at runtime; recompile with -fPIC Instead, force a 64-bit relocation (an R_X86_64_GOT64), which like the 32-bit version is simply an offset into the GOT of where the address of the symbol is stored. Task-number: QTBUG-50749 Change-Id: I7a9e11d7b64a4cc78e24ffff142e039c172b802c Reviewed-by: Simon Hausmann <>
Diffstat (limited to 'mkspecs')
0 files changed, 0 insertions, 0 deletions