Orion Poplawski wrote on 2022/01/30 3:48:
> hdf5 is starting to fail to build with gcc 12 in rawhide with:
>
> make[2]: Entering directory
> '/builddir/build/BUILD/hdf5-1.12.1/build/fortran/test'
> /bin/sh ../../libtool --tag=FC --mode=link gfortran -std=f2008
> -Waliasing -Wall -Wcharacter-truncation -Wextra -Wimplicit-interface
> -Wsurprising -Wunderflow -pedantic -Warray-temporaries
> -Wintrinsics-std -Wimplicit-procedure -Wreal-q-constant
> -Wfunction-elimination -Wrealloc-lhs -Wrealloc-lhs-all
> -Wno-c-binding-type -Wuse-without-only -Winteger-division
> -Wfrontend-loop-interchange -fdiagnostics-urls=never
> -fno-diagnostics-color -s -O3 -I../../fortran/src -I../../fortran/src
> -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches
> -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
> -Wp,-D_GLIBCXX_ASSERTIONS
> -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
> -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1
> -m64 -mtune=generic -fasynchronous-unwind-tables
> -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules
> -Wl,-z,relro -Wl,--as-needed -Wl,-z,now
> -specs=/usr/lib/rpm/redhat/redhat-hardened-ld
> -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1
> -Wl,-dT,/builddir/build/BUILD/hdf5-1.12.1/.package_note-hdf5-1.12.1-2.fc36.x86_64.ld
> -fPIC -Wl,-z,now -Wl,--as-needed -o fortranlib_test_1_8 tH5O.o
> tH5A_1_8.o tH5G_1_8.o tH5MISC_1_8.o tHDF5_1_8.o fortranlib_test_1_8.o
> libh5test_fortran.la ../../test/libh5test.la
> ../../fortran/src/libhdf5_fortran.la ../../src/libhdf5.la -lsz -lz
> -ldl -lm
> libtool: link: gfortran -std=f2008 -Waliasing -Wall
> -Wcharacter-truncation -Wextra -Wimplicit-interface -Wsurprising
> -Wunderflow -pedantic -Warray-temporaries -Wintrinsics-std
> -Wimplicit-procedure -Wreal-q-constant -Wfunction-elimination
> -Wrealloc-lhs -Wrealloc-lhs-all -Wno-c-binding-type -Wuse-without-only
> -Winteger-division -Wfrontend-loop-interchange
> -fdiagnostics-urls=never -fno-diagnostics-color -s -O3
> -I../../fortran/src -I../../fortran/src -O2 -flto=auto
> -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall
> -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
> -Wp,-D_GLIBCXX_ASSERTIONS
> -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
> -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1
> -m64 -mtune=generic -fasynchronous-unwind-tables
> -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules
> -Wl,-z -Wl,relro -Wl,--as-needed -Wl,-z -Wl,now
> -specs=/usr/lib/rpm/redhat/redhat-hardened-ld
> -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1
> -Wl,-dT
> -Wl,/builddir/build/BUILD/hdf5-1.12.1/.package_note-hdf5-1.12.1-2.fc36.x86_64.ld
> -fPIC -Wl,-z -Wl,now -Wl,--as-needed -o .libs/fortranlib_test_1_8
> tH5O.o tH5A_1_8.o tH5G_1_8.o tH5MISC_1_8.o tHDF5_1_8.o
> fortranlib_test_1_8.o ./.libs/libh5test_fortran.a
> ../../test/.libs/libh5test.a
> ../../fortran/src/.libs/libhdf5_fortran.so
> /builddir/build/BUILD/hdf5-1.12.1/build/src/.libs/libhdf5.so
> ../../src/.libs/libhdf5.so -lsz -lz -ldl -lm
> ../../../fortran/test/tf.F90:169:33: warning: type of 'h5_fixname_c'
> does not match original declaration [-Wlto-type-mismatch]
> 169 | full_name, full_namelen)
> | ^
> ../../../fortran/test/t.c:43:1: note: type mismatch in parameter 6
> 43 | nh5_fixname_c(_fcd base_name, size_t_f *base_namelen, hid_t_f
> *fapl, _fcd full_name, size_t_f *full_namelen)
> | ^
> ../../../fortran/test/t.c:43:1: note: type 'void' should match type
> 'long int'
> ../../../fortran/test/t.c:43:1: note: 'h5_fixname_c_' was previously
> declared here
> ../../../fortran/test/tf.F90:220:56: warning: type of 'h5_cleanup_c'
> does not match original declaration [-Wlto-type-mismatch]
> 220 | hdferr = h5_cleanup_c(base_name, base_namelen, fapl)
> | ^
> ../../../fortran/test/t.c:85:1: note: type mismatch in parameter 4
> 85 | nh5_cleanup_c(_fcd base_name, size_t_f *base_namelen, hid_t_f
> *fapl)
> | ^
> ../../../fortran/test/t.c:85:1: note: type 'void' should match type
> 'long int'
> ../../../fortran/test/t.c:85:1: note: 'h5_cleanup_c_' was previously
> declared here
> /usr/bin/ld: /tmp/ccYpA0p7.ltrans1.ltrans.o: warning: relocation
> against `minusone.31' in read-only section `.text'
> /usr/bin/ld: /tmp/ccYpA0p7.ltrans0.ltrans.o: in function
> `__th5a_1_8_MOD_attribute_test_1_8.constprop.0':
> /builddir/build/BUILD/hdf5-1.12.1/build/fortran/test/tf_gen.F90:84:
> undefined reference to `minusone.46'
> /usr/bin/ld: /tmp/ccYpA0p7.ltrans1.ltrans.o: in function
> `__th5a_1_8_MOD_test_attr_info_by_idx.constprop.0':
> /builddir/build/BUILD/hdf5-1.12.1/build/fortran/test/tf_gen.F90:84:
> undefined reference to `minusone.18'
> /usr/bin/ld:
> /builddir/build/BUILD/hdf5-1.12.1/build/fortran/test/tf_gen.F90:84:
> undefined reference to `minusone.18'
> /usr/bin/ld:
> /builddir/build/BUILD/hdf5-1.12.1/build/fortran/test/tf_gen.F90:84:
> undefined reference to `minusone.18'
> /usr/bin/ld:
> /builddir/build/BUILD/hdf5-1.12.1/build/fortran/test/tf_gen.F90:84:
> undefined reference to `minusone.18'
> /usr/bin/ld: /tmp/ccYpA0p7.ltrans1.ltrans.o: in function
> `__th5a_1_8_MOD_test_attr_delete_by_idx.constprop.0':
> /builddir/build/BUILD/hdf5-1.12.1/build/fortran/test/tf_gen.F90:84:
> undefined reference to `minusone.31'
> /usr/bin/ld:
> /builddir/build/BUILD/hdf5-1.12.1/build/fortran/test/tf_gen.F90:84:
> undefined reference to `minusone.31'
> /usr/bin/ld:
> /builddir/build/BUILD/hdf5-1.12.1/build/fortran/test/tf_gen.F90:84:
> undefined reference to `minusone.31'
> /usr/bin/ld:
> /builddir/build/BUILD/hdf5-1.12.1/build/fortran/test/tf_gen.F90:84:
> undefined reference to `minusone.31'
> /usr/bin/ld: warning: creating DT_TEXTREL in a PIE
> collect2: error: ld returned 1 exit status
> make[2]: *** [Makefile:999: fortranlib_test_1_8] Error 1
>
> I have no idea what is going on here. Any clues?
>
Looks like "minusone" variable looking like constant value defined in
fortran/test/tH5A_1_8.F90 needs PARAMETER attribute. Tried this diff:
```
diff --git a/hdf5.spec b/hdf5.spec
index 3b1d27b..2bac44d 100644
--- a/hdf5.spec
+++ b/hdf5.spec
@@ -187,6 +187,8 @@ autoreconf -f -i
# Modify low optimization level for gnu compilers
sed -e 's|-O -finline-functions|-O3 -finline-functions|g' -i
config/gnu-flags
+sed -i fortran/test/tH5A_1_8.F90 -e 's|INTEGER :: minusone|INTEGER,
PARAMETER :: minusone|'
+
%build
#Do out of tree builds
%global _configure ../configure
```
https://koji.fedoraproject.org/koji/taskinfo?taskID=82124997
Unfortunately ppc64le %check fails, looking like long double related,
which I believe is related to recent gcc default change to
-mabi=ieeelongdouble on ppc64le,
however I don't know how to fix this.
Thank you! I've passed that on to upstream. Unfortunately I don't know
how to fix the ppc64le issue either. I've reported that upstream (hdf5)
as well. Perhaps they have some insight.
--
Orion Poplawski
he/him/his - surely the least important thing about me
Manager of NWRA Technical Systems 720-772-5637
NWRA, Boulder/CoRA Office FAX: 303-415-9702
3380 Mitchell Lane orion(a)nwra.com
Boulder, CO 80301