Concerning the error

dyld: lazy symbol binding failed: Symbol not found: _EVP_idea_cbc
  Referenced from: /sw/lib/libssl.0.9.7.dylib
  Expected in: /usr/lib/libcrypto.0.9.7.dylib

which has been blamed on gnome-vfs2-ssl:

I have now made a minimal example that shows that this is not the case. The problem is that Tiger's dyld happily searches /usr/lib/libcrypto.0.9.7.dylib when this is loaded instead of /sw/lib/libcrypto.0.9.7.dylib, although the latter is in the dependency list of /sw/lib/libssl.0.9.7.dylib.

Loading /usr/lib/libcrypto.0.9.7.dylib happens whenever ApplicationsServices.framework is loaded, for example from Apple's /usr/X11R6/lib/libfreetype.6.dylib or, in the case of the gome libs, from libgdk-x11-2.0.dylib.

Here is the example:

% cat cryp.c
#include <stdio.h>
#include <openssl/ssl.h>
int main()
{
        printf("Program starts here\n===\n");
        SSL_library_init();
        printf("Finished successfully\n");
}

Now compile this once with

gcc -o goodcryp cryp.c -I/sw/include -L/sw/lib -lssl

and a second time with

gcc -o badcryp -I/sw/include -framework ApplicationServices -L/sw/lib -lssl

The first one runs OK, the second one gives the _EVP_idea_cbc error.

My conclusion is that if we want to maintain our own libssl.*.dylib, we need to link it *statically* against libcrypto. This is very easy, it is in fact already done for the binaries in the openssl097 package.

--
Martin






-------------------------------------------------------
This SF.Net email is sponsored by Yahoo.
Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
Search APIs Find out how you can build Yahoo! directly into your own
Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
_______________________________________________
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to