Re: [pulseaudio-discuss] [PATCH] Explicitly link against pulse libraries

2010-10-15 Thread Colin Guthrie
'Twas brillig, and Luke Yelavich at 15/10/10 04:31 did gyre and gimble:
 From: Luke Yelavich luke.yelav...@canonical.com
 
 When building pulseaudio master using gcc 4.5.2 and binutils
 2.20.51 plus latest snapshot from 2010-10-14, ld complained about missing
 symbols. This patch explicitly links more pulseaudio libraries to satisfy
 the linker.

When you say snapshot do you mean master or stable-queue?

I'm a bit puzzled by this as I don't seem to have the problem here (I'm
a point behind on the gcc tho' which could explain it).

As PA already has an internal circular dep you cannot use --no-undefined
or --as-needed so it's already fairly overlinked internally hence why
these issues don't always crop up so commonly.


Indeed doing ldd on a paplay (built as part of pulseaudio and without
no-undefined or as-needed) vs. a normal pulseaudio client e.g. mplayer
(which is compiled with no-undefined and as-needed) you see an
interesting story:

[co...@jimmy ~]$ ldd `which paplay` | grep pulse
libpulse.so.0 = /usr/lib64/libpulse.so.0 (0x7fdf72d8c000)
libpulsecommon-0.9.21.so = /usr/lib64/libpulsecommon-0.9.21.so
(0x7fdf72b3b000)
[co...@jimmy ~]$ ldd `which mplayer` | grep pulse
libpulse.so.0 = /usr/lib64/libpulse.so.0 (0x7f5f55c44000)
libpulsecommon-0.9.21.so = /usr/lib64/libpulsecommon-0.9.21.so
(0x7f5f4f94f000)


Both appear to be quite similar right? But compare them to this:

[co...@jimmy ~]$ objdump -p `which paplay` | grep pulse
  NEEDED   libpulse.so.0
  NEEDED   libpulsecommon-0.9.21.so
  required from libpulse.so.0:
[co...@jimmy ~]$ objdump -p `which mplayer` | grep pulse
  NEEDED   libpulse.so.0
  required from libpulse.so.0:


This clearly shows that paplay is overlinked.

Distros which do not much care about trying to prevent overlinking (I'm
thinking Fedora... but not confirmed personally - just going on what
I've been told in the past) will have to rebuild a whole lot more
packages when libpulsecommon-0.9.21.so changes to 0.9,22+


This is likely not relevant to your patch, but I'm still curious as to
why your problem is cropping up now. I guess it could easily be related
to gcc point release but I wouldn't have expected such an invasive
change would have been made deliberately.

Col


-- 

Colin Guthrie
gmane(at)colin.guthr.ie
http://colin.guthr.ie/

Day Job:
  Tribalogic Limited [http://www.tribalogic.net/]
Open Source:
  Mageia Contributor [http://www.mageia.org/]
  PulseAudio Hacker [http://www.pulseaudio.org/]
  Trac Hacker [http://trac.edgewall.org/]

___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH] Explicitly link against pulse libraries

2010-10-15 Thread Luke Yelavich
On Fri, Oct 15, 2010 at 06:58:31PM EST, Colin Guthrie wrote:
 'Twas brillig, and Luke Yelavich at 15/10/10 04:31 did gyre and gimble:
  From: Luke Yelavich luke.yelav...@canonical.com
  
  When building pulseaudio master using gcc 4.5.2 and binutils
  2.20.51 plus latest snapshot from 2010-10-14, ld complained about missing
  symbols. This patch explicitly links more pulseaudio libraries to satisfy
  the linker.
 
 When you say snapshot do you mean master or stable-queue?

The snapshot I am referring to is the binutils snapshot. The next Ubuntu 
release just started in development, and I am prepping a pulseaudio package for 
it, so I am building against the new toolchain, whigh is gcc 4.5 and the 
snapshot of binutils indicated.

Snip

 Distros which do not much care about trying to prevent overlinking (I'm
 thinking Fedora... but not confirmed personally - just going on what
 I've been told in the past) will have to rebuild a whole lot more
 packages when libpulsecommon-0.9.21.so changes to 0.9,22+
Well, as you can see, I only encountered this with some src/test code. I should 
also note I was using the debian/Ubuntu build process to build packages, which 
would have introduced extra flags, I can show you the compile/lin flags used if 
you would like.

Luke
___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH] Explicitly link against pulse libraries

2010-10-15 Thread Colin Guthrie
'Twas brillig, and Luke Yelavich at 15/10/10 09:03 did gyre and gimble:
 On Fri, Oct 15, 2010 at 06:58:31PM EST, Colin Guthrie wrote:
 'Twas brillig, and Luke Yelavich at 15/10/10 04:31 did gyre and
 gimble:
 From: Luke Yelavich luke.yelav...@canonical.com
 
 When building pulseaudio master using gcc 4.5.2 and binutils 
 2.20.51 plus latest snapshot from 2010-10-14, ld complained about
 missing symbols. This patch explicitly links more pulseaudio
 libraries to satisfy the linker.
 
 When you say snapshot do you mean master or stable-queue?
 
 The snapshot I am referring to is the binutils snapshot. The next
 Ubuntu release just started in development, and I am prepping a
 pulseaudio package for it, so I am building against the new
 toolchain, whigh is gcc 4.5 and the snapshot of binutils indicated.

Ahh right, sorry, I must have misread that as it's quite clear on second
read.

 Snip
 
 Distros which do not much care about trying to prevent overlinking
 (I'm thinking Fedora... but not confirmed personally - just going
 on what I've been told in the past) will have to rebuild a whole
 lot more packages when libpulsecommon-0.9.21.so changes to 0.9,22+
 Well, as you can see, I only encountered this with some src/test
 code. I should also note I was using the debian/Ubuntu build process
 to build packages, which would have introduced extra flags, I can
 show you the compile/lin flags used if you would like.

It might be useful, but then again, I'd expect that if as-needed and
no-undefined were used there would be link failures prior to the tests
being built (it bombs out much earlier for me when I do that).

So the link flags would be interesting to see but unless they are
different flags for the tests than for the main build then I'll be a bit
confused

But then again I make no claims to really understand linking fully :D

Col

-- 

Colin Guthrie
gmane(at)colin.guthr.ie
http://colin.guthr.ie/

Day Job:
  Tribalogic Limited [http://www.tribalogic.net/]
Open Source:
  Mageia Contributor [http://www.mageia.org/]
  PulseAudio Hacker [http://www.pulseaudio.org/]
  Trac Hacker [http://trac.edgewall.org/]

___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH] Explicitly link against pulse libraries

2010-10-15 Thread Luke Yelavich
On Fri, Oct 15, 2010 at 08:10:20PM EST, Colin Guthrie wrote:
 It might be useful, but then again, I'd expect that if as-needed and
 no-undefined were used there would be link failures prior to the tests
 being built (it bombs out much earlier for me when I do that).
 
 So the link flags would be interesting to see but unless they are
 different flags for the tests than for the main build then I'll be a bit
 confused
 
 But then again I make no claims to really understand linking fully :D

Here is a document from Debian explaining whats going on.

http://wiki.debian.org/ToolChain/DSOLinking

Luke
___
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] [PATCH] Explicitly link against pulse libraries

2010-10-14 Thread Luke Yelavich
From: Luke Yelavich luke.yelav...@canonical.com

When building pulseaudio master using gcc 4.5.2 and binutils
2.20.51 plus latest snapshot from 2010-10-14, ld complained about missing
symbols. This patch explicitly links more pulseaudio libraries to satisfy
the linker.

Signed-off-by: Luke Yelavich luke.yelav...@canonical.com
---
 src/Makefile.am |   36 ++--
 1 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index 4061b3c..df268ee 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -356,7 +356,7 @@ endif
 
 mainloop_test_SOURCES = tests/mainloop-test.c
 mainloop_test_CFLAGS = $(AM_CFLAGS)
-mainloop_test_LDADD = $(AM_LDADD) libpulse.la
+mainloop_test_LDADD = $(AM_LDADD) libpulse.la 
libpulsecomm...@pa_majorminormicro@.la
 mainloop_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 thread_mainloop_test_SOURCES = tests/thread-mainloop-test.c
@@ -366,7 +366,7 @@ thread_mainloop_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 utf8_test_SOURCES = tests/utf8-test.c
 utf8_test_CFLAGS = $(AM_CFLAGS)
-utf8_test_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la
+utf8_test_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la libpulse.la
 utf8_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 get_binary_name_test_SOURCES = tests/get-binary-name-test.c
@@ -386,22 +386,22 @@ hook_list_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 memblock_test_SOURCES = tests/memblock-test.c
 memblock_test_CFLAGS = $(AM_CFLAGS)
-memblock_test_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la
+memblock_test_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la libpulse.la
 memblock_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 thread_test_SOURCES = tests/thread-test.c
 thread_test_CFLAGS = $(AM_CFLAGS)
-thread_test_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la
+thread_test_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la libpulse.la
 thread_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 once_test_SOURCES = tests/once-test.c
 once_test_CFLAGS = $(AM_CFLAGS)
-once_test_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la
+once_test_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la libpulse.la
 once_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 flist_test_SOURCES = tests/flist-test.c
 flist_test_CFLAGS = $(AM_CFLAGS)
-flist_test_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la
+flist_test_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la libpulse.la
 flist_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 asyncq_test_SOURCES = tests/asyncq-test.c
@@ -441,7 +441,7 @@ parec_simple_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 strlist_test_SOURCES = tests/strlist-test.c
 strlist_test_CFLAGS = $(AM_CFLAGS)
-strlist_test_LDADD = $(AM_LDADD) $(WINSOCK_LIBS) 
libpulseco...@pa_majorminormicro@.la libpulsecomm...@pa_majorminormicro@.la
+strlist_test_LDADD = $(AM_LDADD) $(WINSOCK_LIBS) 
libpulseco...@pa_majorminormicro@.la libpulsecomm...@pa_majorminormicro@.la 
libpulse.la
 strlist_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 close_test_SOURCES = tests/close-test.c
@@ -451,7 +451,7 @@ close_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 voltest_SOURCES = tests/voltest.c
 voltest_CFLAGS = $(AM_CFLAGS)
-voltest_LDADD = $(AM_LDADD) libpulse.la
+voltest_LDADD = $(AM_LDADD) libpulse.la libpulsecomm...@pa_majorminormicro@.la
 voltest_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 vector_test_SOURCES = tests/vector-test.c
@@ -466,12 +466,12 @@ channelmap_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 cpulimit_test_SOURCES = tests/cpulimit-test.c daemon/cpulimit.c 
daemon/cpulimit.h
 cpulimit_test_CFLAGS = $(AM_CFLAGS)
-cpulimit_test_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la
+cpulimit_test_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la libpulse.la
 cpulimit_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 cpulimit_test2_SOURCES = tests/cpulimit-test.c daemon/cpulimit.c 
daemon/cpulimit.h
 cpulimit_test2_CFLAGS = $(AM_CFLAGS) -DTEST2
-cpulimit_test2_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la
+cpulimit_test2_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la libpulse.la
 cpulimit_test2_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 mainloop_test_glib_SOURCES = $(mainloop_test_SOURCES)
@@ -500,17 +500,17 @@ sig2str_test_CFLAGS = $(AM_CFLAGS)
 sig2str_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 resampler_test_SOURCES = tests/resampler-test.c

[pulseaudio-discuss] [PATCH] Explicitly link against pulse libraries

2010-10-14 Thread Luke Yelavich
From: Luke Yelavich luke.yelav...@canonical.com

When building pulseaudio stable-queue using gcc 4.5.2 and binutils
2.20.51 plus latest snapshot from 2010-10-14, ld complained about missing
symbols. This patch explicitly links more pulseaudio libraries to satisfy
the linker.

Signed-off-by: Luke Yelavich luke.yelav...@canonical.com
---
 src/Makefile.am |   34 +-
 1 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index 8dd5793..b130353 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -370,7 +370,7 @@ endif
 
 mainloop_test_SOURCES = tests/mainloop-test.c
 mainloop_test_CFLAGS = $(AM_CFLAGS)
-mainloop_test_LDADD = $(AM_LDADD) libpulse.la
+mainloop_test_LDADD = $(AM_LDADD) libpulse.la 
libpulsecomm...@pa_majorminormicro@.la
 mainloop_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 thread_mainloop_test_SOURCES = tests/thread-mainloop-test.c
@@ -380,7 +380,7 @@ thread_mainloop_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 utf8_test_SOURCES = tests/utf8-test.c
 utf8_test_CFLAGS = $(AM_CFLAGS)
-utf8_test_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la
+utf8_test_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la libpulse.la
 utf8_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 get_binary_name_test_SOURCES = tests/get-binary-name-test.c
@@ -400,17 +400,17 @@ hook_list_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 memblock_test_SOURCES = tests/memblock-test.c
 memblock_test_CFLAGS = $(AM_CFLAGS)
-memblock_test_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la
+memblock_test_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la libpulse.la
 memblock_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 thread_test_SOURCES = tests/thread-test.c
 thread_test_CFLAGS = $(AM_CFLAGS)
-thread_test_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la
+thread_test_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la libpulse.la
 thread_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 flist_test_SOURCES = tests/flist-test.c
 flist_test_CFLAGS = $(AM_CFLAGS)
-flist_test_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la
+flist_test_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la libpulse.la
 flist_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 asyncq_test_SOURCES = tests/asyncq-test.c
@@ -450,7 +450,7 @@ parec_simple_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 strlist_test_SOURCES = tests/strlist-test.c
 strlist_test_CFLAGS = $(AM_CFLAGS)
-strlist_test_LDADD = $(AM_LDADD) $(WINSOCK_LIBS) 
libpulseco...@pa_majorminormicro@.la libpulsecomm...@pa_majorminormicro@.la
+strlist_test_LDADD = $(AM_LDADD) $(WINSOCK_LIBS) 
libpulseco...@pa_majorminormicro@.la libpulsecomm...@pa_majorminormicro@.la 
libpulse.la
 strlist_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 close_test_SOURCES = tests/close-test.c
@@ -460,7 +460,7 @@ close_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 voltest_SOURCES = tests/voltest.c
 voltest_CFLAGS = $(AM_CFLAGS)
-voltest_LDADD = $(AM_LDADD) libpulse.la
+voltest_LDADD = $(AM_LDADD) libpulse.la libpulsecomm...@pa_majorminormicro@.la
 voltest_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 vector_test_SOURCES = tests/vector-test.c
@@ -475,12 +475,12 @@ channelmap_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 cpulimit_test_SOURCES = tests/cpulimit-test.c daemon/cpulimit.c 
daemon/cpulimit.h
 cpulimit_test_CFLAGS = $(AM_CFLAGS)
-cpulimit_test_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la
+cpulimit_test_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la libpulse.la
 cpulimit_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 cpulimit_test2_SOURCES = tests/cpulimit-test.c daemon/cpulimit.c 
daemon/cpulimit.h
 cpulimit_test2_CFLAGS = $(AM_CFLAGS) -DTEST2
-cpulimit_test2_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la
+cpulimit_test2_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la libpulse.la
 cpulimit_test2_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 mainloop_test_glib_SOURCES = $(mainloop_test_SOURCES)
@@ -509,17 +509,17 @@ sig2str_test_CFLAGS = $(AM_CFLAGS)
 sig2str_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 resampler_test_SOURCES = tests/resampler-test.c
-resampler_test_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la
+resampler_test_LDADD = $(AM_LDADD) libpulseco...@pa_majorminormicro@.la 
libpulsecomm...@pa_majorminormicro@.la libpulse.la
 resampler_test_CFLAGS = $(AM_CFLAGS)
 resampler_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
 
 mix_test_SOURCES =