Compiling HDF5 with SZLIB with Intel Fortran in a system with a SZIP version with gfortran (shared libraries)

Hello!

I think maybe someone crossed with this problem.
I'm trying to use an HDF5 library with SZIP compiled with intel compilers (icc, icpc, ifort), in a system (Scientific Linux 6.4) that has already a version of SZIP compiled with gfortran.

I put HDF5, SZIP and ZLIB in /usr/local/
Everything is fine with my program during compilation, but when I try to execute, it can't find SZLIB.
I tried to put the path to the library in the ld config file, but than, while this solved my problem and the program runs ok, it broke my system for other programs (including sudo) that relay on the system version of ZLIB.

I found that is possible to, through options passed to the linker, to define the path of a library so that this information is stored in the executable itself (the path will be fixed, but this is not a problem).
I would like to know if the same can apply to the HDF5 itself, passing such arguments during ./configure, so that when a program uses HDF5, the lib knows where to look for the SZLIB...

I'll do some tests tomorrow or the day after, but if anyone already did this or know if it's possible or not, it would be nice to hear.

I thought also to rename the libraries so I can use the first method (adding the path in the ld config) without the problem of breaking the system, but I don't know if it is possible or recommended...

If you have any suggestions, I'm listening. :wink:

Thanks in advance,
Eduardo Jauch

···

--

TECNICO Lisboa - MARETEC
Sec��o de Ambiente e Energia

Av. Rovisco Pais
1049-001 Lisboa

Tel.: +351 21 8419424
Fax: +351 21 8417365

URL: www.mohid.com

Hi,

IIRC, the gfortran ABI is not compatible with Intel Fortran ABI. You
can't mix them together. So you need to compile SZLIB for Intel
Fortran first.

Cheers,

Matthieu

···

2013/11/3 Eduardo Jauch <eduardo.jauch@ist.utl.pt>:

Hello!

I think maybe someone crossed with this problem.
I'm trying to use an HDF5 library with SZIP compiled with intel compilers
(icc, icpc, ifort), in a system (Scientific Linux 6.4) that has already a
version of SZIP compiled with gfortran.

I put HDF5, SZIP and ZLIB in /usr/local/
Everything is fine with my program during compilation, but when I try to
execute, it can't find SZLIB.
I tried to put the path to the library in the ld config file, but than,
while this solved my problem and the program runs ok, it broke my system for
other programs (including sudo) that relay on the system version of ZLIB.

I found that is possible to, through options passed to the linker, to define
the path of a library so that this information is stored in the executable
itself (the path will be fixed, but this is not a problem).
I would like to know if the same can apply to the HDF5 itself, passing such
arguments during ./configure, so that when a program uses HDF5, the lib
knows where to look for the SZLIB...

I'll do some tests tomorrow or the day after, but if anyone already did this
or know if it's possible or not, it would be nice to hear.

I thought also to rename the libraries so I can use the first method (adding
the path in the ld config) without the problem of breaking the system, but I
don't know if it is possible or recommended...

If you have any suggestions, I'm listening. :wink:

Thanks in advance,
Eduardo Jauch

--

TECNICO Lisboa - MARETEC
Secção de Ambiente e Energia

Av. Rovisco Pais
1049-001 Lisboa

Tel.: +351 21 8419424
Fax: +351 21 8417365

URL: www.mohid.com

_______________________________________________
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

--
Information System Engineer, Ph.D.
Blog: http://matt.eifelle.com
LinkedIn: http://www.linkedin.com/in/matthieubrucher
Music band: http://liliejay.com/

Hello Matthieu

Yes. This is what causes my problem. Because I have to compile SZLIB with intel, but I can't just "replace" the system SZLIB.

When I put the intel version of SZLIB in a different place, the program do not find SZLIB.
If I add the path of the SZLIB to the system lib path (where ld goes look for them), then the program works, but the system stops, because it tries to use the intel version of SZLIB, instead of the system version.

I'm trying to figure out a way to solve this dilema.

Maybe I'm missing something. I figure out that the HDF5 compiling scripts automatically set up everything to work right when compilig with intel, but I have to check this. I'm reading the install documentation.

Thanks,

Eduardo Jauch

···

Em 04-11-2013 00:31, Matthieu Brucher escreveu:

Hi,

IIRC, the gfortran ABI is not compatible with Intel Fortran ABI. You
can't mix them together. So you need to compile SZLIB for Intel
Fortran first.

Cheers,

Matthieu

2013/11/3 Eduardo Jauch <eduardo.jauch@ist.utl.pt>:

Hello!

