Modifications to the HDF5 download to support the collection library using packed data types

In our collection library, we use the H5PT "high-level" interfaces to create our packet tables.

HDF has the concept of an "in memory" type and "on disk" type that you specify.
we use packed for "in memory" AND "on disk" because we do not use the HDF5 macros to create our buffered data - we use the old TEL subsystem code to create the buffer of data, so it is "packed" by design.

The high level interface for the "open" in the 1.9.131 version did an unpack to the data.
That's what CB changed to make it work for us - took out the unpack, forced it to use packed data "in memory"

In 1.10.0, he found that they changed the "create" to match the behavior of the "open".
In the 1.9.131 version, the "create" let you specify both the "in memory" type and the "on disk" type. But, in thye 1.10.0 version, it assumes the "in memory" type is unpacked.

He modified these two functions to force "packed"

It is possible to create and manipulate the datasets we do without using the high-level H5PT functions. These are just wrappers to make things a little nicer/easier.
But, using these functions saves you some pain - in particular, they have an "append" that we use, so you don't have to tell it where to put the next record, it automatically goes to the end of the packet table.

Configure and Build HDF5 1.10.0 for Telemetry

A tar file of HDF5 1.10.0 is available with the update noted above. Currently it's here: /home/cbiddick/LBT-hdf5-1.10.0.tar.bz2

We just make static library files, no shared objects, and on 64 bit we didn't include the zlib (the collection library doesn't use compression). Note that the compilation generates LOTS of warnings.

32-bit hdf5 build:

$ ./configure --prefix=/lbt/telemetry_runtime/hdf5-1.10.0 \
   --disable-shared --with-zlib=/home/lbtscm/lbt32/lbto_runtime/zlib-1.2.7 \
   --enable-static-exec --enable-threadsafe --with-pthread --enable-unsupported
$ make
$ su
# make install
# exit
which makes a distribution in /lbt/telemetry_runtime/hdf5-1.10.0/ .

Note: it may be that the --disable-shared and --enable-static-exec are redundant.

64-bit hdf5 build:

$ ./configure --prefix=/lbt/telemetry_runtime/hdf5-1.10.0 \
   --disable-shared --with-pic=yes --enable-threadsafe \
   --with-pthread --enable-unsupported
$ make
$ make install
which makes a distribution in /lbt/telemetry_runtime/hdf5-1.10.0/

Note that the --enable-unsupported is to allow the --enable-threadsafe to work with the hl modules (of which we use the PacketTable). I'm not sure why we used --with-pic=yes on 64 bit.

Topic revision: r3 - 08 Oct 2018, PetrKubanek
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback