summaryrefslogtreecommitdiff
path: root/audio
diff options
context:
space:
mode:
authorMax Khon <fjoe@FreeBSD.org>2004-02-04 21:31:34 +0000
committerMax Khon <fjoe@FreeBSD.org>2004-02-04 21:31:34 +0000
commitb87bef1ad47a7bbf93ed0c5325fa1ab342e7e898 (patch)
tree6ad30ba27a4b80d648d607a1c588b3f46eb090f5 /audio
parent- USE_LIBTOOL (no .la files installed) (diff)
- USE_LIBTOOL (no .la files installed)
- Add patch to preload libstdc++ (LD_PRELOAD no longer needed)
Notes
Notes: svn path=/head/; revision=100002
Diffstat (limited to 'audio')
-rw-r--r--audio/xmms-arts_output/files/patch-audio.c39
-rw-r--r--audio/xmms-arts_output/files/patch-configure10
2 files changed, 49 insertions, 0 deletions
diff --git a/audio/xmms-arts_output/files/patch-audio.c b/audio/xmms-arts_output/files/patch-audio.c
new file mode 100644
index 000000000000..9c64087dbe7f
--- /dev/null
+++ b/audio/xmms-arts_output/files/patch-audio.c
@@ -0,0 +1,39 @@
+--- audio.c.orig Thu Aug 21 14:38:53 2003
++++ audio.c Thu Feb 5 03:27:09 2004
+@@ -10,6 +10,7 @@
+ #include <errno.h>
+ #include <signal.h>
+ #include <pthread.h>
++#include <dlfcn.h>
+
+ static arts_stream_t handle;
+
+@@ -269,6 +270,7 @@
+ int artsxmms_open(AFormat fmt, int rate, int nch)
+ {
+ int err;
++ static int libstdcpp_preloaded = 0;
+
+ pthread_mutex_lock(&artsm);
+ /* Stop the arts initialization from complaining */
+@@ -291,6 +293,20 @@
+
+ going = 1;
+ pthread_mutex_unlock(&artsm);
++
++ /*
++ * This is a hack to prevent unloading of libstdc++
++ * (required by arts libraries) in arts_free() but before
++ * this thread is terminated. libstdc++ registers thread cleanup
++ * handler and xmms crashes when this cleanup function is called
++ * on thread termination.
++ */
++ if (!libstdcpp_preloaded) {
++ if (dlopen("libstdc++.so", RTLD_NOW) != NULL)
++ libstdcpp_preloaded = 1;
++ else
++ fprintf(stderr, "Failed to preload libstdc++.so\n");
++ }
+ return 1;
+ }
+
diff --git a/audio/xmms-arts_output/files/patch-configure b/audio/xmms-arts_output/files/patch-configure
new file mode 100644
index 000000000000..1eb3cd980633
--- /dev/null
+++ b/audio/xmms-arts_output/files/patch-configure
@@ -0,0 +1,10 @@
+--- configure.orig Thu Aug 21 14:43:13 2003
++++ configure Thu Feb 5 03:08:04 2004
+@@ -7820,6 +7820,7 @@
+
+ # This can be used to rebuild libtool when needed
+ LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
++$ac_aux_dir/ltconfig $LIBTOOL_DEPS
+
+ # Always use our own libtool.
+ LIBTOOL='$(SHELL) $(top_builddir)/libtool'