HDF5 compilation with ExodusII

Hello,

I am having some problems with getting a compilation of the ExodusII
finite-element libraries working correctly. The forum post that I have
here:

http://forums.linuxmint.com/viewtopic.php?f=47&t=178562

Will be explain things in some detail. The main issue is the follow error
that I get:

OSError: ~/Programs/exodusii/lib/libexodus.so: undefined symbol: H5Tset_tag

I am not sure how to progress further.

Thank you,

Jesse

Your forms post indicates you downloaded and installed hdf5 yourself. And, from the looks of it you are using shared librarys (.so files).

So, I am guessing that have compiled some executable that uses libexodus.so and are now hitting this error when running that executable. Is that right?

I am guessing you need to set LD_LIBRARY_PATH env. variable to tell the loader where to find the libhdf5.so file you installed and then built exodus against.

If you are on Linux and your app was named 'foo' and you had installed HDF5 to /homes/gorfo/my_installs/hdf5, then try a command like…

env LD_LIBRARY_PATH=/homes/gorfo/my_installs/hdf5/lib ./foo

and see if that (or some variation thereof) doesn't work

Mark

···

From: Jesse Johns <jesse.m.johns@gmail.com<mailto:jesse.m.johns@gmail.com>>
Reply-To: HDF Users Discussion List <hdf-forum@lists.hdfgroup.org<mailto:hdf-forum@lists.hdfgroup.org>>
Date: Wednesday, October 8, 2014 10:54 AM
To: "hdf-forum@lists.hdfgroup.org<mailto:hdf-forum@lists.hdfgroup.org>" <hdf-forum@lists.hdfgroup.org<mailto:hdf-forum@lists.hdfgroup.org>>
Subject: [Hdf-forum] HDF5 compilation with ExodusII

Hello,

I am having some problems with getting a compilation of the ExodusII finite-element libraries working correctly. The forum post that I have here:

http://forums.linuxmint.com/viewtopic.php?f=47&t=178562

Will be explain things in some detail. The main issue is the follow error that I get:

OSError: ~/Programs/exodusii/lib/libexodus.so: undefined symbol: H5Tset_tag

I am not sure how to progress further.

Thank you,

Jesse

Hello Mark:

Thank you for the advice.

There are actually a few approaches that I took. First, with the Python
API that comes with the ExodusII library, there are some options to load
the libraries, so I included the following:

EXODUS_PATH = findLibExoPath()
HDF_PATH = "/home/jesse/Programs/hdf5/lib"

NETCDF_SO = "/home/jesse/Programs/netcdf/lib" + "/libnetcdf.so"
EXODUS_SO = EXODUS_PATH + "libexodus.so"
HDF_SO = HDF_PATH + "/libhdf5.so"
HDF_HL_SO = HDF_PATH + "/libhdf5_hl.so"

HDF5_LIB = cdll.LoadLibrary(HDF_SO)
HDF5_HL_LIB = cdll.LoadLibrary(HDF_HL_SO)
NETCDF_LIB = cdll.LoadLibrary(NETCDF_SO)
EXODUS_LIB = cdll.LoadLibrary(EXODUS_SO)

In using the library, I get the same error. I went ahead and added an
environmental variable in bashrc:

export LD_LIBRARY_PATH=/home/jesse/Programs/hdf5/lib:$LD_LIBRARY_PATH

Tried calling using API, same error (this should be equivalent to what you
suggested to do).

Lastly, I just recompiled everything with the environmental variable set
explicitly instead of just calling them with compiler flags. Still, I get
the same error when using the API.

The traceback goes to the API when I am calling the Exodus shared library:

EXODUS_LIB = cdll.LoadLibrary(EXODUS_SO)
  File "/usr/lib/python2.7/ctypes/__init__.py", line 443, in LoadLibrary
    return self._dlltype(name)
  File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: /home/jesse/Programs/exodus/lib/libexodus.so: undefined symbol:
H5Tset_tag

So, I do think you're right that the HDF5 library is not being loaded
correctly. There are some conflicts if I were to install the libraries in
the default library paths, but it might be worth writing a module script
that shuffles all that around... I'm very much open to every suggestion,
however. I've been working on this for a while.

