hdf5 build error

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

hdf5 build error

Richard Crozier
Dear Maintainers,

I'm not sure if it's more appropriate for the help or maintainers, but I'm trying to build from a fresh clone of the development sources in a Ubuntu 15.10 VM. I have installed libhdf5-serial-dev. However, configure is still not picking it up (I still get the warning about not finding hdf5 libs), and I get the following error when building:

libinterp/corefcn/coct-hdf5-types.c:37:43: error: 'H5E_DEFAULT' undeclared here (not in a function) const octave_hdf5_id octave_H5E_DEFAULT = H5E_DEFAULT; ^libinterp/corefcn/coct-hdf5-types.c:38:43: error: 'H5P_DEFAULT' undeclared here (not in a function) const octave_hdf5_id octave_H5P_DEFAULT = H5P_DEFAULT; ^libinterp/corefcn/coct-hdf5-types.c:39:39: error: 'H5S_ALL' undeclared here (not in a function) const octave_hdf5_id octave_H5S_ALL = H5S_ALL; ^Makefile:15761: recipe for target 'libinterp/corefcn/libinterp_corefcn_libcorefcn_la-coct-hdf5-types.lo' failedmake[2]: *** [libinterp/corefcn/libinterp_corefcn_libcorefcn_la-coct-hdf5-types.lo] Error 1make[2]: Leaving directory '/home/crobarcrozier/src/octave-hg'Makefile:25790: recipe for target 'all-recursive' failedmake[1]: *** [all-recursive] Error 1make[1]: Leaving directory '/home/crobarcrozier/src/octave-hg'Makefile:9887: recipe for target 'all' failedmake: *** [all] Error 2

Do I have the right hdf5 lib installed?


hg id reports:

5a340d8458d6 tip @

I tried configuring with

./configure --with-hdf5-includedir=/usr/include/hdf5/serial/ --with-hdf5-libdir=/usr/lib/x86_64-linux-gnu/hdf5/

I still get the warning about the hdf5 libs not being found, I didn't actually try building after this. I also get both the warning and the error if I configure with --without-hdf5.

Regards,

Richard

The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.
Reply | Threaded
Open this post in threaded view
|

Re: hdf5 build error

John W. Eaton
Administrator
On 01/03/2016 07:52 PM, Richard Crozier wrote:

> Dear Maintainers,
>
> I'm not sure if it's more appropriate for the help or maintainers, but
> I'm trying to build from a fresh clone of the development sources in a
> Ubuntu 15.10 VM. I have installed libhdf5-serial-dev. However, configure
> is still not picking it up (I still get the warning about not finding
> hdf5 libs), and I get the following error when building:
>
> libinterp/corefcn/coct-hdf5-types.c:37:43: error: 'H5E_DEFAULT'
> undeclared here (not in a function)const octave_hdf5_id
> octave_H5E_DEFAULT =
> H5E_DEFAULT;^libinterp/corefcn/coct-hdf5-types.c:38:43: error:
> 'H5P_DEFAULT' undeclared here (not in a function)const octave_hdf5_id
> octave_H5P_DEFAULT =
> H5P_DEFAULT;^libinterp/corefcn/coct-hdf5-types.c:39:39: error: 'H5S_ALL'
> undeclared here (not in a function)const octave_hdf5_id octave_H5S_ALL =
> H5S_ALL;^Makefile:15761: recipe for target
> 'libinterp/corefcn/libinterp_corefcn_libcorefcn_la-coct-hdf5-types.lo'
> failedmake[2]: ***
> [libinterp/corefcn/libinterp_corefcn_libcorefcn_la-coct-hdf5-types.lo]
> Error 1make[2]: Leaving directory
> '/home/crobarcrozier/src/octave-hg'Makefile:25790: recipe for target
> 'all-recursive' failedmake[1]: *** [all-recursive] Error 1make[1]:
> Leaving directory '/home/crobarcrozier/src/octave-hg'Makefile:9887:
> recipe for target 'all' failedmake: *** [all] Error 2
>
> Do I have the right hdf5 lib installed?

I checked in the following changeset:

   http://hg.savannah.gnu.org/hgweb/octave/rev/13b9cac748f2

That should allow Octave to compile again when HDF5 is missing.

> I tried configuring with
>
> ./configure --with-hdf5-includedir=/usr/include/hdf5/serial/
> --with-hdf5-libdir=/usr/lib/x86_64-linux-gnu/hdf5/
>
> I still get the warning about the hdf5 libs not being found, I didn't
> actually try building after this. I also get both the warning and the
> error if I configure with --without-hdf5.

I have no problem compiling on Debian systems with the following
configure options:

   --with-hdf5-includedir=/usr/include/hdf5/serial
   --with-hdf5-libdir=/usr/lib/x86_64-linux-gnu/hdf5/serial

What files are in those directories on your system?  What does
config.log tell you about HDF5 detection?

jwe


Reply | Threaded
Open this post in threaded view
|

Re: hdf5 build error

Richard Crozier

On 04/01/16 05:25, John W. Eaton wrote:
> On 01/03/2016 07:52 PM, Richard Crozier wrote:
>> Dear Maintainers,
>>

<snip>

>
> I checked in the following changeset:
>
>    http://hg.savannah.gnu.org/hgweb/octave/rev/13b9cac748f2
>
> That should allow Octave to compile again when HDF5 is missing.
>
>> I tried configuring with
>>
>> ./configure --with-hdf5-includedir=/usr/include/hdf5/serial/
>> --with-hdf5-libdir=/usr/lib/x86_64-linux-gnu/hdf5/
>>
>> I still get the warning about the hdf5 libs not being found, I didn't
>> actually try building after this. I also get both the warning and the
>> error if I configure with --without-hdf5.
>
> I have no problem compiling on Debian systems with the following
> configure options:
>
>    --with-hdf5-includedir=/usr/include/hdf5/serial
>    --with-hdf5-libdir=/usr/lib/x86_64-linux-gnu/hdf5/serial
>
> What files are in those directories on your system?  What does
> config.log tell you about HDF5 detection?
>
> jwe
>
>
So, before pulling your cset, I did make clean and configured with

./configure --with-hdf5-includedir=/usr/include/hdf5/serial
--with-hdf5-libdir=/usr/lib/x86_64-linux-gnu/hdf5/serial

This made the warning go away. Octave also successfully builds. I'm not
sure if I made a mistake when I did this before (probably). I have
attached the config log from this in spec-dir-config.log.

I then ran make clean again and plain ./configure. I attach the config
log from this in plain-config.log

here's the contents of /usr/include/hdf5/serial

------------------------------------------------------------------
H5AbstractDs.h         h5d_provisional.mod  H5FDpublic.h
H5Library.h          H5pubconf.h
H5ACpublic.h           H5Dpublic.h          H5FDsec2.h
h5l.mod              H5public.h
h5a.mod                h5ds.mod             H5FDstdio.h
H5Location.h         h5r.mod
H5api_adpt.h           H5DSpublic.h         H5File.h
h5l_provisional.mod  h5r_provisional.mod
h5a_provisional.mod    H5DxferProp.h        H5FloatType.h
H5Lpublic.h          H5Rpublic.h
H5Apublic.h            h5e.mod              h5f.mod
h5lt.mod             h5s.mod
H5ArrayType.h          H5EnumType.h         h5fortran_types.mod
H5LTpublic.h         H5Spublic.h
H5AtomType.h           h5e_provisional.mod  h5f_provisional.mod
H5MMpublic.h         H5StrType.h
H5Attribute.h          H5Epubgen.h          H5Fpublic.h
H5Object.h           h5tb.mod
H5Classes.h            H5Epublic.h          h5global.mod
h5o.mod              H5TBpublic.h
H5CommonFG.h           H5Exception.h        h5g.mod
h5o_provisional.mod  h5t.mod
H5CompType.h           H5f90i_gen.h         H5Gpublic.h
H5Opublic.h          h5t_provisional.mod
H5CppDoc.h             H5f90i.h             H5Group.h
H5overflow.h         H5Tpublic.h
H5Cpp.h                H5FaccProp.h         H5IdComponent.h
H5PacketTable.h      H5VarLenType.h
H5Cpublic.h            H5FcreatProp.h       h5im.mod
H5PLextern.h         H5version.h
H5DataSet.h            H5FDcore.h           h5i.mod
H5PLpublic.h         h5z.mod
H5DataSpace.h          H5FDdirect.h         H5IMpublic.h
h5p.mod              H5Zpublic.h
H5DataType.h           H5FDfamily.h         H5Include.h
h5p_provisional.mod  hdf5.h
h5_dble_interface.mod  H5FDlog.h            H5IntType.h
H5Ppublic.h          hdf5_hl.h
H5DcreatProp.h         H5FDmpi.h            H5Ipublic.h
H5PredType.h         hdf5.mod
h5d.mod                H5FDmpio.h           h5lib.mod
H5PropList.h
H5DOpublic.h           H5FDmulti.h          h5lib_provisional.mod
H5PTpublic.h
------------------------------------------------------------------

