Csound Csound-dev Csound-tekno Search About

Re: [Cs-dev] universal binary linking to CsoundLib.framework

Date2008-11-03 19:58
Fromvictor
SubjectRe: [Cs-dev] universal binary linking to CsoundLib.framework
I don't think universal binary linking is possible without the
framework being UB itself. But I never tried it.

Victor

----- Original Message ----- 
From: "Jonatan Liljedahl" 
To: "Developer discussions" ; 
"AlgoScore" 
Sent: Monday, November 03, 2008 6:07 PM
Subject: [Cs-dev] universal binary linking to CsoundLib.framework


> I'm having some trouble building a universal package of AlgoScore. The
> thing is, I have every dependency as universals, except csound.
>
> What first happened was that the linking of the universal binary failed
> since there was no code for ppc in csound (I'm building on intel).
> Setting "-undefined dynamic_lookup" in the linker flags fixed this, and
> now it builds and I have a universal binary of algoscore.
>
> But, running it on a PPC works only until it actually tries to use
> csound. Then it crashes with something like:
>
> dyld: lazy symbol binding failed: Symbol not found: _csoundInitialize
>  Referenced from: /Users/user/AlgoScore/src/build/../../algoscore
>  Expected in: dynamic lookup
>
> dyld: Symbol not found: _csoundInitialize
>  Referenced from: /Users/user/AlgoScore/src/build/../../algoscore
>  Expected in: dynamic lookup
>
> Trace/BPT trap
>
> I thought that it would find the symbols in the installed ppc csound
> framework even if the universal binary was linked against an intel
> csound only.
>
> I also tried building algoscore without actually linking to csound, on
> my intel box, with "-undefined dynamic_lookup". It gives the same error,
> even though csound framework *is* installed and with the same arch type.
> So it seems that this linker flags does *not* allow the app to find the
> symbols in an installed framework.
>
> Any suggestions?
>
> -- 
> /Jonatan         [ http://kymatica.com ]
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's 
> challenge
> Build the coolest Linux based applications with Moblin SDK & win great 
> prizes
> Grand prize is a trip for two to an Open Source event anywhere in the 
> world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel 


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2008-11-03 21:22
FromJonatan Liljedahl
SubjectRe: [Cs-dev] universal binary linking to CsoundLib.framework
I was afraid of that...
The trick below might have worked, haven't tried to run the resulting
binary on a PPC machine yet:

get CsoundLib from the other archs package, it's in
/Library/Frameworks/CsoundLib.framework/Versions/Current/CsoundLib.

name the original one CsoundLib.1 and the other one CsoundLib.2

use lipo to create a universal:

$ sudo lipo -create CsoundLib.1 CsoundLib.2 -output CsoundLib

Check that it worked:

$ cd /Library/Frameworks/CsoundLib.framework/Versions/Current/
$ file CsoundLib
CsoundLib: Mach-O universal binary with 2 architectures
CsoundLib (for architecture i386):      Mach-O dynamically linked shared
library i386
CsoundLib (for architecture ppc):       Mach-O dynamically linked shared
library ppc

replace the libsndfile shipped with csound with a link to the universal
one you built yourself:
$ sudo ln -sf /opt/local/lib/libsndfile.1.0.17.dylib
/usr/local/lib/libsndfile.1.0.17.dylib

victor wrote:
> I don't think universal binary linking is possible without the
> framework being UB itself. But I never tried it.
> 
> Victor
> 
> ----- Original Message ----- 
> From: "Jonatan Liljedahl" 
> To: "Developer discussions" ; 
> "AlgoScore" 
> Sent: Monday, November 03, 2008 6:07 PM
> Subject: [Cs-dev] universal binary linking to CsoundLib.framework
> 
> 
>> I'm having some trouble building a universal package of AlgoScore. The
>> thing is, I have every dependency as universals, except csound.
>>
>> What first happened was that the linking of the universal binary failed
>> since there was no code for ppc in csound (I'm building on intel).
>> Setting "-undefined dynamic_lookup" in the linker flags fixed this, and
>> now it builds and I have a universal binary of algoscore.
>>
>> But, running it on a PPC works only until it actually tries to use
>> csound. Then it crashes with something like:
>>
>> dyld: lazy symbol binding failed: Symbol not found: _csoundInitialize
>>  Referenced from: /Users/user/AlgoScore/src/build/../../algoscore
>>  Expected in: dynamic lookup
>>
>> dyld: Symbol not found: _csoundInitialize
>>  Referenced from: /Users/user/AlgoScore/src/build/../../algoscore
>>  Expected in: dynamic lookup
>>
>> Trace/BPT trap
>>
>> I thought that it would find the symbols in the installed ppc csound
>> framework even if the universal binary was linked against an intel
>> csound only.
>>
>> I also tried building algoscore without actually linking to csound, on
>> my intel box, with "-undefined dynamic_lookup". It gives the same error,
>> even though csound framework *is* installed and with the same arch type.
>> So it seems that this linker flags does *not* allow the app to find the
>> symbols in an installed framework.
>>
>> Any suggestions?

-- 
/Jonatan         [ http://kymatica.com ]

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net