Can you separate the LLVM and GLOW changes into separate patches?
On 8/8/2019 3:32 PM, Djordje Senicic wrote:
Signed-off-by: Djordje Senicic <[email protected]>
---
...p-compilation-of-native-helper-tools.patch | 95 +++++++++++++++++++
recipes-devtools/glow/glow_git.bb | 48 +++++++---
recipes-devtools/glow/llvm-glow_git.bb | 10 +-
3 files changed, 137 insertions(+), 16 deletions(-)
create mode 100644
recipes-devtools/glow/files/0002-Skip-compilation-of-native-helper-tools.patch
diff --git
a/recipes-devtools/glow/files/0002-Skip-compilation-of-native-helper-tools.patch
b/recipes-devtools/glow/files/0002-Skip-compilation-of-native-helper-tools.patch
new file mode 100644
index 0000000..e60c399
--- /dev/null
+++
b/recipes-devtools/glow/files/0002-Skip-compilation-of-native-helper-tools.patch
@@ -0,0 +1,95 @@
+From 923f66a209c329b2d5ab245e1c02f91fa6705d4c Mon Sep 17 00:00:00 2001
+From: Djordje Senicic <[email protected]>
+Date: Thu, 1 Aug 2019 04:58:24 -0400
+Subject: [PATCH] Skip compilation of native helper tools
+
Patches should have an "Upstream-Status" to facilitate tracking. See
https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines#Patch_Header_Recommendations:_Upstream-Status
+Signed-off-by: Djordje Senicic <[email protected]>
+---
+ lib/Backends/CPU/CMakeLists.txt | 2 +-
+ lib/Backends/OpenCL/CMakeLists.txt | 12 ++++++------
+ lib/Graph/CMakeLists.txt | 3 +--
+ lib/IR/CMakeLists.txt | 3 +--
+ 4 files changed, 9 insertions(+), 11 deletions(-)
+
+diff --git a/lib/Backends/CPU/CMakeLists.txt b/lib/Backends/CPU/CMakeLists.txt
+index 1e734539..0d5c5e60 100644
+--- a/lib/Backends/CPU/CMakeLists.txt
++++ b/lib/Backends/CPU/CMakeLists.txt
+@@ -53,7 +53,7 @@ add_custom_command(
+ file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/glow/CPU)
+ add_custom_command(
+ OUTPUT ${CMAKE_BINARY_DIR}/glow/CPU/libjit_bc.inc
+- COMMAND include-bin "${CMAKE_BINARY_DIR}/CPU/libjit.bc"
"${CMAKE_BINARY_DIR}/glow/CPU/libjit_bc.inc"
++ COMMAND ${GLOW_BINARY_DIR}/bin/include-bin "${CMAKE_BINARY_DIR}/CPU/libjit.bc"
"${CMAKE_BINARY_DIR}/glow/CPU/libjit_bc.inc"
+ DEPENDS ${GLOW_BINARY_DIR}/CPU/libjit.bc
+ WORKING_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}")
+
+diff --git a/lib/Backends/OpenCL/CMakeLists.txt
b/lib/Backends/OpenCL/CMakeLists.txt
+index fd9f965c..e37b4b35 100644
+--- a/lib/Backends/OpenCL/CMakeLists.txt
++++ b/lib/Backends/OpenCL/CMakeLists.txt
+@@ -8,25 +8,25 @@ add_custom_target(make_opencl_dir
+
+ add_custom_command(
+ OUTPUT "${OpenCL_DIR}/kernels.cl.inc"
+- COMMAND include-bin
++ COMMAND ${GLOW_BINARY_DIR}/bin/include-bin
+ "${CMAKE_CURRENT_SOURCE_DIR}/kernels.cl"
+ "${OpenCL_DIR}/kernels.cl.inc"
+- DEPENDS make_opencl_dir include-bin
"${CMAKE_CURRENT_SOURCE_DIR}/kernels.cl")
++ DEPENDS make_opencl_dir ${GLOW_BINARY_DIR}/bin/include-bin
"${CMAKE_CURRENT_SOURCE_DIR}/kernels.cl")
+
+ add_custom_command(
+ OUTPUT "${OpenCL_DIR}/kernels_fwd_conv.cl.inc"
+- COMMAND include-bin
++ COMMAND ${GLOW_BINARY_DIR}/bin/include-bin
+ "${CMAKE_CURRENT_SOURCE_DIR}/kernels_fwd_conv.cl"
+ "${OpenCL_DIR}/kernels_fwd_conv.cl.inc"
+- DEPENDS make_opencl_dir include-bin
++ DEPENDS make_opencl_dir ${GLOW_BINARY_DIR}/bin/include-bin
+ "${CMAKE_CURRENT_SOURCE_DIR}/kernels_fwd_conv.cl")
+
+ add_custom_command(
+ OUTPUT "${OpenCL_DIR}/kernels_fwd_quantized_conv.cl.inc"
+- COMMAND include-bin
++ COMMAND ${GLOW_BINARY_DIR}/bin/include-bin
+ "${CMAKE_CURRENT_SOURCE_DIR}/kernels_fwd_quantized_conv.cl"
+ "${OpenCL_DIR}/kernels_fwd_quantized_conv.cl.inc"
+- DEPENDS make_opencl_dir include-bin
++ DEPENDS make_opencl_dir ${GLOW_BINARY_DIR}/bin/include-bin
+ "${CMAKE_CURRENT_SOURCE_DIR}/kernels_fwd_quantized_conv.cl")
+
+ add_library(OpenCLBackend
+diff --git a/lib/Graph/CMakeLists.txt b/lib/Graph/CMakeLists.txt
+index 84589761..f0976259 100644
+--- a/lib/Graph/CMakeLists.txt
++++ b/lib/Graph/CMakeLists.txt
+@@ -7,8 +7,7 @@ add_custom_command(OUTPUT
+ "${NODES_HDR}"
+ "${NODES_SRC}"
+ "${NODES_DEF}"
+- COMMAND NodeGen ${NODES_HDR} ${NODES_SRC} ${NODES_DEF}
+- DEPENDS NodeGen
++ COMMAND ${GLOW_BINARY_DIR}/bin/NodeGen ${NODES_HDR}
${NODES_SRC} ${NODES_DEF}
+ COMMENT "NodeGen: Generating nodes." VERBATIM)
+ add_custom_target(AutoGenNode
+ DEPENDS
+diff --git a/lib/IR/CMakeLists.txt b/lib/IR/CMakeLists.txt
+index 7660308d..d5861bbb 100644
+--- a/lib/IR/CMakeLists.txt
++++ b/lib/IR/CMakeLists.txt
+@@ -13,10 +13,9 @@ add_custom_command(OUTPUT
+ "${INSTR_BLD_HDR}"
+ "${INSTR_BLD_SRC}"
+ "${INSTR_IR_GEN}"
+- COMMAND InstrGen
++ COMMAND ${GLOW_BINARY_DIR}/bin/InstrGen
+ "${INSTR_HDR}" "${INSTR_SRC}" "${INSTR_DEF}"
+ "${INSTR_BLD_HDR}" "${INSTR_BLD_SRC}" "${INSTR_IR_GEN}"
+- DEPENDS InstrGen
+ COMMENT "InstrGen: Generating instructions." VERBATIM)
+ add_custom_target(AutoGenInstr
+ DEPENDS
+--
+2.17.1
+
diff --git a/recipes-devtools/glow/glow_git.bb
b/recipes-devtools/glow/glow_git.bb
index 3aea4b1..3024230 100644
--- a/recipes-devtools/glow/glow_git.bb
+++ b/recipes-devtools/glow/glow_git.bb
@@ -8,13 +8,12 @@ PV = "0.1+git${SRCPV}"
PR = "r0"
SRCREV_FORMAT = "glow"
-DEPENDS_class-native = "zlib zlib-native llvm-glow-native ninja-native protobuf-native libpng-native protobuf-native protobuf-c-native gflags-native glog-native"
-DEPENDS_class-nativesdk = "ncurses protobuf libpng glow-native zlib
llvm-glow-native ninja-native protobuf-native libpng-native protobuf-c-native
gflags-native glog-native"
+DEPENDS_class-native = "zlib zlib-native llvm-glow-native ninja-native
protobuf-native libpng-native protobuf-native protobuf-c-native gflags-native glog-native
patchelf-native "
+DEPENDS_class-nativesdk = "ncurses protobuf zlib protobuf-c gflags glog ninja
llvm-glow-native glow-native libpng-native patchelf-native "
-RDEPENDS_${PN}_class-nativesdk = "libpng ncurses glog"
+RDEPENDS_${PN}_class-nativesdk = "libpng ncurses glog protobuf "
SRC_URI = "git://github.com/pytorch/glow.git;protocol=https;destsuffix=git;name=glow \
-
file://0001-Fix-path-and-dependencies-to-intermediate-executable.patch \
git://github.com/stp/OutputCheck.git;protocol=https;destsuffix=git/tests/OutputCheck;name=outcheck
\
git://github.com/google/benchmark.git;protocol=https;destsuffix=git/tests/googlebenchmark;name=gbench
\
git://github.com/google/googletest.git;protocol=https;destsuffix=git/tests/googletest;name=gtest
\
@@ -26,6 +25,11 @@ SRC_URI =
"git://github.com/pytorch/glow.git;protocol=https;destsuffix=git;name=
git://github.com/wjakob/clang-cindex-python3.git;protocol=https;destsuffix=git/thirdparty/onnx/third_party/pybind11/tools/clang;name=onnxclang
\
"
+SRC_URI_append_class-native = " file://0001-Fix-path-and-dependencies-to-intermediate-executable.patch \
+ "
+SRC_URI_append_class-nativesdk =
"file://0002-Skip-compilation-of-native-helper-tools.patch \
+ "
This seems a little odd. Is there no target to build only the host tools?
+
SRCREV_glow = "ba8061367aea0b472b596448018107ca6e87929e"
SRCREV_outcheck = "eab62a5dd5129f6a4ebfbe4bbe41d35611f7c48d"
SRCREV_gbench = "090faecb454fbd6e6e17a75ef8146acb037118d4"
@@ -41,21 +45,43 @@ S = "${WORKDIR}/git"
inherit pkgconfig cmake
-EXTRA_OECMAKE += " -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXE_LINKER_FLAGS="-Wl,-dynamic-linker=/lib64/ld-linux-x86-64.so.2 " "
+EXTRA_OECMAKE_class-native += " -DCMAKE_BUILD_TYPE=Release
-DCMAKE_EXE_LINKER_FLAGS="-Wl,-dynamic-linker=/lib64/ld-linux-x86-64.so.2 " "
Do we really need to specify the dynamic linker?
+EXTRA_OECMAKE_class-nativesdk += " -DCMAKE_BUILD_TYPE=Release
-DCMAKE_EXE_LINKER_FLAGS="-Wl,-z,origin " "
+
+do_compile_class-native() {
+ cmake_runcmake_build --target ${OECMAKE_TARGET_COMPILE}
+}
+
+do_install_class-native() {
+ install -d ${D}${datadir}/glow/bin
+ install -d ${D}${datadir}/glow/tests/images
+ chrpath -d ${WORKDIR}/build/bin/*
+ cp -Prf --preserve=mode,timestamps ${WORKDIR}/build/bin/include-bin
${D}${datadir}/glow/bin
Can you use relative paths? The PWD should be "${WORKDIR}/build" (i.e.
"${B}").
+ cp -Prf --preserve=mode,timestamps ${WORKDIR}/build/bin/InstrGen
${D}${datadir}/glow/bin
+ cp -Prf --preserve=mode,timestamps ${WORKDIR}/build/bin/NodeGen
${D}${datadir}/glow/bin
+ cp -Prf --preserve=mode,timestamps ${WORKDIR}/build/bin/image-classifier
${D}${datadir}/glow/bin
+ ${STAGING_DIR_NATIVE}/usr/bin/patchelf --set-rpath
"\$ORIGIN/../../../lib:\$ORIGIN/../../../../lib"
${D}${datadir}/glow/bin/image-classifier
+ cp -Prf --preserve=mode,timestamps ${WORKDIR}/build/tests/images/imagenet
${D}${datadir}/glow/tests/images
+ cp -Prf --preserve=mode,timestamps
${WORKDIR}/build/tests/images/imagenet_299 ${D}${datadir}/glow/tests/images
+ cp -Prf --preserve=mode,timestamps ${WORKDIR}/build/tests/images/mnist
${D}${datadir}/glow/tests/images
+}
-do_compile() {
+do_compile_class-nativesdk() {
+ install -d ${WORKDIR}/build/bin
+ cp ${STAGING_DIR_NATIVE}/usr/share/glow/bin/include-bin ${WORKDIR}/build/bin
+ cp ${STAGING_DIR_NATIVE}/usr/share/glow/bin/NodeGen ${WORKDIR}/build/bin
+ cp ${STAGING_DIR_NATIVE}/usr/share/glow/bin/InstrGen ${WORKDIR}/build/bin
Would it not be simpler to add to the PATH?
cmake_runcmake_build --target ${OECMAKE_TARGET_COMPILE}
}
-do_install () {
- install -d ${D}${datadir}/glow
+do_install_class-nativesdk() {
+ install -d ${D}${datadir}/glow/bin
install -d ${D}${datadir}/glow/tests/images
- cp -Prf --preserve=mode,timestamps ${WORKDIR}/build/bin ${D}${datadir}/glow
- cp -Prf --preserve=mode,timestamps
${WORKDIR}/build/tests/images/EmotionSampleImages
${D}${datadir}/glow/tests/images
+ cp -Prf --preserve=mode,timestamps ${WORKDIR}/build/bin/image-classifier
${D}${datadir}/glow/bin
+ ${STAGING_DIR_NATIVE}/usr/bin/patchelf --set-rpath
"\$ORIGIN/../../../lib:\$ORIGIN/../../../../lib"
${D}${datadir}/glow/bin/image-classifier
cp -Prf --preserve=mode,timestamps ${WORKDIR}/build/tests/images/imagenet
${D}${datadir}/glow/tests/images
cp -Prf --preserve=mode,timestamps
${WORKDIR}/build/tests/images/imagenet_299 ${D}${datadir}/glow/tests/images
cp -Prf --preserve=mode,timestamps ${WORKDIR}/build/tests/images/mnist
${D}${datadir}/glow/tests/images
- cp -Prf --preserve=mode,timestamps ${WORKDIR}/build/tests/images/other
${D}${datadir}/glow/tests/images
}
BBCLASSEXTEND = "native nativesdk"
diff --git a/recipes-devtools/glow/llvm-glow_git.bb
b/recipes-devtools/glow/llvm-glow_git.bb
index 58d392b..4c0d29e 100644
--- a/recipes-devtools/glow/llvm-glow_git.bb
+++ b/recipes-devtools/glow/llvm-glow_git.bb
@@ -2,16 +2,16 @@ DESCRIPTION = "LLVM release suggested for pytorch glow neural
network compiler"
HOMEPAGE = "https://github.com/llvm-mirror/llvm"
SECTION = "devel"
LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=c6b766a4e85dd28301eeed54a6684648"
-PV = "8.0"
-PR = "r0"
+LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=c520ed40e11887bb1d24d86f7f5b1f05"
+PV = "7.0"
Commit log states "7.1"
+PR = "r1"
DEPENDS = "ninja-native protobuf-native libpng-native protobuf-native protobuf-c-native gflags-native glog-native"
SOLIBVER = "1"
-SRC_URI = "git://github.com/llvm-mirror/llvm.git;protocol=https;branch=release_80;rev=5563a6a769b48912b9c8052124520610966eda28;destsuffix=git/llvm \
-
git://github.com/llvm-mirror/clang.git;protocol=https;branch=release_80;rev=ccfe04576c13497b9c422ceef0b6efe99077a392;destsuffix=git/clang
\
+SRC_URI =
"git://github.com/llvm-mirror/llvm.git;protocol=https;branch=release_70;rev=dd3329aeb25d87d4ac6429c0af220f92e1ba5f26;destsuffix=git/llvm
\
+
git://github.com/llvm-mirror/clang.git;protocol=https;branch=release_70;rev=4519e2637fcc4bf6e3049a0a80e6a5e7b97667cb;destsuffix=git/clang
\
"
I have not seen any examples of "rev" used in SRC_URI. I understand that
it works OK, but can you use SRCREV for consistency?
_______________________________________________
meta-arago mailing list
[email protected]
http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago