Homebrew/homebrew — pull request #27788 by mcg1969 (2014-03-22 20:46:19+00:00)
Title: dotwrp.rb: moved to an updated "dotwrp" fork

This recipe switches to my fork of "dotwrp". I've updated dotwrp as follows:

* Added all of the BLAS routines affected by the F2C/GNU Fortran incompatibility issue.
* Converted the single source file from f90 to c for more flexibility.
* Given all of the functions an ``__attribute__((visibility ("hidden")))`` label.

This last point merits some explanation. This recipe is built as a static library. With the previous version of dotwrp, every function created was exported as an external symbol, which would then appear as an external symbol in any project that used the code. This was causing conflicts in certain projects.

For example, Octave works best *without* this shim code. But it also depends on the ``qrupdate`` library, which as of this writing depends on ``dotwrp``. Octave ends up picking up the BLAS replacements when ``qrupdate`` is linked in---but it wasn't expecting them, because it wasn't built that way.

By making the symbols hidden, each library can decide for itself whether to use it, without causing conflicts with upstream projects that link multiple libraries together.

To be honest, I've been submitting a lot of pull requests lately devoted to *removing* the ``dotwrp`` dependency. But just in case people are determined to keep it in place, or use it in future projects, this new version will at least be safer.