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.
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.