Thank you,

Jesse

···

On Wed, Oct 8, 2014 at 2:11 PM, Miller, Mark C. <miller86@llnl.gov> wrote:

Your forms post indicates you downloaded and installed hdf5 yourself.
And, from the looks of it you are using shared librarys (.so files).

So, I am guessing that have compiled some executable that uses
libexodus.so and are now hitting this error when running that executable.
Is that right?

I am guessing you need to set LD_LIBRARY_PATH env. variable to tell the
loader where to find the libhdf5.so file you installed and then built
exodus against.

If you are on Linux and your app was named 'foo' and you had installed
HDF5 to /homes/gorfo/my_installs/hdf5, then try a command like…

env LD_LIBRARY_PATH=/homes/gorfo/my_installs/hdf5/lib ./foo

and see if that (or some variation thereof) doesn't work

Mark

  From: Jesse Johns <jesse.m.johns@gmail.com>
Reply-To: HDF Users Discussion List <hdf-forum@lists.hdfgroup.org>
Date: Wednesday, October 8, 2014 10:54 AM
To: "hdf-forum@lists.hdfgroup.org" <hdf-forum@lists.hdfgroup.org>
Subject: [Hdf-forum] HDF5 compilation with ExodusII

   Hello,

I am having some problems with getting a compilation of the ExodusII
finite-element libraries working correctly. The forum post that I have
here:

http://forums.linuxmint.com/viewtopic.php?f=47&t=178562

Will be explain things in some detail. The main issue is the follow error
that I get:

OSError: ~/Programs/exodusii/lib/libexodus.so: undefined symbol: H5Tset_tag

I am not sure how to progress further.

Thank you,

Jesse

_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@lists.hdfgroup.org

http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5

Hmm, the post at http://www.unidata.ucar.edu/mailing_lists/archives/netcdfgroup/2010/msg00389.html suggests that the reason may be the link order of HDF5 libraries when either libnetcdf or libexodus was built.

Regards,
Dave

···

On 9/10/14 9:00 am, Jesse Johns wrote:

Hello Mark:

Thank you for the advice.

There are actually a few approaches that I took. First, with the Python API that comes with the ExodusII library, there are some options to load the libraries, so I included the following:

EXODUS_PATH = findLibExoPath()
HDF_PATH = "/home/jesse/Programs/hdf5/lib"

NETCDF_SO = "/home/jesse/Programs/netcdf/lib" + "/libnetcdf.so"
EXODUS_SO = EXODUS_PATH + "libexodus.so"
HDF_SO = HDF_PATH + "/libhdf5.so"
HDF_HL_SO = HDF_PATH + "/libhdf5_hl.so"

HDF5_LIB = cdll.LoadLibrary(HDF_SO)
HDF5_HL_LIB = cdll.LoadLibrary(HDF_HL_SO)
NETCDF_LIB = cdll.LoadLibrary(NETCDF_SO)
EXODUS_LIB = cdll.LoadLibrary(EXODUS_SO)

In using the library, I get the same error. I went ahead and added an environmental variable in bashrc:

export LD_LIBRARY_PATH=/home/jesse/Programs/hdf5/lib:$LD_LIBRARY_PATH

Tried calling using API, same error (this should be equivalent to what you suggested to do).

Lastly, I just recompiled everything with the environmental variable set explicitly instead of just calling them with compiler flags. Still, I get the same error when using the API.

The traceback goes to the API when I am calling the Exodus shared library:

EXODUS_LIB = cdll.LoadLibrary(EXODUS_SO)
  File "/usr/lib/python2.7/ctypes/__init__.py", line 443, in LoadLibrary
    return self._dlltype(name)
  File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: /home/jesse/Programs/exodus/lib/libexodus.so: undefined symbol: H5Tset_tag

So, I do think you're right that the HDF5 library is not being loaded correctly. There are some conflicts if I were to install the libraries in the default library paths, but it might be worth writing a module script that shuffles all that around... I'm very much open to every suggestion, however. I've been working on this for a while.

Thank you,

Jesse

