diff --git a/meta-refkit-extra/conf/distro/include/refkit-extra-supported-recipes.txt b/meta-refkit-extra/conf/distro/include/refkit-extra-supported-recipes.txt new file mode 100644 index 0000000000..342cb07a9f --- /dev/null +++ b/meta-refkit-extra/conf/distro/include/refkit-extra-supported-recipes.txt @@ -0,0 +1,12 @@ +caffe@refkit-extra +hdf5@refkit-extra +leveldb@openembedded-layer +lmdb@refkit-extra +openblas@refkit-extra +python3-imageio@refkit-extra +python3-pillow@refkit-extra +python3-protobuf@refkit-extra +python3-pycparser@meta-python +python3-pyrealsense@refkit-extra +python3-six@core +snappy@refkit-extra diff --git a/meta-refkit-extra/conf/distro/include/refkit-extra.conf b/meta-refkit-extra/conf/distro/include/refkit-extra.conf new file mode 100644 index 0000000000..54fe5f72a5 --- /dev/null +++ b/meta-refkit-extra/conf/distro/include/refkit-extra.conf @@ -0,0 +1,6 @@ +require refkit_extra_security_flags.inc + +SUPPORTED_RECIPES_append = " \ + ${META_REFKIT_EXTRA_BASE}/conf/distro/include/refkit-extra-supported-recipes.txt \ +" +SUPPORTED_RECIPES[refkit-extra-supported-recipes.txt] = "extra" diff --git a/meta-refkit-extra/conf/distro/include/refkit_extra_security_flags.inc b/meta-refkit-extra/conf/distro/include/refkit_extra_security_flags.inc new file mode 100644 index 0000000000..ce57f941f9 --- /dev/null +++ b/meta-refkit-extra/conf/distro/include/refkit_extra_security_flags.inc @@ -0,0 +1,4 @@ +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}" diff --git a/meta-refkit-extra/conf/layer.conf b/meta-refkit-extra/conf/layer.conf new file mode 100644 index 0000000000..5f4dfbdb31 --- /dev/null +++ b/meta-refkit-extra/conf/layer.conf @@ -0,0 +1,13 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have recipes-* directories, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "refkit-extra" +BBFILE_PATTERN_refkit-extra = "^${LAYERDIR}/" +# higher priority than meta-refkit, so that we can override recipes here +BBFILE_PRIORITY_refkit-extra = "7" + +META_REFKIT_EXTRA_BASE := "${LAYERDIR}" diff --git a/meta-refkit-extra/doc/README b/meta-refkit-extra/doc/README new file mode 100644 index 0000000000..5b12df87e5 --- /dev/null +++ b/meta-refkit-extra/doc/README @@ -0,0 +1,10 @@ +This a layer for demos and other things which are built on top of +Refkit. Do not add dependencies from meta-refkit to this layer. + +To enable this layer, enter: + + $ bitbake-layers add-layer meta-refkit-extra + +Then add to your local.conf of distribution config this line: + + require conf/distro/include/refkit-extra.conf diff --git a/meta-refkit-extra/doc/computervision.rst b/meta-refkit-extra/doc/computervision.rst new file mode 100644 index 0000000000..8beaf61faa --- /dev/null +++ b/meta-refkit-extra/doc/computervision.rst @@ -0,0 +1,70 @@ +Setting up computer vision demos +################################ + +Introduction +============ + +This layer contains components such as Caffe deep learning framework and +Python bindings to librealsense (pyrealsense). The components are +scriptable with Python 3, making it relatively easy to construct complex +computer vision demos using only Python. + +Example 1: measuring distance to cats +===================================== + +This is an example how the bindings can be used for measuring distance to cats +using a RealSense camera for taking pictures and distance calculations. OpenCV +does the cat recognition with a pre-configured classifier. You need to +have packages ``python3-pyrealsense`` and ``opencv`` installed and +Intel RealSense R200 camera connected to your device. + +.. code:: python + + #!/usr/bin/python3 + + import sys + + import numpy as np + import cv2 + import pyrealsense as pyrs + + n_devices = pyrs.start() + + if n_devices == 0: + print("No RealSense devices found!") + sys.exit(1) + + cam = pyrs.Device() + + cat_cascade = cv2.CascadeClassifier("/usr/share/OpenCV/haarcascades/haarcascade_frontalcatface.xml") + + for x in range(30): + # stabilize exposure + cam.wait_for_frame() + + while True: + # get image from web cam + cam.wait_for_frame() + img = cam.colour + + cats = cat_cascade.detectMultiScale(img) + + for (x,y,w,h) in cats: + # find center + cx = x+(w/2) + cy = y+(h/2) + + depth = cam.depth[cy][cx] + + print("Cat found, distance " + str(depth/10.0) + " cm") + +Example 2: recognizing objects in images using Caffenet +======================================================= + +Install ``caffe-imagenet-model`` package. Then run ``classify-demo.py +--mean_file=""`` in Caffe's Python directory (``/usr/python``) for an +interactive demo recognizing images in web camera stream. You need to +have a web camera connected. Point the web camera at things and in the +console you will see what the image classifier considers them to be. The +deep neural network which the example uses is Caffenet, which is trained +using the 1.3 million image ImageNet training set. diff --git a/meta-refkit-extra/recipes-convnet/boost/boost_%.bbappend b/meta-refkit-extra/recipes-convnet/boost/boost_%.bbappend new file mode 100644 index 0000000000..af6cc8b5eb --- /dev/null +++ b/meta-refkit-extra/recipes-convnet/boost/boost_%.bbappend @@ -0,0 +1 @@ +PACKAGECONFIG += "python" diff --git a/meta-refkit-extra/recipes-convnet/caffe/caffe_git.bb b/meta-refkit-extra/recipes-convnet/caffe/caffe_git.bb new file mode 100644 index 0000000000..ffd0309afb --- /dev/null +++ b/meta-refkit-extra/recipes-convnet/caffe/caffe_git.bb @@ -0,0 +1,94 @@ +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 & BVLC-model-license" +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 \ + 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 \ + 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 \ + file://0001-cmake-find-Yocto-boost-python-libs.patch \ +" +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/* \ +" +FILES_${PN}-dev = " \ + ${includedir} \ + ${datadir}/Caffe/*cmake \ + ${libdir}/*.so \ +" + +inherit cmake python-dir + +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-extra/recipes-convnet/caffe/files/0001-Allow-setting-numpy-include-dir-from-outside.patch b/meta-refkit-extra/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-extra/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-extra/recipes-convnet/caffe/files/0001-cmake-find-Yocto-boost-python-libs.patch b/meta-refkit-extra/recipes-convnet/caffe/files/0001-cmake-find-Yocto-boost-python-libs.patch new file mode 100644 index 0000000000..c0c029db11 --- /dev/null +++ b/meta-refkit-extra/recipes-convnet/caffe/files/0001-cmake-find-Yocto-boost-python-libs.patch @@ -0,0 +1,39 @@ +From 91f8bfd7da0d9d59701dffdb2f1ab6552721fe7b Mon Sep 17 00:00:00 2001 +From: Ismo Puustinen +Date: Wed, 26 Apr 2017 14:43:01 +0300 +Subject: [PATCH] cmake: find Yocto boost python libs. + +Upstream-status: Inappropriate + +Signed-off-by: Ismo Puustinen +--- + cmake/Dependencies.cmake | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake +index 4a5bac4..dab3415 100644 +--- a/cmake/Dependencies.cmake ++++ b/cmake/Dependencies.cmake +@@ -146,15 +146,15 @@ if(BUILD_python) + set(version ${PYTHONLIBS_VERSION_STRING}) + + STRING( REGEX REPLACE "[^0-9]" "" boost_py_version ${version} ) +- find_package(Boost 1.46 COMPONENTS "python-py${boost_py_version}") +- set(Boost_PYTHON_FOUND ${Boost_PYTHON-PY${boost_py_version}_FOUND}) ++ find_package(Boost 1.46 COMPONENTS "python${boost_py_version}") ++ set(Boost_PYTHON_FOUND ${Boost_PYTHON${boost_py_version}_FOUND}) + + while(NOT "${version}" STREQUAL "" AND NOT Boost_PYTHON_FOUND) + STRING( REGEX REPLACE "([0-9.]+).[0-9]+" "\\1" version ${version} ) + + STRING( REGEX REPLACE "[^0-9]" "" boost_py_version ${version} ) +- find_package(Boost 1.46 COMPONENTS "python-py${boost_py_version}") +- set(Boost_PYTHON_FOUND ${Boost_PYTHON-PY${boost_py_version}_FOUND}) ++ find_package(Boost 1.46 COMPONENTS "python${boost_py_version}") ++ set(Boost_PYTHON_FOUND ${Boost_PYTHON${boost_py_version}_FOUND}) + + STRING( REGEX MATCHALL "([0-9.]+).[0-9]+" has_more_version ${version} ) + if("${has_more_version}" STREQUAL "") +-- +2.9.3 + diff --git a/meta-refkit-extra/recipes-convnet/caffe/files/0002-cmake-do-not-use-SYSTEM-for-non-system-include-direc.patch b/meta-refkit-extra/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-extra/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-extra/recipes-convnet/caffe/files/0003-cmake-fix-RPATHS.patch b/meta-refkit-extra/recipes-convnet/caffe/files/0003-cmake-fix-RPATHS.patch new file mode 100644 index 0000000000..7b41318313 --- /dev/null +++ b/meta-refkit-extra/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-extra/recipes-convnet/caffe/files/0004-config-use-Python-3.patch b/meta-refkit-extra/recipes-convnet/caffe/files/0004-config-use-Python-3.patch new file mode 100644 index 0000000000..167c30c91a --- /dev/null +++ b/meta-refkit-extra/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-extra/recipes-convnet/caffe/files/0005-io-change-to-imageio.patch b/meta-refkit-extra/recipes-convnet/caffe/files/0005-io-change-to-imageio.patch new file mode 100644 index 0000000000..edd1f4e516 --- /dev/null +++ b/meta-refkit-extra/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-extra/recipes-convnet/caffe/files/0006-classify-demo-added-a-demo-app-for-classifying-image.patch b/meta-refkit-extra/recipes-convnet/caffe/files/0006-classify-demo-added-a-demo-app-for-classifying-image.patch new file mode 100644 index 0000000000..76f9cf76eb --- /dev/null +++ b/meta-refkit-extra/recipes-convnet/caffe/files/0006-classify-demo-added-a-demo-app-for-classifying-image.patch @@ -0,0 +1,195 @@ +From dc4f9ab92cbcb5b0224ce81d00c91824c0df89fd 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. Image +capturing is done using a webcam. + +Upstream-status: Inappropriate + +Signed-off-by: Ismo Puustinen +--- + python/classify-demo.py | 167 ++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 167 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..f411c98 +--- /dev/null ++++ b/python/classify-demo.py +@@ -0,0 +1,167 @@ ++#!/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 ++import cv2 ++ ++def main(argv): ++ pycaffe_dir = os.path.dirname(__file__) ++ ++ parser = argparse.ArgumentParser() ++ # 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, ++ '/usr/python/caffe/imagenet/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) ++ ++ cam = cv2.VideoCapture(0) ++ ++ while True: ++ ++ # stabilize ++ for x in range(10): ++ cam.read() ++ ++ # read image ++ r, im = cam.read() ++ ++ # crop and resize ++ y, x, _ = im.shape ++ sideCrop = int(abs(y-x) / 2) ++ cropped = im[:, sideCrop:y+sideCrop] ++ resized = cv2.resize(cropped, (256,256)) ++ ++ # normalize ++ inputs = [np.asarray(resized, 'float32')/255] ++ ++ print("Classifying input...") ++ ++ # 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-extra/recipes-convnet/glog/glog_%.bbappend b/meta-refkit-extra/recipes-convnet/glog/glog_%.bbappend new file mode 100644 index 0000000000..a065152fbb --- /dev/null +++ b/meta-refkit-extra/recipes-convnet/glog/glog_%.bbappend @@ -0,0 +1 @@ +DEPENDS += "gflags" diff --git a/meta-refkit-extra/recipes-convnet/hdf5/files/H5Tinit.c b/meta-refkit-extra/recipes-convnet/hdf5/files/H5Tinit.c new file mode 100644 index 0000000000..e6600a13d4 --- /dev/null +++ b/meta-refkit-extra/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-extra/recipes-convnet/hdf5/files/H5lib_settings.c b/meta-refkit-extra/recipes-convnet/hdf5/files/H5lib_settings.c new file mode 100644 index 0000000000..c1c3444e34 --- /dev/null +++ b/meta-refkit-extra/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-extra/recipes-convnet/hdf5/files/configuration.patch b/meta-refkit-extra/recipes-convnet/hdf5/files/configuration.patch new file mode 100644 index 0000000000..a010427164 --- /dev/null +++ b/meta-refkit-extra/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-extra/recipes-convnet/hdf5/files/copy_generated.patch b/meta-refkit-extra/recipes-convnet/hdf5/files/copy_generated.patch new file mode 100644 index 0000000000..ce6999c936 --- /dev/null +++ b/meta-refkit-extra/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-extra/recipes-convnet/hdf5/files/fix-configure.patch b/meta-refkit-extra/recipes-convnet/hdf5/files/fix-configure.patch new file mode 100644 index 0000000000..e72b43c6ce --- /dev/null +++ b/meta-refkit-extra/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-extra/recipes-convnet/hdf5/files/fix-src-make.patch b/meta-refkit-extra/recipes-convnet/hdf5/files/fix-src-make.patch new file mode 100644 index 0000000000..f89cfab974 --- /dev/null +++ b/meta-refkit-extra/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-extra/recipes-convnet/hdf5/files/fix-test-make.patch b/meta-refkit-extra/recipes-convnet/hdf5/files/fix-test-make.patch new file mode 100644 index 0000000000..1c473e2a4e --- /dev/null +++ b/meta-refkit-extra/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-extra/recipes-convnet/hdf5/files/generation.patch b/meta-refkit-extra/recipes-convnet/hdf5/files/generation.patch new file mode 100644 index 0000000000..9767acc531 --- /dev/null +++ b/meta-refkit-extra/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-extra/recipes-convnet/hdf5/hdf5_1.8.18.bb b/meta-refkit-extra/recipes-convnet/hdf5/hdf5_1.8.18.bb new file mode 100644 index 0000000000..14d53dd210 --- /dev/null +++ b/meta-refkit-extra/recipes-convnet/hdf5/hdf5_1.8.18.bb @@ -0,0 +1,69 @@ +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://support.hdfgroup.org/ftp/HDF5/current18/src/${PN}-${PV}.tar.bz2 \ + file://configuration.patch \ + file://generation.patch \ + file://copy_generated.patch \ +" + +SRC_URI[md5sum] = "29117bf488887f89888f9304c8ebea0b" +SRC_URI[sha256sum] = "01c6deadf4211f86922400da82c7a8b5b50dc8fc1ce0b5912de3066af316a48c" + +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-extra/recipes-convnet/leveldb/leveldb_%.bbappend b/meta-refkit-extra/recipes-convnet/leveldb/leveldb_%.bbappend new file mode 100644 index 0000000000..08de50c49d --- /dev/null +++ b/meta-refkit-extra/recipes-convnet/leveldb/leveldb_%.bbappend @@ -0,0 +1 @@ +DEPENDS += "snappy" diff --git a/meta-refkit-extra/recipes-convnet/lmdb/files/0001-Patch-the-main-Makefile.patch b/meta-refkit-extra/recipes-convnet/lmdb/files/0001-Patch-the-main-Makefile.patch new file mode 100644 index 0000000000..80a58131af --- /dev/null +++ b/meta-refkit-extra/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-extra/recipes-convnet/lmdb/lmdb_0.9.16.bb b/meta-refkit-extra/recipes-convnet/lmdb/lmdb_0.9.16.bb new file mode 100644 index 0000000000..c18c4a4798 --- /dev/null +++ b/meta-refkit-extra/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-extra/recipes-convnet/openblas/openblas_0.2.19.bb b/meta-refkit-extra/recipes-convnet/openblas/openblas_0.2.19.bb new file mode 100644 index 0000000000..5eef42e540 --- /dev/null +++ b/meta-refkit-extra/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-extra/recipes-convnet/packagegroup/packagegroup-caffe.bb b/meta-refkit-extra/recipes-convnet/packagegroup/packagegroup-caffe.bb new file mode 100644 index 0000000000..c641dc76d2 --- /dev/null +++ b/meta-refkit-extra/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-extra/recipes-convnet/python-imageio/python3-imageio_2.1.2.bb b/meta-refkit-extra/recipes-convnet/python-imageio/python3-imageio_2.1.2.bb new file mode 100644 index 0000000000..cec41b27d2 --- /dev/null +++ b/meta-refkit-extra/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" + diff --git a/meta-refkit-extra/recipes-convnet/python-pillow/files/0001-build-always-disable-platform-guessing.patch b/meta-refkit-extra/recipes-convnet/python-pillow/files/0001-build-always-disable-platform-guessing.patch new file mode 100644 index 0000000000..54c91f2f64 --- /dev/null +++ b/meta-refkit-extra/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-extra/recipes-convnet/python-pillow/python3-pillow_4.0.0.bb b/meta-refkit-extra/recipes-convnet/python-pillow/python3-pillow_4.0.0.bb new file mode 100644 index 0000000000..80da647980 --- /dev/null +++ b/meta-refkit-extra/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}" +} diff --git a/meta-refkit-extra/recipes-convnet/python-protobuf/python3-protobuf_3.1.0.bb b/meta-refkit-extra/recipes-convnet/python-protobuf/python3-protobuf_3.1.0.bb new file mode 100644 index 0000000000..dbf0eb47c1 --- /dev/null +++ b/meta-refkit-extra/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" diff --git a/meta-refkit-extra/recipes-convnet/python-realsense/files/0001-setup.py-change-to-use-Bitbake-variables.patch b/meta-refkit-extra/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-extra/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-extra/recipes-convnet/python-realsense/files/0002-constants-change-rs.h-search-location.patch b/meta-refkit-extra/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-extra/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-extra/recipes-convnet/python-realsense/python3-pyrealsense_1.4.bb b/meta-refkit-extra/recipes-convnet/python-realsense/python3-pyrealsense_1.4.bb new file mode 100644 index 0000000000..cc30793491 --- /dev/null +++ b/meta-refkit-extra/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" diff --git a/meta-refkit-extra/recipes-convnet/snappy/snappy_1.1.4.bb b/meta-refkit-extra/recipes-convnet/snappy/snappy_1.1.4.bb new file mode 100644 index 0000000000..b8c6c9cfbd --- /dev/null +++ b/meta-refkit-extra/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 + 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,"