Re: [Fink-devel] [Fink-users] xmms-coreaudio 1.0-3 Plugin Not Showing up in xmms 1.2.10-4

2007-12-12 Thread Peter O'Gorman
Daniel E. Macks wrote:

 
 Would be great if someone could file a radar for this...I'm sure it's
 not the only package that's affected. I'm not Leopardified:(

Yeah, I just reproduced, should be fairly trivial to come up with a test
case for this. I'll volunteer to file the radar.

ld -exported_symbols_list keeps the N_EXT bit set for the symbol, nmedit
does not. In both cases dyld should be able to figure it out, seems that
it can not on 10.5. Interesting...

Peter
-- 
Peter O'Gorman
http://pogma.com

-
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
___
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.devel


Re: [Fink-devel] [Fink-users] xmms-coreaudio 1.0-3 Plugin Not Showing up in xmms 1.2.10-4

2007-12-08 Thread Peter O'Gorman
On Sat, Dec 08, 2007 at 05:58:46AM +0100, Jean-François Mertens wrote:

 On 08 Dec 2007, at 04:11, Peter O'Gorman wrote:

 I have no idea, sorry.

 Too bad - would have hoped there was some documentation
 or other specification out there, that I was among the few to ignore...
 But if even you don't know, it means we're really all in a black box ...

There is some documentation, e.g.
http://developer.apple.com/documentation/DeveloperTools/Conceptual/MachOTopics/index.html

But the last time I looked at this kind of thing in any depth was
around Mac OS X 10.2.

By the way, linkers and loaders is an excellent book and is available
online at: http://www.iecc.com/linker but it is not really that
relevant to mach-o, still I think everyone should read it :-)

Peter



-
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
___
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.devel


Re: [Fink-devel] [Fink-users] xmms-coreaudio 1.0-3 Plugin Not Showing up in xmms 1.2.10-4

2007-12-07 Thread Martin Costabel
Peter O'Gorman wrote:
[]
 At least you know the workaround now.

I checked in xmms-coreaudio-1.0-4 that uses this workaround.
Should now work on Leopard.

-- 
artin


-
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
___
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.devel


Re: [Fink-devel] [Fink-users] xmms-coreaudio 1.0-3 Plugin Not Showing up in xmms 1.2.10-4

2007-12-07 Thread Martin Costabel
Peter O'Gorman wrote:
[]
 Change the sed to match ${_S_}nmedit instead of ~nmedit and it should
 have some effect on the link line.

I see, the ${_S_} is a line feed.

 The symbols that are private extern should still be available to all the
 objects in the library itself, so returning the address of osx_about
 should work.

Indeed, this works. The symbols are marked private extern as in the 
previous version, but now there is no more undefined symbol error, and 
the plugin is loaded.

Is this a bug in nmedit, or had it been working as expected?

-- 
Martin


-
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
___
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.devel


Re: [Fink-devel] [Fink-users] xmms-coreaudio 1.0-3 Plugin Not Showing up in xmms 1.2.10-4

2007-12-07 Thread Peter O'Gorman
Martin Costabel wrote:
 Peter O'Gorman wrote:
 []
 Change the sed to match ${_S_}nmedit instead of ~nmedit and it should
 have some effect on the link line.
 
 I see, the ${_S_} is a line feed.
 
 The symbols that are private extern should still be available to all the
 objects in the library itself, so returning the address of osx_about
 should work.
 
 Indeed, this works. The symbols are marked private extern as in the
 previous version, but now there is no more undefined symbol error, and
 the plugin is loaded.
 
 Is this a bug in nmedit, or had it been working as expected?
 