On Wed, Oct 8, 2014 at 2:11 PM, Miller, Mark C. <miller86@llnl.gov > <mailto:miller86@llnl.gov>> wrote:

    Your forms post indicates you downloaded and installed hdf5
    yourself. And, from the looks of it you are using shared librarys
    (.so files).

    So, I am guessing that have compiled some executable that uses
    libexodus.so and are now hitting this error when running that
    executable. Is that right?

    I am guessing you need to set LD_LIBRARY_PATH env. variable to
    tell the loader where to find the libhdf5.so file you installed
    and then built exodus against.

    If you are on Linux and your app was named 'foo' and you had
    installed HDF5 to /homes/gorfo/my_installs/hdf5, then try a
    command like...

    env LD_LIBRARY_PATH=/homes/gorfo/my_installs/hdf5/lib ./foo

    and see if that (or some variation thereof) doesn't work

    Mark

    From: Jesse Johns <jesse.m.johns@gmail.com
    <mailto:jesse.m.johns@gmail.com>>
    Reply-To: HDF Users Discussion List <hdf-forum@lists.hdfgroup.org
    <mailto:hdf-forum@lists.hdfgroup.org>>
    Date: Wednesday, October 8, 2014 10:54 AM
    To: "hdf-forum@lists.hdfgroup.org
    <mailto:hdf-forum@lists.hdfgroup.org>"
    <hdf-forum@lists.hdfgroup.org <mailto:hdf-forum@lists.hdfgroup.org>>
    Subject: [Hdf-forum] HDF5 compilation with ExodusII

        Hello,

        I am having some problems with getting a compilation of the
        ExodusII finite-element libraries working correctly. The
        forum post that I have here:

        http://forums.linuxmint.com/viewtopic.php?f=47&t=178562

        Will be explain things in some detail. The main issue is the
        follow error that I get:

        OSError: ~/Programs/exodusii/lib/libexodus.so: undefined
        symbol: H5Tset_tag

        I am not sure how to progress further.

        Thank you,

        Jesse

    _______________________________________________
    Hdf-forum is for HDF software users discussion.
    Hdf-forum@lists.hdfgroup.org <mailto:Hdf-forum@lists.hdfgroup.org>
    http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
    Twitter: https://twitter.com/hdf5

_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@lists.hdfgroup.org
http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5

Hi David,

The compilation of the netcdf is correct compared to the link you shared:

"-L/home/jesse/Programs/hdf5/lib
/home/jesse/Programs/hdf5/lib/libhdf5_hl.so
/home/jesse/Programs/hdf5/lib/libhdf5.so"

I am not use how to get the ExodusII compilation, since it uses cmake, of
which I am fairly ignorant. However, it would surprise me, since my
compilation succeeds unlike in that post - it's just when I am accessing
the shared ExodusII library. In addition, with the cmake, there haven't
been errors like this previously.

Jesse

···

On Wed, Oct 8, 2014 at 3:40 PM, David Brooks <d.brooks@auckland.ac.nz> wrote:

Hmm, the post at
http://www.unidata.ucar.edu/mailing_lists/archives/netcdfgroup/2010/msg00389.html
suggests that the reason may be the link order of HDF5 libraries when
either libnetcdf or libexodus was built.

Regards,
Dave

On 9/10/14 9:00 am, Jesse Johns wrote:

  Hello Mark:

Thank you for the advice.

There are actually a few approaches that I took. First, with the Python
API that comes with the ExodusII library, there are some options to load
the libraries, so I included the following:

EXODUS_PATH = findLibExoPath()
HDF_PATH = "/home/jesse/Programs/hdf5/lib"

NETCDF_SO = "/home/jesse/Programs/netcdf/lib" + "/libnetcdf.so"
EXODUS_SO = EXODUS_PATH + "libexodus.so"
HDF_SO = HDF_PATH + "/libhdf5.so"
HDF_HL_SO = HDF_PATH + "/libhdf5_hl.so"

HDF5_LIB = cdll.LoadLibrary(HDF_SO)
HDF5_HL_LIB = cdll.LoadLibrary(HDF_HL_SO)
NETCDF_LIB = cdll.LoadLibrary(NETCDF_SO)
EXODUS_LIB = cdll.LoadLibrary(EXODUS_SO)

In using the library, I get the same error. I went ahead and added an
environmental variable in bashrc:

