libnice on PPC64

David Woodhouse dwmw2 at infradead.org
Sat Aug 13 10:53:33 UTC 2011


On Sat, 2011-08-13 at 13:11 +0400, Peter Lemenkov wrote:
> The libnice package constantly fails to pass at least one test (
> ./test-symbols.sh - test for properly exported symbols ) on ppc64. I'm
> sure that the problem is with wrong path to some scripts of binaries
> while executing this test. 

The test is just buggy. Let's look at its output...

symbols for .libs/libnice.so changed
  missing:
    T nice_address_copy_to_sockaddr
    …
extra:
    D nice_address_copy_to_sockaddr

The difference happens because PPC64 has function descriptors, so the
exported symbols end up in the Data section not the Text section. Hence
having a 'D' not a 'T' and not matching what the test expects.

This would "fix" it for ppc64, buit should really be fixed properly.I
think libtool already has autohell magic for working out what a symbol
would look like (which section, whether it has an underscore prefixed,
etc.)... or maybe just run the libnice-symbols list through
's/\(.*\)/void \1(void);/', compile it, and run 'nm' on the output.

--- nice/Makefile.am~	2009-08-14 23:46:12.000000000 +0100
+++ nice/Makefile.am	2011-08-13 11:21:09.000000000 +0100
@@ -39,7 +39,7 @@ test-symbols.sh::
 
 libnice.symbols: libnice.sym Makefile
 	rm -f $@
-	while read s; do echo "T $$s"; done < $< > $@
+	while read s; do echo "D $$s"; done < $< > $@
 
 CLEANFILES += libnice.symbols
 

This bug was introduced into libnice in commit f0666047, allegedly by
Kai Vehmanen <first.surname at nokia.com>. I've added a more sensible email
address for Kai to Cc...

-- 
dwmw2





More information about the ppc mailing list