Bug in nmedit, I think :(

At least you know the workaround now.

Peter
-- 
Peter O'Gorman
http://pogma.com

-
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
___
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.devel


Re: [Fink-devel] [Fink-users] xmms-coreaudio 1.0-3 Plugin Not Showing up in xmms 1.2.10-4

2007-12-07 Thread Peter O'Gorman
Sean wrote:
 Sadly, the saga isn't over. I now have 1.0-4 and it installs and
 appears in the preferences as expected. When I try to play a music
 file, however, it crashes while in the coreaudio library.
 
 Crash log is attached.
 
 Sean
 
 On Dec 7, 2007 12:28 AM, Martin Costabel [EMAIL PROTECTED] wrote:
 Peter O'Gorman wrote:
 []
 At least you know the workaround now.
 I checked in xmms-coreaudio-1.0-4 that uses this workaround.
 Should now work on Leopard.

 --
 artin



Perhaps this would help?

http://ftp.netbsd.org/pub/NetBSD/NetBSD-current/pkgsrc/audio/xmms-osx/patches/patch-aa

Peter
-- 
Peter O'Gorman
http://pogma.com

-
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
___
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.devel


Re: [Fink-devel] [Fink-users] xmms-coreaudio 1.0-3 Plugin Not Showing up in xmms 1.2.10-4

2007-12-07 Thread Peter O'Gorman
Jean-François Mertens wrote:
 Peter,
 
 On 10.4, I get now
 # nm -m /sw/lib/xmms/Output/libOSX.so|fgrep _osx_about
 1114 (__TEXT,__text) non-external (was a private external) _osx_about
 
 whereas before the parenthesis (was a..)  wasn't there.
 
 It seems to launch correctly , just as before, in  the sense that I can
 push
 on most buttons etc w/o having a crash (don't think to have any files to
 actually play).
 Only a warning on the terminal :
 
 ** WARNING **: oss_set_volume(): Failed to open mixer device
 (/dev/mixer): No such file or directory
 
 which I didn't see before _ but possibly I touched less buttons before :)
 
 Questions:


I have no idea, sorry.

 Any pointers to documentation ?

/usr/include/mach-o/nlist.h
and the cctools sources:
http://www.opensource.apple.com/darwinsource/10.5/cctools-667.3/misc/nm.c
The dyld sources:
http://www.opensource.apple.com/darwinsource/10.5/dyld-95.3/
and the ld64 sources:
http://www.opensource.apple.com/darwinsource/10.5/ld64-77/

Yeah, I know that sources and headers do not constitute documentation :(

Peter
-- 
Peter O'Gorman
http://pogma.com

-
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
___
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.devel


Re: [Fink-devel] [Fink-users] xmms-coreaudio 1.0-3 Plugin Not Showing up in xmms 1.2.10-4

2007-12-07 Thread Jean-François Mertens
Peter,

On 10.4, I get now
# nm -m /sw/lib/xmms/Output/libOSX.so|fgrep _osx_about
1114 (__TEXT,__text) non-external (was a private external)  
_osx_about

whereas before the parenthesis (was a..)  wasn't there.

It seems to launch correctly , just as before, in  the sense that I  
can push
on most buttons etc w/o having a crash (don't think to have any files to
actually play).
Only a warning on the terminal :

** WARNING **: oss_set_volume(): Failed to open mixer device (/dev/ 
mixer): No such file or directory

which I didn't see before _ but possibly I touched less buttons  
before :)

Questions:
1) what's the point of keeping the history of symbols in a lib (was  
a...) ?
2) are there in effect, among the defined symbols, 4 categories,
_ external , non-external , private external , and non-external (was  
a private external) ?
3) Does nm -m correctly reflect each of those 4 _ consistently across  
10.4 and 10.5 _,
  and are those categories sufficient to determine how the symbol  
behaves under dyld ?

The questions arise obviously because before your patch to strip via  
ld rather than via nmedit,
I had exactly the same output from the above command as people had on  
10.5, yet
dyld appeared to behave differently..

Any pointers to documentation ?

Jean-Francois

-
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
___
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.devel


Re: [Fink-devel] [Fink-users] xmms-coreaudio 1.0-3 Plugin Not Showing up in xmms 1.2.10-4

2007-12-07 Thread Jean-François Mertens

On 08 Dec 2007, at 04:11, Peter O'Gorman wrote:

 I have no idea, sorry.

Too bad - would have hoped there was some documentation
or other specification out there, that I was among the few to ignore...
But if even you don't know, it means we're really all in a black box ...

 Any pointers to documentation ?

 /usr/include/mach-o/nlist.h
 and the cctools sources:
 http://www.opensource.apple.com/darwinsource/10.5/cctools-667.3/ 
 misc/nm.c
 The dyld sources:
 http://www.opensource.apple.com/darwinsource/10.5/dyld-95.3/
 and the ld64 sources:
 http://www.opensource.apple.com/darwinsource/10.5/ld64-77/

Thanks a lot for the pointers !

