h5lt_h5ltset_attribute_int_f rather than h5ltset_attribute_int_f

Hi,
Using HDF5-1.8.5-patch1, I attempted to write an attribute using the Fortran interface to the HDF5 Lite library using the h5ltset_attribute_int_f function documented here:
http://www.hdfgroup.org/HDF5/doc/HL/RM_H5LT.html#H5LTset_attribute_int

However, when using that function, I receive an undefined symbol error:
Undefined symbols:
  "_h5ltset_attribute_int_f_", referenced from:
      _MAIN_ in test_attribute.o
ld: symbol(s) not found for inferred architecture i386
make: *** [test_attribute] Error 2

And this seems correct as the h5ltset_attribute_int_f function doesn't exist in my hdf5hl_fortran library:
corey$ nm libhdf5hl_fortran.a|grep h5ltset_attribute_int_f
00001150 T _h5lt_h5ltset_attribute_int_f_

If I replace my call to h5ltset_attribute_int_f with one to h5lt_h5ltset_attribute_int_f, my program compiles and runs as expected. There seems to be quite a few functions using this double "h5lt" nomenclature:
corey$ nm libhdf5hl_fortran*|grep h5lt_h5lt
00001540 T _h5lt_h5ltfind_dataset_f_
00001410 T _h5lt_h5ltget_attribute_double_f_
000013a0 T _h5lt_h5ltget_attribute_float_f_
00001650 T _h5lt_h5ltget_attribute_info_f_
00001330 T _h5lt_h5ltget_attribute_int_f_
000015e0 T _h5lt_h5ltget_attribute_ndims_f_
00001480 T _h5lt_h5ltget_attribute_string_f_
00001580 T _h5lt_h5ltget_dataset_info_f_
000014f0 T _h5lt_h5ltget_dataset_ndims_f_
00000b30 T _h5lt_h5ltmake_dataset_double_f_1_
00000ba0 T _h5lt_h5ltmake_dataset_double_f_2_
00000c20 T _h5lt_h5ltmake_dataset_double_f_3_
000002f0 T _h5lt_h5ltmake_dataset_f_double1_
00000350 T _h5lt_h5ltmake_dataset_f_double2_
000003d0 T _h5lt_h5ltmake_dataset_f_double3_
00000180 T _h5lt_h5ltmake_dataset_f_float1_
000001e0 T _h5lt_h5ltmake_dataset_f_float2_
00000260 T _h5lt_h5ltmake_dataset_f_float3_
00000010 T _h5lt_h5ltmake_dataset_f_int1_
00000070 T _h5lt_h5ltmake_dataset_f_int2_
000000f0 T _h5lt_h5ltmake_dataset_f_int3_
000009c0 T _h5lt_h5ltmake_dataset_float_f_1_
00000a20 T _h5lt_h5ltmake_dataset_float_f_2_
00000aa0 T _h5lt_h5ltmake_dataset_float_f_3_
00000850 T _h5lt_h5ltmake_dataset_int_f_1_
000008b0 T _h5lt_h5ltmake_dataset_int_f_2_
00000930 T _h5lt_h5ltmake_dataset_int_f_3_
000010a0 T _h5lt_h5ltmake_dataset_string_f_
00000f50 T _h5lt_h5ltread_dataset_double_f_1_
00000fb0 T _h5lt_h5ltread_dataset_double_f_2_
00001020 T _h5lt_h5ltread_dataset_double_f_3_
00000700 T _h5lt_h5ltread_dataset_f_double1_
00000760 T _h5lt_h5ltread_dataset_f_double2_
000007d0 T _h5lt_h5ltread_dataset_f_double3_
000005b0 T _h5lt_h5ltread_dataset_f_float1_
00000610 T _h5lt_h5ltread_dataset_f_float2_
00000680 T _h5lt_h5ltread_dataset_f_float3_
00000460 T _h5lt_h5ltread_dataset_f_int1_
000004c0 T _h5lt_h5ltread_dataset_f_int2_
00000530 T _h5lt_h5ltread_dataset_f_int3_
00000e00 T _h5lt_h5ltread_dataset_float_f_1_
00000e60 T _h5lt_h5ltread_dataset_float_f_2_
00000ed0 T _h5lt_h5ltread_dataset_float_f_3_
00000cb0 T _h5lt_h5ltread_dataset_int_f_1_
00000d10 T _h5lt_h5ltread_dataset_int_f_2_
00000d80 T _h5lt_h5ltread_dataset_int_f_3_
00001100 T _h5lt_h5ltread_dataset_string_f_
00001230 T _h5lt_h5ltset_attribute_double_f_
000011c0 T _h5lt_h5ltset_attribute_float_f_
00001150 T _h5lt_h5ltset_attribute_int_f_
000012a0 T _h5lt_h5ltset_attribute_string_f_