export LD_LIBRARY_PATH=/home/jesse/Programs/hdf5/lib:$LD_LIBRARY_PATH

Tried calling using API, same error (this should be equivalent to what
you suggested to do).

Lastly, I just recompiled everything with the environmental variable set
explicitly instead of just calling them with compiler flags. Still, I get
the same error when using the API.

The traceback goes to the API when I am calling the Exodus shared library:

EXODUS_LIB = cdll.LoadLibrary(EXODUS_SO)
  File "/usr/lib/python2.7/ctypes/__init__.py", line 443, in LoadLibrary
    return self._dlltype(name)
  File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: /home/jesse/Programs/exodus/lib/libexodus.so: undefined symbol:
H5Tset_tag

So, I do think you're right that the HDF5 library is not being loaded
correctly. There are some conflicts if I were to install the libraries in
the default library paths, but it might be worth writing a module script
that shuffles all that around... I'm very much open to every suggestion,
however. I've been working on this for a while.

Thank you,

Jesse

On Wed, Oct 8, 2014 at 2:11 PM, Miller, Mark C. <miller86@llnl.gov> wrote:

Your forms post indicates you downloaded and installed hdf5 yourself.
And, from the looks of it you are using shared librarys (.so files).

So, I am guessing that have compiled some executable that uses
libexodus.so and are now hitting this error when running that executable.
Is that right?

I am guessing you need to set LD_LIBRARY_PATH env. variable to tell the
loader where to find the libhdf5.so file you installed and then built
exodus against.

If you are on Linux and your app was named 'foo' and you had installed
HDF5 to /homes/gorfo/my_installs/hdf5, then try a command like…

env LD_LIBRARY_PATH=/homes/gorfo/my_installs/hdf5/lib ./foo

and see if that (or some variation thereof) doesn't work

Mark

  From: Jesse Johns <jesse.m.johns@gmail.com>
Reply-To: HDF Users Discussion List <hdf-forum@lists.hdfgroup.org>
Date: Wednesday, October 8, 2014 10:54 AM
To: "hdf-forum@lists.hdfgroup.org" <hdf-forum@lists.hdfgroup.org>
Subject: [Hdf-forum] HDF5 compilation with ExodusII

   Hello,

I am having some problems with getting a compilation of the ExodusII
finite-element libraries working correctly. The forum post that I have
here:

http://forums.linuxmint.com/viewtopic.php?f=47&t=178562

Will be explain things in some detail. The main issue is the follow error
that I get:

OSError: ~/Programs/exodusii/lib/libexodus.so: undefined symbol:
H5Tset_tag

I am not sure how to progress further.

Thank you,

Jesse

_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@lists.hdfgroup.org

http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5

_______________________________________________
Hdf-forum is for HDF software users discussion.Hdf-forum@lists.hdfgroup.orghttp://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5

_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@lists.hdfgroup.org

http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5

Hi David,

For good measure, I sent an e-mail to the Exodus developers. The cmake is
calling the libraries in the correct order.

In addition, when I am using the Python API, I modified the order that the
libraries are loaded to be consistent with how they were loaded during
compilation. I am still receiving the same error as:

OSError: ~/Programs/exodusii/lib/libexodus.so: undefined symbol: H5Tset_tag

Thank you,

Jesse

···

On Wed, Oct 8, 2014 at 4:45 PM, Jesse Johns <jesse.m.johns@gmail.com> wrote:

Hi David,

The compilation of the netcdf is correct compared to the link you shared:

"-L/home/jesse/Programs/hdf5/lib
/home/jesse/Programs/hdf5/lib/libhdf5_hl.so
/home/jesse/Programs/hdf5/lib/libhdf5.so"

I am not use how to get the ExodusII compilation, since it uses cmake, of
which I am fairly ignorant. However, it would surprise me, since my
compilation succeeds unlike in that post - it's just when I am accessing
the shared ExodusII library. In addition, with the cmake, there haven't
been errors like this previously.

Jesse

On Wed, Oct 8, 2014 at 3:40 PM, David Brooks <d.brooks@auckland.ac.nz> > wrote:

