Re: [petsc-dev] Fwd: [petsc-users] cannot find 'libz.a' when configuring
On Thu, 11 Apr 2013, Satish Balay wrote:
We have had this same discussion a million times, and we always eventually get to the same answer and forget. Do we need our own error message for petsc-dev?
We cannot possibly guess everything that can go wrong. What we need is a system where the user can specify what he actually wants and we check it. So, zlib and everything else are optional dependencies for hdf5. If something is not specified, it fails, and the user goes back and specifies the right thing.
Sure - but specify how? specify everything with --with-hdf5-lib,--with-hdf5-include options?
Or somehow he knows that he has to specify --with-zlib-include/-with-zlib-lib options?
This. It would be nice if HDF5 would tell us about its dependencies, but if it does not, then the user has to, and this is our system (packages).
So we would start adding zlib.py, szip.py and manymore [and support --download-zlib --download-szip]. And if user gets the error:
--with-hdf5-dir=/foo/bar does not work.
So he/she send us configure.log
Then we look at it and respond saying: you need to specify --with-zlib-dir --with-szip-dir options aswell.
Does this look right?
Yes, that is what I think makes sense.
We can always try to add another layer that 'greps' for libz in the hdf5 error message and guesses that the user forgot it, but hopefully before we get to it, a sane storage library appears, or HDF5 gets its act together.
In this case - why bother with libz.py and szip.py? Why not tell the user to specify hdf5 completely with --with-hdf5-include and --with-hdf5-lib options?
Just printing the link errors on the screen might be sufficient to clue in the user. Currently its hidden inside configure. [And its not clear which of the 10 tests configure did for this case should be printed on the screen as the appropriate message]
I might have been the one that advocated self.needsCompression approach thats currently in configure. This is currently used only by hdf5.py. My current thought is to strip it out - and just add it to hdf5.py as: self.liblist = [['libhdf5.a','libhdf5_hl.a'],'['libhdf5.a','libhdf5_hl.a','libz.a'],['libhdf5.a','libhdf5_hl.a','zlib.lib']] This would be equivalent to the current functionality - and perhaps what was there previously - before we wanted better error messages and detection of zlib. Since this is not possible anyway why bother with the additional complexity? Satish
participants (1)
-
Satish Balay