JF

 Yeah, I know that sources and headers do not constitute  
 documentation :(

-
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
___
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.devel


Re: [Fink-devel] [Fink-users] xmms-coreaudio 1.0-3 Plugin Not Showing up in xmms 1.2.10-4

2007-12-07 Thread Sean
Sadly, the saga isn't over. I now have 1.0-4 and it installs and
appears in the preferences as expected. When I try to play a music
file, however, it crashes while in the coreaudio library.

Crash log is attached.

Sean

On Dec 7, 2007 12:28 AM, Martin Costabel [EMAIL PROTECTED] wrote:
 Peter O'Gorman wrote:
 []
  At least you know the workaround now.

 I checked in xmms-coreaudio-1.0-4 that uses this workaround.
 Should now work on Leopard.

 --
 artin




xmms_2007-12-07-122519_Sean-iMac1.crash
Description: Binary data
-
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php___
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.devel

Re: [Fink-devel] [Fink-users] xmms-coreaudio 1.0-3 Plugin Not Showing up in xmms 1.2.10-4

2007-12-06 Thread Martin Costabel
Peter O'Gorman wrote:
[]
 So the symbol is still there on 10.5, but is private extern? That is,
 indeed, what nmedit is supposed to do. There are other issues with
 nmedit on Leopard (it refuses to strip global coalesced symbols -
 whatever they are) that mean that I will have to patch libtool.

The nmedit command leaves only one exported symbol, get_oplugin_info. 
This, when called from xmms after loading the plugin via dlopen(), would 
return a structure osx_op, which has osx_about as one of its members. At 
the call of get_oplugin_info(), there appears the undefined symbol error.

For all other plugins, this works, but they are built from the xmms 
package, and this has the old libtool and does not use nmedit. For these 
plugins, the corresponding *_op and *_about symbols are extern. Only the 
libOSX.so plugin is built separately with the xmms-coreaudio package and 
uses nmedit to turn them into private externs.

 I'll try to get around to building xmms.
 
 In the meantime, does something like this work for you in a patchscript
 (sed script is all on one line)?
 
 sed -e [EMAIL PROTECTED]@ -exported_symbols_list
 \$output_objdir/\${libname}-symbols.expsym\'@g  configure  configure.new
 mv configure.new configure

This doesn't match anything in configure. In fact, there are lines with 
nmedit in them, but they have a format that I don't understand at all, like:

module_expsym_cmds_GCJ='sed -e s,#.*,, -e s,^[]*,, -e 
s,^\(..*\),_,  $export_symbols  
$output_objdir/${libname}-symbols.expsym${_S_}$CC -bundle $archargs 
$allow_undefined_flag  -o $lib $libobjs 
$deplibs$compiler_flags${_S_}nmedit -s 
$output_objdir/${libname}-symbols.expsym ${lib}'

This is all one line and there is no space in front of nmedit. I don't 
know how this is transformed into three separate command lines later on, 
but it is.

-- 
Martin



-
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
___
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.devel


Re: [Fink-devel] [Fink-users] xmms-coreaudio 1.0-3 Plugin Not Showing up in xmms 1.2.10-4

2007-12-06 Thread Peter O'Gorman
Martin Costabel wrote:
 Jean-François Mertens wrote:
 []
 Do not understand fully this argument.
 I have exactly the same output from the above 'nm -m' command on 10.4;
 so apparently _ up to what is visible from this output _ the result
 of the nmedit command is the same on 10.4 and 10.5...
 (that is what made me ask rather about possible differences in ld).
 
 If I understand correctly what nmedit -s is supposed to do, it does two 
 things, one visible and the other one invisible (except when it leads to 
 crashes):
 
 The visible part is that is transforms external symbols into private 
 externals, thus rendering them inaccessible from the outside.
 
 The invisible part is that it makes sure that other parts of the library 
 that need this symbol still have access to it. And this is where I 
 suspect Leopard's nmedit fails. But I don't know how to test this 
 hypothesis.
 

So the symbol is still there on 10.5, but is private extern? That is,
indeed, what nmedit is supposed to do. There are other issues with
nmedit on Leopard (it refuses to strip global coalesced symbols -
whatever they are) that mean that I will have to patch libtool.

I'll try to get around to building xmms.

In the meantime, does something like this work for you in a patchscript
(sed script is all on one line)?

sed -e [EMAIL PROTECTED]@ -exported_symbols_list
\$output_objdir/\${libname}-symbols.expsym\'@g  configure  configure.new
mv configure.new configure

Peter
-- 
Peter O'Gorman
http://pogma.com

-
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
___
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.devel


Re: [Fink-devel] [Fink-users] xmms-coreaudio 1.0-3 Plugin Not Showing up in xmms 1.2.10-4

2007-12-06 Thread Peter O'Gorman
Martin Costabel wrote:
 Peter O'Gorman wrote:
 []
 So the symbol is still there on 10.5, but is private extern? That is,
 indeed, what nmedit is supposed to do. There are other issues with
 nmedit on Leopard (it refuses to strip global coalesced symbols -
 whatever they are) that mean that I will have to patch libtool.
 
 The nmedit command leaves only one exported symbol, get_oplugin_info.
 This, when called from xmms after loading the plugin via dlopen(), would
 return a structure osx_op, which has osx_about as one of its members. At
 the call of get_oplugin_info(), there appears the undefined symbol error.
 
 For all other plugins, this works, but they are built from the xmms
 package, and this has the old libtool and does not use nmedit. For these
 plugins, the corresponding *_op and *_about symbols are extern. Only the
 libOSX.so plugin is built separately with the xmms-coreaudio package and
 uses nmedit to turn them into private externs.
 
 I'll try to get around to building xmms.

 In the meantime, does something like this work for you in a patchscript
 (sed script is all on one line)?

 sed -e [EMAIL PROTECTED]@ -exported_symbols_list
 \$output_objdir/\${libname}-symbols.expsym\'@g  configure 
 configure.new
 mv configure.new configure
 
 This doesn't match anything in configure. In fact, there are lines with
 nmedit in them, but they have a format that I don't understand at all,
 like:
 
 module_expsym_cmds_GCJ='sed -e s,#.*,, -e s,^[]*,, -e
 s,^\(..*\),_,  $export_symbols 
 $output_objdir/${libname}-symbols.expsym${_S_}$CC -bundle $archargs
 $allow_undefined_flag  -o $lib $libobjs
 $deplibs$compiler_flags${_S_}nmedit -s
 $output_objdir/${libname}-symbols.expsym ${lib}'
 
 This is all one line and there is no space in front of nmedit. I don't
 know how this is transformed into three separate command lines later on,
 but it is.

Ah, ok. configure was built with apple's version of gnu libtool on tiger
or panther.

Change the sed to match ${_S_}nmedit instead of ~nmedit and it should
have some effect on the link line.

The symbols that are private extern should still be available to all the
objects in the library itself, so returning the address of osx_about
should work.

Peter
-- 
Peter O'Gorman
http://pogma.com

-
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
___
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.devel


Re: [Fink-devel] [Fink-users] xmms-coreaudio 1.0-3 Plugin Not Showing up in xmms 1.2.10-4

2007-12-05 Thread Martin Costabel
Jean-François Mertens wrote:
[]
 Do not understand fully this argument.
 I have exactly the same output from the above 'nm -m' command on 10.4;
 so apparently _ up to what is visible from this output _ the result
 of the nmedit command is the same on 10.4 and 10.5...
 (that is what made me ask rather about possible differences in ld).

If I understand correctly what nmedit -s is supposed to do, it does two 
things, one visible and the other one invisible (except when it leads to 
crashes):

The visible part is that is transforms external symbols into private 
externals, thus rendering them inaccessible from the outside.

The invisible part is that it makes sure that other parts of the library 
that need this symbol still have access to it. And this is where I 
suspect Leopard's nmedit fails. But I don't know how to test this 
hypothesis.

-- 
Martin




-
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
___
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.devel


Re: [Fink-devel] [Fink-users] xmms-coreaudio 1.0-3 Plugin Not Showing up in xmms 1.2.10-4

2007-12-05 Thread Jean-François Mertens

On 06 Dec 2007, at 00:11, Martin Costabel wrote:

 Robert T Wyatt wrote:
 []
 bash-3.2$ xmms
 dlopen(/sw/lib/xmms/Output/libOSX.so, 2): Symbol not found:  
 _osx_about
Referenced from: /sw/lib/xmms/Output/libOSX.so
Expected in: flat namespace

 bash-3.2$ nm -m /sw/lib/xmms/Output/libOSX.so|fgrep _osx_about
 1090 (__TEXT,__text) non-external _osx_about

 Yes, I am seeing this now too. After looking some more, I see now what
 is different for the libOSX.so plugin with respect to the other  
 plugins,
 for example libOSS.so. The difference is that xmms-coreaudio uses a
 newer libtool version, 1.5 instead of 1.4.3, and the newer version is
 more sophisticated, which is bad in this case:

 The newer libtool produces a command

   nmedit -s .libs/libOSX-symbols.expsym .libs/libOSX.so

 which strips libOSX.so and transforms all but one external symbol  
 into
 private externals. Normally this should work, because private  
 externals
 should be accessible internally in the module, but it doesn't in  
 this case.

 My educated guess is that this is a bug in Leopard's nmedit.

Do not understand fully this argument.
I have exactly the same output from the above 'nm -m' command on 10.4;
so apparently _ up to what is visible from this output _ the result
of the nmedit command is the same on 10.4 and 10.5...
(that is what made me ask rather about possible differences in ld).

Jean-Francois

-
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
___
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.devel