ports/119286: audio/pulseaudio (pulseaudio-0.9.6_4) (linker
error)
Christoph Moench-Tegeder
cmt at burggraben.net
Thu Jan 3 16:50:04 PST 2008
The following reply was made to PR ports/119286; it has been noted by GNATS.
From: Christoph Moench-Tegeder <cmt at burggraben.net>
To: bug-followup at freebsd.org
Cc:
Subject: Re: ports/119286: audio/pulseaudio (pulseaudio-0.9.6_4) (linker error)
Date: Fri, 4 Jan 2008 01:20:00 +0100
Hi,
The linker error is caused by "-Wl,-no-undefined" from src/Makefile.in
which is used when linking shared libraries (as far as I understand,
shared object are allowed to have unresolved symbols). The author of
pulseaudio claims that -no-undefined is used on at least some platforms
(see comment in src/Makefile.am). Below is a patch which just removes
-no-undefined from the linker options, this works for me (FreeBSD 6.3RC2,
i386).
As I were on that, I fixed some other problems, too:
- patch-src_Makefile.am, patch-src_Makefile.in
fixes the afore mentioned linker problem
- patch-src_pulse_introspect.c
There were compiler warnings about redundant redeclarations of memset
in src/pulse/introspect.c. Obviously, string.h was not #include'd.
- patch-src_tests_rtpoll-test.c
The compailer failed complaining about undefined SIGRTMIN and SIGRTMAX.
These are not present in 6-STABLE (see standards/99517), so this
test does nothing if SIGRTMIN is not #define'd.
Additionally, there should be a script or at least an UPDATING
entry explaning the renaming of group 557 (ex realtime, now
pulse-rt) for those upgrading from polypaudio.
The patch below fixes these problems in pulseaudio-0.9.8.
If the mail system garbles it, get it at
http://www.burggraben.net/hacks/audio_pulseaudio.patch.gz
Be aware that I did not run extensive tests with my patches.
diff -Nru pulseaudio.orig/Makefile pulseaudio/Makefile
--- pulseaudio.orig/Makefile 2008-01-01 23:35:54.000000000 +0100
+++ pulseaudio/Makefile 2008-01-03 23:40:25.000000000 +0100
@@ -8,6 +8,7 @@
PORTNAME= pulseaudio
PORTVERSION= 0.9.8
+PORTREVISION= 1
CATEGORIES= audio
MASTER_SITES= http://0pointer.de/lennart/projects/${PORTNAME}/
diff -Nru pulseaudio.orig/files/patch-src_Makefile.am pulseaudio/files/patch-src_Makefile.am
--- pulseaudio.orig/files/patch-src_Makefile.am 1970-01-01 01:00:00.000000000 +0100
+++ pulseaudio/files/patch-src_Makefile.am 2008-01-03 23:38:48.000000000 +0100
@@ -0,0 +1,11 @@
+--- src/Makefile.am.orig 2008-01-03 22:48:43.000000000 +0100
++++ src/Makefile.am 2008-01-03 23:36:58.000000000 +0100
+@@ -64,7 +64,7 @@
+ AM_LDADD = $(PTHREAD_LIBS)
+
+ # Only required on some platforms but defined for all to avoid errors
+-AM_LDFLAGS = -Wl,-no-undefined -ffunction-sections -fdata-sections -Wl,--gc-sections
++AM_LDFLAGS = -ffunction-sections -fdata-sections -Wl,--gc-sections
+
+ if STATIC_BINS
+ BINLDFLAGS = -static
diff -Nru pulseaudio.orig/files/patch-src_Makefile.in pulseaudio/files/patch-src_Makefile.in
--- pulseaudio.orig/files/patch-src_Makefile.in 1970-01-01 01:00:00.000000000 +0100
+++ pulseaudio/files/patch-src_Makefile.in 2008-01-03 23:38:32.000000000 +0100
@@ -0,0 +1,12 @@
+--- src/Makefile.in.orig 2008-01-03 22:52:31.000000000 +0100
++++ src/Makefile.in 2008-01-03 23:37:48.000000000 +0100
+@@ -1657,8 +1657,7 @@
+ AM_LDADD = $(PTHREAD_LIBS)
+
+ # Only required on some platforms but defined for all to avoid errors
+-AM_LDFLAGS = -Wl,-no-undefined -ffunction-sections -fdata-sections \
+- -Wl,--gc-sections $(am__append_1)
++AM_LDFLAGS = -ffunction-sections -fdata-sections -Wl,--gc-sections $(am__append_1)
+ @STATIC_BINS_TRUE at BINLDFLAGS = -static
+ @OS_IS_WIN32_TRUE at WINSOCK_LIBS = -lwsock32 -lws2_32 -lwininet
+ @OS_IS_WIN32_FALSE at PA_THREAD_OBJS = \
diff -Nru pulseaudio.orig/files/patch-src_pulse_introspect.c pulseaudio/files/patch-src_pulse_introspect.c
--- pulseaudio.orig/files/patch-src_pulse_introspect.c 1970-01-01 01:00:00.000000000 +0100
+++ pulseaudio/files/patch-src_pulse_introspect.c 2008-01-03 22:57:12.000000000 +0100
@@ -0,0 +1,11 @@
+--- src/pulse/introspect.c.orig 2008-01-03 22:49:50.000000000 +0100
++++ src/pulse/introspect.c 2008-01-03 22:50:51.000000000 +0100
+@@ -22,6 +22,8 @@
+ USA.
+ ***/
+
++#include <string.h>
++
+ #ifdef HAVE_CONFIG_H
+ #include <config.h>
+ #endif
diff -Nru pulseaudio.orig/files/patch-src_tests_rtpoll-test.c pulseaudio/files/patch-src_tests_rtpoll-test.c
--- pulseaudio.orig/files/patch-src_tests_rtpoll-test.c 1970-01-01 01:00:00.000000000 +0100
+++ pulseaudio/files/patch-src_tests_rtpoll-test.c 2008-01-03 23:12:11.000000000 +0100
@@ -0,0 +1,18 @@
+--- src/tests/rtpoll-test.c.orig 2008-01-03 23:09:05.000000000 +0100
++++ src/tests/rtpoll-test.c 2008-01-03 23:09:32.000000000 +0100
+@@ -45,6 +45,7 @@
+ }
+
+ int main(int argc, char *argv[]) {
++#ifdef SIGRTMIN
+ pa_rtpoll *p;
+ pa_rtpoll_item *i, *w;
+ struct pollfd *pollfd;
+@@ -86,6 +87,7 @@
+ pa_rtpoll_item_free(w);
+
+ pa_rtpoll_free(p);
++#endif /* SIGRTMIN */
+
+ return 0;
+ }
Regards
Christoph
--
Spare Space
More information about the freebsd-gnome
mailing list