Is this a bug or did I screw something up on compilation?
Cheers,
-Corey

···

*************************************
Corey Bettenhausen
Science System and Applications, Inc
Goddard Space Flight Center
301 614 5383
corey_bettenhausen@ssaihq.com
*************************************

Corey,

The name of the function is correct. If you have source code, you may check hl/fortran/src/H5LTff.f90 file to see the subroutine with the name h5ltset_attribute_int_f.
Did you run the tests after building the library? Did they pass? If so, please make sure that your program has

USE H5LT
USE HDF5

statements.

Elena

···

On Jan 24, 2011, at 9:24 PM, Corey Bettenhausen wrote:

Hi,
Using HDF5-1.8.5-patch1, I attempted to write an attribute using the Fortran interface to the HDF5 Lite library using the h5ltset_attribute_int_f function documented here:
http://www.hdfgroup.org/HDF5/doc/HL/RM_H5LT.html#H5LTset_attribute_int

However, when using that function, I receive an undefined symbol error:
Undefined symbols:
"_h5ltset_attribute_int_f_", referenced from:
     _MAIN_ in test_attribute.o
ld: symbol(s) not found for inferred architecture i386
make: *** [test_attribute] Error 2

And this seems correct as the h5ltset_attribute_int_f function doesn't exist in my hdf5hl_fortran library:
corey$ nm libhdf5hl_fortran.a|grep h5ltset_attribute_int_f
00001150 T _h5lt_h5ltset_attribute_int_f_

If I replace my call to h5ltset_attribute_int_f with one to h5lt_h5ltset_attribute_int_f, my program compiles and runs as expected. There seems to be quite a few functions using this double "h5lt" nomenclature:
corey$ nm libhdf5hl_fortran*|grep h5lt_h5lt
00001540 T _h5lt_h5ltfind_dataset_f_
00001410 T _h5lt_h5ltget_attribute_double_f_
000013a0 T _h5lt_h5ltget_attribute_float_f_
00001650 T _h5lt_h5ltget_attribute_info_f_
00001330 T _h5lt_h5ltget_attribute_int_f_
000015e0 T _h5lt_h5ltget_attribute_ndims_f_
00001480 T _h5lt_h5ltget_attribute_string_f_
00001580 T _h5lt_h5ltget_dataset_info_f_
000014f0 T _h5lt_h5ltget_dataset_ndims_f_
00000b30 T _h5lt_h5ltmake_dataset_double_f_1_
00000ba0 T _h5lt_h5ltmake_dataset_double_f_2_
00000c20 T _h5lt_h5ltmake_dataset_double_f_3_
000002f0 T _h5lt_h5ltmake_dataset_f_double1_
00000350 T _h5lt_h5ltmake_dataset_f_double2_
000003d0 T _h5lt_h5ltmake_dataset_f_double3_
00000180 T _h5lt_h5ltmake_dataset_f_float1_
000001e0 T _h5lt_h5ltmake_dataset_f_float2_
00000260 T _h5lt_h5ltmake_dataset_f_float3_
00000010 T _h5lt_h5ltmake_dataset_f_int1_
00000070 T _h5lt_h5ltmake_dataset_f_int2_
000000f0 T _h5lt_h5ltmake_dataset_f_int3_
000009c0 T _h5lt_h5ltmake_dataset_float_f_1_
00000a20 T _h5lt_h5ltmake_dataset_float_f_2_
00000aa0 T _h5lt_h5ltmake_dataset_float_f_3_
00000850 T _h5lt_h5ltmake_dataset_int_f_1_
000008b0 T _h5lt_h5ltmake_dataset_int_f_2_
00000930 T _h5lt_h5ltmake_dataset_int_f_3_
000010a0 T _h5lt_h5ltmake_dataset_string_f_
00000f50 T _h5lt_h5ltread_dataset_double_f_1_
00000fb0 T _h5lt_h5ltread_dataset_double_f_2_
00001020 T _h5lt_h5ltread_dataset_double_f_3_
00000700 T _h5lt_h5ltread_dataset_f_double1_
00000760 T _h5lt_h5ltread_dataset_f_double2_
000007d0 T _h5lt_h5ltread_dataset_f_double3_
000005b0 T _h5lt_h5ltread_dataset_f_float1_
00000610 T _h5lt_h5ltread_dataset_f_float2_
00000680 T _h5lt_h5ltread_dataset_f_float3_
00000460 T _h5lt_h5ltread_dataset_f_int1_
000004c0 T _h5lt_h5ltread_dataset_f_int2_
00000530 T _h5lt_h5ltread_dataset_f_int3_
00000e00 T _h5lt_h5ltread_dataset_float_f_1_
00000e60 T _h5lt_h5ltread_dataset_float_f_2_
00000ed0 T _h5lt_h5ltread_dataset_float_f_3_
00000cb0 T _h5lt_h5ltread_dataset_int_f_1_
00000d10 T _h5lt_h5ltread_dataset_int_f_2_
00000d80 T _h5lt_h5ltread_dataset_int_f_3_
00001100 T _h5lt_h5ltread_dataset_string_f_
00001230 T _h5lt_h5ltset_attribute_double_f_
000011c0 T _h5lt_h5ltset_attribute_float_f_
00001150 T _h5lt_h5ltset_attribute_int_f_
000012a0 T _h5lt_h5ltset_attribute_string_f_

