PROBLEMS 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. * System libcrypto.dylib and libssl.dylib are used by system ld on MacOS X.
  2. [NOTE: This is currently undergoing tests, and may be removed soon]
  3. This is really a misfeature in ld, which seems to look for .dylib libraries
  4. along the whole library path before it bothers looking for .a libraries. This
  5. means that -L switches won't matter unless OpenSSL is built with shared
  6. library support.
  7. The workaround may be to change the following lines in apps/Makefile.ssl and
  8. test/Makefile.ssl:
  9. LIBCRYPTO=-L.. -lcrypto
  10. LIBSSL=-L.. -lssl
  11. to:
  12. LIBCRYPTO=../libcrypto.a
  13. LIBSSL=../libssl.a
  14. It's possible that something similar is needed for shared library support
  15. as well. That hasn't been well tested yet.
  16. Another solution that many seem to recommend is to move the libraries
  17. /usr/lib/libcrypto.0.9.dylib, /usr/lib/libssl.0.9.dylib to a different
  18. directory, build and install OpenSSL and anything that depends on your
  19. build, then move libcrypto.0.9.dylib and libssl.0.9.dylib back to their
  20. original places. Note that the version numbers on those two libraries
  21. may differ on your machine.
  22. As long as Apple doesn't fix the problem with ld, this problem building
  23. OpenSSL will remain as is.
  24. * Parallell make leads to errors
  25. While running tests, running a parallell make is a bad idea. Many test
  26. scripts use the same name for output and input files, which means different
  27. will interfere with each other and lead to test failure.
  28. The solution is simple for now: don't run parallell make when testing.
  29. * Bugs in gcc 3.0 triggered
  30. According to a problem report, there are bugs in gcc 3.0 that are
  31. triggered by some of the code in OpenSSL, more specifically in
  32. PEM_get_EVP_CIPHER_INFO(). The triggering code is the following:
  33. header+=11;
  34. if (*header != '4') return(0); header++;
  35. if (*header != ',') return(0); header++;
  36. What happens is that gcc might optimize a little too agressively, and
  37. you end up with an extra incrementation when *header != '4'.
  38. We recommend that you upgrade gcc to as high a 3.x version as you can.