I think maybe someone crossed with this problem.
I'm trying to use an HDF5 library with SZIP compiled with intel compilers
(icc, icpc, ifort), in a system (Scientific Linux 6.4) that has already a
version of SZIP compiled with gfortran.

I put HDF5, SZIP and ZLIB in /usr/local/
Everything is fine with my program during compilation, but when I try to
execute, it can't find SZLIB.
I tried to put the path to the library in the ld config file, but than,
while this solved my problem and the program runs ok, it broke my system for
other programs (including sudo) that relay on the system version of ZLIB.

I found that is possible to, through options passed to the linker, to define
the path of a library so that this information is stored in the executable
itself (the path will be fixed, but this is not a problem).
I would like to know if the same can apply to the HDF5 itself, passing such
arguments during ./configure, so that when a program uses HDF5, the lib
knows where to look for the SZLIB...

I'll do some tests tomorrow or the day after, but if anyone already did this
or know if it's possible or not, it would be nice to hear.

I thought also to rename the libraries so I can use the first method (adding
the path in the ld config) without the problem of breaking the system, but I
don't know if it is possible or recommended...

If you have any suggestions, I'm listening. :wink:

Thanks in advance,
Eduardo Jauch

--

TECNICO Lisboa - MARETEC
Sec��o de Ambiente e Energia

Av. Rovisco Pais
1049-001 Lisboa

Tel.: +351 21 8419424
Fax: +351 21 8417365

URL: www.mohid.com

_______________________________________________
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

--
<www.ist.utl.pt>

    <www.mohid.com>

TECNICO Lisboa - MARETEC
Sec��o de Ambiente e Energia

Av. Rovisco Pais
1049-001 Lisboa

Tel.: +351 21 8419424
Fax: +351 21 8417365

URL: www.mohid.com

Hello Eduardo,

So if I understand right, you want /usr/local/lib to be added to the
hdf5 library, without having to set the ld library path?

I think something like the following should then work when you
configure (maybe more "correct" solution for hdf5 exist, I have not
checked the cmake scripts):

LDFLAGS="-Wl,-rpath,/usr/local/lib" cmake ../

You can find more information e.g. here:
http://www.cmake.org/Wiki/CMake_RPATH_handling

Cheers,
Yngve

···

On ma. 04. nov. 2013 kl. 10.44 +0100, Eduardo Jauch wrote:

Hello Matthieu

Yes. This is what causes my problem. Because I have to compile SZLIB
with intel, but I can't just "replace" the system SZLIB.

When I put the intel version of SZLIB in a different place, the
program do not find SZLIB.
If I add the path of the SZLIB to the system lib path (where ld goes
look for them), then the program works, but the system stops, because
it tries to use the intel version of SZLIB, instead of the system version.

I'm trying to figure out a way to solve this dilema.

Maybe I'm missing something. I figure out that the HDF5 compiling
scripts automatically set up everything to work right when compilig
with intel, but I have to check this. I'm reading the install
documentation.

Thanks,

Eduardo Jauch

Em 04-11-2013 00:31, Matthieu Brucher escreveu:

Hi,

IIRC, the gfortran ABI is not compatible with Intel Fortran ABI. You
can't mix them together. So you need to compile SZLIB for Intel
Fortran first.

Cheers,

Matthieu

2013/11/3 Eduardo Jauch <eduardo.jauch@ist.utl.pt>:

Hello!

I think maybe someone crossed with this problem.
I'm trying to use an HDF5 library with SZIP compiled with intel compilers
(icc, icpc, ifort), in a system (Scientific Linux 6.4) that has already a
version of SZIP compiled with gfortran.

I put HDF5, SZIP and ZLIB in /usr/local/
Everything is fine with my program during compilation, but when I try to
execute, it can't find SZLIB.
I tried to put the path to the library in the ld config file, but than,
while this solved my problem and the program runs ok, it broke my system for
other programs (including sudo) that relay on the system version of ZLIB.

I found that is possible to, through options passed to the linker, to define
the path of a library so that this information is stored in the executable
itself (the path will be fixed, but this is not a problem).
I would like to know if the same can apply to the HDF5 itself, passing such
arguments during ./configure, so that when a program uses HDF5, the lib
knows where to look for the SZLIB...

I'll do some tests tomorrow or the day after, but if anyone already did this
or know if it's possible or not, it would be nice to hear.

I thought also to rename the libraries so I can use the first method (adding
the path in the ld config) without the problem of breaking the system, but I
don't know if it is possible or recommended...

If you have any suggestions, I'm listening. :wink:

Thanks in advance,
Eduardo Jauch

--