Is this a bug or did I screw something up on compilation?
Cheers,
-Corey

*************************************
Corey Bettenhausen
Science System and Applications, Inc
Goddard Space Flight Center
301 614 5383
corey_bettenhausen@ssaihq.com
*************************************

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

Thanks, Elena. It was user error (surprise, surprise). I didn't realize there was a separate H5LT module that needed "use"ing. Inserting the "use h5lt" statement fixed the issue.
Regards,
-Corey

···

On Tue, 25 Jan 2011 00:04:39 -0600 Elena Pourmal <epourmal@hdfgroup.org> wrote:

Corey,

The name of the function is correct. If you have source code, you may check hl/fortran/src/H5LTff.f90 file to see the subroutine with the name h5ltset_attribute_int_f.
Did you run the tests after building the library? Did they pass? If so, please make sure that your program has

USE H5LT
USE HDF5

statements.

Elena

On Jan 24, 2011, at 9:24 PM, Corey Bettenhausen wrote:

Hi,
Using HDF5-1.8.5-patch1, I attempted to write an attribute using the Fortran interface to the HDF5 Lite library using the h5ltset_attribute_int_f function documented here:
http://www.hdfgroup.org/HDF5/doc/HL/RM_H5LT.html#H5LTset_attribute_int

However, when using that function, I receive an undefined symbol error:
Undefined symbols:
"_h5ltset_attribute_int_f_", referenced from:
     _MAIN_ in test_attribute.o
ld: symbol(s) not found for inferred architecture i386
make: *** [test_attribute] Error 2

And this seems correct as the h5ltset_attribute_int_f function doesn't exist in my hdf5hl_fortran library:
corey$ nm libhdf5hl_fortran.a|grep h5ltset_attribute_int_f
00001150 T _h5lt_h5ltset_attribute_int_f_

