Re: [Fink-devel] [Fink-users] xmms-coreaudio 1.0-3 Plugin Not Showing up in xmms 1.2.10-4
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
Peter O'Gorman <[EMAIL PROTECTED]> said: > 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. 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:( dan -- Daniel Macks [EMAIL PROTECTED] http://www.netspace.org/~dmacks - 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Re: [Fink-devel] [Fink-users] xmms-coreaudio 1.0-3 Plugin Not Showing up in xmms 1.2.10-4
Robert T Wyatt wrote: [] > While these messages may not have been from the same binary, they can be > generated from the same binary as I get the identical output > (leopard/intel/MBP after today's updates): > > 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. I suspect this because of nmedit's close relationship with /usr/bin/strip, and that one is broken on Leopard, as the cadabra maintainer can witness. I have filed a bug about strip at Apple's bugreporter. (The bug is that cadabra works while not stripped, but the stripped binary gives a bus error). I would also try to make a small example with the nmedit bug, but I don't know enough about dlopen and friends to construct such an example. I am CCing this to fink-devel; maybe someone there knows about this problem or has an idea how to further hunt this down. A workaround would be to patch xmms-coreaudio so that it does not execute that nmedit command. -- 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