TECNICO Lisboa - MARETEC
Secção de Ambiente e Energia

Av. Rovisco Pais
1049-001 Lisboa

Tel.: +351 21 8419424
Fax: +351 21 8417365

URL: www.mohid.com

_______________________________________________
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

--
<www.ist.utl.pt>
  <www.mohid.com>

TECNICO Lisboa - MARETEC
Secção de Ambiente e Energia

Av. Rovisco Pais
1049-001 Lisboa

Tel.: +351 21 8419424
Fax: +351 21 8417365

URL: www.mohid.com

_______________________________________________
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

Hi,

Hum... I'm not using cmake. I think...
I just use ./configure, than make, than make check and than make install

But I will try to use the "-wl..." when compiling my code and see if this solves the problem of the location of the szlib...
If not, I'll try to do it in the HDF itself :slight_smile:

Cheers,
Eduardo Jauch

···

Em 04-11-2013 15:40, Yngve Inntjore Levinsen escreveu:

Hello Eduardo,

So if I understand right, you want /usr/local/lib to be added to the
hdf5 library, without having to set the ld library path?

I think something like the following should then work when you
configure (maybe more "correct" solution for hdf5 exist, I have not
checked the cmake scripts):

LDFLAGS="-Wl,-rpath,/usr/local/lib" cmake ../

You can find more information e.g. here:
http://www.cmake.org/Wiki/CMake_RPATH_handling

Cheers,
Yngve

On ma. 04. nov. 2013 kl. 10.44 +0100, Eduardo Jauch wrote:

Hello Matthieu

Yes. This is what causes my problem. Because I have to compile SZLIB
with intel, but I can't just "replace" the system SZLIB.

When I put the intel version of SZLIB in a different place, the
program do not find SZLIB.
If I add the path of the SZLIB to the system lib path (where ld goes
look for them), then the program works, but the system stops, because
it tries to use the intel version of SZLIB, instead of the system version.

I'm trying to figure out a way to solve this dilema.

Maybe I'm missing something. I figure out that the HDF5 compiling
scripts automatically set up everything to work right when compilig
with intel, but I have to check this. I'm reading the install
documentation.

Thanks,

Eduardo Jauch

Em 04-11-2013 00:31, Matthieu Brucher escreveu:

Hi,

IIRC, the gfortran ABI is not compatible with Intel Fortran ABI. You
can't mix them together. So you need to compile SZLIB for Intel
Fortran first.

Cheers,

Matthieu

2013/11/3 Eduardo Jauch <eduardo.jauch@ist.utl.pt>:

Hello!

I think maybe someone crossed with this problem.
I'm trying to use an HDF5 library with SZIP compiled with intel compilers
(icc, icpc, ifort), in a system (Scientific Linux 6.4) that has already a
version of SZIP compiled with gfortran.

I put HDF5, SZIP and ZLIB in /usr/local/
Everything is fine with my program during compilation, but when I try to
execute, it can't find SZLIB.
I tried to put the path to the library in the ld config file, but than,
while this solved my problem and the program runs ok, it broke my system for
other programs (including sudo) that relay on the system version of ZLIB.

I found that is possible to, through options passed to the linker, to define
the path of a library so that this information is stored in the executable
itself (the path will be fixed, but this is not a problem).
I would like to know if the same can apply to the HDF5 itself, passing such
arguments during ./configure, so that when a program uses HDF5, the lib
knows where to look for the SZLIB...

I'll do some tests tomorrow or the day after, but if anyone already did this
or know if it's possible or not, it would be nice to hear.

I thought also to rename the libraries so I can use the first method (adding
the path in the ld config) without the problem of breaking the system, but I
don't know if it is possible or recommended...

If you have any suggestions, I'm listening. :wink:

Thanks in advance,
Eduardo Jauch

--

TECNICO Lisboa - MARETEC
Secção de Ambiente e Energia

Av. Rovisco Pais
1049-001 Lisboa

Tel.: +351 21 8419424
Fax: +351 21 8417365

URL: www.mohid.com

_______________________________________________
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

--
<www.ist.utl.pt>
   <www.mohid.com>

TECNICO Lisboa - MARETEC
Secção de Ambiente e Energia

Av. Rovisco Pais
1049-001 Lisboa

Tel.: +351 21 8419424
Fax: +351 21 8417365

URL: www.mohid.com

_______________________________________________
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

--
<www.ist.utl.pt>

    <www.mohid.com>

TECNICO Lisboa - MARETEC
Secção de Ambiente e Energia

Av. Rovisco Pais
1049-001 Lisboa

Tel.: +351 21 8419424
Fax: +351 21 8417365