If I replace my call to h5ltset_attribute_int_f with one to h5lt_h5ltset_attribute_int_f, my program compiles and runs as expected. There seems to be quite a few functions using this double "h5lt" nomenclature:
corey$ nm libhdf5hl_fortran*|grep h5lt_h5lt
00001540 T _h5lt_h5ltfind_dataset_f_
00001410 T _h5lt_h5ltget_attribute_double_f_
000013a0 T _h5lt_h5ltget_attribute_float_f_
00001650 T _h5lt_h5ltget_attribute_info_f_
00001330 T _h5lt_h5ltget_attribute_int_f_
000015e0 T _h5lt_h5ltget_attribute_ndims_f_
00001480 T _h5lt_h5ltget_attribute_string_f_
00001580 T _h5lt_h5ltget_dataset_info_f_
000014f0 T _h5lt_h5ltget_dataset_ndims_f_
00000b30 T _h5lt_h5ltmake_dataset_double_f_1_
00000ba0 T _h5lt_h5ltmake_dataset_double_f_2_
00000c20 T _h5lt_h5ltmake_dataset_double_f_3_
000002f0 T _h5lt_h5ltmake_dataset_f_double1_
00000350 T _h5lt_h5ltmake_dataset_f_double2_
000003d0 T _h5lt_h5ltmake_dataset_f_double3_
00000180 T _h5lt_h5ltmake_dataset_f_float1_
000001e0 T _h5lt_h5ltmake_dataset_f_float2_
00000260 T _h5lt_h5ltmake_dataset_f_float3_
00000010 T _h5lt_h5ltmake_dataset_f_int1_
00000070 T _h5lt_h5ltmake_dataset_f_int2_
000000f0 T _h5lt_h5ltmake_dataset_f_int3_
000009c0 T _h5lt_h5ltmake_dataset_float_f_1_
00000a20 T _h5lt_h5ltmake_dataset_float_f_2_
00000aa0 T _h5lt_h5ltmake_dataset_float_f_3_
00000850 T _h5lt_h5ltmake_dataset_int_f_1_
000008b0 T _h5lt_h5ltmake_dataset_int_f_2_
00000930 T _h5lt_h5ltmake_dataset_int_f_3_
000010a0 T _h5lt_h5ltmake_dataset_string_f_
00000f50 T _h5lt_h5ltread_dataset_double_f_1_
00000fb0 T _h5lt_h5ltread_dataset_double_f_2_
00001020 T _h5lt_h5ltread_dataset_double_f_3_
00000700 T _h5lt_h5ltread_dataset_f_double1_
00000760 T _h5lt_h5ltread_dataset_f_double2_
000007d0 T _h5lt_h5ltread_dataset_f_double3_
000005b0 T _h5lt_h5ltread_dataset_f_float1_
00000610 T _h5lt_h5ltread_dataset_f_float2_
00000680 T _h5lt_h5ltread_dataset_f_float3_
00000460 T _h5lt_h5ltread_dataset_f_int1_
000004c0 T _h5lt_h5ltread_dataset_f_int2_
00000530 T _h5lt_h5ltread_dataset_f_int3_
00000e00 T _h5lt_h5ltread_dataset_float_f_1_
00000e60 T _h5lt_h5ltread_dataset_float_f_2_
00000ed0 T _h5lt_h5ltread_dataset_float_f_3_
00000cb0 T _h5lt_h5ltread_dataset_int_f_1_
00000d10 T _h5lt_h5ltread_dataset_int_f_2_
00000d80 T _h5lt_h5ltread_dataset_int_f_3_
00001100 T _h5lt_h5ltread_dataset_string_f_
00001230 T _h5lt_h5ltset_attribute_double_f_
000011c0 T _h5lt_h5ltset_attribute_float_f_
00001150 T _h5lt_h5ltset_attribute_int_f_
000012a0 T _h5lt_h5ltset_attribute_string_f_

Is this a bug or did I screw something up on compilation?
Cheers,
-Corey

*************************************
Corey Bettenhausen
Science System and Applications, Inc
Goddard Space Flight Center
301 614 5383
corey_bettenhausen@ssaihq.com
*************************************

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

Corey,

Thanks, Elena. It was user error (surprise, surprise). I didn't realize there was a separate H5LT module that needed "use"ing. Inserting the "use h5lt" statement fixed the issue.

Well... we definitely need to document things better. Also, having multiple libraries and modules doesn't help. May be we should revisit our distribution and have one Fortran library instead of two.

Elena

···

On Jan 25, 2011, at 8:45 AM, Corey Bettenhausen wrote:

Regards,
-Corey

On Tue, 25 Jan 2011 00:04:39 -0600 > Elena Pourmal <epourmal@hdfgroup.org> wrote:

Corey,

The name of the function is correct. If you have source code, you may check hl/fortran/src/H5LTff.f90 file to see the subroutine with the name h5ltset_attribute_int_f.
Did you run the tests after building the library? Did they pass? If so, please make sure that your program has

USE H5LT
USE HDF5

statements.

Elena

On Jan 24, 2011, at 9:24 PM, Corey Bettenhausen wrote:

Hi,
Using HDF5-1.8.5-patch1, I attempted to write an attribute using the Fortran interface to the HDF5 Lite library using the h5ltset_attribute_int_f function documented here:
http://www.hdfgroup.org/HDF5/doc/HL/RM_H5LT.html#H5LTset_attribute_int

However, when using that function, I receive an undefined symbol error:
Undefined symbols:
"_h5ltset_attribute_int_f_", referenced from:
    _MAIN_ in test_attribute.o
ld: symbol(s) not found for inferred architecture i386
make: *** [test_attribute] Error 2

