summaryrefslogtreecommitdiffstats
path: root/main/cowdancer/cowdancer-no-vsym.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/cowdancer/cowdancer-no-vsym.patch')
-rw-r--r--main/cowdancer/cowdancer-no-vsym.patch33
1 files changed, 33 insertions, 0 deletions
diff --git a/main/cowdancer/cowdancer-no-vsym.patch b/main/cowdancer/cowdancer-no-vsym.patch
new file mode 100644
index 000000000..b244fc930
--- /dev/null
+++ b/main/cowdancer/cowdancer-no-vsym.patch
@@ -0,0 +1,33 @@
+--- cowdancer-0.63.orig/cowdancer.c
++++ cowdancer-0.63/cowdancer.c
+@@ -174,29 +174,7 @@
+ origlibc_fopen = dlsym(RTLD_NEXT, "fopen64");
+ origlibc_fopen64 = dlsym(RTLD_NEXT, "fopen64");
+ dlerror();
+- if (!(origlibc_chown = dlvsym(RTLD_NEXT, "chown", "GLIBC_2.1")))
+- {
+- /* I should really check dlerror, but due to a possible bug in glibc,
+- dlerror doesn't seem to work at all.
+- */
+- const char* d=dlerror();
+- if(!d)
+- {
+- debug_cowdancer("dlerror does not return anything, chown returned NULL but OK");
+- /* success */
+- }
+- else
+- {
+- debug_cowdancer(d);
+- }
+-
+-
+- /* fallback to loading unversioned symbol doing it anyway
+- since glibc does not seem to set dlerror on dlsym failure.
+- */
+- origlibc_chown = dlsym(RTLD_NEXT, "chown");
+-
+- }
++ origlibc_chown = dlsym(RTLD_NEXT, "chown");
+ origlibc_fchown = dlsym(RTLD_NEXT, "fchown");
+ origlibc_lchown = dlsym(RTLD_NEXT, "lchown");
+ origlibc_chmod = dlsym(RTLD_NEXT, "chmod");