[petsc-dev] clash of --download-xxx with something in /usr/include /usr/local/include
Barry Smith
bsmith at mcs.anl.gov
Wed Jan 27 23:45:41 CST 2016
> On Jan 27, 2016, at 11:32 PM, Jed Brown <jed at jedbrown.org> wrote:
>
> Barry Smith <bsmith at mcs.anl.gov> writes:
>> I am just suggesting compile a file with #include <Hd5xxx.h> with no additional search paths (so it only checks the default locations) and if the compile succeeds we know there is an install of h5d that could cause problems.
>
> Once you detect that such a version exists, what are you going to do
> about it?
>
> A typical situation is that /usr/lib/libhdf5.so is a non-parallel build
> while some other location contains a libhdf5.so built to use a
> particular MPI implementation. Those versions are fundamentally
> different, but the system might use /usr/lib/libhdf5.so for lots of
> other things and replacing it with the MPI version is not viable. If
> you alert the user, their response is likely "Yes, I know it's
> there. Now do the right thing." If you're capable of doing that, why
> not just do it without bothering the user?
If the other package (i.e. trilinos) is incorrectly looking in the system location for the hdf5 include files before my installed location* (because somebody, as Satish said, got a -I/usr/include where it doesn't belong). Then I don't think I am capable of doing the right thing period! Hence I would stop and tell the person they either have to remove those files or they need to use them and not use --download-xxx period.
Thus I propose if -download-hd5 is used and --download-trilinos we first check for system hdf5 and stop with an error if there are any. Objections?
Barry
*This is not speculation, this is what wasted my time debugging this afternoon.
More information about the petsc-dev
mailing list