From dd24663d3f40c959f68b00478813ed8d5bcbbeaf Mon Sep 17 00:00:00 2001 From: Ismo Puustinen Date: Mon, 27 Feb 2017 15:40:55 +0200 Subject: [PATCH 01/10] python3-pillow: new package. Pillow is a fork of PIL, Python Imaging Library. Signed-off-by: Ismo Puustinen --- .../distro/include/refkit_security_flags.inc | 1 + ...ild-always-disable-platform-guessing.patch | 60 +++++++++++++++++++ .../python-pillow/python3-pillow_4.0.0.bb | 28 +++++++++ 3 files changed, 89 insertions(+) create mode 100644 meta-refkit/recipes-convnet/python-pillow/files/0001-build-always-disable-platform-guessing.patch create mode 100644 meta-refkit/recipes-convnet/python-pillow/python3-pillow_4.0.0.bb diff --git a/meta-refkit/conf/distro/include/refkit_security_flags.inc b/meta-refkit/conf/distro/include/refkit_security_flags.inc index ae73c0c2ba..0b6e8bd9e1 100644 --- a/meta-refkit/conf/distro/include/refkit_security_flags.inc +++ b/meta-refkit/conf/distro/include/refkit_security_flags.inc @@ -15,6 +15,7 @@ SECURITY_CFLAGS_pn-tbb = "${SECURITY_NO_PIE_CFLAGS} ${SECURITY_PIC_CFLAGS}" SECURITY_CFLAGS_pn-protobuf = "${SECURITY_NO_PIE_CFLAGS} ${SECURITY_PIC_CFLAGS}" SECURITY_CFLAGS_pn-glog = "${SECURITY_NO_PIE_CFLAGS} ${SECURITY_PIC_CFLAGS}" SECURITY_CFLAGS_pn-clang = "${SECURITY_NO_PIE_CFLAGS} ${SECURITY_PIC_CFLAGS}" +SECURITY_CFLAGS_pn-python3-pillow = "${SECURITY_NO_PIE_CFLAGS} ${SECURITY_PIC_CFLAGS}" # openjdk-8 ends up linking with "-shared -pie -fpie" in some cases (see # hotspot/make/linux/makefiles/saproc.make) which then tries (and fails) to diff --git a/meta-refkit/recipes-convnet/python-pillow/files/0001-build-always-disable-platform-guessing.patch b/meta-refkit/recipes-convnet/python-pillow/files/0001-build-always-disable-platform-guessing.patch new file mode 100644 index 0000000000..54c91f2f64 --- /dev/null +++ b/meta-refkit/recipes-convnet/python-pillow/files/0001-build-always-disable-platform-guessing.patch @@ -0,0 +1,60 @@ +From f95790326dde62e98894a61528f5374f15a10dcf Mon Sep 17 00:00:00 2001 +From: Ismo Puustinen +Date: Mon, 27 Feb 2017 13:16:23 +0200 +Subject: [PATCH] build: always disable platform guessing. + +Upstream-status: Inappropriate + +Signed-off-by: Ismo Puustinen +--- + setup.py | 20 +------------------- + 1 file changed, 1 insertion(+), 19 deletions(-) + +diff --git a/setup.py b/setup.py +index 1dc146d..dcdb8e8 100755 +--- a/setup.py ++++ b/setup.py +@@ -251,7 +251,7 @@ class pil_build_ext(build_ext): + # + # add platform directories + +- if self.disable_platform_guessing: ++ if self.disable_platform_guessing or True: + pass + + elif sys.platform == "cygwin": +@@ -351,14 +351,6 @@ class pil_build_ext(build_ext): + raise ValueError( + "Unable to identify Linux platform: `%s`" % platform_) + +- # XXX Kludge. Above /\ we brute force support multiarch. Here we +- # try Barry's more general approach. Afterward, something should +- # work ;-) +- self.add_multiarch_paths() +- +- elif sys.platform.startswith("gnu"): +- self.add_multiarch_paths() +- + elif sys.platform.startswith("freebsd"): + _add_directory(library_dirs, "/usr/local/lib") + _add_directory(include_dirs, "/usr/local/include") +@@ -373,16 +365,6 @@ class pil_build_ext(build_ext): + + # FIXME: check /opt/stuff directories here? + +- # standard locations +- if not self.disable_platform_guessing: +- _add_directory(library_dirs, "/usr/local/lib") +- _add_directory(include_dirs, "/usr/local/include") +- +- _add_directory(library_dirs, "/usr/lib") +- _add_directory(include_dirs, "/usr/include") +- # alpine, at least +- _add_directory(library_dirs, "/lib") +- + # on Windows, look for the OpenJPEG libraries in the location that + # the official installer puts them + if sys.platform == "win32": +-- +2.9.3 + diff --git a/meta-refkit/recipes-convnet/python-pillow/python3-pillow_4.0.0.bb b/meta-refkit/recipes-convnet/python-pillow/python3-pillow_4.0.0.bb new file mode 100644 index 0000000000..80da647980 --- /dev/null +++ b/meta-refkit/recipes-convnet/python-pillow/python3-pillow_4.0.0.bb @@ -0,0 +1,28 @@ +SUMMARY = "Python library that provides an easy interface to read and write a wide range of image data, including animated images, video, volumetric data, and scientific formats." +SECTION = "devel/python" +LICENSE = "PIL" +LIC_FILES_CHKSUM = "file://LICENSE;md5=ed22148166c9fd21895d7794dc16f6a5" + +inherit setuptools3 pkgconfig distutils-tools + +SRC_URI = " \ + https://github.com/python-pillow/Pillow/archive/${PV}a.tar.gz \ + file://0001-build-always-disable-platform-guessing.patch \ +" + +SRC_URI[md5sum] = "bca20cd48afd6618135540b34dba3267" +SRC_URI[sha256sum] = "d498837f6c84d0fad9ef414dc0e9ee0b8d45d10efebc72898ed15950f111ad55" + +S = "${WORKDIR}/Pillow-${PV}a" + +DEPENDS += "python3 libjpeg-turbo zlib tiff freetype libpng jpeg" + +# DISTUTILS_INSTALL_ARGS += "--disable-platform-guessing" + +CFLAGS_append = " -I${STAGING_INCDIR}" +LDFLAGS_append = " -L${STAGING_LIBDIR}" + +do_compile_prepend() { + export LDFLAGS="$LDFLAGS -L${STAGING_LIBDIR}" + export CFLAGS="$CFLAGS -I${STAGING_INCDIR}" +} From cf6e5102f99386777d73c308d2e8c80d4e59f467 Mon Sep 17 00:00:00 2001 From: Ismo Puustinen Date: Thu, 2 Mar 2017 10:46:31 +0200 Subject: [PATCH 02/10] python3-imageio: add a new package. ImageIO is a Python library for doing basic I/O operations for images. Signed-off-by: Ismo Puustinen --- .../python-imageio/python3-imageio_2.1.2.bb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 meta-refkit/recipes-convnet/python-imageio/python3-imageio_2.1.2.bb diff --git a/meta-refkit/recipes-convnet/python-imageio/python3-imageio_2.1.2.bb b/meta-refkit/recipes-convnet/python-imageio/python3-imageio_2.1.2.bb new file mode 100644 index 0000000000..cec41b27d2 --- /dev/null +++ b/meta-refkit/recipes-convnet/python-imageio/python3-imageio_2.1.2.bb @@ -0,0 +1,19 @@ +SUMMARY = "Python library that provides an easy interface to read and write a wide range of image data, including animated images, video, volumetric data, and scientific formats." +SECTION = "devel/python" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=295e673459dd7498500c971c98831367" + +SRC_URI = " \ + https://github.com/imageio/imageio/archive/v${PV}.tar.gz \ +" +SRC_URI[md5sum] = "61bb19fa36d966c2dc85521948b338c9" +SRC_URI[sha256sum] = "d7d411c25e2b46af99b6bbca7eb00cc9847981db12f467f6c8d9e7d7a80b277b" + +S = "${WORKDIR}/imageio-${PV}" + +inherit setuptools3 + +DEPENDS = "python3" + +RDEPENDS_${PN} = "python3-numpy python3-pillow" + From 8d89bab694792dca7c4695d261862dec3b559698 Mon Sep 17 00:00:00 2001 From: Ismo Puustinen Date: Tue, 28 Feb 2017 16:42:48 +0200 Subject: [PATCH 03/10] python3-protobuf: add a new package. The protobuf package didn't compile Python bindings. Add a new package which does that. Signed-off-by: Ismo Puustinen --- .../python-protobuf/python3-protobuf_3.1.0.bb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 meta-refkit/recipes-convnet/python-protobuf/python3-protobuf_3.1.0.bb diff --git a/meta-refkit/recipes-convnet/python-protobuf/python3-protobuf_3.1.0.bb b/meta-refkit/recipes-convnet/python-protobuf/python3-protobuf_3.1.0.bb new file mode 100644 index 0000000000..dbf0eb47c1 --- /dev/null +++ b/meta-refkit/recipes-convnet/python-protobuf/python3-protobuf_3.1.0.bb @@ -0,0 +1,15 @@ +SUMMARY = "Protocol Buffers Python bindings" +SECTION = "devel/python" +LICENSE = "BSD-3-Clause" + +LIC_FILES_CHKSUM = "file://${WORKDIR}/git/LICENSE;md5=35953c752efc9299b184f91bef540095" + +inherit setuptools3 + +SRCREV = "a428e42072765993ff674fda72863c9f1aa2d268" +PV = "3.1.0+git${SRCPV}" +SRC_URI = "git://github.com/google/protobuf.git" + +S = "${WORKDIR}/git/python" + +DEPENDS = "python3 protobuf protobuf-native python3-setuptools-native" From c946fb08f0222abde154c2f1b549e2dc713e7a8e Mon Sep 17 00:00:00 2001 From: Ismo Puustinen Date: Wed, 22 Feb 2017 10:57:48 +0200 Subject: [PATCH 04/10] recipes-convnet: import caffe and its dependencies. The recipes are originally from (non-maintained) meta-convnet layer. Patch Caffe to compile the Python bindings with Python 3. Also change the image IO libary away from scipy-image, so that we don't have full matplotlib and graphical environment as runtime dependencies. Then add custom demo scripts. Many recipes are updated and customized. They probably don't work properly in anything else than 64-bit x86 environment. Signed-off-by: Ismo Puustinen --- .../distro/include/refkit_security_flags.inc | 2 + .../recipes-convnet/boost/boost_%.bbappend | 1 + .../recipes-convnet/caffe/caffe_git.bb | 68 + ...tting-numpy-include-dir-from-outside.patch | 43 + ...-SYSTEM-for-non-system-include-direc.patch | 67 + .../caffe/files/0003-cmake-fix-RPATHS.patch | 28 + .../files/0004-config-use-Python-3.patch | 28 + .../files/0005-io-change-to-imageio.patch | 74 ++ ...ded-a-demo-app-for-classifying-image.patch | 192 +++ .../recipes-convnet/glog/glog_%.bbappend | 1 + .../recipes-convnet/hdf5/files/H5Tinit.c | 993 +++++++++++++++ .../hdf5/files/H5lib_settings.c | 41 + .../hdf5/files/configuration.patch | 1090 +++++++++++++++++ .../hdf5/files/copy_generated.patch | 15 + .../hdf5/files/fix-configure.patch | 65 + .../hdf5/files/fix-src-make.patch | 36 + .../hdf5/files/fix-test-make.patch | 12 + .../hdf5/files/generation.patch | 44 + .../recipes-convnet/hdf5/hdf5_1.8.17.bb | 68 + .../leveldb/leveldb_%.bbappend | 1 + .../files/0001-Patch-the-main-Makefile.patch | 91 ++ .../recipes-convnet/lmdb/lmdb_0.9.16.bb | 28 + .../openblas/openblas_0.2.19.bb | 58 + .../packagegroup/packagegroup-caffe.bb | 45 + .../recipes-convnet/snappy/snappy_1.1.4.bb | 19 + 25 files changed, 3110 insertions(+) create mode 100644 meta-refkit/recipes-convnet/boost/boost_%.bbappend create mode 100644 meta-refkit/recipes-convnet/caffe/caffe_git.bb create mode 100644 meta-refkit/recipes-convnet/caffe/files/0001-Allow-setting-numpy-include-dir-from-outside.patch create mode 100644 meta-refkit/recipes-convnet/caffe/files/0002-cmake-do-not-use-SYSTEM-for-non-system-include-direc.patch create mode 100644 meta-refkit/recipes-convnet/caffe/files/0003-cmake-fix-RPATHS.patch create mode 100644 meta-refkit/recipes-convnet/caffe/files/0004-config-use-Python-3.patch create mode 100644 meta-refkit/recipes-convnet/caffe/files/0005-io-change-to-imageio.patch create mode 100644 meta-refkit/recipes-convnet/caffe/files/0006-classify-demo-added-a-demo-app-for-classifying-image.patch create mode 100644 meta-refkit/recipes-convnet/glog/glog_%.bbappend create mode 100644 meta-refkit/recipes-convnet/hdf5/files/H5Tinit.c create mode 100644 meta-refkit/recipes-convnet/hdf5/files/H5lib_settings.c create mode 100644 meta-refkit/recipes-convnet/hdf5/files/configuration.patch create mode 100644 meta-refkit/recipes-convnet/hdf5/files/copy_generated.patch create mode 100644 meta-refkit/recipes-convnet/hdf5/files/fix-configure.patch create mode 100644 meta-refkit/recipes-convnet/hdf5/files/fix-src-make.patch create mode 100644 meta-refkit/recipes-convnet/hdf5/files/fix-test-make.patch create mode 100644 meta-refkit/recipes-convnet/hdf5/files/generation.patch create mode 100644 meta-refkit/recipes-convnet/hdf5/hdf5_1.8.17.bb create mode 100644 meta-refkit/recipes-convnet/leveldb/leveldb_%.bbappend create mode 100644 meta-refkit/recipes-convnet/lmdb/files/0001-Patch-the-main-Makefile.patch create mode 100644 meta-refkit/recipes-convnet/lmdb/lmdb_0.9.16.bb create mode 100644 meta-refkit/recipes-convnet/openblas/openblas_0.2.19.bb create mode 100644 meta-refkit/recipes-convnet/packagegroup/packagegroup-caffe.bb create mode 100644 meta-refkit/recipes-convnet/snappy/snappy_1.1.4.bb diff --git a/meta-refkit/conf/distro/include/refkit_security_flags.inc b/meta-refkit/conf/distro/include/refkit_security_flags.inc index 0b6e8bd9e1..552f03b54a 100644 --- a/meta-refkit/conf/distro/include/refkit_security_flags.inc +++ b/meta-refkit/conf/distro/include/refkit_security_flags.inc @@ -16,6 +16,8 @@ SECURITY_CFLAGS_pn-protobuf = "${SECURITY_NO_PIE_CFLAGS} ${SECURITY_PIC_CFLAGS}" SECURITY_CFLAGS_pn-glog = "${SECURITY_NO_PIE_CFLAGS} ${SECURITY_PIC_CFLAGS}" SECURITY_CFLAGS_pn-clang = "${SECURITY_NO_PIE_CFLAGS} ${SECURITY_PIC_CFLAGS}" SECURITY_CFLAGS_pn-python3-pillow = "${SECURITY_NO_PIE_CFLAGS} ${SECURITY_PIC_CFLAGS}" +SECURITY_CFLAGS_pn-snappy = "${SECURITY_NO_PIE_CFLAGS} ${SECURITY_PIC_CFLAGS}" +SECURITY_CFLAGS_pn-leveldb = "${SECURITY_NO_PIE_CFLAGS} ${SECURITY_PIC_CFLAGS}" # openjdk-8 ends up linking with "-shared -pie -fpie" in some cases (see # hotspot/make/linux/makefiles/saproc.make) which then tries (and fails) to diff --git a/meta-refkit/recipes-convnet/boost/boost_%.bbappend b/meta-refkit/recipes-convnet/boost/boost_%.bbappend new file mode 100644 index 0000000000..af6cc8b5eb --- /dev/null +++ b/meta-refkit/recipes-convnet/boost/boost_%.bbappend @@ -0,0 +1 @@ +PACKAGECONFIG += "python" diff --git a/meta-refkit/recipes-convnet/caffe/caffe_git.bb b/meta-refkit/recipes-convnet/caffe/caffe_git.bb new file mode 100644 index 0000000000..3f6e5e0556 --- /dev/null +++ b/meta-refkit/recipes-convnet/caffe/caffe_git.bb @@ -0,0 +1,68 @@ +DESCRIPTION = "Build Caffe library for CNN using OpenBLAS lib" +AUTHOR = "Alexander Leiva " +SUMMARY = "Caffe : A fast open framework for deep learning" +HOMEPAGE = "http://caffe.berkeleyvision.org/" +LICENSE = "BSD" +PRIORITY= "optional" +SECTION = "libs" +PR = "r0" + +DEPENDS = " \ + boost \ + openblas \ + protobuf-native \ + protobuf \ + glog \ + gflags \ + hdf5 \ + opencv \ + lmdb \ + snappy \ + leveldb \ + viennacl \ + ocl-icd \ + python3 \ + python3-native \ + python3-numpy-native \ +" + +inherit python3native + +RDEPENDS_${PN} = "python3-numpy python3-imageio python3-six python3-protobuf" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=91d560803ea3d191c457b12834553991" + +SRC_URI = " \ + git://github.com/BVLC/caffe.git;branch=opencl \ + file://0001-Allow-setting-numpy-include-dir-from-outside.patch \ + file://0002-cmake-do-not-use-SYSTEM-for-non-system-include-direc.patch \ + file://0003-cmake-fix-RPATHS.patch \ + file://0004-config-use-Python-3.patch \ + file://0005-io-change-to-imageio.patch \ + file://0006-classify-demo-added-a-demo-app-for-classifying-image.patch \ +" +SRCREV = "f3ba72c520165d7c403a82770370f20472685d63" + +S = "${WORKDIR}/git" + +FILES_${PN} += " \ + ${prefix}/python/* \ +" +FILES_${PN}-dev = " \ + ${includedir} \ + ${datadir}/Caffe/*cmake \ + ${libdir}/*.so \ +" + +inherit cmake python-dir + +# allow cmake to find native Python interpreter +#OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH" + +EXTRA_OECMAKE = " \ + -DBLAS=open \ + -DPYTHON_NUMPY_INCLUDE_DIR=${STAGING_DIR_TARGET}/usr/lib/python3.5/site-packages/numpy/core/include \ + -DPYTHON_EXECUTABLE=${STAGING_BINDIR_NATIVE}/python3-native/python3 \ + -DPYTHON_INCLUDE_DIRS=${STAGING_INCDIR_TARGET}/python3-native/python3.5m \ + -DPYTHON_LIBRARIES=${STAGING_LIBDIR_TARGET}/python3.5 \ +" diff --git a/meta-refkit/recipes-convnet/caffe/files/0001-Allow-setting-numpy-include-dir-from-outside.patch b/meta-refkit/recipes-convnet/caffe/files/0001-Allow-setting-numpy-include-dir-from-outside.patch new file mode 100644 index 0000000000..9cd0fdbbb9 --- /dev/null +++ b/meta-refkit/recipes-convnet/caffe/files/0001-Allow-setting-numpy-include-dir-from-outside.patch @@ -0,0 +1,43 @@ +From 3a0407e127559d2349f0217c6c5cf7751dd1aeba Mon Sep 17 00:00:00 2001 +From: Ismo Puustinen +Date: Tue, 25 Oct 2016 12:09:19 +0300 +Subject: [PATCH 1/6] Allow setting numpy include dir from outside. + +--- + cmake/Modules/FindNumPy.cmake | 16 ++++++++++------ + 1 file changed, 10 insertions(+), 6 deletions(-) + +diff --git a/cmake/Modules/FindNumPy.cmake b/cmake/Modules/FindNumPy.cmake +index a671494..38ebb32 100644 +--- a/cmake/Modules/FindNumPy.cmake ++++ b/cmake/Modules/FindNumPy.cmake +@@ -16,11 +16,16 @@ unset(NUMPY_VERSION) + unset(NUMPY_INCLUDE_DIR) + + if(PYTHONINTERP_FOUND) +- execute_process(COMMAND "${PYTHON_EXECUTABLE}" "-c" +- "import numpy as n; print(n.__version__); print(n.get_include());" +- RESULT_VARIABLE __result +- OUTPUT_VARIABLE __output +- OUTPUT_STRIP_TRAILING_WHITESPACE) ++ if(NOT DEFINED PYTHON_NUMPY_INCLUDE_DIR) ++ execute_process(COMMAND "${PYTHON_EXECUTABLE}" "-c" ++ "import numpy as n; print(n.__version__); print(n.get_include());" ++ RESULT_VARIABLE __result ++ OUTPUT_VARIABLE __output ++ OUTPUT_STRIP_TRAILING_WHITESPACE) ++ else() ++ SET(__result 0) ++ SET(__output "1.11.0\n${PYTHON_NUMPY_INCLUDE_DIR}") ++ endif() + + if(__result MATCHES 0) + string(REGEX REPLACE ";" "\\\\;" __values ${__output}) +@@ -55,4 +60,3 @@ if(NUMPY_FOUND) + endif() + + caffe_clear_vars(__result __output __error_value __values __ver_check __error_value) +- +-- +2.9.3 + diff --git a/meta-refkit/recipes-convnet/caffe/files/0002-cmake-do-not-use-SYSTEM-for-non-system-include-direc.patch b/meta-refkit/recipes-convnet/caffe/files/0002-cmake-do-not-use-SYSTEM-for-non-system-include-direc.patch new file mode 100644 index 0000000000..d08afe128c --- /dev/null +++ b/meta-refkit/recipes-convnet/caffe/files/0002-cmake-do-not-use-SYSTEM-for-non-system-include-direc.patch @@ -0,0 +1,67 @@ +From 9e698ecf0b354a87ea0bf79ee42a4e6ec09c7669 Mon Sep 17 00:00:00 2001 +From: Ismo Puustinen +Date: Fri, 17 Feb 2017 14:43:21 +0200 +Subject: [PATCH 2/6] cmake: do not use SYSTEM for non-system include + directories. + +Signed-off-by: Ismo Puustinen +--- + cmake/Dependencies.cmake | 8 ++++---- + cmake/ProtoBuf.cmake | 2 +- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake +index 00de565..0b861af 100644 +--- a/cmake/Dependencies.cmake ++++ b/cmake/Dependencies.cmake +@@ -6,7 +6,7 @@ set(Caffe_COMPILE_OPTIONS "") + + # ---[ Boost + find_package(Boost 1.46 REQUIRED COMPONENTS system thread filesystem) +-include_directories(SYSTEM PUBLIC ${Boost_INCLUDE_DIR}) ++include_directories(PUBLIC ${Boost_INCLUDE_DIR}) + add_definitions(-DBOOST_ALL_NO_LIB) + list(APPEND Caffe_INCLUDE_DIRS PUBLIC ${Boost_INCLUDE_DIRS}) + list(APPEND Caffe_LINKER_LIBS PUBLIC ${Boost_LIBRARIES}) +@@ -66,14 +66,14 @@ else() + endif() + endif() + +-include_directories(SYSTEM ${HDF5_INCLUDE_DIRS} ${HDF5_HL_INCLUDE_DIR}) ++include_directories(${HDF5_INCLUDE_DIRS} ${HDF5_HL_INCLUDE_DIR}) + list(APPEND Caffe_LINKER_LIBS PUBLIC ${HDF5_LIBRARIES} ${HDF5_HL_LIBRARIES}) + list(APPEND Caffe_INCLUDE_DIRS PUBLIC ${HDF5_INCLUDE_DIRS}) + + # This code is taken from https://github.com/sh1r0/caffe-android-lib + if(USE_HDF5) + find_package(HDF5 COMPONENTS HL REQUIRED) +- include_directories(SYSTEM ${HDF5_INCLUDE_DIRS} ${HDF5_HL_INCLUDE_DIR}) ++ include_directories(${HDF5_INCLUDE_DIRS} ${HDF5_HL_INCLUDE_DIR}) + list(APPEND Caffe_INCLUDE_DIRS PUBLIC ${HDF5_INCLUDE_DIRS}) + list(APPEND Caffe_LINKER_LIBS PUBLIC ${HDF5_LIBRARIES} ${HDF5_HL_LIBRARIES}) + add_definitions(-DUSE_HDF5) +@@ -201,7 +201,7 @@ endif() + + if(USE_NCCL) + include("cmake/External/nccl.cmake") +- include_directories(SYSTEM ${NCCL_INCLUDE_DIR}) ++ include_directories(${NCCL_INCLUDE_DIR}) + list(APPEND Caffe_LINKER_LIBS ${NCCL_LIBRARIES}) + add_definitions(-DUSE_NCCL) + endif() +diff --git a/cmake/ProtoBuf.cmake b/cmake/ProtoBuf.cmake +index 2527195..dc6285b 100644 +--- a/cmake/ProtoBuf.cmake ++++ b/cmake/ProtoBuf.cmake +@@ -8,7 +8,7 @@ if(MSVC) + else() + find_package( Protobuf REQUIRED ) + endif() +-include_directories(SYSTEM ${PROTOBUF_INCLUDE_DIR}) ++include_directories(${PROTOBUF_INCLUDE_DIR}) + list(APPEND Caffe_INCLUDE_DIRS PUBLIC ${PROTOBUF_INCLUDE_DIR}) + list(APPEND Caffe_LINKER_LIBS PUBLIC ${PROTOBUF_LIBRARIES}) + +-- +2.9.3 + diff --git a/meta-refkit/recipes-convnet/caffe/files/0003-cmake-fix-RPATHS.patch b/meta-refkit/recipes-convnet/caffe/files/0003-cmake-fix-RPATHS.patch new file mode 100644 index 0000000000..7b41318313 --- /dev/null +++ b/meta-refkit/recipes-convnet/caffe/files/0003-cmake-fix-RPATHS.patch @@ -0,0 +1,28 @@ +From 8d9b978681b7c7d5443f5503e2075b007fb460a5 Mon Sep 17 00:00:00 2001 +From: Ismo Puustinen +Date: Fri, 17 Feb 2017 15:35:43 +0200 +Subject: [PATCH 3/6] cmake: fix RPATHS. + +Signed-off-by: Ismo Puustinen +--- + cmake/Misc.cmake | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/cmake/Misc.cmake b/cmake/Misc.cmake +index 9dd2609..2150751 100644 +--- a/cmake/Misc.cmake ++++ b/cmake/Misc.cmake +@@ -28,10 +28,6 @@ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR}/install" CACHE PATH "Default install path" FORCE) + endif() + +-# ---[ RPATH settings +-set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE CACHE BOOLEAN "Use link paths for shared library rpath") +-set(CMAKE_MACOSX_RPATH TRUE) +- + list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES ${CMAKE_INSTALL_PREFIX}/lib __is_systtem_dir) + if(${__is_systtem_dir} STREQUAL -1) + set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib) +-- +2.9.3 + diff --git a/meta-refkit/recipes-convnet/caffe/files/0004-config-use-Python-3.patch b/meta-refkit/recipes-convnet/caffe/files/0004-config-use-Python-3.patch new file mode 100644 index 0000000000..167c30c91a --- /dev/null +++ b/meta-refkit/recipes-convnet/caffe/files/0004-config-use-Python-3.patch @@ -0,0 +1,28 @@ +From a2e6ed1a11500896453c346c82713dd1869368b2 Mon Sep 17 00:00:00 2001 +From: Ismo Puustinen +Date: Thu, 23 Feb 2017 18:01:09 +0200 +Subject: [PATCH 4/6] config: use Python 3. + +Upstream-status: Inappropriate + +Signed-off-by: Ismo Puustinen +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c6f9ca6..aceb1e8 100755 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -68,7 +68,7 @@ else() + caffe_option(BUILD_SHARED_LIBS "Build shared libraries" ON) + endif() + caffe_option(BUILD_python "Build Python wrapper" ON) +-set(python_version "2" CACHE STRING "Specify which Python version to use") ++set(python_version "3" CACHE STRING "Specify which Python version to use") + caffe_option(BUILD_matlab "Build Matlab wrapper" OFF) + caffe_option(BUILD_docs "Build documentation" ON IF UNIX OR APPLE) + caffe_option(BUILD_python_layer "Build the Caffe Python layer" ON) +-- +2.9.3 + diff --git a/meta-refkit/recipes-convnet/caffe/files/0005-io-change-to-imageio.patch b/meta-refkit/recipes-convnet/caffe/files/0005-io-change-to-imageio.patch new file mode 100644 index 0000000000..edd1f4e516 --- /dev/null +++ b/meta-refkit/recipes-convnet/caffe/files/0005-io-change-to-imageio.patch @@ -0,0 +1,74 @@ +From b5a475cbabd67a7c31c01698f55814895f194730 Mon Sep 17 00:00:00 2001 +From: Ismo Puustinen +Date: Fri, 24 Feb 2017 16:07:09 +0200 +Subject: [PATCH 5/6] io: change to imageio. + +This gets rid of the whole sciki-image dependency (and as a consequence, +drops the matplotlib dependency). Note that some operations meant for +image resizing still use other dependencies -- the imports have been +pushed into the respective code branches to avoid top-level +dependencies. + +Upstream-status: Inappropriate + +Signed-off-by: Ismo Puustinen +--- + python/caffe/io.py | 15 +++++++++++---- + 1 file changed, 11 insertions(+), 4 deletions(-) + +diff --git a/python/caffe/io.py b/python/caffe/io.py +index e1759be..ebccca2 100644 +--- a/python/caffe/io.py ++++ b/python/caffe/io.py +@@ -1,7 +1,5 @@ + import numpy as np +-import skimage.io +-from scipy.ndimage import zoom +-from skimage.transform import resize ++import imageio + + try: + # Python3 will most likely not be able to load protobuf +@@ -139,6 +137,7 @@ class Transformer: + ------- + caffe_in : (K x H x W) ndarray for input to a Net + """ ++ + self.__check_input(in_) + caffe_in = data.astype(np.float32, copy=False) + transpose = self.transpose.get(in_) +@@ -293,7 +292,7 @@ def load_image(filename, color=True): + of size (H x W x 3) in RGB or + of size (H x W x 1) in grayscale. + """ +- img = skimage.img_as_float(skimage.io.imread(filename, as_grey=not color)).astype(np.float32) ++ img = np.array(np.divide(imageio.imread(filename), 255.0).astype(np.float32)) + if img.ndim == 2: + img = img[:, :, np.newaxis] + if color: +@@ -317,7 +316,13 @@ def resize_image(im, new_dims, interp_order=1): + ------- + im : resized ndarray with shape (new_dims[0], new_dims[1], K) + """ ++ ++ if im.shape[:2] == tuple(new_dims): ++ return im ++ + if im.shape[-1] == 1 or im.shape[-1] == 3: ++ from skimage.transform import resize ++ + im_min, im_max = im.min(), im.max() + if im_max > im_min: + # skimage is fast but only understands {1,3} channel images +@@ -332,6 +337,8 @@ def resize_image(im, new_dims, interp_order=1): + ret.fill(im_min) + return ret + else: ++ from scipy.ndimage import zoom ++ + # ndimage interpolates anything but more slowly. + scale = tuple(np.array(new_dims, dtype=float) / np.array(im.shape[:2])) + resized_im = zoom(im, scale + (1,), order=interp_order) +-- +2.9.3 + diff --git a/meta-refkit/recipes-convnet/caffe/files/0006-classify-demo-added-a-demo-app-for-classifying-image.patch b/meta-refkit/recipes-convnet/caffe/files/0006-classify-demo-added-a-demo-app-for-classifying-image.patch new file mode 100644 index 0000000000..0207643a7f --- /dev/null +++ b/meta-refkit/recipes-convnet/caffe/files/0006-classify-demo-added-a-demo-app-for-classifying-image.patch @@ -0,0 +1,192 @@ +From 0c1d8f099dda91b2887eeb281329ddec6fcf3667 Mon Sep 17 00:00:00 2001 +From: Ismo Puustinen +Date: Tue, 28 Feb 2017 16:38:26 +0200 +Subject: [PATCH 6/6] classify-demo: added a demo app for classifying images. + +This is a modification of the existing classify.py script in the same +folder. The modified script is meant to be suitable for interactive use, +which means that the results are presented on the screen in a +human-readable format instead of saving them into a file. + +Upstream-status: Inappropriate + +Signed-off-by: Ismo Puustinen +--- + python/classify-demo.py | 165 ++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 165 insertions(+) + create mode 100755 python/classify-demo.py + +diff --git a/python/classify-demo.py b/python/classify-demo.py +new file mode 100755 +index 0000000..1dd5f52 +--- /dev/null ++++ b/python/classify-demo.py +@@ -0,0 +1,165 @@ ++#!/usr/bin/env python ++""" ++classify-demo.py is a modification of classify.py meant for interactive ++demo use. ++""" ++import numpy as np ++import os ++import sys ++import argparse ++import glob ++import time ++ ++import caffe ++ ++ ++def main(argv): ++ pycaffe_dir = os.path.dirname(__file__) ++ ++ parser = argparse.ArgumentParser() ++ # Required arguments: input files. ++ parser.add_argument( ++ "input_file", ++ help="Input image, directory, or npy." ++ ) ++ # Optional arguments. ++ parser.add_argument( ++ "--model_def", ++ default=os.path.join(pycaffe_dir, ++ "/usr/share/Caffe/models/bvlc_reference_caffenet/deploy.prototxt"), ++ help="Model definition file." ++ ) ++ parser.add_argument( ++ "--pretrained_model", ++ default=os.path.join(pycaffe_dir, ++ "/usr/share/Caffe/models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel"), ++ help="Trained model weights file." ++ ) ++ parser.add_argument( ++ "--gpu", ++ action='store_true', ++ help="Switch for gpu computation." ++ ) ++ parser.add_argument( ++ "--center_only", ++ action='store_true', ++ help="Switch for prediction from center crop alone instead of " + ++ "averaging predictions across crops (default)." ++ ) ++ parser.add_argument( ++ "--images_dim", ++ default='256,256', ++ help="Canonical 'height,width' dimensions of input images." ++ ) ++ parser.add_argument( ++ "--mean_file", ++ default=os.path.join(pycaffe_dir, ++ 'ilsvrc_2012_mean.npy'), ++ help="Data set image mean of [Channels x Height x Width] dimensions " + ++ "(numpy array). Set to '' for no mean subtraction." ++ ) ++ parser.add_argument( ++ "--input_scale", ++ type=float, ++ help="Multiply input features by this scale to finish preprocessing." ++ ) ++ parser.add_argument( ++ "--raw_scale", ++ type=float, ++ default=255.0, ++ help="Multiply raw input by this scale before preprocessing." ++ ) ++ parser.add_argument( ++ "--channel_swap", ++ default='2,1,0', ++ help="Order to permute input channels. The default converts " + ++ "RGB -> BGR since BGR is the Caffe default by way of OpenCV." ++ ) ++ parser.add_argument( ++ "--ext", ++ default='jpg', ++ help="Image file extension to take as input when a directory " + ++ "is given as the input file." ++ ) ++ parser.add_argument( ++ "--labels", ++ default='/usr/share/Caffe/data/ilsvrc12/synset_words.txt', ++ help="Image file extension to take as input when a directory " + ++ "is given as the input file." ++ ) ++ args = parser.parse_args() ++ ++ image_dims = [int(s) for s in args.images_dim.split(',')] ++ ++ mean, channel_swap = None, None ++ if args.mean_file: ++ mean = np.load(args.mean_file) ++ if args.channel_swap: ++ channel_swap = [int(s) for s in args.channel_swap.split(',')] ++ ++ if args.gpu: ++ caffe.set_mode_gpu() ++ caffe.set_devices((0,)) ++ caffe.select_device(0, True) ++ print("GPU mode") ++ else: ++ caffe.set_mode_cpu() ++ print("CPU mode") ++ ++ labels = [] ++ ++ with open(args.labels, "r") as f: ++ lines = f.readlines() ++ for line in lines: ++ labels.append(line[10:].strip()) ++ ++ # Make classifier. ++ classifier = caffe.Classifier(args.model_def, args.pretrained_model, ++ image_dims=image_dims, mean=mean, ++ input_scale=args.input_scale, raw_scale=args.raw_scale, ++ channel_swap=channel_swap) ++ ++ # Load numpy array (.npy), directory glob (*.jpg), or image file. ++ args.input_file = os.path.expanduser(args.input_file) ++ if args.input_file.endswith('npy'): ++ print("Loading file: %s" % args.input_file) ++ inputs = np.load(args.input_file) ++ elif os.path.isdir(args.input_file): ++ print("Loading folder: %s" % args.input_file) ++ inputs =[caffe.io.load_image(im_f) ++ for im_f in glob.glob(args.input_file + '/*.' + args.ext)] ++ else: ++ print("Loading file: %s" % args.input_file) ++ inputs = [caffe.io.load_image(args.input_file)] ++ ++ print("Classifying %d inputs." % len(inputs)) ++ ++ # Classify. ++ start = time.time() ++ predictions = classifier.predict(inputs, not args.center_only) ++ print("Done in %.2f s." % (time.time() - start)) ++ ++ for prediction in predictions: ++ ++ # Find three best matches. ++ first = -1 ++ second = -1 ++ third = -1 ++ ++ for x in range(len(prediction)): ++ if first == -1 or prediction[x] > prediction[first]: ++ third = second ++ second = first ++ first = x ++ elif second == -1 or prediction[x] > prediction[second]: ++ third = second ++ second = x ++ elif third == -1 or prediction[x] > prediction[third]: ++ third = x ++ ++ print("First match: '%s' (%.1f %%)" % (labels[first], prediction[first]*100)) ++ print("Second match: '%s' (%.1f %%)" % (labels[second], prediction[second]*100)) ++ print("Third match: '%s' (%.1f %%)" % (labels[third], prediction[third]*100)) ++ ++if __name__ == '__main__': ++ main(sys.argv) +-- +2.9.3 + diff --git a/meta-refkit/recipes-convnet/glog/glog_%.bbappend b/meta-refkit/recipes-convnet/glog/glog_%.bbappend new file mode 100644 index 0000000000..a065152fbb --- /dev/null +++ b/meta-refkit/recipes-convnet/glog/glog_%.bbappend @@ -0,0 +1 @@ +DEPENDS += "gflags" diff --git a/meta-refkit/recipes-convnet/hdf5/files/H5Tinit.c b/meta-refkit/recipes-convnet/hdf5/files/H5Tinit.c new file mode 100644 index 0000000000..e6600a13d4 --- /dev/null +++ b/meta-refkit/recipes-convnet/hdf5/files/H5Tinit.c @@ -0,0 +1,993 @@ +/* Generated automatically by H5detect -- do not edit */ + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * + * Created: Feb 15, 2017 + * root + * + * Purpose: This machine-generated source code contains + * information about the various integer and + * floating point numeric formats found on this + * architecture. The parameters below should be + * checked carefully and errors reported to the + * HDF5 maintainer. + * + * Each of the numeric formats listed below are + * printed from most significant bit to least + * significant bit even though the actual bytes + * might be stored in a different order in + * memory. The integers above each binary byte + * indicate the relative order of the bytes in + * memory; little-endian machines have + * decreasing numbers while big-endian machines + * have increasing numbers. + * + * The fields of the numbers are printed as + * letters with `S' for the mantissa sign bit, + * `M' for the mantissa magnitude, and `E' for + * the exponent. The exponent has an associated + * bias which can be subtracted to find the + * true exponent. The radix point is assumed + * to be before the first `M' bit. Any bit + * of a floating-point value not falling into one + * of these categories is printed as a question + * mark. Bits of integer types are printed as + * `I' for 2's complement and `U' for magnitude. + * + * If the most significant bit of the normalized + * mantissa (always a `1' except for `0.0') is + * not stored then an `implicit=yes' appears + * under the field description. In thie case, + * the radix point is still assumed to be + * before the first `M' but after the implicit + * bit. + * + * Modifications: + * + * DO NOT MAKE MODIFICATIONS TO THIS FILE! + * It was generated by code in `H5detect.c'. + * + *------------------------------------------------------------------------- + */ + +/****************/ +/* Module Setup */ +/****************/ + +#define H5T_PACKAGE /*suppress error about including H5Tpkg.h*/ + + +/***********/ +/* Headers */ +/***********/ +#include "H5private.h" /* Generic Functions */ +#include "H5Eprivate.h" /* Error handling */ +#include "H5FLprivate.h" /* Free Lists */ +#include "H5Iprivate.h" /* IDs */ +#include "H5Tpkg.h" /* Datatypes */ + + +/****************/ +/* Local Macros */ +/****************/ + + +/******************/ +/* Local Typedefs */ +/******************/ + + +/********************/ +/* Package Typedefs */ +/********************/ + + +/********************/ +/* Local Prototypes */ +/********************/ + + +/********************/ +/* Public Variables */ +/********************/ + + +/*****************************/ +/* Library Private Variables */ +/*****************************/ + + +/*********************/ +/* Package Variables */ +/*********************/ + + + +/*******************/ +/* Local Variables */ +/*******************/ + + + +/*------------------------------------------------------------------------- + * Function: H5TN_init_interface + * + * Purpose: Initialize pre-defined native datatypes from code generated + * during the library configuration by H5detect. + * + * Return: Success: non-negative + * Failure: negative + * + * Programmer: Robb Matzke + * Wednesday, December 16, 1998 + * + *------------------------------------------------------------------------- + */ +herr_t +H5TN_init_interface(void) +{ + H5T_t *dt = NULL; + herr_t ret_value = SUCCEED; + + FUNC_ENTER_NOAPI(FAIL) + + /* + * 0 + * IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 1; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 8; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_SCHAR_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_SCHAR_ALIGN_g = 1; + H5T_NATIVE_SCHAR_COMP_ALIGN_g = 1; + + /* + * 0 + * UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 1; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 8; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UCHAR_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UCHAR_ALIGN_g = 1; + + /* + * 1 0 + * IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 2; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 16; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_SHORT_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_SHORT_ALIGN_g = 1; + H5T_NATIVE_SHORT_COMP_ALIGN_g = 2; + + /* + * 1 0 + * UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 2; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 16; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_USHORT_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_USHORT_ALIGN_g = 1; + + /* + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_ALIGN_g = 1; + H5T_NATIVE_INT_COMP_ALIGN_g = 4; + + /* + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_ALIGN_g = 1; + + /* + * 7 6 5 4 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_LONG_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_LONG_ALIGN_g = 1; + H5T_NATIVE_LONG_COMP_ALIGN_g = 8; + + /* + * 7 6 5 4 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_ULONG_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_ULONG_ALIGN_g = 1; + + /* + * 0 + * IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 1; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 8; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT8_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT8_ALIGN_g = 1; + + /* + * 0 + * UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 1; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 8; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT8_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT8_ALIGN_g = 1; + + /* + * 0 + * IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 1; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 8; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_LEAST8_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_LEAST8_ALIGN_g = 1; + + /* + * 0 + * UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 1; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 8; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_LEAST8_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_LEAST8_ALIGN_g = 1; + + /* + * 0 + * IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 1; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 8; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_FAST8_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_FAST8_ALIGN_g = 1; + + /* + * 0 + * UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 1; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 8; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_FAST8_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_FAST8_ALIGN_g = 1; + + /* + * 1 0 + * IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 2; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 16; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT16_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT16_ALIGN_g = 1; + + /* + * 1 0 + * UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 2; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 16; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT16_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT16_ALIGN_g = 1; + + /* + * 1 0 + * IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 2; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 16; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_LEAST16_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_LEAST16_ALIGN_g = 1; + + /* + * 1 0 + * UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 2; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 16; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_LEAST16_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_LEAST16_ALIGN_g = 1; + + /* + * 7 6 5 4 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_FAST16_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_FAST16_ALIGN_g = 1; + + /* + * 7 6 5 4 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_FAST16_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_FAST16_ALIGN_g = 1; + + /* + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT32_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT32_ALIGN_g = 1; + + /* + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT32_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT32_ALIGN_g = 1; + + /* + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_LEAST32_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_LEAST32_ALIGN_g = 1; + + /* + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_LEAST32_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_LEAST32_ALIGN_g = 1; + + /* + * 7 6 5 4 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_FAST32_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_FAST32_ALIGN_g = 1; + + /* + * 7 6 5 4 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_FAST32_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_FAST32_ALIGN_g = 1; + + /* + * 7 6 5 4 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT64_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT64_ALIGN_g = 1; + + /* + * 7 6 5 4 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT64_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT64_ALIGN_g = 1; + + /* + * 7 6 5 4 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_LEAST64_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_LEAST64_ALIGN_g = 1; + + /* + * 7 6 5 4 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_LEAST64_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_LEAST64_ALIGN_g = 1; + + /* + * 7 6 5 4 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_FAST64_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_FAST64_ALIGN_g = 1; + + /* + * 7 6 5 4 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_FAST64_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_FAST64_ALIGN_g = 1; + + /* + * 7 6 5 4 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_LLONG_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_LLONG_ALIGN_g = 1; + H5T_NATIVE_LLONG_COMP_ALIGN_g = 8; + + /* + * 7 6 5 4 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_ULLONG_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_ULLONG_ALIGN_g = 1; + + /* + * 3 2 1 0 + * SEEEEEEE EMMMMMMM MMMMMMMM MMMMMMMM + * Implicit bit? yes + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_FLOAT; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.f.sign = 31; + dt->shared->u.atomic.u.f.epos = 23; + dt->shared->u.atomic.u.f.esize = 8; + dt->shared->u.atomic.u.f.ebias = 0x0000007f; + dt->shared->u.atomic.u.f.mpos = 0; + dt->shared->u.atomic.u.f.msize = 23; + dt->shared->u.atomic.u.f.norm = H5T_NORM_IMPLIED; + dt->shared->u.atomic.u.f.pad = H5T_PAD_ZERO; + if((H5T_NATIVE_FLOAT_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_FLOAT_ALIGN_g = 1; + H5T_NATIVE_FLOAT_COMP_ALIGN_g = 4; + + /* + * 7 6 5 4 + * SEEEEEEE EEEEMMMM MMMMMMMM MMMMMMMM + * 3 2 1 0 + * MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM + * Implicit bit? yes + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_FLOAT; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.f.sign = 63; + dt->shared->u.atomic.u.f.epos = 52; + dt->shared->u.atomic.u.f.esize = 11; + dt->shared->u.atomic.u.f.ebias = 0x000003ff; + dt->shared->u.atomic.u.f.mpos = 0; + dt->shared->u.atomic.u.f.msize = 52; + dt->shared->u.atomic.u.f.norm = H5T_NORM_IMPLIED; + dt->shared->u.atomic.u.f.pad = H5T_PAD_ZERO; + if((H5T_NATIVE_DOUBLE_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_DOUBLE_ALIGN_g = 1; + H5T_NATIVE_DOUBLE_COMP_ALIGN_g = 8; + + /* + * 15 14 13 12 + * ???????? ???????? ???????? ???????? + * 11 10 9 8 + * ???????? ???????? SEEEEEEE EEEEEEEE + * 7 6 5 4 + * MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM + * 3 2 1 0 + * MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM + * Implicit bit? no + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_FLOAT; + dt->shared->size = 16; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 80; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.f.sign = 79; + dt->shared->u.atomic.u.f.epos = 64; + dt->shared->u.atomic.u.f.esize = 15; + dt->shared->u.atomic.u.f.ebias = 0x00003fff; + dt->shared->u.atomic.u.f.mpos = 0; + dt->shared->u.atomic.u.f.msize = 64; + dt->shared->u.atomic.u.f.norm = H5T_NORM_NONE; + dt->shared->u.atomic.u.f.pad = H5T_PAD_ZERO; + if((H5T_NATIVE_LDOUBLE_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_LDOUBLE_ALIGN_g = 1; + H5T_NATIVE_LDOUBLE_COMP_ALIGN_g = 16; + + /* Set the native order for this machine */ + H5T_native_order_g = H5T_ORDER_LE; + + /* Structure alignment for pointers, hvl_t, hobj_ref_t, hdset_reg_ref_t */ + H5T_POINTER_COMP_ALIGN_g = 8; + H5T_HVL_COMP_ALIGN_g = 8; + H5T_HOBJREF_COMP_ALIGN_g = 8; + H5T_HDSETREGREF_COMP_ALIGN_g = 1; + +done: + if(ret_value < 0) { + if(dt != NULL) { + dt->shared = H5FL_FREE(H5T_shared_t, dt->shared); + dt = H5FL_FREE(H5T_t, dt); + } /* end if */ + } /* end if */ + + FUNC_LEAVE_NOAPI(ret_value); +} /* end H5TN_init_interface() */ + +/****************************************/ +/* ALIGNMENT and signal-handling status */ +/****************************************/ +/* Signal() support: yes */ +/* setjmp() support: yes */ +/* longjmp() support: yes */ +/* sigsetjmp() support: yes */ +/* siglongjmp() support: yes */ +/* sigprocmask() support: yes */ + +/******************************/ +/* signal handlers statistics */ +/******************************/ +/* signal_handlers tested: 15 times */ +/* sigbus_handler called: 5 times */ +/* sigsegv_handler called: 5 times */ +/* sigill_handler called: 5 times */ diff --git a/meta-refkit/recipes-convnet/hdf5/files/H5lib_settings.c b/meta-refkit/recipes-convnet/hdf5/files/H5lib_settings.c new file mode 100644 index 0000000000..c1c3444e34 --- /dev/null +++ b/meta-refkit/recipes-convnet/hdf5/files/H5lib_settings.c @@ -0,0 +1,41 @@ +/* Generated automatically by H5make_libsettings -- do not edit */ + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * + * Created: Feb 15, 2017 + * root + * + * Purpose: This machine-generated source code contains + * information about the library build configuration + * + * Modifications: + * + * DO NOT MAKE MODIFICATIONS TO THIS FILE! + * It was generated by code in `H5make_libsettings.c'. + * + *------------------------------------------------------------------------- + */ + +char H5libhdf5_settings[]= + " SUMMARY OF THE HDF5 CONFIGURATION\n" + " =================================\n" + "\n" + "The configuration information is withheld. Build OS is x86_64 Intel IoT Reference Kit.\n" + "\n" +; + diff --git a/meta-refkit/recipes-convnet/hdf5/files/configuration.patch b/meta-refkit/recipes-convnet/hdf5/files/configuration.patch new file mode 100644 index 0000000000..a010427164 --- /dev/null +++ b/meta-refkit/recipes-convnet/hdf5/files/configuration.patch @@ -0,0 +1,1090 @@ +diff --git a/H5Tinit.c b/H5Tinit.c +new file mode 100644 +index 0000000..ef1afc4 +--- /dev/null ++++ b/H5Tinit.c +@@ -0,0 +1,977 @@ ++/* Generated automatically by H5detect -- do not edit */ ++ ++ ++ ++/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ++ * Copyright by The HDF Group. * ++ * Copyright by the Board of Trustees of the University of Illinois. * ++ * All rights reserved. * ++ * * ++ * This file is part of HDF5. The full HDF5 copyright notice, including * ++ * terms governing use, modification, and redistribution, is contained in * ++ * the files COPYING and Copyright.html. COPYING can be found at the root * ++ * of the source code distribution tree; Copyright.html can be found at the * ++ * root level of an installed copy of the electronic HDF5 document set and * ++ * is linked from the top-level documents page. It can also be found at * ++ * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * ++ * access to either file, you may request a copy from help@hdfgroup.org. * ++ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ++ * ++ * Created: Nov 30, 2015 ++ * root ++ * ++ * Purpose: This machine-generated source code contains ++ * information about the various integer and ++ * floating point numeric formats found on this ++ * architecture. The parameters below should be ++ * checked carefully and errors reported to the ++ * HDF5 maintainer. ++ * ++ * Each of the numeric formats listed below are ++ * printed from most significant bit to least ++ * significant bit even though the actual bytes ++ * might be stored in a different order in ++ * memory. The integers above each binary byte ++ * indicate the relative order of the bytes in ++ * memory; little-endian machines have ++ * decreasing numbers while big-endian machines ++ * have increasing numbers. ++ * ++ * The fields of the numbers are printed as ++ * letters with `S' for the mantissa sign bit, ++ * `M' for the mantissa magnitude, and `E' for ++ * the exponent. The exponent has an associated ++ * bias which can be subtracted to find the ++ * true exponent. The radix point is assumed ++ * to be before the first `M' bit. Any bit ++ * of a floating-point value not falling into one ++ * of these categories is printed as a question ++ * mark. Bits of integer types are printed as ++ * `I' for 2's complement and `U' for magnitude. ++ * ++ * If the most significant bit of the normalized ++ * mantissa (always a `1' except for `0.0') is ++ * not stored then an `implicit=yes' appears ++ * under the field description. In thie case, ++ * the radix point is still assumed to be ++ * before the first `M' but after the implicit ++ * bit. ++ * ++ * Modifications: ++ * ++ * DO NOT MAKE MODIFICATIONS TO THIS FILE! ++ * It was generated by code in `H5detect.c'. ++ * ++ *------------------------------------------------------------------------- ++ */ ++ ++/****************/ ++/* Module Setup */ ++/****************/ ++ ++#define H5T_PACKAGE /*suppress error about including H5Tpkg.h*/ ++ ++ ++/***********/ ++/* Headers */ ++/***********/ ++#include "H5private.h" /* Generic Functions */ ++#include "H5Eprivate.h" /* Error handling */ ++#include "H5FLprivate.h" /* Free Lists */ ++#include "H5Iprivate.h" /* IDs */ ++#include "H5Tpkg.h" /* Datatypes */ ++ ++ ++/****************/ ++/* Local Macros */ ++/****************/ ++ ++ ++/******************/ ++/* Local Typedefs */ ++/******************/ ++ ++ ++/********************/ ++/* Package Typedefs */ ++/********************/ ++ ++ ++/********************/ ++/* Local Prototypes */ ++/********************/ ++ ++ ++/********************/ ++/* Public Variables */ ++/********************/ ++ ++ ++/*****************************/ ++/* Library Private Variables */ ++/*****************************/ ++ ++ ++/*********************/ ++/* Package Variables */ ++/*********************/ ++ ++ ++ ++/*******************/ ++/* Local Variables */ ++/*******************/ ++ ++ ++ ++/*------------------------------------------------------------------------- ++ * Function: H5TN_init_interface ++ * ++ * Purpose: Initialize pre-defined native datatypes from code generated ++ * during the library configuration by H5detect. ++ * ++ * Return: Success: non-negative ++ * Failure: negative ++ * ++ * Programmer: Robb Matzke ++ * Wednesday, December 16, 1998 ++ * ++ *------------------------------------------------------------------------- ++ */ ++herr_t ++H5TN_init_interface(void) ++{ ++ H5T_t *dt = NULL; ++ herr_t ret_value = SUCCEED; ++ ++ FUNC_ENTER_NOAPI(FAIL) ++ ++ /* ++ * 0 ++ * IIIIIIII ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 1; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 8; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_2; ++ if((H5T_NATIVE_SCHAR_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_SCHAR_ALIGN_g = 1; ++ H5T_NATIVE_SCHAR_COMP_ALIGN_g = 1; ++ ++ /* ++ * 0 ++ * UUUUUUUU ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 1; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 8; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; ++ if((H5T_NATIVE_UCHAR_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_UCHAR_ALIGN_g = 1; ++ ++ /* ++ * 1 0 ++ * IIIIIIII IIIIIIII ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 2; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 16; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_2; ++ if((H5T_NATIVE_SHORT_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_SHORT_ALIGN_g = 1; ++ H5T_NATIVE_SHORT_COMP_ALIGN_g = 2; ++ ++ /* ++ * 1 0 ++ * UUUUUUUU UUUUUUUU ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 2; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 16; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; ++ if((H5T_NATIVE_USHORT_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_USHORT_ALIGN_g = 1; ++ ++ /* ++ * 3 2 1 0 ++ * IIIIIIII IIIIIIII IIIIIIII IIIIIIII ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 4; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 32; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_2; ++ if((H5T_NATIVE_INT_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_INT_ALIGN_g = 1; ++ H5T_NATIVE_INT_COMP_ALIGN_g = 4; ++ ++ /* ++ * 3 2 1 0 ++ * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 4; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 32; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; ++ if((H5T_NATIVE_UINT_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_UINT_ALIGN_g = 1; ++ ++ /* ++ * 3 2 1 0 ++ * IIIIIIII IIIIIIII IIIIIIII IIIIIIII ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 4; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 32; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_2; ++ if((H5T_NATIVE_LONG_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_LONG_ALIGN_g = 1; ++ H5T_NATIVE_LONG_COMP_ALIGN_g = 4; ++ ++ /* ++ * 3 2 1 0 ++ * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 4; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 32; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; ++ if((H5T_NATIVE_ULONG_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_ULONG_ALIGN_g = 1; ++ ++ /* ++ * 0 ++ * IIIIIIII ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 1; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 8; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_2; ++ if((H5T_NATIVE_INT8_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_INT8_ALIGN_g = 1; ++ ++ /* ++ * 0 ++ * UUUUUUUU ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 1; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 8; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; ++ if((H5T_NATIVE_UINT8_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_UINT8_ALIGN_g = 1; ++ ++ /* ++ * 0 ++ * IIIIIIII ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 1; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 8; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_2; ++ if((H5T_NATIVE_INT_LEAST8_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_INT_LEAST8_ALIGN_g = 1; ++ ++ /* ++ * 0 ++ * UUUUUUUU ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 1; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 8; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; ++ if((H5T_NATIVE_UINT_LEAST8_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_UINT_LEAST8_ALIGN_g = 1; ++ ++ /* ++ * 0 ++ * IIIIIIII ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 1; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 8; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_2; ++ if((H5T_NATIVE_INT_FAST8_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_INT_FAST8_ALIGN_g = 1; ++ ++ /* ++ * 0 ++ * UUUUUUUU ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 1; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 8; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; ++ if((H5T_NATIVE_UINT_FAST8_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_UINT_FAST8_ALIGN_g = 1; ++ ++ /* ++ * 1 0 ++ * IIIIIIII IIIIIIII ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 2; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 16; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_2; ++ if((H5T_NATIVE_INT16_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_INT16_ALIGN_g = 1; ++ ++ /* ++ * 1 0 ++ * UUUUUUUU UUUUUUUU ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 2; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 16; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; ++ if((H5T_NATIVE_UINT16_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_UINT16_ALIGN_g = 1; ++ ++ /* ++ * 1 0 ++ * IIIIIIII IIIIIIII ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 2; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 16; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_2; ++ if((H5T_NATIVE_INT_LEAST16_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_INT_LEAST16_ALIGN_g = 1; ++ ++ /* ++ * 1 0 ++ * UUUUUUUU UUUUUUUU ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 2; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 16; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; ++ if((H5T_NATIVE_UINT_LEAST16_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_UINT_LEAST16_ALIGN_g = 1; ++ ++ /* ++ * 3 2 1 0 ++ * IIIIIIII IIIIIIII IIIIIIII IIIIIIII ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 4; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 32; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_2; ++ if((H5T_NATIVE_INT_FAST16_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_INT_FAST16_ALIGN_g = 1; ++ ++ /* ++ * 3 2 1 0 ++ * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 4; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 32; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; ++ if((H5T_NATIVE_UINT_FAST16_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_UINT_FAST16_ALIGN_g = 1; ++ ++ /* ++ * 3 2 1 0 ++ * IIIIIIII IIIIIIII IIIIIIII IIIIIIII ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 4; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 32; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_2; ++ if((H5T_NATIVE_INT32_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_INT32_ALIGN_g = 1; ++ ++ /* ++ * 3 2 1 0 ++ * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 4; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 32; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; ++ if((H5T_NATIVE_UINT32_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_UINT32_ALIGN_g = 1; ++ ++ /* ++ * 3 2 1 0 ++ * IIIIIIII IIIIIIII IIIIIIII IIIIIIII ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 4; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 32; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_2; ++ if((H5T_NATIVE_INT_LEAST32_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_INT_LEAST32_ALIGN_g = 1; ++ ++ /* ++ * 3 2 1 0 ++ * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 4; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 32; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; ++ if((H5T_NATIVE_UINT_LEAST32_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_UINT_LEAST32_ALIGN_g = 1; ++ ++ /* ++ * 3 2 1 0 ++ * IIIIIIII IIIIIIII IIIIIIII IIIIIIII ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 4; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 32; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_2; ++ if((H5T_NATIVE_INT_FAST32_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_INT_FAST32_ALIGN_g = 1; ++ ++ /* ++ * 3 2 1 0 ++ * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 4; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 32; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; ++ if((H5T_NATIVE_UINT_FAST32_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_UINT_FAST32_ALIGN_g = 1; ++ ++ /* ++ * 7 6 5 4 ++ * IIIIIIII IIIIIIII IIIIIIII IIIIIIII ++ * 3 2 1 0 ++ * IIIIIIII IIIIIIII IIIIIIII IIIIIIII ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 8; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 64; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_2; ++ if((H5T_NATIVE_INT64_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_INT64_ALIGN_g = 1; ++ ++ /* ++ * 7 6 5 4 ++ * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU ++ * 3 2 1 0 ++ * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 8; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 64; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; ++ if((H5T_NATIVE_UINT64_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_UINT64_ALIGN_g = 1; ++ ++ /* ++ * 7 6 5 4 ++ * IIIIIIII IIIIIIII IIIIIIII IIIIIIII ++ * 3 2 1 0 ++ * IIIIIIII IIIIIIII IIIIIIII IIIIIIII ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 8; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 64; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_2; ++ if((H5T_NATIVE_INT_LEAST64_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_INT_LEAST64_ALIGN_g = 1; ++ ++ /* ++ * 7 6 5 4 ++ * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU ++ * 3 2 1 0 ++ * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 8; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 64; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; ++ if((H5T_NATIVE_UINT_LEAST64_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_UINT_LEAST64_ALIGN_g = 1; ++ ++ /* ++ * 7 6 5 4 ++ * IIIIIIII IIIIIIII IIIIIIII IIIIIIII ++ * 3 2 1 0 ++ * IIIIIIII IIIIIIII IIIIIIII IIIIIIII ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 8; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 64; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_2; ++ if((H5T_NATIVE_INT_FAST64_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_INT_FAST64_ALIGN_g = 1; ++ ++ /* ++ * 7 6 5 4 ++ * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU ++ * 3 2 1 0 ++ * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 8; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 64; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; ++ if((H5T_NATIVE_UINT_FAST64_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_UINT_FAST64_ALIGN_g = 1; ++ ++ /* ++ * 7 6 5 4 ++ * IIIIIIII IIIIIIII IIIIIIII IIIIIIII ++ * 3 2 1 0 ++ * IIIIIIII IIIIIIII IIIIIIII IIIIIIII ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 8; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 64; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_2; ++ if((H5T_NATIVE_LLONG_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_LLONG_ALIGN_g = 1; ++ H5T_NATIVE_LLONG_COMP_ALIGN_g = 8; ++ ++ /* ++ * 7 6 5 4 ++ * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU ++ * 3 2 1 0 ++ * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_INTEGER; ++ dt->shared->size = 8; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 64; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; ++ if((H5T_NATIVE_ULLONG_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_ULLONG_ALIGN_g = 1; ++ ++ /* ++ * 3 2 1 0 ++ * SEEEEEEE EMMMMMMM MMMMMMMM MMMMMMMM ++ * Implicit bit? yes ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_FLOAT; ++ dt->shared->size = 4; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 32; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.f.sign = 31; ++ dt->shared->u.atomic.u.f.epos = 23; ++ dt->shared->u.atomic.u.f.esize = 8; ++ dt->shared->u.atomic.u.f.ebias = 0x0000007f; ++ dt->shared->u.atomic.u.f.mpos = 0; ++ dt->shared->u.atomic.u.f.msize = 23; ++ dt->shared->u.atomic.u.f.norm = H5T_NORM_IMPLIED; ++ dt->shared->u.atomic.u.f.pad = H5T_PAD_ZERO; ++ if((H5T_NATIVE_FLOAT_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_FLOAT_ALIGN_g = 1; ++ H5T_NATIVE_FLOAT_COMP_ALIGN_g = 4; ++ ++ /* ++ * 7 6 5 4 ++ * SEEEEEEE EEEEMMMM MMMMMMMM MMMMMMMM ++ * 3 2 1 0 ++ * MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM ++ * Implicit bit? yes ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_FLOAT; ++ dt->shared->size = 8; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 64; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.f.sign = 63; ++ dt->shared->u.atomic.u.f.epos = 52; ++ dt->shared->u.atomic.u.f.esize = 11; ++ dt->shared->u.atomic.u.f.ebias = 0x000003ff; ++ dt->shared->u.atomic.u.f.mpos = 0; ++ dt->shared->u.atomic.u.f.msize = 52; ++ dt->shared->u.atomic.u.f.norm = H5T_NORM_IMPLIED; ++ dt->shared->u.atomic.u.f.pad = H5T_PAD_ZERO; ++ if((H5T_NATIVE_DOUBLE_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_DOUBLE_ALIGN_g = 1; ++ H5T_NATIVE_DOUBLE_COMP_ALIGN_g = 8; ++ ++ /* ++ * 7 6 5 4 ++ * SEEEEEEE EEEEMMMM MMMMMMMM MMMMMMMM ++ * 3 2 1 0 ++ * MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM ++ * Implicit bit? yes ++ * Alignment: none ++ */ ++ if(NULL == (dt = H5T__alloc())) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") ++ dt->shared->state = H5T_STATE_IMMUTABLE; ++ dt->shared->type = H5T_FLOAT; ++ dt->shared->size = 8; ++ dt->shared->u.atomic.order = H5T_ORDER_LE; ++ dt->shared->u.atomic.offset = 0; ++ dt->shared->u.atomic.prec = 64; ++ dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; ++ dt->shared->u.atomic.u.f.sign = 63; ++ dt->shared->u.atomic.u.f.epos = 52; ++ dt->shared->u.atomic.u.f.esize = 11; ++ dt->shared->u.atomic.u.f.ebias = 0x000003ff; ++ dt->shared->u.atomic.u.f.mpos = 0; ++ dt->shared->u.atomic.u.f.msize = 52; ++ dt->shared->u.atomic.u.f.norm = H5T_NORM_IMPLIED; ++ dt->shared->u.atomic.u.f.pad = H5T_PAD_ZERO; ++ if((H5T_NATIVE_LDOUBLE_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) ++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") ++ H5T_NATIVE_LDOUBLE_ALIGN_g = 1; ++ H5T_NATIVE_LDOUBLE_COMP_ALIGN_g = 8; ++ ++ /* Set the native order for this machine */ ++ H5T_native_order_g = H5T_ORDER_LE; ++ ++ /* Structure alignment for pointers, hvl_t, hobj_ref_t, hdset_reg_ref_t */ ++ H5T_POINTER_COMP_ALIGN_g = 4; ++ H5T_HVL_COMP_ALIGN_g = 4; ++ H5T_HOBJREF_COMP_ALIGN_g = 8; ++ H5T_HDSETREGREF_COMP_ALIGN_g = 1; ++ ++done: ++ if(ret_value < 0) { ++ if(dt != NULL) { ++ dt->shared = H5FL_FREE(H5T_shared_t, dt->shared); ++ dt = H5FL_FREE(H5T_t, dt); ++ } /* end if */ ++ } /* end if */ ++ ++ FUNC_LEAVE_NOAPI(ret_value); ++} /* end H5TN_init_interface() */ ++ ++/****************************************/ ++/* ALIGNMENT and signal-handling status */ ++/****************************************/ ++/* Signal() support: yes */ ++/* setjmp() support: yes */ ++/* longjmp() support: yes */ ++/* sigsetjmp() support: no */ ++/* siglongjmp() support: yes */ ++/* sigprocmask() support: yes */ ++ ++/******************************/ ++/* signal handlers statistics */ ++/******************************/ ++/* signal_handlers tested: 15 times */ ++/* sigbus_handler called: 5 times */ ++/* sigsegv_handler called: 5 times */ ++/* sigill_handler called: 5 times */ +diff --git a/H5lib_settings.c b/H5lib_settings.c +new file mode 100644 +index 0000000..0af36e0 +--- /dev/null ++++ b/H5lib_settings.c +@@ -0,0 +1,101 @@ ++/* Generated automatically by H5make_libsettings -- do not edit */ ++ ++ ++ ++/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ++ * Copyright by The HDF Group. * ++ * Copyright by the Board of Trustees of the University of Illinois. * ++ * All rights reserved. * ++ * * ++ * This file is part of HDF5. The full HDF5 copyright notice, including * ++ * terms governing use, modification, and redistribution, is contained in * ++ * the files COPYING and Copyright.html. COPYING can be found at the root * ++ * of the source code distribution tree; Copyright.html can be found at the * ++ * root level of an installed copy of the electronic HDF5 document set and * ++ * is linked from the top-level documents page. It can also be found at * ++ * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * ++ * access to either file, you may request a copy from help@hdfgroup.org. * ++ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ++ * ++ * Created: Nov 30, 2015 ++ * root ++ * ++ * Purpose: This machine-generated source code contains ++ * information about the library build configuration ++ * ++ * Modifications: ++ * ++ * DO NOT MAKE MODIFICATIONS TO THIS FILE! ++ * It was generated by code in `H5make_libsettings.c'. ++ * ++ *------------------------------------------------------------------------- ++ */ ++ ++char H5libhdf5_settings[]= ++ " SUMMARY OF THE HDF5 CONFIGURATION\n" ++ " =================================\n" ++ "\n" ++ "General Information:\n" ++ "-------------------\n" ++ " HDF5 Version: 1.8.16\n" ++ " Configured on: Mon Nov 30 02:44:24 UTC 2015\n" ++ " Configured by: norxander@debian\n" ++ " Configure mode: production\n" ++ " Host system: arm-poky-linux-gnueabi\n" ++ " Uname information: Linux debian 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u6 (2015-11-09) x86_64 GNU/Linux\n" ++ " Byte sex: little-endian\n" ++ " Libraries: static, shared\n" ++ " Installation point: /media/dataLinux/Work/Git/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/hdf5/1.8.16-r0/image/usr\n" ++ "\n" ++ "Compiling Options:\n" ++ "------------------\n" ++ " Compilation Mode: production\n" ++ " C Compiler: /media/dataLinux/Work/Git/build/tmp/sysroots/x86_64-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/media/dataLinux/Work/Git/build/tmp/sysroots/cyclone5\n" ++ " CFLAGS: -O2 -pipe -g -feliminate-unused-debug-types\n" ++ " H5_CFLAGS: \n" ++ " AM_CFLAGS: \n" ++ " CPPFLAGS: \n" ++ " H5_CPPFLAGS: -D_GNU_SOURCE -D_POSIX_C_SOURCE=200112L -DNDEBUG -UH5_DEBUG_API\n" ++ " AM_CPPFLAGS: -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/media/dataLinux/Work/Git/build/tmp/sysroots/cyclone5/usr/include\n" ++ " Shared C Library: yes\n" ++ " Static C Library: yes\n" ++ " Statically Linked Executables: no\n" ++ " LDFLAGS: -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed\n" ++ " H5_LDFLAGS: \n" ++ " AM_LDFLAGS: -L/media/dataLinux/Work/Git/build/tmp/sysroots/cyclone5/usr/lib\n" ++ " Extra libraries: -lz -ldl -lm \n" ++ " Archiver: arm-poky-linux-gnueabi-ar\n" ++ " Ranlib: arm-poky-linux-gnueabi-ranlib\n" ++ " Debugged Packages: \n" ++ " API Tracing: no\n" ++ "\n" ++ "Languages:\n" ++ "----------\n" ++ " Fortran: no\n" ++ "\n" ++ " C++: yes\n" ++ " C++ Compiler: /media/dataLinux/Work/Git/build/tmp/sysroots/x86_64-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/media/dataLinux/Work/Git/build/tmp/sysroots/cyclone5\n" ++ " C++ Flags: -O2 -pipe -g -feliminate-unused-debug-types -fvisibility-inlines-hidden\n" ++ " H5 C++ Flags: \n" ++ " AM C++ Flags: \n" ++ " Shared C++ Library: yes\n" ++ " Static C++ Library: yes\n" ++ "\n" ++ "Features:\n" ++ "---------\n" ++ " Parallel HDF5: no\n" ++ " High Level library: yes\n" ++ " Threadsafety: no\n" ++ " Default API Mapping: v18\n" ++ " With Deprecated Public Symbols: yes\n" ++ " I/O filters (external): deflate(zlib)\n" ++ " MPE: no\n" ++ " Direct VFD: no\n" ++ " dmalloc: no\n" ++ "Clear file buffers before write: yes\n" ++ " Using memory checker: no\n" ++ " Function Stack Tracing: no\n" ++ " Strict File Format Checks: no\n" ++ " Optimization Instrumentation: no\n" ++; ++ diff --git a/meta-refkit/recipes-convnet/hdf5/files/copy_generated.patch b/meta-refkit/recipes-convnet/hdf5/files/copy_generated.patch new file mode 100644 index 0000000000..ce6999c936 --- /dev/null +++ b/meta-refkit/recipes-convnet/hdf5/files/copy_generated.patch @@ -0,0 +1,15 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index fa3c971..f1ec7e2 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -797,4 +797,10 @@ endif (EXISTS "${HDF5_SOURCE_DIR}/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/c++" + #----------------------------------------------------------------------------- + configure_file (${HDF_RESOURCES_DIR}/H5pubconf.h.in ${HDF5_BINARY_DIR}/H5pubconf.h @ONLY) + ++#----------------------------------------------------------------------------- ++# Copy the pre-generated files in place ++#----------------------------------------------------------------------------- ++configure_file(H5Tinit.c H5Tinit.c COPYONLY) ++configure_file(H5lib_settings.c H5lib_settings.c COPYONLY) ++ + include (CMakeInstallation.cmake) diff --git a/meta-refkit/recipes-convnet/hdf5/files/fix-configure.patch b/meta-refkit/recipes-convnet/hdf5/files/fix-configure.patch new file mode 100644 index 0000000000..e72b43c6ce --- /dev/null +++ b/meta-refkit/recipes-convnet/hdf5/files/fix-configure.patch @@ -0,0 +1,65 @@ +--- configure 2015-10-17 14:26:17.833073633 -0600 ++++ configure 2015-10-17 14:25:35.569071000 -0600 +@@ -425,7 +425,7 @@ + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 +- as_fn_exit $as_status ++ #as_fn_exit $as_status + } # as_fn_error + + if expr a : '\(a\)' >/dev/null 2>&1 && +@@ -4358,7 +4358,7 @@ + $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 + set X $ac_compile + ac_compiler=$2 +-for ac_option in --version -v -V -qversion; do ++for ac_option in --version -v; do + { { ac_try="$ac_compiler $ac_option >&5" + case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; +@@ -5294,7 +5294,7 @@ + $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran compiler version" >&5 + set X $ac_compile + ac_compiler=$2 +-for ac_option in --version -v -V -qversion; do ++for ac_option in --version -v; do + { { ac_try="$ac_compiler $ac_option >&5" + case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; +@@ -5567,7 +5567,7 @@ + $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran compiler version" >&5 + set X $ac_compile + ac_compiler=$2 +-for ac_option in --version -v -V -qversion; do ++for ac_option in --version -v; do + { { ac_try="$ac_compiler $ac_option >&5" + case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; +@@ -6790,7 +6790,7 @@ + $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 + set X $ac_compile + ac_compiler=$2 +-for ac_option in --version -v -V -qversion; do ++for ac_option in --version -v; do + { { ac_try="$ac_compiler $ac_option >&5" + case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; +@@ -28589,7 +28589,7 @@ + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 +- as_fn_exit $as_status ++ #as_fn_exit $as_status + } # as_fn_error + + +@@ -30725,7 +30725,7 @@ + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 +- as_fn_exit $as_status ++ #as_fn_exit $as_status + } # as_fn_error + + diff --git a/meta-refkit/recipes-convnet/hdf5/files/fix-src-make.patch b/meta-refkit/recipes-convnet/hdf5/files/fix-src-make.patch new file mode 100644 index 0000000000..f89cfab974 --- /dev/null +++ b/meta-refkit/recipes-convnet/hdf5/files/fix-src-make.patch @@ -0,0 +1,36 @@ +--- src/Makefile.in 2015-11-10 14:01:06.000000000 +0000 ++++ src/Makefile.in 2015-11-30 03:07:13.550699106 +0000 +@@ -1674,11 +1674,11 @@ + # Things should have been all set during H5detect making. + # Remove the generated .c file if errors occur unless HDF5_Make_Ignore + # is set to ignore the error. +-H5Tinit.c: H5detect$(EXEEXT) +- LD_LIBRARY_PATH="$$LD_LIBRARY_PATH`echo $(LDFLAGS) | \ +- sed -e 's/-L/:/g' -e 's/ //g'`" \ +- $(RUNSERIAL) ./H5detect$(EXEEXT) > $@ || \ +- (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ ++H5Tinit.c: $(top_srcdir)/../H5Tinit.c ++ LD_LIBRARY_PATH="$$LD_LIBRARY_PATH`echo $(LDFLAGS) | \ ++ sed -e 's/-L/:/g' -e 's/ //g'`" \ ++ $(RUNSERIAL) cat $< > $@ || \ ++ (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ + ($(RM) $@ ; exit 1) + + # Build configuration header file generation +@@ -1686,11 +1686,11 @@ + # Things should have been all set during H5make_libsettings making. + # Remove the generated .c file if errors occur unless HDF5_Make_Ignore + # is set to ignore the error. +-H5lib_settings.c: H5make_libsettings$(EXEEXT) libhdf5.settings +- LD_LIBRARY_PATH="$$LD_LIBRARY_PATH`echo $(LDFLAGS) | \ +- sed -e 's/-L/:/g' -e 's/ //g'`" \ +- $(RUNSERIAL) ./H5make_libsettings$(EXEEXT) > $@ || \ +- (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ ++H5lib_settings.c: $(top_srcdir)/../H5lib_settings.c libhdf5.settings ++ LD_LIBRARY_PATH="$$LD_LIBRARY_PATH`echo $(LDFLAGS) | \ ++ sed -e 's/-L/:/g' -e 's/ //g'`" \ ++ $(RUNSERIAL) cat $< > $@ || \ ++ (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ + ($(RM) $@ ; exit 1) + + # Error header generation diff --git a/meta-refkit/recipes-convnet/hdf5/files/fix-test-make.patch b/meta-refkit/recipes-convnet/hdf5/files/fix-test-make.patch new file mode 100644 index 0000000000..1c473e2a4e --- /dev/null +++ b/meta-refkit/recipes-convnet/hdf5/files/fix-test-make.patch @@ -0,0 +1,12 @@ +--- test/Makefile.in 2015-11-10 14:01:06.000000000 +0000 ++++ test/Makefile.in 2015-11-30 03:12:14.150696333 +0000 +@@ -1058,8 +1058,7 @@ + unregister_filter_1.h5 unregister_filter_2.h5 + + # Test script for error_test and err_compat +-TEST_SCRIPT = testerror.sh testlibinfo.sh testcheck_version.sh \ +- testlinks_env.sh $(am__append_1) ++TEST_SCRIPT = testerror.sh testlibinfo.sh testcheck_version.sh testlinks_env.sh $(am__append_1) + SCRIPT_DEPEND = error_test$(EXEEXT) err_compat$(EXEEXT) \ + links_env$(EXEEXT) $(am__append_2) + check_SCRIPTS = $(TEST_SCRIPT) diff --git a/meta-refkit/recipes-convnet/hdf5/files/generation.patch b/meta-refkit/recipes-convnet/hdf5/files/generation.patch new file mode 100644 index 0000000000..9767acc531 --- /dev/null +++ b/meta-refkit/recipes-convnet/hdf5/files/generation.patch @@ -0,0 +1,44 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 9fcb28d..b58bf18 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -606,39 +606,6 @@ set (H5_PRIVATE_HEADERS + ${HDF5_SRC_DIR}/H5win32defs.h + ) + +-#----------------------------------------------------------------------------- +-# Setup the H5Detect utility which generates H5Tinit with platform +-# specific type checks inside +-#----------------------------------------------------------------------------- +-add_executable (H5detect ${HDF5_SRC_DIR}/H5detect.c) +-TARGET_C_PROPERTIES (H5detect STATIC " " " ") +-if (MSVC OR MINGW) +- target_link_libraries (H5detect "ws2_32.lib") +-endif (MSVC OR MINGW) +- +-set (CMD $) +-add_custom_command ( +- OUTPUT ${HDF5_BINARY_DIR}/H5Tinit.c +- COMMAND ${CMD} +- ARGS > ${HDF5_BINARY_DIR}/H5Tinit.c +- DEPENDS H5detect +-) +- +-add_executable (H5make_libsettings ${HDF5_SRC_DIR}/H5make_libsettings.c) +-TARGET_C_PROPERTIES (H5make_libsettings STATIC " " " ") +-if (MSVC OR MINGW) +- target_link_libraries (H5make_libsettings "ws2_32.lib") +-endif (MSVC OR MINGW) +- +-set (CMD $) +-add_custom_command ( +- OUTPUT ${HDF5_BINARY_DIR}/H5lib_settings.c +- COMMAND ${CMD} +- ARGS > ${HDF5_BINARY_DIR}/H5lib_settings.c +- DEPENDS H5make_libsettings +- WORKING_DIRECTORY ${HDF5_BINARY_DIR} +-) +- + if (GENERATE_ERROR_HEADERS) + find_package (Perl) + if (PERL_FOUND) diff --git a/meta-refkit/recipes-convnet/hdf5/hdf5_1.8.17.bb b/meta-refkit/recipes-convnet/hdf5/hdf5_1.8.17.bb new file mode 100644 index 0000000000..25ee5a601c --- /dev/null +++ b/meta-refkit/recipes-convnet/hdf5/hdf5_1.8.17.bb @@ -0,0 +1,68 @@ +DESCRIPTION = "Unique technology suite that makes possible the management of extremely large and complex data collections" +AUTHOR = "Alexander Leiva " +SUMMARY = "HDF5 is a data model, library, and file format for storing and managing data" +HOMEPAGE = "http://caffe.berkeleyvision.org/" +LICENSE = "BSD" +PRIORITY= "optional" +SECTION = "libs" +PR = "r0" + +RDEPENDS_${PN} = "zlib" + +LIC_FILES_CHKSUM = "file://COPYING;md5=57e5351b17591e659eedae107265c606" + +inherit cmake + +SRC_URI = "https://www.hdfgroup.org/ftp/HDF5/releases/${PN}-${PV}/src/${PN}-${PV}.tar.bz2 \ + file://configuration.patch \ + file://generation.patch \ + file://copy_generated.patch \ +" + +SRC_URI[md5sum] = "34bd1afa5209259201a41964100d6203" +SRC_URI[sha256sum] = "fc35dd8fd8d398de6b525b27cc111c21fc79795ad6db1b1f12cb15ed1ee8486a" + +PACKAGES += "${PN}-extra" +FILES_${PN} += "/usr/lib/libhdf5.settings" +FILES_${PN}-extra = "/usr/share/hdf5_examples/" + +# EXTRA_OECONF = "--enable-production --enable-cxx --with-zlib=${STAGING_INCDIR},${STAGING_LIBDIR}" +EXTRA_OECMAKE = " \ + -DHAVE_DEFAULT_SOURCE_RUN=0 \ + -DHAVE_DEFAULT_SOURCE_RUN__TRYRUN_OUTPUT= \ + -DTEST_LFS_WORKS_RUN=0 \ + -DTEST_LFS_WORKS_RUN__TRYRUN_OUTPUT=0 \ + -DH5_PRINTF_LL_TEST_RUN=1 \ + -DH5_PRINTF_LL_TEST_RUN__TRYRUN_OUTPUT='8' \ + -DTEST_DIRECT_VFD_WORKS_RUN=0 \ + -DTEST_DIRECT_VFD_WORKS_RUN__TRYRUN_OUTPUT=0 \ + -DH5_LDOUBLE_TO_LONG_SPECIAL_RUN=0 \ + -DH5_LDOUBLE_TO_LONG_SPECIAL_RUN__TRYRUN_OUTPUT= \ + -DH5_LONG_TO_LDOUBLE_SPECIAL_RUN=0 \ + -DH5_LONG_TO_LDOUBLE_SPECIAL_RUN__TRYRUN_OUTPUT= \ + -DH5_LDOUBLE_TO_LLONG_ACCURATE_RUN=0 \ + -DH5_LDOUBLE_TO_LLONG_ACCURATE_RUN__TRYRUN_OUTPUT= \ + -DH5_LLONG_TO_LDOUBLE_CORRECT_RUN=0 \ + -DH5_LLONG_TO_LDOUBLE_CORRECT_RUN__TRYRUN_OUTPUT= \ + -DH5_NO_ALIGNMENT_RESTRICTIONS_RUN=0 \ + -DH5_NO_ALIGNMENT_RESTRICTIONS_RUN__TRYRUN_OUTPUT= \ + -DCMAKE_INSTALL_PREFIX='${D}/usr' \ +" + +do_install() { + oe_runmake install + rm -f ${D}/usr/lib/*la + rm -f ${D}/usr/share/cmake/* + rm -f ${D}/usr/share/COPYING + rm -f ${D}/usr/share/RELEASE.txt + rm -f ${D}/usr/share/USING_HDF5_CMake.txt + rmdir ${D}/usr/share/cmake + rmdir ${D}/usr/share + + ln -sr ${D}/usr/lib/libhdf5_cpp-shared.so ${D}/usr/lib/libhdf5_cpp.so + ln -sr ${D}/usr/lib/libhdf5_hl-shared.so ${D}/usr/lib/libhdf5_hl.so + ln -sr ${D}/usr/lib/libhdf5_hl_cpp-shared.so ${D}/usr/lib/libhdf5_hl_cpp.so + ln -sr ${D}/usr/lib/libhdf5-shared.so ${D}/usr/lib/libhdf5.so + ln -sr ${D}/usr/lib/libhdf5_tools-shared.so ${D}/usr/lib/libhdf5_tools.so +} + diff --git a/meta-refkit/recipes-convnet/leveldb/leveldb_%.bbappend b/meta-refkit/recipes-convnet/leveldb/leveldb_%.bbappend new file mode 100644 index 0000000000..08de50c49d --- /dev/null +++ b/meta-refkit/recipes-convnet/leveldb/leveldb_%.bbappend @@ -0,0 +1 @@ +DEPENDS += "snappy" diff --git a/meta-refkit/recipes-convnet/lmdb/files/0001-Patch-the-main-Makefile.patch b/meta-refkit/recipes-convnet/lmdb/files/0001-Patch-the-main-Makefile.patch new file mode 100644 index 0000000000..80a58131af --- /dev/null +++ b/meta-refkit/recipes-convnet/lmdb/files/0001-Patch-the-main-Makefile.patch @@ -0,0 +1,91 @@ +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 1 Sep 2015 22:54:31 +0200 +Subject: [PATCH] Patch the main Makefile to allow for a build that complies to packaging guidelines. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Taken from [1] + +[1] http://pkgs.fedoraproject.org/cgit/lmdb.git/plain/lmdb-make.patch + +Upstream-Status: Inappropriate [embedded specific] + + +diff --git a/Makefile b/Makefile +--- a/Makefile ++++ b/Makefile +@@ -24,25 +24,30 @@ OPT = -O2 -g + CFLAGS = $(THREADS) $(OPT) $(W) $(XCFLAGS) + LDLIBS = + SOLIBS = ++SOVERSION = 0.0.0 + prefix = /usr/local ++binprefix = $(prefix)/bin ++libprefix = $(prefix)/lib ++includeprefix = $(prefix)/include ++manprefix = $(prefix)/man + + ######################################################################## + + IHDRS = lmdb.h +-ILIBS = liblmdb.a liblmdb.so ++ILIBS = liblmdb.so liblmdb.so.$(SOVERSION) + IPROGS = mdb_stat mdb_copy mdb_dump mdb_load + IDOCS = mdb_stat.1 mdb_copy.1 mdb_dump.1 mdb_load.1 + PROGS = $(IPROGS) mtest mtest2 mtest3 mtest4 mtest5 + all: $(ILIBS) $(PROGS) + + install: $(ILIBS) $(IPROGS) $(IHDRS) +- for f in $(IPROGS); do cp $$f $(DESTDIR)$(prefix)/bin; done +- for f in $(ILIBS); do cp $$f $(DESTDIR)$(prefix)/lib; done +- for f in $(IHDRS); do cp $$f $(DESTDIR)$(prefix)/include; done +- for f in $(IDOCS); do cp $$f $(DESTDIR)$(prefix)/man/man1; done ++ for f in $(IPROGS); do cp $$f $(DESTDIR)$(binprefix); done ++ for f in $(ILIBS); do cp -d $$f $(DESTDIR)$(libprefix); done ++ for f in $(IHDRS); do cp $$f $(DESTDIR)$(includeprefix); done ++ for f in $(IDOCS); do cp $$f $(DESTDIR)$(manprefix)/man1; done + + clean: +- rm -rf $(PROGS) *.[ao] *.[ls]o *~ testdb ++ rm -rf $(PROGS) *.[ao] *.[ls]o* *~ testdb + + test: all + rm -rf testdb && mkdir testdb +@@ -51,20 +56,24 @@ test: all + liblmdb.a: mdb.o midl.o + ar rs $@ mdb.o midl.o + +-liblmdb.so: mdb.lo midl.lo ++liblmdb.so: liblmdb.so.$(SOVERSION) ++ rm -f $@ ++ ln -s $< $@ ++ ++liblmdb.so.$(SOVERSION): mdb.lo midl.lo + # $(CC) $(LDFLAGS) -pthread -shared -Wl,-Bsymbolic -o $@ mdb.o midl.o $(SOLIBS) +- $(CC) $(LDFLAGS) -pthread -shared -o $@ mdb.lo midl.lo $(SOLIBS) ++ $(CC) $(LDFLAGS) -pthread -shared -Wl,-soname,$@ -o $@ mdb.lo midl.lo $(SOLIBS) + +-mdb_stat: mdb_stat.o liblmdb.a +-mdb_copy: mdb_copy.o liblmdb.a +-mdb_dump: mdb_dump.o liblmdb.a +-mdb_load: mdb_load.o liblmdb.a +-mtest: mtest.o liblmdb.a +-mtest2: mtest2.o liblmdb.a +-mtest3: mtest3.o liblmdb.a +-mtest4: mtest4.o liblmdb.a +-mtest5: mtest5.o liblmdb.a +-mtest6: mtest6.o liblmdb.a ++mdb_stat: mdb_stat.o liblmdb.so ++mdb_copy: mdb_copy.o liblmdb.so ++mdb_dump: mdb_dump.o liblmdb.so ++mdb_load: mdb_load.o liblmdb.so ++mtest: mtest.o liblmdb.so ++mtest2: mtest2.o liblmdb.so ++mtest3: mtest3.o liblmdb.so ++mtest4: mtest4.o liblmdb.so ++mtest5: mtest5.o liblmdb.so ++mtest6: mtest6.o liblmdb.so + + mdb.o: mdb.c lmdb.h midl.h + $(CC) $(CFLAGS) $(CPPFLAGS) -c mdb.c diff --git a/meta-refkit/recipes-convnet/lmdb/lmdb_0.9.16.bb b/meta-refkit/recipes-convnet/lmdb/lmdb_0.9.16.bb new file mode 100644 index 0000000000..c18c4a4798 --- /dev/null +++ b/meta-refkit/recipes-convnet/lmdb/lmdb_0.9.16.bb @@ -0,0 +1,28 @@ +SUMMARY = "Symas Lightning Memory-Mapped Database (LMDB)" +HOMEPAGE = "http://symas.com/mdb/" +LICENSE = "OLDAP-2.8" +LIC_FILES_CHKSUM = "file://LICENSE;md5=153d07ef052c4a37a8fac23bc6031972" + +SRC_URI = " \ + https://github.com/LMDB/lmdb/archive/LMDB_${PV}.tar.gz \ + file://0001-Patch-the-main-Makefile.patch \ +" +SRC_URI[md5sum] = "0de89730b8f3f5711c2b3a4ba517b648" +SRC_URI[sha256sum] = "49d7b40949f2ced9bc8b23ea6a89e75471a1c9126537a8b268c318a00b84322b" + +inherit autotools-brokensep + +S = "${WORKDIR}/lmdb-LMDB_${PV}/libraries/liblmdb" + +do_compile() { + oe_runmake "CC=${CC}" +} + +do_install() { + install -d ${D}${bindir} + install -d ${D}${libdir} + install -d ${D}${includedir} + install -d ${D}${mandir} + sed -i 's:\$(prefix)/man:${mandir}:' Makefile + oe_runmake DESTDIR=${D} prefix=${prefix} manprefix=${mandir} install +} diff --git a/meta-refkit/recipes-convnet/openblas/openblas_0.2.19.bb b/meta-refkit/recipes-convnet/openblas/openblas_0.2.19.bb new file mode 100644 index 0000000000..5eef42e540 --- /dev/null +++ b/meta-refkit/recipes-convnet/openblas/openblas_0.2.19.bb @@ -0,0 +1,58 @@ +DESCRIPTION = "OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version." +SUMMARY = "OpenBLAS : An optimized BLAS library" +AUTHOR = "Alexander Leiva " +HOMEPAGE = "http://www.openblas.net/" +PRIORITY= "optional" +SECTION = "libs" +LICENSE = "BSD" +PR = "r0" + +DEPENDS = "make" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=5adf4792c949a00013ce25d476a2abc0" + +SRC_URI = "https://github.com/xianyi/OpenBLAS/archive/v${PV}.tar.gz" +SRC_URI[md5sum] = "28c998054fd377279741c6f0b9ea7941" +SRC_URI[sha256sum] = "9c40b5e4970f27c5f6911cb0a28aa26b6c83f17418b69f8e5a116bb983ca8557" + +S = "${WORKDIR}/OpenBLAS-${PV}" + +def map_arch(a, d): + import re + if re.match('i.86$', a): return 'ATOM' + elif re.match('x86_64$', a): return 'ATOM' + elif re.match('aarch32$', a): return 'CORTEXA9' + elif re.match('aarch64$', a): return 'ARMV8' + return a + +def map_bits(a, d): + import re + if re.match('i.86$', a): return 32 + elif re.match('x86_64$', a): return 64 + elif re.match('aarch32$', a): return 32 + elif re.match('aarch64$', a): return 64 + return 32 + +do_compile () { + oe_runmake HOSTCC="${BUILD_CC}" \ + CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS}" \ + ONLY_CBLAS=1 BINARY='${@map_bits(d.getVar('TARGET_ARCH', True), d)}' \ + TARGET='${@map_arch(d.getVar('TARGET_ARCH', True), d)}' +} + +do_install() { + oe_runmake HOSTCC="${BUILD_CC}" \ + CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS}" \ + ONLY_CBLAS=1 BINARY='${@map_bits(d.getVar('TARGET_ARCH', True), d)}' \ + TARGET='${@map_arch(d.getVar('TARGET_ARCH', True), d)}' \ + PREFIX=${D}/usr install +} + +do_install_append() { + rm -rf ${D}/usr/bin + rm -rf ${D}/usr/lib/cmake +} + +FILES_${PN} = "${libdir}/*" +FILES_${PN}-dev = "${includedir} ${libdir}/lib${PN}.so" + diff --git a/meta-refkit/recipes-convnet/packagegroup/packagegroup-caffe.bb b/meta-refkit/recipes-convnet/packagegroup/packagegroup-caffe.bb new file mode 100644 index 0000000000..c641dc76d2 --- /dev/null +++ b/meta-refkit/recipes-convnet/packagegroup/packagegroup-caffe.bb @@ -0,0 +1,45 @@ +SUMMARY = "Minimal caffe requirements" +DESCRIPTION = "The minimal set of packages required to build the caffe library" +LICENSE = "MIT" +PR = "r0" + +inherit packagegroup + +RDEPENDS_${PN} = "\ + openssl \ + openssl-dev \ + libffi \ + libffi-dev \ + libxslt \ + libxslt-dev \ + libxml2 \ + libxml2-dev \ + glog \ + glog-dev \ + gflags \ + gflags-dev \ + leveldb \ + leveldb-dev \ + snappy \ + snappy-dev \ + lmdb \ + lmdb-dev \ + jpeg \ + jpeg-dev \ + hdf5 \ + hdf5-dev \ + boost \ + boost-dev \ + protobuf \ + protobuf-dev \ + python-pip \ + python-numpy \ + opencv \ + opencv-dev \ + opencv-apps \ + openblas \ + openblas-dev \ + gstreamer1.0 \ + gstreamer1.0-dev \ + " + diff --git a/meta-refkit/recipes-convnet/snappy/snappy_1.1.4.bb b/meta-refkit/recipes-convnet/snappy/snappy_1.1.4.bb new file mode 100644 index 0000000000..b8c6c9cfbd --- /dev/null +++ b/meta-refkit/recipes-convnet/snappy/snappy_1.1.4.bb @@ -0,0 +1,19 @@ +SUMMARY = "Snappy is a compression/decompression library." +AUTHOR = "Alexander Leiva " +DESCRIPTION = "Snappy is a compression/decompression library. It does not aim for maximum compression, \ + or compatibility with any other compression library; instead, \ + it aims for very high speeds and reasonable compression." +HOMEPAGE="http://google.github.io/snappy/" +SECTION = "console/utils" +PRIORITY= "optional" +LICENSE = "BSD" +PR = "r0" + +LIC_FILES_CHKSUM = "file://COPYING;md5=f62f3080324a97b3159a7a7e61812d0c" + +SRC_URI = "https://github.com/google/snappy/releases/download/${PV}/${PN}-${PV}.tar.gz" +SRC_URI[md5sum] = "c328993b68afe3e5bd87c8ea9bdeb028" +SRC_URI[sha256sum] = "134bfe122fd25599bb807bb8130e7ba6d9bdb851e0b16efcb83ac4f5d0b70057" + +inherit autotools pkgconfig + From 3c675847c365146d8c17ec6eb51617c5b7ed2f87 Mon Sep 17 00:00:00 2001 From: Ismo Puustinen Date: Thu, 2 Mar 2017 10:46:17 +0200 Subject: [PATCH 05/10] opencv: use Python 3 instead of Python 2. The goal is to have the computer vision stack to be scriptable by Python 3. Signed-off-by: Ismo Puustinen --- meta-refkit/recipes-computervision/opencv/opencv_%.bbappend | 3 +++ 1 file changed, 3 insertions(+) diff --git a/meta-refkit/recipes-computervision/opencv/opencv_%.bbappend b/meta-refkit/recipes-computervision/opencv/opencv_%.bbappend index 818c0d50fa..dfa520ff02 100644 --- a/meta-refkit/recipes-computervision/opencv/opencv_%.bbappend +++ b/meta-refkit/recipes-computervision/opencv/opencv_%.bbappend @@ -4,4 +4,7 @@ SRC_URI_append = " \ file://0001-opencv-link-dynamically-against-OpenCL-library.patch \ " +DEPENDS_remove = "python" +DEPENDS_append = " python3" + PACKAGECONFIG[opencl] = "-DWITH_OPENCL=ON,-DWITH_OPENCL=OFF,virtual/opencl-headers virtual/opencl-icd," From 43bf373e602394d9040a7f2069800d49cbf8651d Mon Sep 17 00:00:00 2001 From: Ismo Puustinen Date: Tue, 28 Feb 2017 07:55:30 +0200 Subject: [PATCH 06/10] boost: only compile Python 3 version. As long as https://bugzilla.yoctoproject.org/show_bug.cgi?id=11104 isn't fixed, we can't have both Python 2 and Python 3 bindings for boost at the same time. Pick Python 3. Signed-off-by: Ismo Puustinen --- meta-refkit/recipes-convnet/boost/boost_%.bbappend | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meta-refkit/recipes-convnet/boost/boost_%.bbappend b/meta-refkit/recipes-convnet/boost/boost_%.bbappend index af6cc8b5eb..6cf33b5bcd 100644 --- a/meta-refkit/recipes-convnet/boost/boost_%.bbappend +++ b/meta-refkit/recipes-convnet/boost/boost_%.bbappend @@ -1 +1,6 @@ PACKAGECONFIG += "python" + +do_configure_append() { + sed -i "/using python : 2.7/d" ${WORKDIR}/user-config.jam +} + From e96da7d62f1df7ade719d891a6ece95a1c4e9f59 Mon Sep 17 00:00:00 2001 From: Ismo Puustinen Date: Thu, 2 Mar 2017 15:35:44 +0200 Subject: [PATCH 07/10] caffe: add caffe-imagenet-model package. The package contains pretrained imagenet model. The model is a pretrained deep learning network for classifying based on the imagenet database. Signed-off-by: Ismo Puustinen --- .../recipes-convnet/caffe/caffe_git.bb | 31 +++++++++++++++++-- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/meta-refkit/recipes-convnet/caffe/caffe_git.bb b/meta-refkit/recipes-convnet/caffe/caffe_git.bb index 3f6e5e0556..aba91f9a27 100644 --- a/meta-refkit/recipes-convnet/caffe/caffe_git.bb +++ b/meta-refkit/recipes-convnet/caffe/caffe_git.bb @@ -34,6 +34,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=91d560803ea3d191c457b12834553991" SRC_URI = " \ git://github.com/BVLC/caffe.git;branch=opencl \ + http://dl.caffe.berkeleyvision.org/caffe_ilsvrc12.tar.gz;name=ilsvrc12 \ + http://dl.caffe.berkeleyvision.org/bvlc_reference_caffenet.caffemodel;name=caffenet \ file://0001-Allow-setting-numpy-include-dir-from-outside.patch \ file://0002-cmake-do-not-use-SYSTEM-for-non-system-include-direc.patch \ file://0003-cmake-fix-RPATHS.patch \ @@ -43,8 +45,33 @@ SRC_URI = " \ " SRCREV = "f3ba72c520165d7c403a82770370f20472685d63" +SRC_URI[ilsvrc12.md5sum] = "f963098ea0e785a968ca1eb634003a90" +SRC_URI[ilsvrc12.sha256sum] = "e35c0c1994a21f7d8ed49d01881ce17ab766743d3b0372cdc0183ff4d0dfc491" + +SRC_URI[caffenet.md5sum] = "af678f0bd3cdd2437e35679d88665170" +SRC_URI[caffenet.sha256sum] = "472d4a06035497b180636d8a82667129960371375bd10fcb6df5c6c7631f25e0" + S = "${WORKDIR}/git" +PACKAGES += "${PN}-imagenet-model" + +RDEPENDS_${PN}-imagenet-model = "${PN}" + +do_install_append() { + install -d ${D}${datadir}/Caffe/models/bvlc_reference_caffenet/ + install -d ${D}${datadir}/Caffe/data/ilsvrc12 + + install ${S}/models/bvlc_reference_caffenet/* ${D}${datadir}/Caffe/models/bvlc_reference_caffenet/ + install ${WORKDIR}/synset_words.txt ${D}${datadir}/Caffe/data/ilsvrc12 + install ${WORKDIR}/bvlc_reference_caffenet.caffemodel ${D}${datadir}/Caffe/models/bvlc_reference_caffenet/ + + # ilsvrc_2012_mean.npy is already installed at /usr/python/caffe/imagenet/ilsvrc_2012_mean.npy +} + +FILES_${PN}-imagenet-model += " \ + ${datadir}/Caffe/models/bvlc_reference_caffenet/* \ + ${datadir}/Caffe/data/ilsvrc12/* \ +" FILES_${PN} += " \ ${prefix}/python/* \ " @@ -56,9 +83,6 @@ FILES_${PN}-dev = " \ inherit cmake python-dir -# allow cmake to find native Python interpreter -#OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH" - EXTRA_OECMAKE = " \ -DBLAS=open \ -DPYTHON_NUMPY_INCLUDE_DIR=${STAGING_DIR_TARGET}/usr/lib/python3.5/site-packages/numpy/core/include \ @@ -66,3 +90,4 @@ EXTRA_OECMAKE = " \ -DPYTHON_INCLUDE_DIRS=${STAGING_INCDIR_TARGET}/python3-native/python3.5m \ -DPYTHON_LIBRARIES=${STAGING_LIBDIR_TARGET}/python3.5 \ " + From 20116e9c10f64c5723c4cc6b8ce3d6acf351bd81 Mon Sep 17 00:00:00 2001 From: Ismo Puustinen Date: Thu, 2 Mar 2017 15:04:40 +0200 Subject: [PATCH 08/10] packagegroup-computervision-test: add caffe-imagenet-model. Add caffe-imagenet-model to computer vision test image. Also add the caffe and its dependencies to supported recipes. Signed-off-by: Ismo Puustinen --- .../conf/distro/include/refkit-supported-recipes.txt | 10 ++++++++++ .../packagegroups/packagegroup-computervision-test.bb | 1 + meta-refkit/recipes-convnet/caffe/caffe_git.bb | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/meta-refkit/conf/distro/include/refkit-supported-recipes.txt b/meta-refkit/conf/distro/include/refkit-supported-recipes.txt index 8c8cf6291c..ba3a702e44 100644 --- a/meta-refkit/conf/distro/include/refkit-supported-recipes.txt +++ b/meta-refkit/conf/distro/include/refkit-supported-recipes.txt @@ -55,6 +55,7 @@ bsdiff@meta-swupd busybox@core bzip2@core ca-certificates@core +caffe@refkit cairo@core cantarell-fonts@core chrpath@core @@ -115,6 +116,7 @@ gstreamer1.0-vaapi@core gstreamer1.0@core gzip@core harfbuzz@core +hdf5@refkit hello-bundle-a@iotqa hello-bundle-b@iotqa hello-bundle-s@iotqa @@ -144,6 +146,7 @@ keymaps@core keyutils@security-framework kmod@core krb5@openembedded-layer +leveldb@openembedded-layer libarchive@core libatomic-ops@core libcap@core @@ -193,6 +196,7 @@ linux-firmware@core linux-intel@intel linux-libc-headers@core linux-yocto@core +lmdb@refkit lowpan-tools@networking-layer lttng-ust@core m4@core @@ -208,6 +212,7 @@ nettle@core nodejs@iotweb ocl-icd@refkit oe-swupd-helpers@meta-swupd +openblas@refkit opencl-headers@refkit opencv@openembedded-layer openjdk-8@meta-java @@ -234,10 +239,14 @@ python-numpy@core python-pygobject@core python-setuptools@core python3-dbus@core +python3-imageio@refkit python3-nose@core python3-numpy@core +python3-pillow@refkit +python3-protobuf@refkit python3-pygobject@core python3-setuptools@core +python3-six@core python3@core python@core read-map@iotqa @@ -253,6 +262,7 @@ shadow@core shared-mime-info@core shm-util@iotqa smack-userspace@security-smack +snappy@refkit soletta@soletta speex@core speexdsp@core diff --git a/meta-refkit/recipes-computervision/packagegroups/packagegroup-computervision-test.bb b/meta-refkit/recipes-computervision/packagegroups/packagegroup-computervision-test.bb index 8568ee9b6a..ba9c099305 100644 --- a/meta-refkit/recipes-computervision/packagegroups/packagegroup-computervision-test.bb +++ b/meta-refkit/recipes-computervision/packagegroups/packagegroup-computervision-test.bb @@ -8,4 +8,5 @@ RDEPENDS_${PN} = " \ python3-opencv \ librealsense-examples \ viennacl-examples \ + caffe-imagenet-model \ " diff --git a/meta-refkit/recipes-convnet/caffe/caffe_git.bb b/meta-refkit/recipes-convnet/caffe/caffe_git.bb index aba91f9a27..6d3b506ad6 100644 --- a/meta-refkit/recipes-convnet/caffe/caffe_git.bb +++ b/meta-refkit/recipes-convnet/caffe/caffe_git.bb @@ -2,7 +2,7 @@ DESCRIPTION = "Build Caffe library for CNN using OpenBLAS lib" AUTHOR = "Alexander Leiva " SUMMARY = "Caffe : A fast open framework for deep learning" HOMEPAGE = "http://caffe.berkeleyvision.org/" -LICENSE = "BSD" +LICENSE = "BSD & BVLC-model-license" PRIORITY= "optional" SECTION = "libs" PR = "r0" From 8f8edf5af2cb0f9cd4b546053788cb4c03bede1d Mon Sep 17 00:00:00 2001 From: Ismo Puustinen Date: Wed, 8 Mar 2017 15:35:11 +0200 Subject: [PATCH 09/10] python3-pyrealsense: add new package. Pyrealsense contains Python bindings for librealsense. Signed-off-by: Ismo Puustinen --- .../distro/include/refkit_security_flags.inc | 1 + ...p.py-change-to-use-Bitbake-variables.patch | 38 +++++++++++++++++++ ...onstants-change-rs.h-search-location.patch | 28 ++++++++++++++ .../python3-pyrealsense_1.4.bb | 24 ++++++++++++ 4 files changed, 91 insertions(+) create mode 100644 meta-refkit/recipes-convnet/python-realsense/files/0001-setup.py-change-to-use-Bitbake-variables.patch create mode 100644 meta-refkit/recipes-convnet/python-realsense/files/0002-constants-change-rs.h-search-location.patch create mode 100644 meta-refkit/recipes-convnet/python-realsense/python3-pyrealsense_1.4.bb diff --git a/meta-refkit/conf/distro/include/refkit_security_flags.inc b/meta-refkit/conf/distro/include/refkit_security_flags.inc index 552f03b54a..da28a9a755 100644 --- a/meta-refkit/conf/distro/include/refkit_security_flags.inc +++ b/meta-refkit/conf/distro/include/refkit_security_flags.inc @@ -18,6 +18,7 @@ SECURITY_CFLAGS_pn-clang = "${SECURITY_NO_PIE_CFLAGS} ${SECURITY_PIC_CFLAGS}" SECURITY_CFLAGS_pn-python3-pillow = "${SECURITY_NO_PIE_CFLAGS} ${SECURITY_PIC_CFLAGS}" SECURITY_CFLAGS_pn-snappy = "${SECURITY_NO_PIE_CFLAGS} ${SECURITY_PIC_CFLAGS}" SECURITY_CFLAGS_pn-leveldb = "${SECURITY_NO_PIE_CFLAGS} ${SECURITY_PIC_CFLAGS}" +SECURITY_CFLAGS_pn-python3-pyrealsense = "${SECURITY_NO_PIE_CFLAGS} ${SECURITY_PIC_CFLAGS}" # openjdk-8 ends up linking with "-shared -pie -fpie" in some cases (see # hotspot/make/linux/makefiles/saproc.make) which then tries (and fails) to diff --git a/meta-refkit/recipes-convnet/python-realsense/files/0001-setup.py-change-to-use-Bitbake-variables.patch b/meta-refkit/recipes-convnet/python-realsense/files/0001-setup.py-change-to-use-Bitbake-variables.patch new file mode 100644 index 0000000000..16c053daee --- /dev/null +++ b/meta-refkit/recipes-convnet/python-realsense/files/0001-setup.py-change-to-use-Bitbake-variables.patch @@ -0,0 +1,38 @@ +From 74d41ac1b871dbc04d14e311ba7fa30b0b9e3087 Mon Sep 17 00:00:00 2001 +From: Ismo Puustinen +Date: Wed, 8 Mar 2017 15:26:22 +0200 +Subject: [PATCH 1/2] setup.py: change to use Bitbake variables. + +Upstream-status: Inappropriate + +Signed-off-by: Ismo Puustinen +--- + setup.py | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/setup.py b/setup.py +index a8bddfd..df41d35 100644 +--- a/setup.py ++++ b/setup.py +@@ -1,6 +1,6 @@ + from setuptools import setup, Extension + from setuptools import find_packages +-from os import path ++from os import path, environ + import io + + import numpy as np +@@ -12,8 +12,8 @@ with io.open(path.join(here, 'README.rst'), encoding='utf-8') as f: + module = [Extension('pyrealsense.rsutilwrapper', + sources=['pyrealsense/rsutilwrapper.c'], + libraries=['realsense'], +- include_dirs=[np.get_include(), '/usr/local/include/librealsense'], +- library_dirs=['/usr/local/lib'], )] ++ include_dirs=[np.get_include(), environ.get('STAGING_INCDIR'), environ.get('STAGING_INCDIR')+"/librealsense"], ++ library_dirs=[environ.get('STAGING_LIBDIR')], )] + + setup(name='pyrealsense', + version='1.4', +-- +2.9.3 + diff --git a/meta-refkit/recipes-convnet/python-realsense/files/0002-constants-change-rs.h-search-location.patch b/meta-refkit/recipes-convnet/python-realsense/files/0002-constants-change-rs.h-search-location.patch new file mode 100644 index 0000000000..f9223cecd6 --- /dev/null +++ b/meta-refkit/recipes-convnet/python-realsense/files/0002-constants-change-rs.h-search-location.patch @@ -0,0 +1,28 @@ +From bdc96422dc9c1a697264494e7f9e8efe4c48de92 Mon Sep 17 00:00:00 2001 +From: Ismo Puustinen +Date: Wed, 8 Mar 2017 16:32:04 +0200 +Subject: [PATCH 2/2] constants: change rs.h search location. + +Upstream-status: Inappropriate. + +Signed-off-by: Ismo Puustinen +--- + pyrealsense/constants.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/pyrealsense/constants.py b/pyrealsense/constants.py +index 9c97739..2b83bca 100644 +--- a/pyrealsense/constants.py ++++ b/pyrealsense/constants.py +@@ -2,7 +2,7 @@ import pycparser + import io + + # Platform dependent +-rs_h_filename = '/usr/local/include/librealsense/rs.h' ++rs_h_filename = '/usr/include/librealsense/rs.h' + + + # Dynamically extract API version +-- +2.9.3 + diff --git a/meta-refkit/recipes-convnet/python-realsense/python3-pyrealsense_1.4.bb b/meta-refkit/recipes-convnet/python-realsense/python3-pyrealsense_1.4.bb new file mode 100644 index 0000000000..cc30793491 --- /dev/null +++ b/meta-refkit/recipes-convnet/python-realsense/python3-pyrealsense_1.4.bb @@ -0,0 +1,24 @@ +SUMMARY = "Python bindings for librealsense" +SECTION = "devel/python" +LICENSE = "Apache-2.0" + +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57" + +inherit setuptools3 + +SRC_URI = " \ + https://github.com/toinsson/pyrealsense/archive/v${PV}.tar.gz \ + file://0001-setup.py-change-to-use-Bitbake-variables.patch \ + file://0002-constants-change-rs.h-search-location.patch \ +" +SRC_URI[md5sum] = "a92627a58da523564289187ee05cd937" +SRC_URI[sha256sum] = "f06797af5aa9ca682858a783d42a0e1bc917d5dea50fb340f590d11a21d1a521" + +S = "${WORKDIR}/pyrealsense-${PV}" + +DEPENDS = "python3 python3-numpy-native librealsense python3-setuptools-native" +RDEPENDS_${PN} = "python3-numpy python3-pycparser librealsense-dev" + +# the rs.h header file is parsed in runtime, thus the need for +# librealsense-dev +INSANE_SKIP_${PN} += "dev-deps" From 165b46149a2c5a58788b91d2cac97c394e567f14 Mon Sep 17 00:00:00 2001 From: Ismo Puustinen Date: Wed, 8 Mar 2017 16:45:32 +0200 Subject: [PATCH 10/10] packagegroup-computervision-test: add pyrealsense. Also add pyrealsense and runtime dependencies to supported recipes list. Signed-off-by: Ismo Puustinen --- meta-refkit/conf/distro/include/refkit-supported-recipes.txt | 2 ++ .../packagegroups/packagegroup-computervision-test.bb | 1 + 2 files changed, 3 insertions(+) diff --git a/meta-refkit/conf/distro/include/refkit-supported-recipes.txt b/meta-refkit/conf/distro/include/refkit-supported-recipes.txt index ba3a702e44..739d214957 100644 --- a/meta-refkit/conf/distro/include/refkit-supported-recipes.txt +++ b/meta-refkit/conf/distro/include/refkit-supported-recipes.txt @@ -244,7 +244,9 @@ python3-nose@core python3-numpy@core python3-pillow@refkit python3-protobuf@refkit +python3-pycparser@meta-python python3-pygobject@core +python3-pyrealsense@refkit python3-setuptools@core python3-six@core python3@core diff --git a/meta-refkit/recipes-computervision/packagegroups/packagegroup-computervision-test.bb b/meta-refkit/recipes-computervision/packagegroups/packagegroup-computervision-test.bb index ba9c099305..61c208f534 100644 --- a/meta-refkit/recipes-computervision/packagegroups/packagegroup-computervision-test.bb +++ b/meta-refkit/recipes-computervision/packagegroups/packagegroup-computervision-test.bb @@ -9,4 +9,5 @@ RDEPENDS_${PN} = " \ librealsense-examples \ viennacl-examples \ caffe-imagenet-model \ + python3-pyrealsense \ "