and /usr/lib/x86_64-linux-gnu/hdf5/serial

------------------------------------------------------------------
ls /usr/lib/x86_64-linux-gnu/hdf5/serial
include  libhdf5.a      libhdf5_cpp.so     libhdf5_fortran.so
libhdf5_hl_cpp.a   libhdf5hl_fortran.a   libhdf5_hl.so     libhdf5.so
lib      libhdf5_cpp.a  libhdf5_fortran.a  libhdf5_hl.a
libhdf5_hl_cpp.so  libhdf5hl_fortran.so  libhdf5.settings
------------------------------------------------------------------

Hope this is useful.

Richard

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.


plain-config.log (1M) Download Attachment
spec-dirs-config.log (1M) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: hdf5 build error

John W. Eaton
Administrator
On 01/04/2016 12:58 PM, Richard Crozier wrote:

> So, before pulling your cset, I did make clean and configured with
>
> ./configure --with-hdf5-includedir=/usr/include/hdf5/serial
> --with-hdf5-libdir=/usr/lib/x86_64-linux-gnu/hdf5/serial
>
> This made the warning go away. Octave also successfully builds. I'm not
> sure if I made a mistake when I did this before (probably). I have
> attached the config log from this in spec-dir-config.log.

This is what you are expected to do on a Debian (or Ubuntu) system.

> I then ran make clean again and plain ./configure. I attach the config
> log from this in plain-config.log
>
> here's the contents of /usr/include/hdf5/serial

It's not expected that the compiler will find header files and libraries
in non-standard locations unless you tell it where to look.

We've previously discussed modifying the configure script to look in the
directories where Debian installs these files but decided against it.
You can read the discussion here:

   https://savannah.gnu.org/bugs/?38928

Start with my comment #19.

jwe


Reply | Threaded
Open this post in threaded view
|

Re: hdf5 build error

Richard Crozier


On 04/01/16 19:07, John W. Eaton wrote:

> On 01/04/2016 12:58 PM, Richard Crozier wrote:
>
>> So, before pulling your cset, I did make clean and configured with
>>
>> ./configure --with-hdf5-includedir=/usr/include/hdf5/serial
>> --with-hdf5-libdir=/usr/lib/x86_64-linux-gnu/hdf5/serial
>>
>> This made the warning go away. Octave also successfully builds. I'm not
>> sure if I made a mistake when I did this before (probably). I have
>> attached the config log from this in spec-dir-config.log.
>
> This is what you are expected to do on a Debian (or Ubuntu) system.
>
>> I then ran make clean again and plain ./configure. I attach the config
>> log from this in plain-config.log
>>
>> here's the contents of /usr/include/hdf5/serial
>
> It's not expected that the compiler will find header files and libraries
> in non-standard locations unless you tell it where to look.
>
> We've previously discussed modifying the configure script to look in the
> directories where Debian installs these files but decided against it.
> You can read the discussion here:
>
>    https://savannah.gnu.org/bugs/?38928
>
> Start with my comment #19.
>
> jwe
>
>

ok, thanks for the information, I will add a comment about this to the
wiki page below if noone objects:

http://wiki.octave.org/Octave_for_Debian_systems

Richard


--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.