Date: Sunday, October 27, 2019 @ 20:38:34 Author: foutrelis Revision: 520797
Python 3.8 rebuild Added: tensorflow/trunk/glibc-2.30.patch tensorflow/trunk/python-3.8.patch Modified: tensorflow/trunk/PKGBUILD ------------------+ PKGBUILD | 15 ++++++-- glibc-2.30.patch | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++ python-3.8.patch | 70 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 170 insertions(+), 4 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2019-10-27 19:46:20 UTC (rev 520796) +++ PKGBUILD 2019-10-27 20:38:34 UTC (rev 520797) @@ -7,18 +7,22 @@ pkgname=(tensorflow tensorflow-opt tensorflow-cuda tensorflow-opt-cuda python-tensorflow python-tensorflow-opt python-tensorflow-cuda python-tensorflow-opt-cuda) pkgver=2.0.0 _pkgver=2.0.0 -pkgrel=2 +pkgrel=3 pkgdesc="Library for computation using data flow graphs for scalable machine learning" url="https://www.tensorflow.org/" license=('APACHE') arch=('x86_64') depends=('c-ares') -makedepends=('bazel' 'python-numpy' 'cuda' 'nvidia-utils' 'nccl' 'git' 'gcc' +makedepends=('bazel<1' 'python-numpy' 'cuda' 'nvidia-utils' 'nccl' 'git' 'gcc' 'cudnn' 'python-pip' 'python-wheel' 'python-setuptools' 'python-h5py' 'python-keras-applications' 'python-keras-preprocessing') optdepends=('tensorboard: Tensorflow visualization toolkit') -source=("https://github.com/tensorflow/tensorflow/archive/v${_pkgver}.tar.gz") -sha512sums=('c3a2cb9673d2ade8e83961f7d944165123d0e4d94e6ca4d8fdee4f02f536893b879bbbf78d3ad5e557467b58f97f7194f2d9cfc64d7d05540969be732070eecc') +source=("https://github.com/tensorflow/tensorflow/archive/v${_pkgver}.tar.gz" + 'python-3.8.patch' + 'glibc-2.30.patch') +sha512sums=('c3a2cb9673d2ade8e83961f7d944165123d0e4d94e6ca4d8fdee4f02f536893b879bbbf78d3ad5e557467b58f97f7194f2d9cfc64d7d05540969be732070eecc' + 'ef06196f1a7f5a4dff4d83916566dae8f2f2c2993ddcd40017583020dd9bfc73ef426c45b0cc5630d1dd53321b99736f2c60b37bb9370be02174c1209e041ffb' + 'a9345b7206e9f8ae9fc33987997808dcdeaf3e4c05caf40785bba2a9ef2292e20046bfd54ce05fee2ccd11ded9d8e918b2a131d830a7e238406e6ddf222e830e') get_pyver () { python -c 'import sys; print(str(sys.version_info[0]) + "." + str(sys.version_info[1]))' @@ -25,6 +29,9 @@ } prepare() { + patch -Np1 -d tensorflow-${_pkgver} <python-3.8.patch + patch -Np1 -d tensorflow-${_pkgver} <glibc-2.30.patch + cp -r tensorflow-${_pkgver} tensorflow-${_pkgver}-opt cp -r tensorflow-${_pkgver} tensorflow-${_pkgver}-cuda cp -r tensorflow-${_pkgver} tensorflow-${_pkgver}-opt-cuda Added: glibc-2.30.patch =================================================================== --- glibc-2.30.patch (rev 0) +++ glibc-2.30.patch 2019-10-27 20:38:34 UTC (rev 520797) @@ -0,0 +1,89 @@ +From 7bf3f05197bb6d71beba9dcd0ac83ddfcf7f1919 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia <[email protected]> +Date: Fri, 23 Aug 2019 13:54:52 +0000 +Subject: [PATCH] grpc: Define gettid() only for glibc < 2.30 + +glibc 2.30 has added this API, so let us use that when possible + +Upstream-Status: Pending + +Signed-off-by: Hongxu Jia <[email protected]> +--- + tensorflow/workspace.bzl | 1 + + ...01-Define-gettid-only-for-glibc-2.30.patch | 52 +++++++++++++++++++ + 2 files changed, 53 insertions(+) + create mode 100644 third_party/systemlibs/0001-Define-gettid-only-for-glibc-2.30.patch + +diff --git a/tensorflow/workspace.bzl b/tensorflow/workspace.bzl +index 788eca2f67..8a37fe5643 100755 +--- a/tensorflow/workspace.bzl ++++ b/tensorflow/workspace.bzl +@@ -475,6 +475,7 @@ def tf_workspace(path_prefix = "", tf_repo_name = ""): + sha256 = "1aa84387232dda273ea8fdfe722622084f72c16f7b84bfc519ac7759b71cdc91", + strip_prefix = "grpc-69b6c047bc767b4d80e7af4d00ccb7c45b683dae", + system_build_file = clean_dep("//third_party/systemlibs:grpc.BUILD"), ++ patch_file = clean_dep("//third_party/systemlibs:0001-Define-gettid-only-for-glibc-2.30.patch"), + urls = [ + "https://mirror.bazel.build/github.com/grpc/grpc/archive/69b6c047bc767b4d80e7af4d00ccb7c45b683dae.tar.gz", + "https://github.com/grpc/grpc/archive/69b6c047bc767b4d80e7af4d00ccb7c45b683dae.tar.gz", +diff --git a/third_party/systemlibs/0001-Define-gettid-only-for-glibc-2.30.patch b/third_party/systemlibs/0001-Define-gettid-only-for-glibc-2.30.patch +new file mode 100644 +index 0000000000..30f1d7b252 +--- /dev/null ++++ b/third_party/systemlibs/0001-Define-gettid-only-for-glibc-2.30.patch +@@ -0,0 +1,52 @@ ++From 1d630079c3d1013baebd19060f4e6050112cb66d Mon Sep 17 00:00:00 2001 ++From: Hongxu Jia <[email protected]> ++Date: Fri, 23 Aug 2019 13:52:01 +0000 ++Subject: [PATCH] Define gettid() only for glibc < 2.30 ++ ++glibc 2.30 has added this API, so let us use that when possible ++ ++Upstream-Status: Pending ++Signed-off-by: Khem Raj <[email protected]> ++ ++Signed-off-by: Hongxu Jia <[email protected]> ++--- ++ src/core/lib/gpr/log_linux.cc | 4 ++++ ++ src/core/lib/iomgr/ev_epollex_linux.cc | 4 ++++ ++ 2 files changed, 8 insertions(+) ++ ++diff --git a/src/core/lib/gpr/log_linux.cc b/src/core/lib/gpr/log_linux.cc ++index 561276f..25a7486 100644 ++--- a/src/core/lib/gpr/log_linux.cc +++++ b/src/core/lib/gpr/log_linux.cc ++@@ -40,7 +40,11 @@ ++ #include <time.h> ++ #include <unistd.h> ++ +++#if defined(__GLIBC__) && (__GLIBC_MINOR__ >= 29) +++#include <unistd.h> +++#else ++ static long gettid(void) { return syscall(__NR_gettid); } +++#endif ++ ++ void gpr_log(const char* file, int line, gpr_log_severity severity, ++ const char* format, ...) { ++diff --git a/src/core/lib/iomgr/ev_epollex_linux.cc b/src/core/lib/iomgr/ev_epollex_linux.cc ++index 06a382c..ec321f2 100644 ++--- a/src/core/lib/iomgr/ev_epollex_linux.cc +++++ b/src/core/lib/iomgr/ev_epollex_linux.cc ++@@ -1150,8 +1150,12 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker, ++ } ++ ++ #ifndef NDEBUG +++#if defined(__GLIBC__) && (__GLIBC_MINOR__ >= 29) +++#include <unistd.h> +++#else ++ static long gettid(void) { return syscall(__NR_gettid); } ++ #endif +++#endif ++ ++ /* pollset->mu lock must be held by the caller before calling this. ++ The function pollset_work() may temporarily release the lock (pollset->po.mu) ++-- ++2.17.1 ++ +-- +2.17.1 + Added: python-3.8.patch =================================================================== --- python-3.8.patch (rev 0) +++ python-3.8.patch 2019-10-27 20:38:34 UTC (rev 520797) @@ -0,0 +1,70 @@ +From 3a48a5c1541daa1fc3f49b9dbe0da247e7cd90f3 Mon Sep 17 00:00:00 2001 +From: Yong Tang <[email protected]> +Date: Mon, 21 Oct 2019 14:39:33 +0000 +Subject: [PATCH] Fix build failures for python 3.8 + +This fix tries to address the issue raised in 33543 where +tensorflow build on python 3.8 failed. + +This fix fixed the issue as was suggested in 33543 and pip +builds finished successfully. + +NOTE: tensorflow depends on h5py which does not have python 3.8 +support yet, as such a release version of tensorflow for python 3.8 +may have to wait for h5py first. + +Signed-off-by: Yong Tang <[email protected]> +--- + tensorflow/python/eager/pywrap_tfe_src.cc | 4 ++-- + tensorflow/python/lib/core/bfloat16.cc | 2 +- + tensorflow/python/lib/core/ndarray_tensor_bridge.cc | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/tensorflow/python/eager/pywrap_tfe_src.cc b/tensorflow/python/eager/pywrap_tfe_src.cc +index cfae44af209f..109bfe0579b0 100644 +--- a/tensorflow/python/eager/pywrap_tfe_src.cc ++++ b/tensorflow/python/eager/pywrap_tfe_src.cc +@@ -1431,7 +1431,7 @@ static PyTypeObject TFE_Py_Tape_Type = { + sizeof(TFE_Py_Tape), /* tp_basicsize */ + 0, /* tp_itemsize */ + &TFE_Py_Tape_Delete, /* tp_dealloc */ +- nullptr, /* tp_print */ ++ 0, /* tp_print */ + nullptr, /* tp_getattr */ + nullptr, /* tp_setattr */ + nullptr, /* tp_reserved */ +@@ -1469,7 +1469,7 @@ static PyTypeObject TFE_Py_ForwardAccumulator_Type = { + sizeof(TFE_Py_ForwardAccumulator), /* tp_basicsize */ + 0, /* tp_itemsize */ + &TFE_Py_ForwardAccumulatorDelete, /* tp_dealloc */ +- nullptr, /* tp_print */ ++ 0, /* tp_print */ + nullptr, /* tp_getattr */ + nullptr, /* tp_setattr */ + nullptr, /* tp_reserved */ +diff --git a/tensorflow/python/lib/core/bfloat16.cc b/tensorflow/python/lib/core/bfloat16.cc +index fde3a8377028..54be76375c9c 100644 +--- a/tensorflow/python/lib/core/bfloat16.cc ++++ b/tensorflow/python/lib/core/bfloat16.cc +@@ -317,7 +317,7 @@ PyTypeObject PyBfloat16_Type = { + sizeof(PyBfloat16), // tp_basicsize + 0, // tp_itemsize + nullptr, // tp_dealloc +- nullptr, // tp_print ++ 0, // tp_print + nullptr, // tp_getattr + nullptr, // tp_setattr + nullptr, // tp_compare / tp_reserved +diff --git a/tensorflow/python/lib/core/ndarray_tensor_bridge.cc b/tensorflow/python/lib/core/ndarray_tensor_bridge.cc +index 16f693418615..03ff77100d2e 100644 +--- a/tensorflow/python/lib/core/ndarray_tensor_bridge.cc ++++ b/tensorflow/python/lib/core/ndarray_tensor_bridge.cc +@@ -86,7 +86,7 @@ PyTypeObject TensorReleaserType = { + 0, /* tp_itemsize */ + /* methods */ + TensorReleaser_dealloc, /* tp_dealloc */ +- nullptr, /* tp_print */ ++ 0, /* tp_print */ + nullptr, /* tp_getattr */ + nullptr, /* tp_setattr */ + nullptr, /* tp_compare */