Hmm, the post at
http://www.unidata.ucar.edu/mailing_lists/archives/netcdfgroup/2010/msg00389.html
suggests that the reason may be the link order of HDF5 libraries when
either libnetcdf or libexodus was built.

Regards,
Dave

On 9/10/14 9:00 am, Jesse Johns wrote:

  Hello Mark:

Thank you for the advice.

There are actually a few approaches that I took. First, with the Python
API that comes with the ExodusII library, there are some options to load
the libraries, so I included the following:

EXODUS_PATH = findLibExoPath()
HDF_PATH = "/home/jesse/Programs/hdf5/lib"

NETCDF_SO = "/home/jesse/Programs/netcdf/lib" + "/libnetcdf.so"
EXODUS_SO = EXODUS_PATH + "libexodus.so"
HDF_SO = HDF_PATH + "/libhdf5.so"
HDF_HL_SO = HDF_PATH + "/libhdf5_hl.so"

HDF5_LIB = cdll.LoadLibrary(HDF_SO)
HDF5_HL_LIB = cdll.LoadLibrary(HDF_HL_SO)
NETCDF_LIB = cdll.LoadLibrary(NETCDF_SO)
EXODUS_LIB = cdll.LoadLibrary(EXODUS_SO)

In using the library, I get the same error. I went ahead and added an
environmental variable in bashrc:

export LD_LIBRARY_PATH=/home/jesse/Programs/hdf5/lib:$LD_LIBRARY_PATH

Tried calling using API, same error (this should be equivalent to what
you suggested to do).

Lastly, I just recompiled everything with the environmental variable set
explicitly instead of just calling them with compiler flags. Still, I get
the same error when using the API.

The traceback goes to the API when I am calling the Exodus shared
library:

EXODUS_LIB = cdll.LoadLibrary(EXODUS_SO)
  File "/usr/lib/python2.7/ctypes/__init__.py", line 443, in LoadLibrary
    return self._dlltype(name)
  File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: /home/jesse/Programs/exodus/lib/libexodus.so: undefined symbol:
H5Tset_tag

So, I do think you're right that the HDF5 library is not being loaded
correctly. There are some conflicts if I were to install the libraries in
the default library paths, but it might be worth writing a module script
that shuffles all that around... I'm very much open to every suggestion,
however. I've been working on this for a while.

Thank you,

Jesse

On Wed, Oct 8, 2014 at 2:11 PM, Miller, Mark C. <miller86@llnl.gov> >> wrote:

Your forms post indicates you downloaded and installed hdf5 yourself.
And, from the looks of it you are using shared librarys (.so files).

So, I am guessing that have compiled some executable that uses
libexodus.so and are now hitting this error when running that executable.
Is that right?

I am guessing you need to set LD_LIBRARY_PATH env. variable to tell
the loader where to find the libhdf5.so file you installed and then built
exodus against.

If you are on Linux and your app was named 'foo' and you had installed
HDF5 to /homes/gorfo/my_installs/hdf5, then try a command like…

env LD_LIBRARY_PATH=/homes/gorfo/my_installs/hdf5/lib ./foo

and see if that (or some variation thereof) doesn't work

Mark

  From: Jesse Johns <jesse.m.johns@gmail.com>
Reply-To: HDF Users Discussion List <hdf-forum@lists.hdfgroup.org>
Date: Wednesday, October 8, 2014 10:54 AM
To: "hdf-forum@lists.hdfgroup.org" <hdf-forum@lists.hdfgroup.org>
Subject: [Hdf-forum] HDF5 compilation with ExodusII

   Hello,

I am having some problems with getting a compilation of the ExodusII
finite-element libraries working correctly. The forum post that I have
here:

http://forums.linuxmint.com/viewtopic.php?f=47&t=178562

Will be explain things in some detail. The main issue is the follow
error that I get:

OSError: ~/Programs/exodusii/lib/libexodus.so: undefined symbol:
H5Tset_tag

I am not sure how to progress further.

Thank you,

Jesse

_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@lists.hdfgroup.org

http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5

_______________________________________________
Hdf-forum is for HDF software users discussion.Hdf-forum@lists.hdfgroup.orghttp://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5

_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@lists.hdfgroup.org

http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5