From 34da641add0387fbf88b4f0a6299b2039518c048 Mon Sep 17 00:00:00 2001 From: Mingli Yu Date: Tue, 19 Sep 2023 14:15:29 +0800 Subject: hdf5: Upgrade to 1.14.2 License Update: link update from http://support.hdfgroup.org/ftp/HDF5/releases/COPYING_LBNL_HDF5 to https://raw.githubusercontent.com/hdfgroup/hdf5/develop/COPYING_LBNL_HDF5. Rework the patch 0001-cmake-remove-build-flags.patch to fix the build path issue. Add zlib depends to fix the below failure: /build/tmp/work/core2-64-poky-linux/hdf5/1.14.2/recipe-sysroot-native/usr/bin/x86_64-poky-linux/../../libexec/x86_64-poky-linux/gcc/x86_64-poky-linux/13.2.0/ld: bin/libhdf5.so.310.2.0: undefined reference to `inflateEnd' /build/tmp/work/core2-64-poky-linux/hdf5/1.14.2/recipe-sysroot-native/usr/bin/x86_64-poky-linux/../../libexec/x86_64-poky-linux/gcc/x86_64-poky-linux/13.2.0/ld: bin/libhdf5.so.310.2.0: undefined reference to `inflate' /build/tmp/work/core2-64-poky-linux/hdf5/1.14.2/recipe-sysroot-native/usr/bin/x86_64-poky-linux/../../libexec/x86_64-poky-linux/gcc/x86_64-poky-linux/13.2.0/ld: bin/libhdf5.so.310.2.0: undefined reference to `compress2' /build/tmp/work/core2-64-poky-linux/hdf5/1.14.2/recipe-sysroot-native/usr/bin/x86_64-poky-linux/../../libexec/x86_64-poky-linux/gcc/x86_64-poky-linux/13.2.0/ld: bin/libhdf5.so.310.2.0: undefined reference to `inflateInit_' collect2: error: ld returned 1 exit status Signed-off-by: Mingli Yu Signed-off-by: Khem Raj --- .../hdf5/files/0001-cmake-remove-build-flags.patch | 98 +++++++++++++++------- meta-oe/recipes-support/hdf5/hdf5_1.14.0.bb | 55 ------------ meta-oe/recipes-support/hdf5/hdf5_1.14.2.bb | 60 +++++++++++++ 3 files changed, 128 insertions(+), 85 deletions(-) delete mode 100644 meta-oe/recipes-support/hdf5/hdf5_1.14.0.bb create mode 100644 meta-oe/recipes-support/hdf5/hdf5_1.14.2.bb diff --git a/meta-oe/recipes-support/hdf5/files/0001-cmake-remove-build-flags.patch b/meta-oe/recipes-support/hdf5/files/0001-cmake-remove-build-flags.patch index a8050cc55b..68d9c3a3cf 100644 --- a/meta-oe/recipes-support/hdf5/files/0001-cmake-remove-build-flags.patch +++ b/meta-oe/recipes-support/hdf5/files/0001-cmake-remove-build-flags.patch @@ -1,58 +1,96 @@ -From 39572baac462f16b39dc385751d5c642646718d3 Mon Sep 17 00:00:00 2001 +From 4fa437782261c0da785d4574ad3a03700f624e66 Mon Sep 17 00:00:00 2001 From: Mingli Yu -Date: Wed, 4 Aug 2021 17:05:10 +0800 +Date: Tue, 19 Sep 2023 02:56:09 +0000 Subject: [PATCH] cmake: remove build flags -Remove the build flags to improve reproducibility. +Don't generate the build host related info and reemove the build flags +to improve reproducibility. Upstream-Status: Inappropriate [oe specific] Signed-off-by: Mingli Yu --- - config/cmake/libh5cc.in | 2 +- - config/cmake/libhdf5.settings.cmake.in | 12 ++++++------ - 2 files changed, 7 insertions(+), 7 deletions(-) + config/cmake/libhdf5.settings.cmake.in | 18 +++++++++--------- + src/H5make_libsettings.c | 17 ----------------- + 2 files changed, 9 insertions(+), 26 deletions(-) ---- a/config/cmake/libh5cc.in -+++ b/config/cmake/libh5cc.in -@@ -44,7 +44,7 @@ for arg in $@ ; do - exit $status - ;; - *) -- @_PKG_CONFIG_COMPILER@ $@ `pkg-config --define-variable=prefix=$dir --cflags --libs @_PKG_CONFIG_LIBNAME@` -+ `pkg-config --define-variable=prefix=$dir --cflags --libs @_PKG_CONFIG_LIBNAME@-@_PKG_CONFIG_VERSION@` $@ - status=$? - exit $status - ;; +diff --git a/config/cmake/libhdf5.settings.cmake.in b/config/cmake/libhdf5.settings.cmake.in +index f60f0de..f4433c0 100644 --- a/config/cmake/libhdf5.settings.cmake.in +++ b/config/cmake/libhdf5.settings.cmake.in -@@ -27,14 +27,14 @@ Linking Options: +@@ -23,23 +23,23 @@ Linking Options: + ---------------- + Libraries: @BUILD_NAME_EXT@ + Statically Linked Executables: @BUILD_STATIC_EXECS@ +- LDFLAGS: @CMAKE_SHARED_LINKER_FLAGS@ ++ LDFLAGS: H5_LDFLAGS: @H5_LDFLAGS@ AM_LDFLAGS: @AM_LDFLAGS@ Extra libraries: @LINK_LIBS@ - Archiver: @CMAKE_AR@ +- AR_FLAGS: - Ranlib: @CMAKE_RANLIB@ + Archiver: ++ AR_FLAGS: + Ranlib: Languages: ---------- C: YES - C Compiler: @CMAKE_C_COMPILER@ @CMAKE_C_COMPILER_VERSION@ -- CPPFLAGS: @CPPFLAGS@ + C Compiler: -+ CPPFLAGS: + CPPFLAGS: @CPPFLAGS@ H5_CPPFLAGS: @H5_CPPFLAGS@ AM_CPPFLAGS: @AM_CPPFLAGS@ - CFLAGS: @CMAKE_C_FLAGS@ -@@ -53,8 +53,8 @@ Languages: - @BUILD_FORTRAN_CONDITIONAL_TRUE@ Module Directory: @CMAKE_Fortran_MODULE_DIRECTORY@ +- CFLAGS: @CMAKE_C_FLAGS@ +- H5_CFLAGS: @HDF5_CMAKE_C_FLAGS@ ++ CFLAGS: ++ H5_CFLAGS: + AM_CFLAGS: @AM_CFLAGS@ + Shared C Library: @H5_ENABLE_SHARED_LIB@ + Static C Library: @H5_ENABLE_STATIC_LIB@ +@@ -51,11 +51,11 @@ Languages: + AM Fortran Flags: @AM_FCFLAGS@ + Shared Fortran Library: @H5_ENABLE_SHARED_LIB@ + Static Fortran Library: @H5_ENABLE_STATIC_LIB@ +- Module Directory: @CMAKE_Fortran_MODULE_DIRECTORY@ ++ Module Directory: C++: @HDF5_BUILD_CPP_LIB@ --@BUILD_CXX_CONDITIONAL_TRUE@ C++ Compiler: @CMAKE_CXX_COMPILER@ @CMAKE_CXX_COMPILER_VERSION@ --@BUILD_CXX_CONDITIONAL_TRUE@ C++ Flags: @CMAKE_CXX_FLAGS@ -+@BUILD_CXX_CONDITIONAL_TRUE@ C++ Compiler: -+@BUILD_CXX_CONDITIONAL_TRUE@ C++ Flags: - @BUILD_CXX_CONDITIONAL_TRUE@ H5 C++ Flags: @HDF5_CMAKE_CXX_FLAGS@ - @BUILD_CXX_CONDITIONAL_TRUE@ AM C++ Flags: @AM_CXXFLAGS@ - @BUILD_CXX_CONDITIONAL_TRUE@ Shared C++ Library: @H5_ENABLE_SHARED_LIB@ + C++ Compiler: @CMAKE_CXX_COMPILER@ @CMAKE_CXX_COMPILER_VERSION@ +- C++ Flags: @CMAKE_CXX_FLAGS@ ++ C++ Flags: + H5 C++ Flags: @HDF5_CMAKE_CXX_FLAGS@ + AM C++ Flags: @AM_CXXFLAGS@ + Shared C++ Library: @H5_ENABLE_SHARED_LIB@ +diff --git a/src/H5make_libsettings.c b/src/H5make_libsettings.c +index 2661288..7c0f84f 100644 +--- a/src/H5make_libsettings.c ++++ b/src/H5make_libsettings.c +@@ -205,23 +205,6 @@ information about the library build configuration\n"; + fprintf(rawoutstream, "/* Generated automatically by H5make_libsettings -- do not edit */\n\n\n"); + fputs(FileHeader, rawoutstream); /*the copyright notice--see top of this file */ + +- fprintf(rawoutstream, " *\n * Created:\t\t%s %2d, %4d\n", month_name[tm->tm_mon], tm->tm_mday, +- 1900 + tm->tm_year); +- if (pwd || real_name[0] || host_name[0]) { +- fprintf(rawoutstream, " *\t\t\t"); +- if (real_name[0]) +- fprintf(rawoutstream, "%s <", real_name); +-#ifdef H5_HAVE_GETPWUID +- if (pwd) +- fputs(pwd->pw_name, rawoutstream); +-#endif +- if (host_name[0]) +- fprintf(rawoutstream, "@%s", host_name); +- if (real_name[0]) +- fprintf(rawoutstream, ">"); +- fputc('\n', rawoutstream); +- } +- + fprintf(rawoutstream, " *\n * Purpose:\t\t"); + + for (s = purpose; *s; s++) { +-- +2.35.5 + diff --git a/meta-oe/recipes-support/hdf5/hdf5_1.14.0.bb b/meta-oe/recipes-support/hdf5/hdf5_1.14.0.bb deleted file mode 100644 index d0ff2ef487..0000000000 --- a/meta-oe/recipes-support/hdf5/hdf5_1.14.0.bb +++ /dev/null @@ -1,55 +0,0 @@ -SUMMARY = "Management suite for extremely large and complex data collections" -DESCRIPTION = "Unique technology suite that makes possible the management of \ -extremely large and complex data collections" -HOMEPAGE = "https://www.hdfgroup.org/" -SECTION = "libs" - -LICENSE = "HDF5" -LIC_FILES_CHKSUM = "file://COPYING;md5=ac1039f6bf7c9ab2b3693836f46d0735" - -inherit cmake siteinfo qemu multilib_header - -DEPENDS += "qemu-native" - -SRC_URI = " \ - https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.14/hdf5-${PV}/src/${BPN}-${PV}.tar.bz2 \ - file://0002-Remove-suffix-shared-from-shared-library-name.patch \ - file://0001-cmake-remove-build-flags.patch \ -" -SRC_URI[sha256sum] = "e4e79433450edae2865a4c6328188bb45391b29d74f8c538ee699f0b116c2ba0" - -FILES:${PN} += "${libdir}/libhdf5.settings ${datadir}/*" - -EXTRA_OECMAKE = " \ - -DHDF5_INSTALL_CMAKE_DIR=${libdir}/cmake \ - -DCMAKE_INSTALL_PREFIX='${prefix}' \ - -DHDF5_INSTALL_LIB_DIR='${baselib}' \ -" -EXTRA_OECMAKE:prepend:class-target = "-DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper " - -gen_emu() { - # Write out a qemu wrapper that will be used by cmake - # so that it can run target helper binaries through that. - qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}" - cat > ${WORKDIR}/qemuwrapper << EOF -#!/bin/sh -$qemu_binary "\$@" -EOF - chmod +x ${WORKDIR}/qemuwrapper -} - -do_unpack[postfuncs] += "gen_emu" - -do_install:append() { - # Used for generating config files on target - install -m 755 ${B}/bin/H5detect ${D}${bindir} - install -m 755 ${B}/bin/H5make_libsettings ${D}${bindir} - oe_multilib_header H5pubconf.h -} - -BBCLASSEXTEND = "native" - -SRC_DISTRIBUTE_LICENSES += "HDF5" - -# h5fuse.sh script needs bash -RDEPENDS:${PN} += "bash" diff --git a/meta-oe/recipes-support/hdf5/hdf5_1.14.2.bb b/meta-oe/recipes-support/hdf5/hdf5_1.14.2.bb new file mode 100644 index 0000000000..68b91c0b0c --- /dev/null +++ b/meta-oe/recipes-support/hdf5/hdf5_1.14.2.bb @@ -0,0 +1,60 @@ +SUMMARY = "Management suite for extremely large and complex data collections" +DESCRIPTION = "Unique technology suite that makes possible the management of \ +extremely large and complex data collections" +HOMEPAGE = "https://www.hdfgroup.org/" +SECTION = "libs" + +LICENSE = "HDF5" +LIC_FILES_CHKSUM = "file://COPYING;md5=9ba0f3d878ab6c2403c86e9b0362d998" + +inherit cmake siteinfo qemu multilib_header + +DEPENDS += "qemu-native zlib" + +SRC_URI = " \ + https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.14/hdf5-${PV}/src/${BPN}-${PV}.tar.bz2 \ + file://0002-Remove-suffix-shared-from-shared-library-name.patch \ + file://0001-cmake-remove-build-flags.patch \ +" +SRC_URI[sha256sum] = "ea3c5e257ef322af5e77fc1e52ead3ad6bf3bb4ac06480dd17ee3900d7a24cfb" + +FILES:${PN} += "${libdir}/libhdf5.settings ${datadir}/*" + +EXTRA_OECMAKE = " \ + -DHDF5_INSTALL_CMAKE_DIR=${libdir}/cmake \ + -DCMAKE_INSTALL_PREFIX='${prefix}' \ + -DHDF5_INSTALL_LIB_DIR='${baselib}' \ +" +EXTRA_OECMAKE:prepend:class-target = "-DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper " + +gen_emu() { + # Write out a qemu wrapper that will be used by cmake + # so that it can run target helper binaries through that. + qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}" + cat > ${WORKDIR}/qemuwrapper << EOF +#!/bin/sh +$qemu_binary "\$@" +EOF + chmod +x ${WORKDIR}/qemuwrapper +} + +do_unpack[postfuncs] += "gen_emu" + +do_install:append() { + # Used for generating config files on target + install -m 755 ${B}/bin/H5detect ${D}${bindir} + install -m 755 ${B}/bin/H5make_libsettings ${D}${bindir} + oe_multilib_header H5pubconf.h + # remove the buildpath + sed -i -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/pkgconfig/hdf5.pc + sed -i -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/cmake/hdf5-targets.cmake + sed -i -e 's|${RECIPE_SYSROOT_NATIVE}||g' ${D}${bindir}/h5hlcc + sed -i -e 's|${RECIPE_SYSROOT_NATIVE}||g' ${D}${bindir}/h5cc +} + +BBCLASSEXTEND = "native" + +SRC_DISTRIBUTE_LICENSES += "HDF5" + +# h5fuse.sh script needs bash +RDEPENDS:${PN} += "bash" -- cgit v1.2.3-54-g00ecf