I'm not convinced that removing the PETSCXXX_DLLEXPORT stuff was a good thing. Besides the obvious issues on Windows, it removes the ability to do proper export control. This is discussed at length in section 2.2:<div>
<br></div><div><a href="http://www.akkadia.org/drepper/dsohowto.pdf#page=17">http://www.akkadia.org/drepper/dsohowto.pdf#page=17</a></div><div><br></div><div>but the tangible benefit is that distro packagers would be happier because it allows more robust handling of dependencies. I realize that it was unused, but the "export" label has real meaning (even if only as documentation at this point) in a library context. Most internal functions can (and should) be static, but there are a few that need more than file scope, but still shouldn't be exported.</div>
<div><br></div><div>I understand that it's one more thing, and perhaps the simplicity is worth it, but I wanted to point out that with those macros, we could have used (gcc/clang/intel) -fvisibility=hidden and defined the macro to __attribute__((visibility("default"))).</div>
<div><br></div><div>Jed</div>