Re: [Fink-devel] Q: convert lib*.a to lib*.dylib
On Apr 10, 2008, at 9:54 PM, Peter O'Gorman wrote: > Ben Abbott wrote: >> >> On Apr 10, 2008, at 7:47 PM, Peter O'Gorman wrote: >>> Ben Abbott wrote: It is has been suggested that the SuiteSparse static libraries be converted to dynamic libraries instead. >>> >>> Why are they static? Are they shared libraries on other platforms? >>> Who >>> suggested the change? >> >> They are originally static because that developers of SuiteSparse >> choose >> to make them so. >> >> Alexander asked if they might be changed. >> Rather than attempt to modify the makefiles directly, I'd like to try to directly convert the static libraries to dynamic ones. My thought is to do something like # Extract the object files from the static library. ar -x libamd.a # Build the dynamic version of the library. gcc -dynamiclib -arch_only `/usr/bin/arch` -o libamd.dylib *.o >>> >>> Change to libamd.0.dylib and you would also want to add - >>> install_name >>> $libdir/libamd.0.dylib. Please use a symlink so that the package >>> can be >>> splitoff correctly into -dev and -shlibs packages. Are the objects >>> in >>> the static archive built with any options? Specifically -fast or >>> -mdynamic-no-pic? If so, this strategy will not work. >> >> Forgive my naivete, but do I have this right? >> >> # Extract the object files from the static library. >> ar -x libamd.a >> # Build the dynamic version of the library. >> gcc -dynamiclib -install_name $libdir/libamd.o.dylib -o libamd. >> 0.dylib *.o >> >> Also can you give me the explicit command needed for symlink part? > > Ok, I guess that you will be doing this as part of the install > phase, so: > > gcc -o %i/lib/libamd.0.dylib -dynamiclib \ > -install_name %p/lib/libamd.0.dylib *.o > > ln -s libamd.0.dylib %i/lib/libamd.dylib > > You will, of course, have to create a -shlibs splitoff in your .info > file. Thanks for the detail. I'm just learning shell scripts, but am hopeful I have what I need to do the job. Ben - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ Fink-devel mailing list Fink-devel@lists.sourceforge.net http://news.gmane.org/gmane.os.apple.fink.devel
Re: [Fink-devel] Updated mplayer (#1885675)
On Wed, Apr 09, 2008 at 09:17:08PM -0400, Alexander Hansen wrote: > Following up: > > I've made a couple of changes on James' tracker item. It appeared to build > OK as far as I could see. > > I'm cc'ing the current mplayer and libdvdnav maintainers Thanks Alexander. Those changes look good to me =) --- James pgpS6l7CXAJvW.pgp Description: PGP signature - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone___ Fink-devel mailing list Fink-devel@lists.sourceforge.net http://news.gmane.org/gmane.os.apple.fink.devel
Re: [Fink-devel] Q: convert lib*.a to lib*.dylib
Ben Abbott wrote: > > On Apr 10, 2008, at 7:47 PM, Peter O'Gorman wrote: >> Ben Abbott wrote: >>> It is has been suggested that the SuiteSparse static libraries be >>> converted to dynamic libraries instead. >> >> Why are they static? Are they shared libraries on other platforms? Who >> suggested the change? > > They are originally static because that developers of SuiteSparse choose > to make them so. > > Alexander asked if they might be changed. > >>> Rather than attempt to modify the makefiles directly, I'd like to >>> try to directly convert the static libraries to dynamic ones. >>> >>> My thought is to do something like >>> >>> # Extract the object files from the static library. >>> ar -x libamd.a >>> # Build the dynamic version of the library. >>> gcc -dynamiclib -arch_only `/usr/bin/arch` -o libamd.dylib *.o >> >> Change to libamd.0.dylib and you would also want to add -install_name >> $libdir/libamd.0.dylib. Please use a symlink so that the package can be >> splitoff correctly into -dev and -shlibs packages. Are the objects in >> the static archive built with any options? Specifically -fast or >> -mdynamic-no-pic? If so, this strategy will not work. > > Forgive my naivete, but do I have this right? > > # Extract the object files from the static library. > ar -x libamd.a > # Build the dynamic version of the library. > gcc -dynamiclib -install_name $libdir/libamd.o.dylib -o libamd.0.dylib *.o > > Also can you give me the explicit command needed for symlink part? Ok, I guess that you will be doing this as part of the install phase, so: gcc -o %i/lib/libamd.0.dylib -dynamiclib \ -install_name %p/lib/libamd.0.dylib *.o ln -s libamd.0.dylib %i/lib/libamd.dylib You will, of course, have to create a -shlibs splitoff in your .info file. None of this will be of any help for octave upgrade issues this time, but it should help for the next time (when you will have to check the library for ABI compatibility and decide if it needs to have a new install_name or a higher compatibility_version etc.). The only reason that you are being asked to do this is that octave takes forever + a few days to build, and having shared libraries would allow octave to remain at the same revision and not be rebuilt even if this one package is updated in an incompatible way. Peter -- Peter O'Gorman http://pogma.com - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ Fink-devel mailing list Fink-devel@lists.sourceforge.net http://news.gmane.org/gmane.os.apple.fink.devel
Re: [Fink-devel] Q: convert lib*.a to lib*.dylib
On Apr 10, 2008, at 7:47 PM, Peter O'Gorman wrote: > Ben Abbott wrote: >> It is has been suggested that the SuiteSparse static libraries be >> converted to dynamic libraries instead. > > Why are they static? Are they shared libraries on other platforms? Who > suggested the change? > >> They aren't static on Debian, at least: I suggested the change because this is a dependency for octave, and as it stands now every update to suitesparse forces an update to octave. That's a bit brutal. - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ Fink-devel mailing list Fink-devel@lists.sourceforge.net http://news.gmane.org/gmane.os.apple.fink.devel
Re: [Fink-devel] Q: convert lib*.a to lib*.dylib
On Apr 10, 2008, at 7:47 PM, Peter O'Gorman wrote: > Ben Abbott wrote: >> It is has been suggested that the SuiteSparse static libraries be >> converted to dynamic libraries instead. > > Why are they static? Are they shared libraries on other platforms? Who > suggested the change? They are originally static because that developers of SuiteSparse choose to make them so. Alexander asked if they might be changed. >> Rather than attempt to modify the makefiles directly, I'd like to >> try to directly convert the static libraries to dynamic ones. >> >> My thought is to do something like >> >> # Extract the object files from the static library. >> ar -x libamd.a >> # Build the dynamic version of the library. >> gcc -dynamiclib -arch_only `/usr/bin/arch` -o libamd.dylib *.o > > Change to libamd.0.dylib and you would also want to add -install_name > $libdir/libamd.0.dylib. Please use a symlink so that the package can > be > splitoff correctly into -dev and -shlibs packages. Are the objects in > the static archive built with any options? Specifically -fast or > -mdynamic-no-pic? If so, this strategy will not work. Forgive my naivete, but do I have this right? # Extract the object files from the static library. ar -x libamd.a # Build the dynamic version of the library. gcc -dynamiclib -install_name $libdir/libamd.o.dylib -o libamd.0.dylib *.o Also can you give me the explicit command needed for symlink part? Regarding "any options", it does not look like there are any. However, I haven't looked through all the detail. If you're so inclined, the tracker item is below http://sourceforge.net/tracker/index.php?func=detail&aid=1923649&group_id=17203&atid=414256 The source code can be downloaded here http://www.cise.ufl.edu/research/sparse/SuiteSparse/ >> I have no practical experience with building libraries, and thought >> it a good idea to inquire here. >> >> Can anyone tell me what options are needed, desired, >> recommended, etc? > > If they static library is fat, ar x will not work. If they are not > fat, > you do not need to add -arch_only. They are not fat. Ben - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ Fink-devel mailing list Fink-devel@lists.sourceforge.net http://news.gmane.org/gmane.os.apple.fink.devel
Re: [Fink-devel] Q: convert lib*.a to lib*.dylib
Ben Abbott wrote: > It is has been suggested that the SuiteSparse static libraries be > converted to dynamic libraries instead. Why are they static? Are they shared libraries on other platforms? Who suggested the change? > > Rather than attempt to modify the makefiles directly, I'd like to > try to directly convert the static libraries to dynamic ones. > > My thought is to do something like > > # Extract the object files from the static library. > ar -x libamd.a > # Build the dynamic version of the library. > gcc -dynamiclib -arch_only `/usr/bin/arch` -o libamd.dylib *.o Change to libamd.0.dylib and you would also want to add -install_name $libdir/libamd.0.dylib. Please use a symlink so that the package can be splitoff correctly into -dev and -shlibs packages. Are the objects in the static archive built with any options? Specifically -fast or -mdynamic-no-pic? If so, this strategy will not work. > > I have no practical experience with building libraries, and thought > it a good idea to inquire here. > > Can anyone tell me what options are needed, desired, > recommended, etc? If they static library is fat, ar x will not work. If they are not fat, you do not need to add -arch_only. Peter -- Peter O'Gorman http://pogma.com - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ Fink-devel mailing list Fink-devel@lists.sourceforge.net http://news.gmane.org/gmane.os.apple.fink.devel
[Fink-devel] Q: convert lib*.a to lib*.dylib
It is has been suggested that the SuiteSparse static libraries be converted to dynamic libraries instead. Rather than attempt to modify the makefiles directly, I'd like to try to directly convert the static libraries to dynamic ones. My thought is to do something like # Extract the object files from the static library. ar -x libamd.a # Build the dynamic version of the library. gcc -dynamiclib -arch_only `/usr/bin/arch` -o libamd.dylib *.o I have no practical experience with building libraries, and thought it a good idea to inquire here. Can anyone tell me what options are needed, desired, recommended, etc? TiA Ben - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ Fink-devel mailing list Fink-devel@lists.sourceforge.net http://news.gmane.org/gmane.os.apple.fink.devel