URL: www.mohid.com

There is a utility called "chrpath" that can be used to modify the rpath
setting of compiled binaries. I have used it with RHEL 5, don't know if it
is available for RHEL 6.

···

On Mon, Nov 4, 2013 at 12:27 PM, Eduardo Jauch <eduardo.jauch@ist.utl.pt>wrote:

Hi,

Hum... I'm not using cmake. I think...
I just use ./configure, than make, than make check and than make install

But I will try to use the "-wl..." when compiling my code and see if this
solves the problem of the location of the szlib...
If not, I'll try to do it in the HDF itself :slight_smile:

Cheers,
Eduardo Jauch

Em 04-11-2013 15:40, Yngve Inntjore Levinsen escreveu:

Hello Eduardo,

So if I understand right, you want /usr/local/lib to be added to the
hdf5 library, without having to set the ld library path?

I think something like the following should then work when you
configure (maybe more "correct" solution for hdf5 exist, I have not
checked the cmake scripts):

LDFLAGS="-Wl,-rpath,/usr/local/lib" cmake ../

You can find more information e.g. here:http://www.cmake.org/Wiki/CMake_RPATH_handling

Cheers,
Yngve

On ma. 04. nov. 2013 kl. 10.44 +0100, Eduardo Jauch wrote:

Hello Matthieu

Yes. This is what causes my problem. Because I have to compile SZLIB
with intel, but I can't just "replace" the system SZLIB.

When I put the intel version of SZLIB in a different place, the
program do not find SZLIB.
If I add the path of the SZLIB to the system lib path (where ld goes
look for them), then the program works, but the system stops, because
it tries to use the intel version of SZLIB, instead of the system version.

I'm trying to figure out a way to solve this dilema.

Maybe I'm missing something. I figure out that the HDF5 compiling
scripts automatically set up everything to work right when compilig
with intel, but I have to check this. I'm reading the install
documentation.

Thanks,

Eduardo Jauch

Em 04-11-2013 00:31, Matthieu Brucher escreveu:

Hi,

IIRC, the gfortran ABI is not compatible with Intel Fortran ABI. You
can't mix them together. So you need to compile SZLIB for Intel
Fortran first.

Cheers,

Matthieu

2013/11/3 Eduardo Jauch <eduardo.jauch@ist.utl.pt> <eduardo.jauch@ist.utl.pt>:

Hello!

I think maybe someone crossed with this problem.
I'm trying to use an HDF5 library with SZIP compiled with intel compilers
(icc, icpc, ifort), in a system (Scientific Linux 6.4) that has already a
version of SZIP compiled with gfortran.

I put HDF5, SZIP and ZLIB in /usr/local/
Everything is fine with my program during compilation, but when I try to
execute, it can't find SZLIB.
I tried to put the path to the library in the ld config file, but than,
while this solved my problem and the program runs ok, it broke my system for
other programs (including sudo) that relay on the system version of ZLIB.

I found that is possible to, through options passed to the linker, to define
the path of a library so that this information is stored in the executable
itself (the path will be fixed, but this is not a problem).
I would like to know if the same can apply to the HDF5 itself, passing such
arguments during ./configure, so that when a program uses HDF5, the lib
knows where to look for the SZLIB...

I'll do some tests tomorrow or the day after, but if anyone already did this
or know if it's possible or not, it would be nice to hear.

I thought also to rename the libraries so I can use the first method (adding
the path in the ld config) without the problem of breaking the system, but I
don't know if it is possible or recommended...

If you have any suggestions, I'm listening. :wink:

Thanks in advance,
Eduardo Jauch

--

TECNICO Lisboa - MARETEC
Secção de Ambiente e Energia

Av. Rovisco Pais
1049-001 Lisboa

Tel.: +351 21 8419424
Fax: +351 21 8417365

URL: www.mohid.com

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

--
<www.ist.utl.pt>
  <www.mohid.com>

TECNICO Lisboa - MARETEC
Secção de Ambiente e Energia

Av. Rovisco Pais
1049-001 Lisboa

Tel.: +351 21 8419424
Fax: +351 21 8417365

URL: www.mohid.com

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

--
<http://www.ist.utl.pt>

  <http://www.mohid.com>

TECNICO Lisboa - MARETEC
Secção de Ambiente e Energia

Av. Rovisco Pais
1049-001 Lisboa

Tel.: +351 21 8419424
Fax: +351 21 8417365

URL: www.mohid.com

_______________________________________________
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

--
George N. White III <aa056@chebucto.ns.ca>
Head of St. Margarets Bay, Nova Scotia