And this seems correct as the h5ltset_attribute_int_f function doesn't exist in my hdf5hl_fortran library:
corey$ nm libhdf5hl_fortran.a|grep h5ltset_attribute_int_f
00001150 T _h5lt_h5ltset_attribute_int_f_

If I replace my call to h5ltset_attribute_int_f with one to h5lt_h5ltset_attribute_int_f, my program compiles and runs as expected. There seems to be quite a few functions using this double "h5lt" nomenclature:
corey$ nm libhdf5hl_fortran*|grep h5lt_h5lt
00001540 T _h5lt_h5ltfind_dataset_f_
00001410 T _h5lt_h5ltget_attribute_double_f_
000013a0 T _h5lt_h5ltget_attribute_float_f_
00001650 T _h5lt_h5ltget_attribute_info_f_
00001330 T _h5lt_h5ltget_attribute_int_f_
000015e0 T _h5lt_h5ltget_attribute_ndims_f_
00001480 T _h5lt_h5ltget_attribute_string_f_
00001580 T _h5lt_h5ltget_dataset_info_f_
000014f0 T _h5lt_h5ltget_dataset_ndims_f_
00000b30 T _h5lt_h5ltmake_dataset_double_f_1_
00000ba0 T _h5lt_h5ltmake_dataset_double_f_2_
00000c20 T _h5lt_h5ltmake_dataset_double_f_3_
000002f0 T _h5lt_h5ltmake_dataset_f_double1_
00000350 T _h5lt_h5ltmake_dataset_f_double2_
000003d0 T _h5lt_h5ltmake_dataset_f_double3_
00000180 T _h5lt_h5ltmake_dataset_f_float1_
000001e0 T _h5lt_h5ltmake_dataset_f_float2_
00000260 T _h5lt_h5ltmake_dataset_f_float3_
00000010 T _h5lt_h5ltmake_dataset_f_int1_
00000070 T _h5lt_h5ltmake_dataset_f_int2_
000000f0 T _h5lt_h5ltmake_dataset_f_int3_
000009c0 T _h5lt_h5ltmake_dataset_float_f_1_
00000a20 T _h5lt_h5ltmake_dataset_float_f_2_
00000aa0 T _h5lt_h5ltmake_dataset_float_f_3_
00000850 T _h5lt_h5ltmake_dataset_int_f_1_
000008b0 T _h5lt_h5ltmake_dataset_int_f_2_
00000930 T _h5lt_h5ltmake_dataset_int_f_3_
000010a0 T _h5lt_h5ltmake_dataset_string_f_
00000f50 T _h5lt_h5ltread_dataset_double_f_1_
00000fb0 T _h5lt_h5ltread_dataset_double_f_2_
00001020 T _h5lt_h5ltread_dataset_double_f_3_
00000700 T _h5lt_h5ltread_dataset_f_double1_
00000760 T _h5lt_h5ltread_dataset_f_double2_
000007d0 T _h5lt_h5ltread_dataset_f_double3_
000005b0 T _h5lt_h5ltread_dataset_f_float1_
00000610 T _h5lt_h5ltread_dataset_f_float2_
00000680 T _h5lt_h5ltread_dataset_f_float3_
00000460 T _h5lt_h5ltread_dataset_f_int1_
000004c0 T _h5lt_h5ltread_dataset_f_int2_
00000530 T _h5lt_h5ltread_dataset_f_int3_
00000e00 T _h5lt_h5ltread_dataset_float_f_1_
00000e60 T _h5lt_h5ltread_dataset_float_f_2_
00000ed0 T _h5lt_h5ltread_dataset_float_f_3_
00000cb0 T _h5lt_h5ltread_dataset_int_f_1_
00000d10 T _h5lt_h5ltread_dataset_int_f_2_
00000d80 T _h5lt_h5ltread_dataset_int_f_3_
00001100 T _h5lt_h5ltread_dataset_string_f_
00001230 T _h5lt_h5ltset_attribute_double_f_
000011c0 T _h5lt_h5ltset_attribute_float_f_
00001150 T _h5lt_h5ltset_attribute_int_f_
000012a0 T _h5lt_h5ltset_attribute_string_f_

Is this a bug or did I screw something up on compilation?
Cheers,
-Corey

*************************************
Corey Bettenhausen
Science System and Applications, Inc
Goddard Space Flight Center
301 614 5383
corey_bettenhausen@ssaihq.com
*************************************

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

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