summarylogtreecommitdiffstats
path: root/qt5_std_fun_forwarder.S
diff options
context:
space:
mode:
authorKevin Brodsky2019-03-10 15:04:06 +0000
committerKevin Brodsky2019-03-10 15:08:51 +0000
commit24ac2aeae112f70b7d2dd10d0c73a1cb02711305 (patch)
treec3fbdf6bb3e0e0fe862b70e9a9b47f5ff9067da3 /qt5_std_fun_forwarder.S
parent18fe307797bb513489ab1fa8272506c69f3ca836 (diff)
downloadaur-24ac2aeae112f70b7d2dd10d0c73a1cb02711305.tar.gz
updpkg: 0.93.1 + cleanup + hack
I had the unpleasant surprise to find that something changed in the Qt5 libraries shipped in 0.93.1, in such a way that they're not quite compatible with the system ones on Arch. Fortunately I found a way around that, which is frankly horrifying, but as long as you don't look at it it's probably alright! On the plus side, I've made some cleanups: - Drop the 32-bit package (like in xnviewmp). - Drop the trash workaround, it's fixed in 0.93.1. - No need to special-case the "styles" folder any more, since it's now shipped as well.
Diffstat (limited to 'qt5_std_fun_forwarder.S')
-rw-r--r--qt5_std_fun_forwarder.S14
1 files changed, 14 insertions, 0 deletions
diff --git a/qt5_std_fun_forwarder.S b/qt5_std_fun_forwarder.S
new file mode 100644
index 000000000000..b0e198b8b4f0
--- /dev/null
+++ b/qt5_std_fun_forwarder.S
@@ -0,0 +1,14 @@
+/*
+ * Define a function `name` in the Qt_5 version node (`name@Qt_5`), implemented
+ * by calling the corresponding unversioned function `name` (which the linker
+ * will resolve to libstdc++'s implementation).
+ */
+#define DEFINE_QT5_FORWARDER(name) \
+ .symver local_##name, name##@Qt_5; \
+ .global local_##name; \
+ local_##name: \
+ jmp name@PLT
+
+DEFINE_QT5_FORWARDER(_ZNSt20bad_array_new_lengthD1Ev)
+DEFINE_QT5_FORWARDER(_ZTVSt20bad_array_new_length)
+DEFINE_QT5_FORWARDER(_ZTISt20bad_array_new_length)