diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml
index 382a4c5d..d84e726a 100755
--- a/.azure-pipelines/azure-pipelines-linux.yml
+++ b/.azure-pipelines/azure-pipelines-linux.yml
@@ -24,6 +24,22 @@ jobs:
: CONFIG: linux_64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10numpy1.23python3.11.____cpython
UPLOAD_PACKAGES: 'True'
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.2
+ ? linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.22python3.10.____cpython
+ : CONFIG: linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.22python3.10.____cpython
+ UPLOAD_PACKAGES: 'True'
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.8
+ ? linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.22python3.8.____cpython
+ : CONFIG: linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.22python3.8.____cpython
+ UPLOAD_PACKAGES: 'True'
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.8
+ ? linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.22python3.9.____cpython
+ : CONFIG: linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.22python3.9.____cpython
+ UPLOAD_PACKAGES: 'True'
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.8
+ ? linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.23python3.11.____cpython
+ : CONFIG: linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.23python3.11.____cpython
+ UPLOAD_PACKAGES: 'True'
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.8
? linux_64_c_compiler_version12cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.22python3.10.____cpython
: CONFIG: linux_64_c_compiler_version12cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.22python3.10.____cpython
UPLOAD_PACKAGES: 'True'
diff --git a/.ci_support/linux_64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10numpy1.22python3.10.____cpython.yaml b/.ci_support/linux_64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10numpy1.22python3.10.____cpython.yaml
index 0bb2dbf4..131fa62a 100644
--- a/.ci_support/linux_64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10numpy1.22python3.10.____cpython.yaml
+++ b/.ci_support/linux_64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10numpy1.22python3.10.____cpython.yaml
@@ -44,6 +44,8 @@ numpy:
- '1.22'
openssl:
- '3'
+perl:
+- 5.32.1
pin_run_as_build:
python:
min_pin: x.x
diff --git a/.ci_support/linux_64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10numpy1.22python3.8.____cpython.yaml b/.ci_support/linux_64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10numpy1.22python3.8.____cpython.yaml
index eca842e4..85986cb4 100644
--- a/.ci_support/linux_64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10numpy1.22python3.8.____cpython.yaml
+++ b/.ci_support/linux_64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10numpy1.22python3.8.____cpython.yaml
@@ -44,6 +44,8 @@ numpy:
- '1.22'
openssl:
- '3'
+perl:
+- 5.32.1
pin_run_as_build:
python:
min_pin: x.x
diff --git a/.ci_support/linux_64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10numpy1.22python3.9.____cpython.yaml b/.ci_support/linux_64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10numpy1.22python3.9.____cpython.yaml
index 253352dd..37500c5d 100644
--- a/.ci_support/linux_64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10numpy1.22python3.9.____cpython.yaml
+++ b/.ci_support/linux_64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10numpy1.22python3.9.____cpython.yaml
@@ -44,6 +44,8 @@ numpy:
- '1.22'
openssl:
- '3'
+perl:
+- 5.32.1
pin_run_as_build:
python:
min_pin: x.x
diff --git a/.ci_support/linux_64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10numpy1.23python3.11.____cpython.yaml b/.ci_support/linux_64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10numpy1.23python3.11.____cpython.yaml
index cf90fd83..19a745b3 100644
--- a/.ci_support/linux_64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10numpy1.23python3.11.____cpython.yaml
+++ b/.ci_support/linux_64_c_compiler_version10cuda_compilernvcccuda_compiler_version11.2cxx_compiler_version10numpy1.23python3.11.____cpython.yaml
@@ -44,6 +44,8 @@ numpy:
- '1.23'
openssl:
- '3'
+perl:
+- 5.32.1
pin_run_as_build:
python:
min_pin: x.x
diff --git a/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.22python3.10.____cpython.yaml b/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.22python3.10.____cpython.yaml
new file mode 100644
index 00000000..8d2f9bec
--- /dev/null
+++ b/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.22python3.10.____cpython.yaml
@@ -0,0 +1,76 @@
+c_compiler:
+- gcc
+c_compiler_version:
+- '11'
+cdt_name:
+- cos7
+channel_sources:
+- conda-forge
+channel_targets:
+- conda-forge main
+cuda_compiler:
+- nvcc
+cuda_compiler_version:
+- '11.8'
+cudnn:
+- '8'
+cxx_compiler:
+- gxx
+cxx_compiler_version:
+- '11'
+docker_image:
+- quay.io/condaforge/linux-anvil-cuda:11.8
+flatbuffers:
+- 23.5.26
+giflib:
+- '5.2'
+icu:
+- '73'
+libabseil:
+- '20230125'
+libcurl:
+- '8'
+libgrpc:
+- '1.54'
+libjpeg_turbo:
+- '3'
+libpng:
+- '1.6'
+libprotobuf:
+- '3.21'
+nccl:
+- '2'
+numpy:
+- '1.22'
+openssl:
+- '3'
+perl:
+- 5.32.1
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+python:
+- 3.10.* *_cpython
+python_impl:
+- cpython
+snappy:
+- '1'
+sqlite:
+- '3'
+target_platform:
+- linux-64
+zip_keys:
+- - c_compiler_version
+ - cxx_compiler_version
+ - cuda_compiler
+ - cuda_compiler_version
+ - cdt_name
+ - docker_image
+- - libgrpc
+ - libprotobuf
+- - python
+ - numpy
+ - python_impl
+zlib:
+- '1.2'
diff --git a/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.22python3.8.____cpython.yaml b/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.22python3.8.____cpython.yaml
new file mode 100644
index 00000000..1dc90124
--- /dev/null
+++ b/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.22python3.8.____cpython.yaml
@@ -0,0 +1,76 @@
+c_compiler:
+- gcc
+c_compiler_version:
+- '11'
+cdt_name:
+- cos7
+channel_sources:
+- conda-forge
+channel_targets:
+- conda-forge main
+cuda_compiler:
+- nvcc
+cuda_compiler_version:
+- '11.8'
+cudnn:
+- '8'
+cxx_compiler:
+- gxx
+cxx_compiler_version:
+- '11'
+docker_image:
+- quay.io/condaforge/linux-anvil-cuda:11.8
+flatbuffers:
+- 23.5.26
+giflib:
+- '5.2'
+icu:
+- '73'
+libabseil:
+- '20230125'
+libcurl:
+- '8'
+libgrpc:
+- '1.54'
+libjpeg_turbo:
+- '3'
+libpng:
+- '1.6'
+libprotobuf:
+- '3.21'
+nccl:
+- '2'
+numpy:
+- '1.22'
+openssl:
+- '3'
+perl:
+- 5.32.1
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+python:
+- 3.8.* *_cpython
+python_impl:
+- cpython
+snappy:
+- '1'
+sqlite:
+- '3'
+target_platform:
+- linux-64
+zip_keys:
+- - c_compiler_version
+ - cxx_compiler_version
+ - cuda_compiler
+ - cuda_compiler_version
+ - cdt_name
+ - docker_image
+- - libgrpc
+ - libprotobuf
+- - python
+ - numpy
+ - python_impl
+zlib:
+- '1.2'
diff --git a/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.22python3.9.____cpython.yaml b/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.22python3.9.____cpython.yaml
new file mode 100644
index 00000000..7f1591b7
--- /dev/null
+++ b/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.22python3.9.____cpython.yaml
@@ -0,0 +1,76 @@
+c_compiler:
+- gcc
+c_compiler_version:
+- '11'
+cdt_name:
+- cos7
+channel_sources:
+- conda-forge
+channel_targets:
+- conda-forge main
+cuda_compiler:
+- nvcc
+cuda_compiler_version:
+- '11.8'
+cudnn:
+- '8'
+cxx_compiler:
+- gxx
+cxx_compiler_version:
+- '11'
+docker_image:
+- quay.io/condaforge/linux-anvil-cuda:11.8
+flatbuffers:
+- 23.5.26
+giflib:
+- '5.2'
+icu:
+- '73'
+libabseil:
+- '20230125'
+libcurl:
+- '8'
+libgrpc:
+- '1.54'
+libjpeg_turbo:
+- '3'
+libpng:
+- '1.6'
+libprotobuf:
+- '3.21'
+nccl:
+- '2'
+numpy:
+- '1.22'
+openssl:
+- '3'
+perl:
+- 5.32.1
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+python:
+- 3.9.* *_cpython
+python_impl:
+- cpython
+snappy:
+- '1'
+sqlite:
+- '3'
+target_platform:
+- linux-64
+zip_keys:
+- - c_compiler_version
+ - cxx_compiler_version
+ - cuda_compiler
+ - cuda_compiler_version
+ - cdt_name
+ - docker_image
+- - libgrpc
+ - libprotobuf
+- - python
+ - numpy
+ - python_impl
+zlib:
+- '1.2'
diff --git a/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.23python3.11.____cpython.yaml b/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.23python3.11.____cpython.yaml
new file mode 100644
index 00000000..ca2b18a7
--- /dev/null
+++ b/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.23python3.11.____cpython.yaml
@@ -0,0 +1,76 @@
+c_compiler:
+- gcc
+c_compiler_version:
+- '11'
+cdt_name:
+- cos7
+channel_sources:
+- conda-forge
+channel_targets:
+- conda-forge main
+cuda_compiler:
+- nvcc
+cuda_compiler_version:
+- '11.8'
+cudnn:
+- '8'
+cxx_compiler:
+- gxx
+cxx_compiler_version:
+- '11'
+docker_image:
+- quay.io/condaforge/linux-anvil-cuda:11.8
+flatbuffers:
+- 23.5.26
+giflib:
+- '5.2'
+icu:
+- '73'
+libabseil:
+- '20230125'
+libcurl:
+- '8'
+libgrpc:
+- '1.54'
+libjpeg_turbo:
+- '3'
+libpng:
+- '1.6'
+libprotobuf:
+- '3.21'
+nccl:
+- '2'
+numpy:
+- '1.23'
+openssl:
+- '3'
+perl:
+- 5.32.1
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+python:
+- 3.11.* *_cpython
+python_impl:
+- cpython
+snappy:
+- '1'
+sqlite:
+- '3'
+target_platform:
+- linux-64
+zip_keys:
+- - c_compiler_version
+ - cxx_compiler_version
+ - cuda_compiler
+ - cuda_compiler_version
+ - cdt_name
+ - docker_image
+- - libgrpc
+ - libprotobuf
+- - python
+ - numpy
+ - python_impl
+zlib:
+- '1.2'
diff --git a/.ci_support/linux_64_c_compiler_version12cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.22python3.10.____cpython.yaml b/.ci_support/linux_64_c_compiler_version12cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.22python3.10.____cpython.yaml
index 33fffd7c..30eafbbe 100644
--- a/.ci_support/linux_64_c_compiler_version12cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.22python3.10.____cpython.yaml
+++ b/.ci_support/linux_64_c_compiler_version12cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.22python3.10.____cpython.yaml
@@ -44,6 +44,8 @@ numpy:
- '1.22'
openssl:
- '3'
+perl:
+- 5.32.1
pin_run_as_build:
python:
min_pin: x.x
diff --git a/.ci_support/linux_64_c_compiler_version12cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.22python3.8.____cpython.yaml b/.ci_support/linux_64_c_compiler_version12cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.22python3.8.____cpython.yaml
index cbae738f..5a1b4e39 100644
--- a/.ci_support/linux_64_c_compiler_version12cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.22python3.8.____cpython.yaml
+++ b/.ci_support/linux_64_c_compiler_version12cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.22python3.8.____cpython.yaml
@@ -44,6 +44,8 @@ numpy:
- '1.22'
openssl:
- '3'
+perl:
+- 5.32.1
pin_run_as_build:
python:
min_pin: x.x
diff --git a/.ci_support/linux_64_c_compiler_version12cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.22python3.9.____cpython.yaml b/.ci_support/linux_64_c_compiler_version12cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.22python3.9.____cpython.yaml
index 1b95426c..5d784b5e 100644
--- a/.ci_support/linux_64_c_compiler_version12cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.22python3.9.____cpython.yaml
+++ b/.ci_support/linux_64_c_compiler_version12cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.22python3.9.____cpython.yaml
@@ -44,6 +44,8 @@ numpy:
- '1.22'
openssl:
- '3'
+perl:
+- 5.32.1
pin_run_as_build:
python:
min_pin: x.x
diff --git a/.ci_support/linux_64_c_compiler_version12cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.23python3.11.____cpython.yaml b/.ci_support/linux_64_c_compiler_version12cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.23python3.11.____cpython.yaml
index 8f44a514..41c0f139 100644
--- a/.ci_support/linux_64_c_compiler_version12cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.23python3.11.____cpython.yaml
+++ b/.ci_support/linux_64_c_compiler_version12cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.23python3.11.____cpython.yaml
@@ -44,6 +44,8 @@ numpy:
- '1.23'
openssl:
- '3'
+perl:
+- 5.32.1
pin_run_as_build:
python:
min_pin: x.x
diff --git a/.ci_support/migrations/cuda118.yaml b/.ci_support/migrations/cuda118.yaml
new file mode 100644
index 00000000..fdd298b9
--- /dev/null
+++ b/.ci_support/migrations/cuda118.yaml
@@ -0,0 +1,99 @@
+migrator_ts: 1692828152
+__migrator:
+ kind:
+ version
+ migration_number:
+ 1
+ build_number:
+ 1
+ paused: false
+ override_cbc_keys:
+ - cuda_compiler_stub
+ operation: key_add
+ check_solvable: false
+ primary_key: cuda_compiler_version
+ ordering:
+ cxx_compiler_version:
+ - 9
+ - 8
+ - 7
+ c_compiler_version:
+ - 9
+ - 8
+ - 7
+ fortran_compiler_version:
+ - 9
+ - 8
+ - 7
+ docker_image:
+ # Native builds
+ - quay.io/condaforge/linux-anvil-comp7 # [os.environ.get("BUILD_PLATFORM") == "linux-64"]
+ - quay.io/condaforge/linux-anvil-aarch64 # [os.environ.get("BUILD_PLATFORM") == "linux-aarch64"]
+ - quay.io/condaforge/linux-anvil-ppc64le # [os.environ.get("BUILD_PLATFORM") == "linux-ppc64le"]
+ - quay.io/condaforge/linux-anvil-armv7l # [os.environ.get("BUILD_PLATFORM") == "linux-armv7l"]
+
+ # Legacy CUDAs
+ - quay.io/condaforge/linux-anvil-cuda:9.2 # [linux64 and os.environ.get("BUILD_PLATFORM") == "linux-64"]
+ - quay.io/condaforge/linux-anvil-cuda:10.0 # [linux64 and os.environ.get("BUILD_PLATFORM") == "linux-64"]
+ - quay.io/condaforge/linux-anvil-cuda:10.1 # [linux64 and os.environ.get("BUILD_PLATFORM") == "linux-64"]
+ - quay.io/condaforge/linux-anvil-cuda:10.2 # [linux64 and os.environ.get("BUILD_PLATFORM") == "linux-64"]
+ - quay.io/condaforge/linux-anvil-cuda:11.0 # [linux64 and os.environ.get("BUILD_PLATFORM") == "linux-64"]
+ - quay.io/condaforge/linux-anvil-cuda:11.1 # [linux64 and os.environ.get("BUILD_PLATFORM") == "linux-64"]
+
+ # CUDA 11.2
+ - quay.io/condaforge/linux-anvil-cuda:11.2 # [linux64 and os.environ.get("BUILD_PLATFORM") == "linux-64"]
+ # CUDA 11.2 arch: native compilation (build == target)
+ - quay.io/condaforge/linux-anvil-ppc64le-cuda:11.2 # [ppc64le and os.environ.get("BUILD_PLATFORM") == "linux-ppc64le"]
+ - quay.io/condaforge/linux-anvil-aarch64-cuda:11.2 # [aarch64 and os.environ.get("BUILD_PLATFORM") == "linux-aarch64"]
+ # CUDA 11.2 arch: cross-compilation (build != target)
+ - quay.io/condaforge/linux-anvil-cuda:11.2 # [ppc64le and os.environ.get("BUILD_PLATFORM") == "linux-64"]
+ - quay.io/condaforge/linux-anvil-cuda:11.2 # [aarch64 and os.environ.get("BUILD_PLATFORM") == "linux-64"]
+
+ # CUDA 11.8
+ - quay.io/condaforge/linux-anvil-cuda:11.8 # [linux64 and os.environ.get("BUILD_PLATFORM") == "linux-64"]
+ # CUDA 11.8 arch: native compilation (build == target)
+ - quay.io/condaforge/linux-anvil-ppc64le-cuda:11.8 # [ppc64le and os.environ.get("BUILD_PLATFORM") == "linux-ppc64le"]
+ - quay.io/condaforge/linux-anvil-aarch64-cuda:11.8 # [aarch64 and os.environ.get("BUILD_PLATFORM") == "linux-aarch64"]
+ # CUDA 11.8 arch: cross-compilation (build != target)
+ - quay.io/condaforge/linux-anvil-cuda:11.8 # [ppc64le and os.environ.get("BUILD_PLATFORM") == "linux-64"]
+ - quay.io/condaforge/linux-anvil-cuda:11.8 # [aarch64 and os.environ.get("BUILD_PLATFORM") == "linux-64"]
+
+ # Native CentOS 7 image
+ - quay.io/condaforge/linux-anvil-cos7-x86_64 # [linux64 and os.environ.get("BUILD_PLATFORM") == "linux-64"]
+ cuda_compiler_version:
+ - None
+ - 10.2 # [(linux64 or win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+ - 11.0 # [(linux64 or win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+ - 11.1 # [(linux64 or win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+ - 11.2 # [(linux or win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+ - 11.8 # [(linux or win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+ - 12.0 # [(linux or win) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+ commit_message: |
+ Rebuild for CUDA 11.8 w/arch support
+
+cuda_compiler: # [(linux or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+ - nvcc # [(linux or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+
+cuda_compiler_version: # [(linux or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+ - 11.8 # [(linux or win64) and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+
+c_compiler_version: # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+ - 11 # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+
+cxx_compiler_version: # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+ - 11 # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+
+fortran_compiler_version: # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+ - 11 # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+
+cdt_name: # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+ - cos7 # [linux and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+
+docker_image: # [os.environ.get("BUILD_PLATFORM", "").startswith("linux-") and os.environ.get("CF_CUDA_ENABLED", "False") == "True"]
+ - quay.io/condaforge/linux-anvil-cuda:11.8 # [linux64 and os.environ.get("BUILD_PLATFORM") == "linux-64"]
+ # case: native compilation (build == target)
+ - quay.io/condaforge/linux-anvil-ppc64le-cuda:11.8 # [ppc64le and os.environ.get("BUILD_PLATFORM") == "linux-ppc64le"]
+ - quay.io/condaforge/linux-anvil-aarch64-cuda:11.8 # [aarch64 and os.environ.get("BUILD_PLATFORM") == "linux-aarch64"]
+ # case: cross-compilation (build != target)
+ - quay.io/condaforge/linux-anvil-cuda:11.8 # [ppc64le and os.environ.get("BUILD_PLATFORM") == "linux-64"]
+ - quay.io/condaforge/linux-anvil-cuda:11.8 # [aarch64 and os.environ.get("BUILD_PLATFORM") == "linux-64"]
diff --git a/.ci_support/osx_64_numpy1.22python3.10.____cpython.yaml b/.ci_support/osx_64_numpy1.22python3.10.____cpython.yaml
index 2edc72ea..8e379261 100644
--- a/.ci_support/osx_64_numpy1.22python3.10.____cpython.yaml
+++ b/.ci_support/osx_64_numpy1.22python3.10.____cpython.yaml
@@ -5,7 +5,7 @@ MACOSX_SDK_VERSION:
c_compiler:
- clang
c_compiler_version:
-- '15'
+- '16'
channel_sources:
- conda-forge
channel_targets:
@@ -15,7 +15,7 @@ cuda_compiler_version:
cxx_compiler:
- clangxx
cxx_compiler_version:
-- '15'
+- '16'
flatbuffers:
- 23.5.26
giflib:
diff --git a/.ci_support/osx_64_numpy1.22python3.8.____cpython.yaml b/.ci_support/osx_64_numpy1.22python3.8.____cpython.yaml
index 23a0f180..c97399cd 100644
--- a/.ci_support/osx_64_numpy1.22python3.8.____cpython.yaml
+++ b/.ci_support/osx_64_numpy1.22python3.8.____cpython.yaml
@@ -5,7 +5,7 @@ MACOSX_SDK_VERSION:
c_compiler:
- clang
c_compiler_version:
-- '15'
+- '16'
channel_sources:
- conda-forge
channel_targets:
@@ -15,7 +15,7 @@ cuda_compiler_version:
cxx_compiler:
- clangxx
cxx_compiler_version:
-- '15'
+- '16'
flatbuffers:
- 23.5.26
giflib:
diff --git a/.ci_support/osx_64_numpy1.22python3.9.____cpython.yaml b/.ci_support/osx_64_numpy1.22python3.9.____cpython.yaml
index 7735991e..0b4b602a 100644
--- a/.ci_support/osx_64_numpy1.22python3.9.____cpython.yaml
+++ b/.ci_support/osx_64_numpy1.22python3.9.____cpython.yaml
@@ -5,7 +5,7 @@ MACOSX_SDK_VERSION:
c_compiler:
- clang
c_compiler_version:
-- '15'
+- '16'
channel_sources:
- conda-forge
channel_targets:
@@ -15,7 +15,7 @@ cuda_compiler_version:
cxx_compiler:
- clangxx
cxx_compiler_version:
-- '15'
+- '16'
flatbuffers:
- 23.5.26
giflib:
diff --git a/.ci_support/osx_64_numpy1.23python3.11.____cpython.yaml b/.ci_support/osx_64_numpy1.23python3.11.____cpython.yaml
index 94bb6871..dc30e5cb 100644
--- a/.ci_support/osx_64_numpy1.23python3.11.____cpython.yaml
+++ b/.ci_support/osx_64_numpy1.23python3.11.____cpython.yaml
@@ -5,7 +5,7 @@ MACOSX_SDK_VERSION:
c_compiler:
- clang
c_compiler_version:
-- '15'
+- '16'
channel_sources:
- conda-forge
channel_targets:
@@ -15,7 +15,7 @@ cuda_compiler_version:
cxx_compiler:
- clangxx
cxx_compiler_version:
-- '15'
+- '16'
flatbuffers:
- 23.5.26
giflib:
diff --git a/.ci_support/osx_arm64_numpy1.22python3.10.____cpython.yaml b/.ci_support/osx_arm64_numpy1.22python3.10.____cpython.yaml
index b71f8ffc..e6a1933a 100644
--- a/.ci_support/osx_arm64_numpy1.22python3.10.____cpython.yaml
+++ b/.ci_support/osx_arm64_numpy1.22python3.10.____cpython.yaml
@@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET:
c_compiler:
- clang
c_compiler_version:
-- '15'
+- '16'
channel_sources:
- conda-forge
channel_targets:
@@ -13,7 +13,7 @@ cuda_compiler_version:
cxx_compiler:
- clangxx
cxx_compiler_version:
-- '15'
+- '16'
flatbuffers:
- 23.5.26
giflib:
diff --git a/.ci_support/osx_arm64_numpy1.22python3.8.____cpython.yaml b/.ci_support/osx_arm64_numpy1.22python3.8.____cpython.yaml
index db1f675e..c861b679 100644
--- a/.ci_support/osx_arm64_numpy1.22python3.8.____cpython.yaml
+++ b/.ci_support/osx_arm64_numpy1.22python3.8.____cpython.yaml
@@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET:
c_compiler:
- clang
c_compiler_version:
-- '15'
+- '16'
channel_sources:
- conda-forge
channel_targets:
@@ -13,7 +13,7 @@ cuda_compiler_version:
cxx_compiler:
- clangxx
cxx_compiler_version:
-- '15'
+- '16'
flatbuffers:
- 23.5.26
giflib:
diff --git a/.ci_support/osx_arm64_numpy1.22python3.9.____cpython.yaml b/.ci_support/osx_arm64_numpy1.22python3.9.____cpython.yaml
index 3be1b95a..728bb5e3 100644
--- a/.ci_support/osx_arm64_numpy1.22python3.9.____cpython.yaml
+++ b/.ci_support/osx_arm64_numpy1.22python3.9.____cpython.yaml
@@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET:
c_compiler:
- clang
c_compiler_version:
-- '15'
+- '16'
channel_sources:
- conda-forge
channel_targets:
@@ -13,7 +13,7 @@ cuda_compiler_version:
cxx_compiler:
- clangxx
cxx_compiler_version:
-- '15'
+- '16'
flatbuffers:
- 23.5.26
giflib:
diff --git a/.ci_support/osx_arm64_numpy1.23python3.11.____cpython.yaml b/.ci_support/osx_arm64_numpy1.23python3.11.____cpython.yaml
index 278314b9..d60da110 100644
--- a/.ci_support/osx_arm64_numpy1.23python3.11.____cpython.yaml
+++ b/.ci_support/osx_arm64_numpy1.23python3.11.____cpython.yaml
@@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET:
c_compiler:
- clang
c_compiler_version:
-- '15'
+- '16'
channel_sources:
- conda-forge
channel_targets:
@@ -13,7 +13,7 @@ cuda_compiler_version:
cxx_compiler:
- clangxx
cxx_compiler_version:
-- '15'
+- '16'
flatbuffers:
- 23.5.26
giflib:
diff --git a/README.md b/README.md
index 91bc46ff..a4230a7f 100644
--- a/README.md
+++ b/README.md
@@ -64,6 +64,34 @@ Current build status
+
linux_64_c_compiler_version12cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version12numpy1.22python3.10.____cpython |
diff --git a/recipe/build.sh b/recipe/build.sh
index 35e49752..e5bb8a41 100644
--- a/recipe/build.sh
+++ b/recipe/build.sh
@@ -2,6 +2,14 @@
set -ex
+# Make libprotobuf-python-headers visible for pybind11_protobuf
+# These files will be deleted at the end of the build.
+mkdir -p $PREFIX/include/python
+cp -r $PREFIX/include/google $PREFIX/include/python/
+
+sed -i "s;@@PREFIX@@;$PREFIX;" third_party/pybind11_protobuf/0001-Add-Python-include-path.patch
+sed -i "s;@@PY_VER@@;$PY_VER;" third_party/pybind11_protobuf/0001-Add-Python-include-path.patch
+
export PATH="$PWD:$PATH"
export CC=$(basename $CC)
export CXX=$(basename $CXX)
@@ -140,6 +148,8 @@ if [[ ${cuda_compiler_version} != "None" ]]; then
export TF_CUDA_COMPUTE_CAPABILITIES=sm_35,sm_50,sm_60,sm_62,sm_70,sm_72,sm_75,sm_80,sm_86,compute_86
elif [[ ${cuda_compiler_version} == 11.2 ]]; then
export TF_CUDA_COMPUTE_CAPABILITIES=sm_35,sm_50,sm_60,sm_62,sm_70,sm_72,sm_75,sm_80,sm_86,compute_86
+ elif [[ ${cuda_compiler_version} == 11.8 ]]; then
+ export TF_CUDA_COMPUTE_CAPABILITIES=sm_35,sm_50,sm_60,sm_62,sm_70,sm_72,sm_75,sm_80,sm_86,sm_87,sm_89,sm_90,compute_90
else
echo "unsupported cuda version."
exit 1
@@ -162,6 +172,12 @@ build --cpu=${TARGET_CPU}
build --local_cpu_resources=${CPU_COUNT}
EOF
+# Update TF lite schema with latest flatbuffers version
+pushd tensorflow/lite/schema
+flatc --cpp --gen-object-api schema.fbs
+popd
+rm -f tensorflow/lite/schema/conversion_metadata_generated.h
+rm -f tensorflow/lite/experimental/acceleration/configuration/configuration_generated.h
# build using bazel
bazel ${BAZEL_OPTS} build ${BUILD_TARGET}
@@ -198,3 +214,6 @@ popd
rm -r $SRC_DIR/libtensorflow_cc_output
bazel clean
+
+# This was only needed for protobuf_python
+rm -rf $PREFIX/include/python
diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml
index 0ff63ba2..0628e008 100644
--- a/recipe/conda_build_config.yaml
+++ b/recipe/conda_build_config.yaml
@@ -10,6 +10,7 @@ MACOSX_SDK_VERSION: # [osx and x86_64]
# https://github.com/conda-forge/tensorflow-feedstock/pull/337
libprotobuf:
- '3.21'
-
+libabseil:
+- '20230125'
libgrpc:
- '1.54'
diff --git a/recipe/custom_toolchain/cc_toolchain_config.bzl b/recipe/custom_toolchain/cc_toolchain_config.bzl
index 195336b8..f504ffc1 100644
--- a/recipe/custom_toolchain/cc_toolchain_config.bzl
+++ b/recipe/custom_toolchain/cc_toolchain_config.bzl
@@ -284,6 +284,7 @@ def _impl(ctx):
"${CONDA_BUILD_SYSROOT}/System/Library/Frameworks",
"${CONDA_BUILD_SYSROOT}/usr/include",
"${BUILD_PREFIX}/lib/clang/${COMPILER_VERSION}/include",
+ "${BUILD_PREFIX}/lib/clang/${SHORT_COMPILER_VERSION}/include",
"${BUILD_PREFIX}/include/c++/v1",
"${PREFIX}/include",
]
diff --git a/recipe/gen-bazel-toolchain.sh b/recipe/gen-bazel-toolchain.sh
index e3b0849c..73208eae 100755
--- a/recipe/gen-bazel-toolchain.sh
+++ b/recipe/gen-bazel-toolchain.sh
@@ -15,6 +15,7 @@ function apply_cc_template() {
sed -ie "s:TARGET_PLATFORM:${target_platform}:" $1
sed -ie "s:\${CONDA_BUILD_SYSROOT}:${CONDA_BUILD_SYSROOT}:" $1
sed -ie "s:\${COMPILER_VERSION}:${BAZEL_TOOLCHAIN_COMPILER_VERSION:-}:" $1
+ sed -ie "s:\${SHORT_COMPILER_VERSION}:${SHORT_BAZEL_TOOLCHAIN_COMPILER_VERSION:-}:" $1
sed -ie "s:\${GCC_COMPILER_PATH}:${GCC:-}:" $1
sed -ie "s:\${BAZEL_TOOLCHAIN_GCC}:${BAZEL_TOOLCHAIN_GCC}:" $1
sed -ie "s:\${CUDA_VERSION}:${cuda_compiler_version:-}:" $1
@@ -41,6 +42,7 @@ cp -r ${RECIPE_DIR}/custom_toolchain .
pushd custom_toolchain
if [[ "${target_platform}" == osx-* ]]; then
export BAZEL_TOOLCHAIN_COMPILER_VERSION=$($CC -v 2>&1 | head -n1 | cut -d' ' -f3)
+ export SHORT_BAZEL_TOOLCHAIN_COMPILER_VERSION=$(echo ${BAZEL_TOOLCHAIN_COMPILER_VERSION} | cut -d. -f1)
sed -e "s:\${CLANG}:${CLANG}:" \
-e "s:\${target_platform}:${target_platform}:" \
-e "s:\${INSTALL_NAME_TOOL}:${INSTALL_NAME_TOOL}:" \
@@ -63,6 +65,7 @@ pushd custom_toolchain
export BAZEL_TOOLCHAIN_AR=${LIBTOOL}
else
export BAZEL_TOOLCHAIN_COMPILER_VERSION=$(${CC} -v 2>&1|tail -n1|cut -d' ' -f3)
+ export SHORT_BAZEL_TOOLCHAIN_COMPILER_VERSION=${BAZEL_TOOLCHAIN_COMPILER_VERSION}
export BAZEL_TOOLCHAIN_AR=$(basename ${AR})
touch cc_wrapper.sh
diff --git a/recipe/meta.yaml b/recipe/meta.yaml
index c71c9131..2b4b2182 100644
--- a/recipe/meta.yaml
+++ b/recipe/meta.yaml
@@ -1,5 +1,5 @@
-{% set version = "2.12.1" %}
-{% set estimator_version = "2.12.0" %}
+{% set version = "2.13.1" %}
+{% set estimator_version = "2.13.0" %}
package:
name: tensorflow-split
@@ -7,34 +7,34 @@ package:
source:
- url: https://github.com/tensorflow/tensorflow/archive/refs/tags/v{{ version.replace(".rc", "-rc") }}.tar.gz
- sha256: 6bc4600cc0b88e9e40f1800096f5bddbbd3b6e5527a030dea631b87f2ae46b5b
+ sha256: 89c07aebd4f41fbe0d08cc88aef00305542134f2f16d3b62918dc3c1182f33e2
patches:
- patches/0001-loosen-requirements.patch
- patches/0002-fix-genproto.patch
- patches/0003-fix-absl-py.patch
- patches/0004-Add-additional-absl_synchronization-linkage-to-gRPC.patch
- - patches/0005-add-missing-macro-for-CUDA_VERSION.patch
- # backport https://github.com/tensorflow/tensorflow/commit/2eae48506773587a7e74dd7064aa0fa9f0c37fbf
- # to not have to carry an upper bound for wrapt-version
- - patches/0006-Add-TypeError-catch-wrapt-1.15.0rc-throws-TypeError-.patch
- # backport https://github.com/tensorflow/tensorflow/commit/ad938db0da16d00d7f14da3de2a4abb97b1bc340
- # for compatibility with newer abseil
- - patches/0007-Update-Abseil-to-the-latest-LTS-replace-or-with-in-d.patch
- - patches/0008-Add-missing-any_invocable-target-to-absel-bazel.patch
- - patches/0009-Fix-missing-abseil-linkages.patch
+ - patches/0005-Add-missing-any_invocable-target-to-absel-bazel.patch
+ - patches/0006-Fix-missing-abseil-linkages.patch
+ ## backport https://github.com/tensorflow/tensorflow/pull/61134
+ - patches/0007-unpin-gast-dependency-for-pip_package.patch
+ - patches/0008-Use-basename-instead-of-realpath.patch
+ - patches/0009-Fix-protobuf_python-for-systemlibs.patch
+ - patches/0010-Add-absl_log-systemlib.patch
+ - patches/0011-Omit-linking-to-layout_proto_cc-if-protobuf-linkage-.patch
+ - patches/0012-Fix-further-abseil-linkage.patch
- url: https://github.com/tensorflow/estimator/archive/refs/tags/v{{ estimator_version.replace(".rc", "-rc") }}.tar.gz
- sha256: 86c75e830c6ba762d0e3cf04c160096930fb12a992e69b3f24674b9f58902063
+ sha256: 4175e9276a1eb8b5e4e876d228e4605871832e7bd8517965d6a47f1481af2c3e
folder: tensorflow-estimator
build:
number: 1
skip: true # [win]
skip: true # [python_impl == 'pypy']
- skip: true # [cuda_compiler_version in ("10.2", "11.0", "11.1")]
requirements:
build:
+ - perl # [linux]
- python # [build_platform != target_platform]
- cython # [build_platform != target_platform]
- cross-python_{{ target_platform }} # [build_platform != target_platform]
@@ -92,14 +92,12 @@ requirements:
- dill
- giflib
- libgrpc
- # 2022/04/25 hmaarrfk
- # the latest flatbuffers 2.0.6 seems to have removed a sybmol in a patch release...
- # https://github.com/Qengineering/TensorFlow_Lite_Pose_RPi_64-bits/issues/3#issuecomment-1034799822
- flatbuffers
- icu
- libjpeg-turbo
- libpng
- libprotobuf
+ - libprotobuf-python-headers
- openssl
- pybind11
- sqlite
@@ -109,21 +107,20 @@ requirements:
# github.com/tensorflow/tensorflow/blob/v{{ version }}/tensorflow/tools/pip_package/setup.py
- absl-py >=1.0.0
- astunparse >=1.6.0
- - gast >=0.2.1,<=0.4.0
+ - gast >=0.2.1,!=0.5.0,!=0.5.1,!=0.5.2
- google-pasta >=0.1.1
- h5py >=2.9.0
- - keras-preprocessing >=1.1.1
- numpy
- opt_einsum >=2.3.2
- - protobuf >=3.9.2
+ - protobuf >=3.20.3,<5,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5
- python-flatbuffers >=2
- six >=1.12
- termcolor >=1.1.0
- typing_extensions >=3.6.6,<4.6.0
- wrapt >=1.11.0
# TF-API needs to move in sync
- - tensorboard >=2.12,<2.13
- - keras >=2.12,<2.13
+ - tensorboard >=2.13,<2.14
+ - keras >=2.13,<2.14
outputs:
# 2021/12/29: hmaarrfk
@@ -132,11 +129,11 @@ outputs:
# circularity is broken upstream by the fact that they have to bootstrap
# their builds
- name: tensorflow-base
- script: build_pkg.sh # [not win]
+ script: build_pkg.sh # [unix]
script: build_pkg.bat # [win]
build:
string: cuda{{ cuda_compiler_version | replace('.', '') }}py{{ CONDA_PY }}h{{ PKG_HASH }}_{{ PKG_BUILDNUM }} # [cuda_compiler_version != "None"]
- string: cpu_py{{ CONDA_PY }}h{{ PKG_HASH }}_{{ PKG_BUILDNUM }} # [cuda_compiler_version == "None"]
+ string: cpu_py{{ CONDA_PY }}h{{ PKG_HASH }}_{{ PKG_BUILDNUM }} # [cuda_compiler_version == "None"]
# weigh down cpu implementation and give cuda preference
track_features:
- tensorflow-cpu # [cuda_compiler_version == "None"]
@@ -154,7 +151,7 @@ outputs:
build:
- {{ compiler('c') }}
- {{ compiler('cxx') }}
- - {{ compiler('cuda') }} # [cuda_compiler_version != "None"]
+ - {{ compiler('cuda') }} # [cuda_compiler_version != "None"]
- python # [build_platform != target_platform]
- cross-python_{{ target_platform }} # [build_platform != target_platform]
host:
@@ -179,6 +176,7 @@ outputs:
- libcurl
- libpng
- libprotobuf
+ - libprotobuf-python-headers
- openssl
- pybind11
- snappy
@@ -187,45 +185,42 @@ outputs:
# requirements specified by the package itself
- absl-py >=1.0.0
- astunparse >=1.6.0
- - gast >=0.2.1,<=0.4.0
+ - gast >=0.2.1,!=0.5.0,!=0.5.1,!=0.5.2
- google-pasta >=0.1.1
- h5py >=2.9.0
- - keras-preprocessing >=1.1.1
- numpy
- opt_einsum >=2.3.2
- - protobuf >=3.9.2
+ - protobuf >=3.20.3,<5,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5
- python-flatbuffers >=2
- six >=1.12
- termcolor >=1.1.0
- typing_extensions >=3.6.6,<4.6.0
- wrapt >=1.11.0
# TF-API needs to move in sync
- - tensorboard >=2.12,<2.13
- - keras >=2.12,<2.13
+ - tensorboard >=2.13,<2.14
+ - keras >=2.13,<2.14
run:
- python
- packaging
- absl-py >=1.0.0
- astunparse >=1.6.0
- - gast >=0.2.1,<=0.4.0
+ - gast >=0.2.1,!=0.5.0,!=0.5.1,!=0.5.2
- google-pasta >=0.1.1
- grpcio {{ libgrpc }}.*
- h5py >=2.9.0
- - jax >=0.3.15
- - keras-preprocessing >=1.1.1
- {{ pin_compatible('numpy', lower_bound='1.22') }}
- opt_einsum >=2.3.2
- - protobuf >=3.9.2
+ - protobuf >=3.20.3,<5,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5
- python-flatbuffers >=2
- six >=1.12
- termcolor >=1.1.0
- typing_extensions >=3.6.6,<4.6.0
- wrapt >=1.11.0
# TF-API needs to move in sync
- - tensorboard >=2.12,<2.13
- - keras >=2.12,<2.13
+ - tensorboard >=2.13,<2.14
+ - keras >=2.13,<2.14
# avoid that people without GPUs needlessly download ~0.5-1GB
- - __cuda # [cuda_compiler_version != "None"]
+ - __cuda # [cuda_compiler_version != "None"]
- __osx >={{ MACOSX_DEPLOYMENT_TARGET|default("10.9") }} # [osx and x86_64]
# TODO: decide on the name of the package
# run_constrained:
@@ -239,7 +234,7 @@ outputs:
- name: tensorflow
build:
string: cuda{{ cuda_compiler_version | replace('.', '') }}py{{ CONDA_PY }}h{{ PKG_HASH }}_{{ PKG_BUILDNUM }} # [cuda_compiler_version != "None"]
- string: cpu_py{{ CONDA_PY }}h{{ PKG_HASH }}_{{ PKG_BUILDNUM }} # [cuda_compiler_version == "None"]
+ string: cpu_py{{ CONDA_PY }}h{{ PKG_HASH }}_{{ PKG_BUILDNUM }} # [cuda_compiler_version == "None"]
# weigh down cpu implementation and give cuda preference
track_features:
- tensorflow-cpu # [cuda_compiler_version == "None"]
@@ -268,16 +263,16 @@ outputs:
- tf_upgrade_v2 --help # [build_platform == target_platform]
# --help exits with exit code 1
- test -x $PREFIX/bin/saved_model_cli # [unix]
- - tflite_convert --help # [not win and build_platform == target_platform]
- - toco_from_protos --help # [not win and build_platform == target_platform]
- - toco --help # [not win and build_platform == target_platform]
+ - tflite_convert --help # [build_platform == target_platform]
+ - toco_from_protos --help # [build_platform == target_platform]
+ - toco --help # [build_platform == target_platform]
- name: tensorflow-estimator
- script: build_estimator.sh # [not win]
+ script: build_estimator.sh # [unix]
script: build_estimator.bat # [win]
build:
string: cuda{{ cuda_compiler_version | replace('.', '') }}py{{ CONDA_PY }}h{{ PKG_HASH }}_{{ PKG_BUILDNUM }} # [cuda_compiler_version != "None"]
- string: cpu_py{{ CONDA_PY }}h{{ PKG_HASH }}_{{ PKG_BUILDNUM }} # [cuda_compiler_version == "None"]
+ string: cpu_py{{ CONDA_PY }}h{{ PKG_HASH }}_{{ PKG_BUILDNUM }} # [cuda_compiler_version == "None"]
requirements:
build:
- {{ compiler('c') }}
@@ -285,7 +280,7 @@ outputs:
# Keep the cuda compiler here since it helps package solvers
# decide on the cuda variant
# https://github.com/conda-forge/tensorflow-feedstock/issues/162
- - {{ compiler('cuda') }} # [cuda_compiler_version != "None"]
+ - {{ compiler('cuda') }} # [cuda_compiler_version != "None"]
- bazel >=5.2.0,<6
- python # [build_platform != target_platform]
- cross-python_{{ target_platform }} # [build_platform != target_platform]
@@ -318,7 +313,7 @@ outputs:
build:
skip: true # [win]
string: cuda{{ cuda_compiler_version | replace('.', '') }}h{{ PKG_HASH }}_{{ PKG_BUILDNUM }} # [cuda_compiler_version != "None"]
- string: cpu_h{{ PKG_HASH }}_{{ PKG_BUILDNUM }} # [cuda_compiler_version == "None"]
+ string: cpu_h{{ PKG_HASH }}_{{ PKG_BUILDNUM }} # [cuda_compiler_version == "None"]
run_exports:
# tensorflow makes no ABI guarantees, need to pin to what we built with
- libtensorflow {{ version }}
@@ -355,15 +350,15 @@ outputs:
requires:
- {{ compiler('c') }}
commands:
- - test -f $PREFIX/lib/libtensorflow${SHLIB_EXT} # [not win and cuda_compiler_version == "None"]
- - ./test_libtensorflow.sh # [not win and cuda_compiler_version == "None" and build_platform == target_platform]
+ - test -f $PREFIX/lib/libtensorflow${SHLIB_EXT} # [cuda_compiler_version == "None"]
+ - ./test_libtensorflow.sh # [cuda_compiler_version == "None" and build_platform == target_platform]
- name: libtensorflow_cc
script: cp_libtensorflow_cc.sh
build:
skip: true # [win]
string: cuda{{ cuda_compiler_version | replace('.', '') }}h{{ PKG_HASH }}_{{ PKG_BUILDNUM }} # [cuda_compiler_version != "None"]
- string: cpu_h{{ PKG_HASH }}_{{ PKG_BUILDNUM }} # [cuda_compiler_version == "None"]
+ string: cpu_h{{ PKG_HASH }}_{{ PKG_BUILDNUM }} # [cuda_compiler_version == "None"]
run_exports:
# tensorflow makes no ABI guarantees, need to pin to what we built with
- libtensorflow_cc {{ version }}
@@ -412,8 +407,8 @@ outputs:
- name: {{ tensorflow_cpu_gpu }}
build:
string: cuda{{ cuda_compiler_version | replace('.', '') }}py{{ CONDA_PY }}h{{ PKG_HASH }}_{{ PKG_BUILDNUM }} # [cuda_compiler_version != "None"]
- string: cpu_py{{ CONDA_PY }}h{{ PKG_HASH }}_{{ PKG_BUILDNUM }} # [cuda_compiler_version == "None"]
- detect_binary_files_with_prefix: False
+ string: cpu_py{{ CONDA_PY }}h{{ PKG_HASH }}_{{ PKG_BUILDNUM }} # [cuda_compiler_version == "None"]
+ detect_binary_files_with_prefix: false
requirements:
run:
- {{ pin_subpackage("tensorflow", exact=True) }}
diff --git a/recipe/patches/0001-loosen-requirements.patch b/recipe/patches/0001-loosen-requirements.patch
index 8768c2cc..52a2046f 100644
--- a/recipe/patches/0001-loosen-requirements.patch
+++ b/recipe/patches/0001-loosen-requirements.patch
@@ -1,43 +1,41 @@
-From af5398be0f2157fd0d35301f6c02d1c611720a31 Mon Sep 17 00:00:00 2001
+From 436c51c9864934ae399703bcaf05ff732b9ddf6e Mon Sep 17 00:00:00 2001
From: "Uwe L. Korn"
Date: Thu, 30 Dec 2021 06:57:09 +0200
-Subject: [PATCH 1/9] loosen requirements
+Subject: [PATCH 01/12] loosen requirements
* Remove unused libclang requirement
* Remove unecessary tensorflow-io-gcs-filesystem
+* unpin numpy
Co-authored-by: Mark Harfouche
Co-authored-by: ngam
---
- tensorflow/tools/pip_package/setup.py | 7 ++-----
- 1 file changed, 2 insertions(+), 5 deletions(-)
+ tensorflow/tools/pip_package/setup.py | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/tensorflow/tools/pip_package/setup.py b/tensorflow/tools/pip_package/setup.py
-index f297f944..1c75d232 100644
+index e77e6f81..f7ab72c4 100644
--- a/tensorflow/tools/pip_package/setup.py
+++ b/tensorflow/tools/pip_package/setup.py
-@@ -92,9 +92,8 @@ REQUIRED_PACKAGES = [
- # TODO(b/239052279): replace with external dependency on JAX repo once JAX
- # no longer relies on TF.
- 'jax >= 0.3.15',
+@@ -89,8 +89,7 @@ REQUIRED_PACKAGES = [
+ 'gast >= 0.2.1, <= 0.4.0',
+ 'google_pasta >= 0.1.1',
+ 'h5py >= 2.9.0',
- 'libclang >= 13.0.0',
- # TODO(b/263178356): numpy 1.24 breaks TF's tests
- 'numpy >= 1.22, <= 1.24.3',
+ 'numpy >= 1.22',
'opt_einsum >= 2.3.2',
'packaging',
- # TODO(b/182876485): Protobuf 3.20 results in linker errors on Windows
-@@ -111,9 +110,7 @@ REQUIRED_PACKAGES = [
+ 'protobuf>=3.20.3,<5.0.0dev,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5',
+@@ -99,8 +98,6 @@ REQUIRED_PACKAGES = [
+ 'termcolor >= 1.1.0',
'typing_extensions>=3.6.6,<4.6.0',
- # TODO(b/266362323): wrapt==1.15.0rc0 incompatible with TF 2.12.0 RC0 (and
- # nightly, but works with TF 2.11)
-- 'wrapt >= 1.11.0, <1.15',
+ 'wrapt >= 1.11.0',
- 'tensorflow-io-gcs-filesystem >= 0.23.1;platform_machine!="arm64" or ' +
- 'platform_system!="Darwin"',
-+ 'wrapt >= 1.11.0',
# grpcio does not build correctly on big-endian machines due to lack of
# BoringSSL support.
# See https://github.com/tensorflow/tensorflow/issues/17882.
--
-2.39.2 (Apple Git-143)
+2.30.2
diff --git a/recipe/patches/0002-fix-genproto.patch b/recipe/patches/0002-fix-genproto.patch
index 824a9843..8937ff09 100644
--- a/recipe/patches/0002-fix-genproto.patch
+++ b/recipe/patches/0002-fix-genproto.patch
@@ -1,14 +1,14 @@
-From accd9ee8eeea33d02e55431eeaf9120e3e62e2f8 Mon Sep 17 00:00:00 2001
+From 0fa0515e3ead93083f2474352acb520feb5f77f1 Mon Sep 17 00:00:00 2001
From: ngam <67342040+ngam@users.noreply.github.com>
Date: Thu, 18 May 2023 23:36:59 -0400
-Subject: [PATCH 2/9] fix genproto
+Subject: [PATCH 02/12] fix genproto
---
tensorflow/tsl/platform/default/build_config.bzl | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/tensorflow/tsl/platform/default/build_config.bzl b/tensorflow/tsl/platform/default/build_config.bzl
-index c6b49ba7..5d92ae99 100644
+index 6ffd37bf..cafa2013 100644
--- a/tensorflow/tsl/platform/default/build_config.bzl
+++ b/tensorflow/tsl/platform/default/build_config.bzl
@@ -403,10 +403,7 @@ def py_proto_library(
@@ -24,5 +24,5 @@ index c6b49ba7..5d92ae99 100644
proto_gen(
name = name + "_genproto",
--
-2.39.2 (Apple Git-143)
+2.30.2
diff --git a/recipe/patches/0003-fix-absl-py.patch b/recipe/patches/0003-fix-absl-py.patch
index 4ea27081..c09e8f4f 100644
--- a/recipe/patches/0003-fix-absl-py.patch
+++ b/recipe/patches/0003-fix-absl-py.patch
@@ -1,7 +1,7 @@
-From 22a43b961b310c3c1fe66160380b822f320b94a3 Mon Sep 17 00:00:00 2001
+From 322ea9a3bf6acbb058130bcb8053eeea5e6d7b6e Mon Sep 17 00:00:00 2001
From: Jinzhe Zeng
Date: Thu, 18 May 2023 06:30:06 -0400
-Subject: [PATCH 3/9] fix absl-py
+Subject: [PATCH 03/12] fix absl-py
---
third_party/systemlibs/absl_py.absl.flags.BUILD | 4 ++++
@@ -20,5 +20,5 @@ index 4049989a..d92f4949 100644
+ name = "argparse_flags",
+)
--
-2.39.2 (Apple Git-143)
+2.30.2
diff --git a/recipe/patches/0004-Add-additional-absl_synchronization-linkage-to-gRPC.patch b/recipe/patches/0004-Add-additional-absl_synchronization-linkage-to-gRPC.patch
index b9a5b475..0a74365f 100644
--- a/recipe/patches/0004-Add-additional-absl_synchronization-linkage-to-gRPC.patch
+++ b/recipe/patches/0004-Add-additional-absl_synchronization-linkage-to-gRPC.patch
@@ -1,7 +1,7 @@
-From eaa3a4d1cb57e5f1e71e938d0aea782854a9ec3c Mon Sep 17 00:00:00 2001
+From 34a97c64c5314671451d046885d70634ef62b3ee Mon Sep 17 00:00:00 2001
From: "Uwe L. Korn"
Date: Fri, 30 Jun 2023 08:39:32 +0000
-Subject: [PATCH 4/9] Add additional absl_synchronization linkage to gRPC
+Subject: [PATCH 04/12] Add additional absl_synchronization linkage to gRPC
---
third_party/systemlibs/grpc.BUILD | 3 +++
@@ -36,5 +36,5 @@ index 8b703f11..417baf5d 100644
visibility = ["//visibility:public"],
)
--
-2.39.2 (Apple Git-143)
+2.30.2
diff --git a/recipe/patches/0008-Add-missing-any_invocable-target-to-absel-bazel.patch b/recipe/patches/0005-Add-missing-any_invocable-target-to-absel-bazel.patch
similarity index 77%
rename from recipe/patches/0008-Add-missing-any_invocable-target-to-absel-bazel.patch
rename to recipe/patches/0005-Add-missing-any_invocable-target-to-absel-bazel.patch
index 68d0b48c..2a1518fe 100644
--- a/recipe/patches/0008-Add-missing-any_invocable-target-to-absel-bazel.patch
+++ b/recipe/patches/0005-Add-missing-any_invocable-target-to-absel-bazel.patch
@@ -1,7 +1,7 @@
-From efb4251c44c466a1f517835b8fff4c59b18a4917 Mon Sep 17 00:00:00 2001
+From a80060b0bc108c010246026c33a957d155f5d2cf Mon Sep 17 00:00:00 2001
From: "Uwe L. Korn"
Date: Sun, 2 Jul 2023 05:36:41 +0000
-Subject: [PATCH 8/9] Add missing any_invocable target to absel bazel
+Subject: [PATCH 05/12] Add missing any_invocable target to absel bazel
---
third_party/absl/system.absl.functional.BUILD | 4 ++++
@@ -20,5 +20,5 @@ index a4f70acf..f05aa98d 100644
+ name = "any_invocable",
+)
--
-2.39.2 (Apple Git-143)
+2.30.2
diff --git a/recipe/patches/0005-add-missing-macro-for-CUDA_VERSION.patch b/recipe/patches/0005-add-missing-macro-for-CUDA_VERSION.patch
deleted file mode 100644
index d4a29299..00000000
--- a/recipe/patches/0005-add-missing-macro-for-CUDA_VERSION.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 799c1d6b00669a59b55770fc1b2b3c07d914586d Mon Sep 17 00:00:00 2001
-From: Jinzhe Zeng
-Date: Fri, 30 Jun 2023 19:00:49 -0400
-Subject: [PATCH 5/9] add missing macro for CUDA_VERSION
-
----
- tensorflow/compiler/xla/stream_executor/cuda/cuda_graph.cc | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/tensorflow/compiler/xla/stream_executor/cuda/cuda_graph.cc b/tensorflow/compiler/xla/stream_executor/cuda/cuda_graph.cc
-index 45eb8220..b0063383 100644
---- a/tensorflow/compiler/xla/stream_executor/cuda/cuda_graph.cc
-+++ b/tensorflow/compiler/xla/stream_executor/cuda/cuda_graph.cc
-@@ -123,6 +123,7 @@ tsl::StatusOr CaptureCudaGraph(
-
- VLOG(5) << "Captured CUDA graph " << graph;
-
-+#if CUDA_VERSION >= 12000
- // If verbose logging is enabled print captured CUDA graph debug information.
- if (VLOG_IS_ON(100)) {
- if (const char* path = getenv("XLA_CUDA_GRAPH_DEBUG_DIRECTORY"); path) {
-@@ -153,6 +154,7 @@ tsl::StatusOr CaptureCudaGraph(
- }
- }
- }
-+#endif // CUDA_VERSION >= 12000
-
- return OwnedCudaGraph(graph);
- }
---
-2.39.2 (Apple Git-143)
-
diff --git a/recipe/patches/0006-Add-TypeError-catch-wrapt-1.15.0rc-throws-TypeError-.patch b/recipe/patches/0006-Add-TypeError-catch-wrapt-1.15.0rc-throws-TypeError-.patch
deleted file mode 100644
index 30d6c525..00000000
--- a/recipe/patches/0006-Add-TypeError-catch-wrapt-1.15.0rc-throws-TypeError-.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 3971be2cde4d1cf323d0b48115ee17b7f2d632b2 Mon Sep 17 00:00:00 2001
-From: Katherine Wu
-Date: Tue, 9 May 2023 13:36:04 -0700
-Subject: [PATCH 6/9] Add TypeError catch (wrapt==1.15.0rc throws TypeError
- instead of AttributeError).
-
-PiperOrigin-RevId: 530700040
----
- tensorflow/python/training/saving/saveable_object_util.py | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/tensorflow/python/training/saving/saveable_object_util.py b/tensorflow/python/training/saving/saveable_object_util.py
-index 9fdc4e77..1a6acd5c 100644
---- a/tensorflow/python/training/saving/saveable_object_util.py
-+++ b/tensorflow/python/training/saving/saveable_object_util.py
-@@ -746,7 +746,8 @@ def trackable_has_serialize_to_tensor(obj):
- # In some cases (e.g. restored objects), the object may have
- # `_serialize_to_tensors` even if the class does not.
- return True
-- except AttributeError: # Data structure proxy wrappers don't have __dict__.
-+ except (AttributeError, TypeError):
-+ # Data structure proxy wrappers don't have __dict__.
- pass
-
- # Use MRO so that if a parent class has `_serialize_to_tensors`, but the
---
-2.39.2 (Apple Git-143)
-
diff --git a/recipe/patches/0009-Fix-missing-abseil-linkages.patch b/recipe/patches/0006-Fix-missing-abseil-linkages.patch
similarity index 83%
rename from recipe/patches/0009-Fix-missing-abseil-linkages.patch
rename to recipe/patches/0006-Fix-missing-abseil-linkages.patch
index c56f08a0..3962584f 100644
--- a/recipe/patches/0009-Fix-missing-abseil-linkages.patch
+++ b/recipe/patches/0006-Fix-missing-abseil-linkages.patch
@@ -1,7 +1,7 @@
-From 7c2b7fb11159b149f3d0edf90ac5b55681a8cef1 Mon Sep 17 00:00:00 2001
+From 146ee97bd239e5854773599f29d8b4b0d6294e91 Mon Sep 17 00:00:00 2001
From: "Uwe L. Korn"
Date: Mon, 3 Jul 2023 04:45:46 +0000
-Subject: [PATCH 9/9] Fix missing abseil linkages
+Subject: [PATCH 06/12] Fix missing abseil linkages
---
third_party/absl/system.absl.strings.BUILD | 2 +-
@@ -21,5 +21,5 @@ index fa9a7a84..d04776c9 100644
":str_format",
"//absl/container:compressed_tuple",
--
-2.39.2 (Apple Git-143)
+2.30.2
diff --git a/recipe/patches/0007-Update-Abseil-to-the-latest-LTS-replace-or-with-in-d.patch b/recipe/patches/0007-Update-Abseil-to-the-latest-LTS-replace-or-with-in-d.patch
deleted file mode 100644
index ff864208..00000000
--- a/recipe/patches/0007-Update-Abseil-to-the-latest-LTS-replace-or-with-in-d.patch
+++ /dev/null
@@ -1,450 +0,0 @@
-From 20787a0315dc6ed7217395d3ecdeea97d60afccc Mon Sep 17 00:00:00 2001
-From: David Dunleavy
-Date: Thu, 13 Apr 2023 10:02:13 -0700
-Subject: [PATCH 7/9] Update Abseil to the latest LTS, replace `or` with `||`
- in data_format_ops.cc
-
-Current build requires a more recent Abseil with AnyInvocable, otherwise the build raise the following error:
-
-no such target '@com_google_absl//absl/functional:any_invocable': target 'any_invocable' not declared in package 'absl/functional' defined by /root/.cache/bazel/_bazel_root/edfec97661350df226696afb5a35c874/external/com_google_absl/absl/functional/BUILD.bazel and referenced by '@org_tensorflow//tensorflow/compiler/xla/stream_executor:stream_executor_headers'
-
-PiperOrigin-RevId: 524030843
----
- .../tf2xla/kernels/data_format_ops.cc | 4 +-
- .../lite/tools/cmake/modules/abseil-cpp.cmake | 2 +-
- .../def_file_filter/def_file_filter.py.tpl | 5 +-
- .../absl/absl_designated_initializers.patch | 65 +++++
- ...m_google_absl_fix_mac_and_nvcc_build.patch | 267 ------------------
- third_party/absl/workspace.bzl | 9 +-
- 6 files changed, 75 insertions(+), 277 deletions(-)
- create mode 100644 third_party/absl/absl_designated_initializers.patch
- delete mode 100644 third_party/absl/com_google_absl_fix_mac_and_nvcc_build.patch
-
-diff --git a/tensorflow/compiler/tf2xla/kernels/data_format_ops.cc b/tensorflow/compiler/tf2xla/kernels/data_format_ops.cc
-index 1707fd10..e2b3e3ff 100644
---- a/tensorflow/compiler/tf2xla/kernels/data_format_ops.cc
-+++ b/tensorflow/compiler/tf2xla/kernels/data_format_ops.cc
-@@ -35,13 +35,13 @@ class DataFormatDimMapOp : public XlaOpKernel {
- OP_REQUIRES_OK(context, context->GetAttr("src_format", &src_format));
- string dst_format;
- OP_REQUIRES_OK(context, context->GetAttr("dst_format", &dst_format));
-- OP_REQUIRES(context, src_format.size() == 4 or src_format.size() == 5,
-+ OP_REQUIRES(context, src_format.size() == 4 || src_format.size() == 5,
- errors::InvalidArgument(
- absl::StrCat("Source format must of length 4 or 5, "
- "received src_format = ",
- src_format)));
- OP_REQUIRES(
-- context, dst_format.size() == 4 or dst_format.size() == 5,
-+ context, dst_format.size() == 4 || dst_format.size() == 5,
- errors::InvalidArgument(absl::StrCat(
- "Destination format must of length 4 or 5, received dst_format = ",
- dst_format)));
-diff --git a/tensorflow/lite/tools/cmake/modules/abseil-cpp.cmake b/tensorflow/lite/tools/cmake/modules/abseil-cpp.cmake
-index fe91b029..92e746af 100644
---- a/tensorflow/lite/tools/cmake/modules/abseil-cpp.cmake
-+++ b/tensorflow/lite/tools/cmake/modules/abseil-cpp.cmake
-@@ -24,7 +24,7 @@ OverridableFetchContent_Declare(
- abseil-cpp
- GIT_REPOSITORY https://github.com/abseil/abseil-cpp
- # Sync with tensorflow/third_party/absl/workspace.bzl
-- GIT_TAG 273292d1cfc0a94a65082ee350509af1d113344d
-+ GIT_TAG b971ac5250ea8de900eae9f95e06548d14cd95fe
- GIT_SHALLOW TRUE
- GIT_PROGRESS TRUE
- PREFIX "${CMAKE_BINARY_DIR}"
-diff --git a/tensorflow/tools/def_file_filter/def_file_filter.py.tpl b/tensorflow/tools/def_file_filter/def_file_filter.py.tpl
-index 444c2d15..7e93850d 100644
---- a/tensorflow/tools/def_file_filter/def_file_filter.py.tpl
-+++ b/tensorflow/tools/def_file_filter/def_file_filter.py.tpl
-@@ -1,5 +1,4 @@
- # Copyright 2017 The TensorFlow Authors. All Rights Reserved.
--#
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
-@@ -292,8 +291,8 @@ def main():
- def_fp.write("\t ??_7ConfigProto@tensorflow@@6B@\n") # for _pywrap_tfe
- def_fp.write("\t ??_7CoordinatedTask@tensorflow@@6B@\n") # for _pywrap_tfe
- def_fp.write("\t ?InternalSwap@CoordinatedTask@tensorflow@@AEAAXPEAV12@@Z\n") # for _pywrap_tfe
-- def_fp.write("\t ?kSeed@MixingHashState@hash_internal@lts_20220623@absl@@0QEBXEB\n") # for _pywrap_tfcompile
-- def_fp.write("\t ?kEmptyGroup@container_internal@lts_20220623@absl@@3QBW4ctrl_t@123@B\n") # for _pywrap_tfcompile
-+ def_fp.write("\t ?kSeed@MixingHashState@hash_internal@lts_20230125@absl@@0QEBXEB\n") # for _pywrap_tfcompile
-+ def_fp.write("\t ?kEmptyGroup@container_internal@lts_20230125@absl@@3QBW4ctrl_t@123@B\n") # for _pywrap_tfcompile
- def_fp.write("\t ??_7GraphDef@tensorflow@@6B@\n")
- def_fp.write("\t ??_7DeviceProperties@tensorflow@@6B@\n")
- def_fp.write("\t ??_7MetaGraphDef@tensorflow@@6B@\n")
-diff --git a/third_party/absl/absl_designated_initializers.patch b/third_party/absl/absl_designated_initializers.patch
-new file mode 100644
-index 00000000..6ee23223
---- /dev/null
-+++ b/third_party/absl/absl_designated_initializers.patch
-@@ -0,0 +1,65 @@
-+diff --git a/absl/crc/internal/crc_memcpy_x86_64.cc b/absl/crc/internal/crc_memcpy_x86_64.cc
-+index 66f784de..ff424c54 100644
-+--- a/absl/crc/internal/crc_memcpy_x86_64.cc
-++++ b/absl/crc/internal/crc_memcpy_x86_64.cc
-+@@ -359,18 +359,18 @@ CrcMemcpy::ArchSpecificEngines CrcMemcpy::GetArchSpecificEngines() {
-+ case CpuType::kIntelHaswell:
-+ case CpuType::kIntelIvybridge:
-+ return {
-+- .temporal = new FallbackCrcMemcpyEngine(),
-+- .non_temporal = new CrcNonTemporalMemcpyAVXEngine(),
-++ /*.temporal=*/new FallbackCrcMemcpyEngine(),
-++ /*.non_temporal=*/new CrcNonTemporalMemcpyAVXEngine(),
-+ };
-+ // INTEL_SANDYBRIDGE performs better with SSE than AVX.
-+ case CpuType::kIntelSandybridge:
-+ return {
-+- .temporal = new FallbackCrcMemcpyEngine(),
-+- .non_temporal = new CrcNonTemporalMemcpyEngine(),
-++ /*.temporal=*/new FallbackCrcMemcpyEngine(),
-++ /*.non_temporal=*/new CrcNonTemporalMemcpyEngine(),
-+ };
-+ default:
-+- return {.temporal = new FallbackCrcMemcpyEngine(),
-+- .non_temporal = new FallbackCrcMemcpyEngine()};
-++ return {/*.temporal=*/new FallbackCrcMemcpyEngine(),
-++ /*.non_temporal=*/new FallbackCrcMemcpyEngine()};
-+ }
-+ #else
-+ // Get the underlying architecture.
-+@@ -388,8 +388,8 @@ CrcMemcpy::ArchSpecificEngines CrcMemcpy::GetArchSpecificEngines() {
-+ case CpuType::kAmdRome:
-+ case CpuType::kAmdNaples:
-+ return {
-+- .temporal = new AcceleratedCrcMemcpyEngine<1, 2>(),
-+- .non_temporal = new CrcNonTemporalMemcpyAVXEngine(),
-++ /*.temporal=*/new AcceleratedCrcMemcpyEngine<1, 2>(),
-++ /*.non_temporal=*/new CrcNonTemporalMemcpyAVXEngine(),
-+ };
-+ // PCLMULQDQ is slow and we don't have wide enough issue width to take
-+ // advantage of it. For an unknown architecture, don't risk using CLMULs.
-+@@ -400,18 +400,18 @@ CrcMemcpy::ArchSpecificEngines CrcMemcpy::GetArchSpecificEngines() {
-+ case CpuType::kIntelHaswell:
-+ case CpuType::kIntelIvybridge:
-+ return {
-+- .temporal = new AcceleratedCrcMemcpyEngine<3, 0>(),
-+- .non_temporal = new CrcNonTemporalMemcpyAVXEngine(),
-++ /*.temporal=*/new AcceleratedCrcMemcpyEngine<3, 0>(),
-++ /*.non_temporal=*/new CrcNonTemporalMemcpyAVXEngine(),
-+ };
-+ // INTEL_SANDYBRIDGE performs better with SSE than AVX.
-+ case CpuType::kIntelSandybridge:
-+ return {
-+- .temporal = new AcceleratedCrcMemcpyEngine<3, 0>(),
-+- .non_temporal = new CrcNonTemporalMemcpyEngine(),
-++ /*.temporal=*/new AcceleratedCrcMemcpyEngine<3, 0>(),
-++ /*.non_temporal=*/new CrcNonTemporalMemcpyEngine(),
-+ };
-+ default:
-+- return {.temporal = new FallbackCrcMemcpyEngine(),
-+- .non_temporal = new FallbackCrcMemcpyEngine()};
-++ return {/*.temporal=*/new FallbackCrcMemcpyEngine(),
-++ /*.non_temporal=*/new FallbackCrcMemcpyEngine()};
-+ }
-+ #endif // UNDEFINED_BEHAVIOR_SANITIZER
-+ }
-diff --git a/third_party/absl/com_google_absl_fix_mac_and_nvcc_build.patch b/third_party/absl/com_google_absl_fix_mac_and_nvcc_build.patch
-deleted file mode 100644
-index f5c03435..00000000
---- a/third_party/absl/com_google_absl_fix_mac_and_nvcc_build.patch
-+++ /dev/null
-@@ -1,267 +0,0 @@
--diff --git a/absl/container/internal/compressed_tuple.h b/absl/container/internal/compressed_tuple.h
--index 5ebe1649..01db7134 100644
----- a/absl/container/internal/compressed_tuple.h
--+++ b/absl/container/internal/compressed_tuple.h
--@@ -32,7 +32,6 @@
-- #ifndef ABSL_CONTAINER_INTERNAL_COMPRESSED_TUPLE_H_
-- #define ABSL_CONTAINER_INTERNAL_COMPRESSED_TUPLE_H_
--
---#include
-- #include
-- #include
-- #include
--@@ -77,134 +76,61 @@ constexpr bool IsFinal() {
-- #endif
-- }
--
---// We can't use EBCO on other CompressedTuples because that would mean that we
---// derive from multiple Storage<> instantiations with the same I parameter,
---// and potentially from multiple identical Storage<> instantiations. So anytime
---// we use type inheritance rather than encapsulation, we mark
---// CompressedTupleImpl, to make this easy to detect.
---struct uses_inheritance {};
---
-- template
-- constexpr bool ShouldUseBase() {
--- return std::is_class::value && std::is_empty::value && !IsFinal() &&
--- !std::is_base_of::value;
--+ return std::is_class::value && std::is_empty::value && !IsFinal();
-- }
--
-- // The storage class provides two specializations:
-- // - For empty classes, it stores T as a base class.
-- // - For everything else, it stores T as a member.
---template ::type>()>
---#else
--- bool UseBase = ShouldUseBase()>
---#endif
--+template >()>
-- struct Storage {
--+ using T = ElemT;
-- T value;
-- constexpr Storage() = default;
--- template
--- explicit constexpr Storage(absl::in_place_t, V&& v)
--- : value(absl::forward(v)) {}
--+ explicit constexpr Storage(T&& v) : value(absl::forward(v)) {}
-- constexpr const T& get() const& { return value; }
-- T& get() & { return value; }
-- constexpr const T&& get() const&& { return absl::move(*this).value; }
-- T&& get() && { return std::move(*this).value; }
-- };
--
---template
---struct ABSL_INTERNAL_COMPRESSED_TUPLE_DECLSPEC Storage : T {
--+template
--+struct ABSL_INTERNAL_COMPRESSED_TUPLE_DECLSPEC Storage
--+ : ElemT {
--+ using T = internal_compressed_tuple::ElemT;
-- constexpr Storage() = default;
---
--- template
--- explicit constexpr Storage(absl::in_place_t, V&& v)
--- : T(absl::forward(v)) {}
---
--+ explicit constexpr Storage(T&& v) : T(absl::forward(v)) {}
-- constexpr const T& get() const& { return *this; }
-- T& get() & { return *this; }
-- constexpr const T&& get() const&& { return absl::move(*this); }
-- T&& get() && { return std::move(*this); }
-- };
--
---template
--+template
-- struct ABSL_INTERNAL_COMPRESSED_TUPLE_DECLSPEC CompressedTupleImpl;
--
---template
---struct ABSL_INTERNAL_COMPRESSED_TUPLE_DECLSPEC CompressedTupleImpl<
--- CompressedTuple, absl::index_sequence, ShouldAnyUseBase>
--+template
--+struct ABSL_INTERNAL_COMPRESSED_TUPLE_DECLSPEC
--+ CompressedTupleImpl, absl::index_sequence>
-- // We use the dummy identity function through std::integral_constant to
-- // convince MSVC of accepting and expanding I in that context. Without it
-- // you would get:
-- // error C3548: 'I': parameter pack cannot be used in this context
--- : uses_inheritance,
--- Storage::value>... {
--+ : Storage,
--+ std::integral_constant::value>... {
-- constexpr CompressedTupleImpl() = default;
--- template
--- explicit constexpr CompressedTupleImpl(absl::in_place_t, Vs&&... args)
--- : Storage(absl::in_place, absl::forward(args))... {}
--- friend CompressedTuple;
--+ explicit constexpr CompressedTupleImpl(Ts&&... args)
--+ : Storage, I>(absl::forward(args))... {}
-- };
--
---template
---struct ABSL_INTERNAL_COMPRESSED_TUPLE_DECLSPEC CompressedTupleImpl<
--- CompressedTuple, absl::index_sequence, false>
--- // We use the dummy identity function as above...
--- : Storage::value, false>... {
--- constexpr CompressedTupleImpl() = default;
--- template
--- explicit constexpr CompressedTupleImpl(absl::in_place_t, Vs&&... args)
--- : Storage(absl::in_place, absl::forward(args))... {}
--- friend CompressedTuple;
---};
---
---std::false_type Or(std::initializer_list);
---std::true_type Or(std::initializer_list);
---
---// MSVC requires this to be done separately rather than within the declaration
---// of CompressedTuple below.
---template
---constexpr bool ShouldAnyUseBase() {
--- return decltype(
--- Or({std::integral_constant()>()...})){};
---}
---
---template
---using TupleElementMoveConstructible =
--- typename std::conditional::value,
--- std::is_convertible,
--- std::is_constructible>::type;
---
---template
---struct TupleMoveConstructible : std::false_type {};
---
---template
---struct TupleMoveConstructible, Vs...>
--- : std::integral_constant<
--- bool, absl::conjunction<
--- TupleElementMoveConstructible...>::value> {};
---
---template
---struct compressed_tuple_size;
---
---template
---struct compressed_tuple_size>
--- : public std::integral_constant {};
---
---template
---struct TupleItemsMoveConstructible
--- : std::integral_constant<
--- bool, TupleMoveConstructible::value ==
--- sizeof...(Vs),
--- T, Vs...>::value> {};
---
-- } // namespace internal_compressed_tuple
--
-- // Helper class to perform the Empty Base Class Optimization.
-- // Ts can contain classes and non-classes, empty or not. For the ones that
-- // are empty classes, we perform the CompressedTuple. If all types in Ts are
---// empty classes, then CompressedTuple is itself an empty class. (This
---// does not apply when one or more of those empty classes is itself an empty
---// CompressedTuple.)
--+// empty classes, then CompressedTuple is itself an empty class.
-- //
-- // To access the members, use member .get() function.
-- //
--@@ -220,59 +146,36 @@ struct TupleItemsMoveConstructible
-- template
-- class ABSL_INTERNAL_COMPRESSED_TUPLE_DECLSPEC CompressedTuple
-- : private internal_compressed_tuple::CompressedTupleImpl<
--- CompressedTuple, absl::index_sequence_for,
--- internal_compressed_tuple::ShouldAnyUseBase()> {
--+ CompressedTuple, absl::index_sequence_for> {
-- private:
-- template
-- using ElemT = internal_compressed_tuple::ElemT;
--
--- template
--- using StorageT = internal_compressed_tuple::Storage, I>;
---
-- public:
--- // There seems to be a bug in MSVC dealing in which using '=default' here will
--- // cause the compiler to ignore the body of other constructors. The work-
--- // around is to explicitly implement the default constructor.
---#if defined(_MSC_VER)
--- constexpr CompressedTuple() : CompressedTuple::CompressedTupleImpl() {}
---#else
-- constexpr CompressedTuple() = default;
---#endif
--- explicit constexpr CompressedTuple(const Ts&... base)
--- : CompressedTuple::CompressedTupleImpl(absl::in_place, base...) {}
---
--- template )>>,
--- internal_compressed_tuple::TupleItemsMoveConstructible<
--- CompressedTuple, First, Vs...>>::value,
--- bool> = true>
--- explicit constexpr CompressedTuple(First&& first, Vs&&... base)
--- : CompressedTuple::CompressedTupleImpl(absl::in_place,
--- absl::forward(first),
--- absl::forward(base)...) {}
--+ explicit constexpr CompressedTuple(Ts... base)
--+ : CompressedTuple::CompressedTupleImpl(absl::forward(base)...) {}
--
-- template
-- ElemT& get() & {
--- return StorageT::get();
--+ return internal_compressed_tuple::Storage::get();
-- }
--
-- template
-- constexpr const ElemT& get() const& {
--- return StorageT::get();
--+ return internal_compressed_tuple::Storage::get();
-- }
--
-- template
-- ElemT&& get() && {
--- return std::move(*this).StorageT::get();
--+ return std::move(*this)
--+ .internal_compressed_tuple::template Storage::get();
-- }
--
-- template
-- constexpr const ElemT&& get() const&& {
--- return absl::move(*this).StorageT::get();
--+ return absl::move(*this)
--+ .internal_compressed_tuple::template Storage::get();
-- }
-- };
--
--diff --git a/absl/time/internal/cctz/BUILD.bazel b/absl/time/internal/cctz/BUILD.bazel
--index 7304d40d..75d8e086 100644
----- a/absl/time/internal/cctz/BUILD.bazel
--+++ b/absl/time/internal/cctz/BUILD.bazel
--@@ -72,15 +72,6 @@ cc_library(
-- "include/cctz/time_zone.h",
-- "include/cctz/zone_info_source.h",
-- ],
--- linkopts = select({
--- ":osx": [
--- "-framework Foundation",
--- ],
--- ":ios": [
--- "-framework Foundation",
--- ],
--- "//conditions:default": [],
--- }),
-- visibility = ["//visibility:public"],
-- deps = [
-- ":civil_time",
--diff --git a/absl/base/config.h b/absl/base/config.h
--index 8533aea..07b4e80 100644
----- a/absl/base/config.h.orig
--+++ b/absl/base/config.h
--@@ -906,7 +906,7 @@ static_assert(ABSL_INTERNAL_INLINE_NAMESPACE_STR[0] != 'h' ||
-- // SIMD).
-- #ifdef ABSL_INTERNAL_HAVE_ARM_NEON
-- #error ABSL_INTERNAL_HAVE_ARM_NEON cannot be directly set
---#elif defined(__ARM_NEON)
--+#elif defined(__ARM_NEON) && !defined(__CUDACC__)
-- #define ABSL_INTERNAL_HAVE_ARM_NEON 1
-- #endif
--
-diff --git a/third_party/absl/workspace.bzl b/third_party/absl/workspace.bzl
-index 8c8923f1..07f49ceb 100644
---- a/third_party/absl/workspace.bzl
-+++ b/third_party/absl/workspace.bzl
-@@ -7,8 +7,8 @@ def repo():
-
- # Attention: tools parse and update these lines.
- # LINT.IfChange
-- ABSL_COMMIT = "273292d1cfc0a94a65082ee350509af1d113344d"
-- ABSL_SHA256 = "94aef187f688665dc299d09286bfa0d22c4ecb86a80b156dff6aabadc5a5c26d"
-+ ABSL_COMMIT = "b971ac5250ea8de900eae9f95e06548d14cd95fe"
-+ ABSL_SHA256 = "8eeec9382fc0338ef5c60053f3a4b0e0708361375fe51c9e65d0ce46ccfe55a7"
- # LINT.ThenChange(//tensorflow/lite/tools/cmake/modules/abseil-cpp.cmake)
-
- SYS_DIRS = [
-@@ -42,8 +42,9 @@ def repo():
- build_file = "//third_party/absl:com_google_absl.BUILD",
- system_build_file = "//third_party/absl:system.BUILD",
- system_link_files = SYS_LINKS,
-- # TODO(b/234139015): Remove the patch when https://github.com/abseil/abseil-cpp/issues/326 is resolved
-- patch_file = ["//third_party/absl:com_google_absl_fix_mac_and_nvcc_build.patch"],
-+ # This patch pulls in a fix for designated initializers that MSVC
-+ # complains about. It shouldn't be necessary at the next LTS release.
-+ patch_file = ["//third_party/absl:absl_designated_initializers.patch"],
- strip_prefix = "abseil-cpp-{commit}".format(commit = ABSL_COMMIT),
- urls = tf_mirror_urls("https://github.com/abseil/abseil-cpp/archive/{commit}.tar.gz".format(commit = ABSL_COMMIT)),
- )
---
-2.39.2 (Apple Git-143)
-
diff --git a/recipe/patches/0007-unpin-gast-dependency-for-pip_package.patch b/recipe/patches/0007-unpin-gast-dependency-for-pip_package.patch
new file mode 100644
index 00000000..fd5d47bb
--- /dev/null
+++ b/recipe/patches/0007-unpin-gast-dependency-for-pip_package.patch
@@ -0,0 +1,34 @@
+From d739b2b28deea98ece3c192e8a33e9013a1dc3bd Mon Sep 17 00:00:00 2001
+From: "H. Vetinari"
+Date: Sat, 1 Jul 2023 10:25:10 +1100
+Subject: [PATCH 07/12] unpin gast dependency for pip_package
+
+Commit c762c4501ca017994c1fa5554c3c8e47b7c80b66 noted that
+"I also know that gast 0.5.2 breaks one of our tests" and committed
+"gast versions above 0.4.0 are incompatible with some of TF's tests."
+
+In #56244, it was suggested to raise a PR to remove the cap. In view
+of the above-mentioned constraints, I've excluded everything after 0.4.0
+up to 0.5.2; note that 0.5.0 directly followed 0.4.0, see
+https://github.com/serge-sans-paille/gast/tags
+---
+ tensorflow/tools/pip_package/setup.py | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/tensorflow/tools/pip_package/setup.py b/tensorflow/tools/pip_package/setup.py
+index f7ab72c4..87acb041 100644
+--- a/tensorflow/tools/pip_package/setup.py
++++ b/tensorflow/tools/pip_package/setup.py
+@@ -85,8 +85,7 @@ REQUIRED_PACKAGES = [
+ 'absl-py >= 1.0.0',
+ 'astunparse >= 1.6.0',
+ 'flatbuffers >= 23.1.21',
+- # TODO(b/213222745) gast versions above 0.4.0 break TF's tests
+- 'gast >= 0.2.1, <= 0.4.0',
++ 'gast >=0.2.1,!=0.5.0,!=0.5.1,!=0.5.2',
+ 'google_pasta >= 0.1.1',
+ 'h5py >= 2.9.0',
+ 'numpy >= 1.22',
+--
+2.30.2
+
diff --git a/recipe/patches/0008-Use-basename-instead-of-realpath.patch b/recipe/patches/0008-Use-basename-instead-of-realpath.patch
new file mode 100644
index 00000000..9c8ad573
--- /dev/null
+++ b/recipe/patches/0008-Use-basename-instead-of-realpath.patch
@@ -0,0 +1,25 @@
+From a0efca1c4b063131549988f267abc8b7fa9160ef Mon Sep 17 00:00:00 2001
+From: "Uwe L. Korn"
+Date: Wed, 30 Aug 2023 16:57:31 +0200
+Subject: [PATCH 08/12] Use basename instead of realpath
+
+---
+ tensorflow/tensorflow.bzl | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tensorflow/tensorflow.bzl b/tensorflow/tensorflow.bzl
+index e9f5e5aa..26573640 100644
+--- a/tensorflow/tensorflow.bzl
++++ b/tensorflow/tensorflow.bzl
+@@ -934,7 +934,7 @@ def _create_symlink(src, dest, visibility = None):
+ outs = [src],
+ srcs = [dest],
+ output_to_bindir = 1,
+- cmd = "ln -sf $$(realpath --relative-to=$(RULEDIR) $<) $@",
++ cmd = "ln -sf $$(basename $<) $@",
+ visibility = visibility,
+ )
+
+--
+2.30.2
+
diff --git a/recipe/patches/0009-Fix-protobuf_python-for-systemlibs.patch b/recipe/patches/0009-Fix-protobuf_python-for-systemlibs.patch
new file mode 100644
index 00000000..73981487
--- /dev/null
+++ b/recipe/patches/0009-Fix-protobuf_python-for-systemlibs.patch
@@ -0,0 +1,86 @@
+From 6bf07b788ecb0e7e2b20c248418195681a167f51 Mon Sep 17 00:00:00 2001
+From: "Uwe L. Korn"
+Date: Wed, 30 Aug 2023 16:58:41 +0200
+Subject: [PATCH 09/12] Fix protobuf_python for systemlibs
+
+---
+ tensorflow/workspace2.bzl | 9 ++++---
+ .../0001-Add-Python-include-path.patch | 26 +++++++++++++++++++
+ third_party/systemlibs/protobuf_python.bzl | 5 ++++
+ 3 files changed, 36 insertions(+), 4 deletions(-)
+ create mode 100644 third_party/pybind11_protobuf/0001-Add-Python-include-path.patch
+ create mode 100644 third_party/systemlibs/protobuf_python.bzl
+
+diff --git a/tensorflow/workspace2.bzl b/tensorflow/workspace2.bzl
+index da9295ad..cf606cb4 100644
+--- a/tensorflow/workspace2.bzl
++++ b/tensorflow/workspace2.bzl
+@@ -469,6 +469,7 @@ def _tf_repositories():
+ system_link_files = {
+ "//third_party/systemlibs:protobuf.bzl": "protobuf.bzl",
+ "//third_party/systemlibs:protobuf_deps.bzl": "protobuf_deps.bzl",
++ "//third_party/systemlibs:protobuf_python.bzl": "python/BUILD",
+ },
+ urls = tf_mirror_urls("https://github.com/protocolbuffers/protobuf/archive/v3.21.9.zip"),
+ )
+@@ -872,10 +873,10 @@ def _tf_repositories():
+
+ tf_http_archive(
+ name = "pybind11_protobuf",
+- urls = tf_mirror_urls("https://github.com/pybind/pybind11_protobuf/archive/80f3440cd8fee124e077e2e47a8a17b78b451363.zip"),
+- sha256 = "c7ab64b1ccf9a678694a89035a8c865a693e4e872803778f91f0965c2f281d78",
+- strip_prefix = "pybind11_protobuf-80f3440cd8fee124e077e2e47a8a17b78b451363",
+- patch_file = ["//third_party/pybind11_protobuf:remove_license.patch"],
++ urls = tf_mirror_urls("https://github.com/pybind/pybind11_protobuf/archive/c8cc30e2495309e3499b7d76033446236d21c837.zip"),
++ sha256 = "0663f73b34c0b4af55003edbb066e62aceff99bfcf12e47ea9a15d6013d81413",
++ strip_prefix = "pybind11_protobuf-c8cc30e2495309e3499b7d76033446236d21c837",
++ patch_file = ["//third_party/pybind11_protobuf:remove_license.patch", "//third_party/pybind11_protobuf:0001-Add-Python-include-path.patch"],
+ )
+
+ tf_http_archive(
+diff --git a/third_party/pybind11_protobuf/0001-Add-Python-include-path.patch b/third_party/pybind11_protobuf/0001-Add-Python-include-path.patch
+new file mode 100644
+index 00000000..18a1ddf8
+--- /dev/null
++++ b/third_party/pybind11_protobuf/0001-Add-Python-include-path.patch
+@@ -0,0 +1,26 @@
++From 5ccde396f198927bbf758697d6bef39fdb5ac6b0 Mon Sep 17 00:00:00 2001
++From: "Uwe L. Korn"
++Date: Tue, 29 Aug 2023 21:33:08 +0200
++Subject: [PATCH] Add Python include path
++
++---
++ pybind11_protobuf/BUILD | 3 +++
++ 1 file changed, 3 insertions(+)
++
++diff --git a/pybind11_protobuf/BUILD b/pybind11_protobuf/BUILD
++index bc23e79..d701b68 100755
++--- a/pybind11_protobuf/BUILD
+++++ b/pybind11_protobuf/BUILD
++@@ -85,6 +85,9 @@ cc_library(
++ visibility = [
++ "//visibility:private",
++ ],
+++ copts = [
+++ "-I@@PREFIX@@/include/python@@PY_VER@@",
+++ ],
++ deps = [
++ "@com_google_absl//absl/container:flat_hash_map",
++ "@com_google_absl//absl/container:flat_hash_set",
++--
++2.41.0
++
+diff --git a/third_party/systemlibs/protobuf_python.bzl b/third_party/systemlibs/protobuf_python.bzl
+new file mode 100644
+index 00000000..982617a7
+--- /dev/null
++++ b/third_party/systemlibs/protobuf_python.bzl
+@@ -0,0 +1,5 @@
++cc_library(
++ name = "proto_api",
++ # hdrs = ["google/protobuf/proto_api.h"],
++ visibility = ["//visibility:public"],
++)
+--
+2.30.2
+
diff --git a/recipe/patches/0010-Add-absl_log-systemlib.patch b/recipe/patches/0010-Add-absl_log-systemlib.patch
new file mode 100644
index 00000000..fb095cc8
--- /dev/null
+++ b/recipe/patches/0010-Add-absl_log-systemlib.patch
@@ -0,0 +1,54 @@
+From 66417efd8ef37684bcb836860973a91f2238b28e Mon Sep 17 00:00:00 2001
+From: "Uwe L. Korn"
+Date: Wed, 30 Aug 2023 16:59:28 +0200
+Subject: [PATCH 10/12] Add absl_log systemlib
+
+---
+ third_party/absl/system.absl.log.BUILD | 22 ++++++++++++++++++++++
+ third_party/absl/workspace.bzl | 1 +
+ 2 files changed, 23 insertions(+)
+ create mode 100644 third_party/absl/system.absl.log.BUILD
+
+diff --git a/third_party/absl/system.absl.log.BUILD b/third_party/absl/system.absl.log.BUILD
+new file mode 100644
+index 00000000..0248bda0
+--- /dev/null
++++ b/third_party/absl/system.absl.log.BUILD
+@@ -0,0 +1,22 @@
++load("@rules_cc//cc:defs.bzl", "cc_library")
++
++package(default_visibility = ["//visibility:public"])
++
++cc_library(
++ name = "log",
++ linkopts = [
++ "-labsl_log_internal_conditions",
++ "-labsl_log_internal_check_op",
++ "-labsl_log_internal_message",
++ "-labsl_log_internal_nullguard",
++ ],
++)
++
++cc_library(
++ name = "check",
++ linkopts = [
++ "-labsl_log_internal_check_op",
++ "-labsl_log_internal_message",
++ "-labsl_log_internal_nullguard",
++ ],
++)
+diff --git a/third_party/absl/workspace.bzl b/third_party/absl/workspace.bzl
+index 07f49ceb..a7f4e5ff 100644
+--- a/third_party/absl/workspace.bzl
++++ b/third_party/absl/workspace.bzl
+@@ -20,6 +20,7 @@ def repo():
+ "flags",
+ "functional",
+ "hash",
++ "log",
+ "memory",
+ "meta",
+ "numeric",
+--
+2.30.2
+
diff --git a/recipe/patches/0011-Omit-linking-to-layout_proto_cc-if-protobuf-linkage-.patch b/recipe/patches/0011-Omit-linking-to-layout_proto_cc-if-protobuf-linkage-.patch
new file mode 100644
index 00000000..207d0ece
--- /dev/null
+++ b/recipe/patches/0011-Omit-linking-to-layout_proto_cc-if-protobuf-linkage-.patch
@@ -0,0 +1,25 @@
+From 4d9b577c6b26805d556603da919049cada394cd2 Mon Sep 17 00:00:00 2001
+From: "Uwe L. Korn"
+Date: Fri, 15 Sep 2023 11:06:27 +0200
+Subject: [PATCH 11/12] Omit linking to layout_proto_cc if protobuf linkage is
+ shared
+
+---
+ tensorflow/python/BUILD | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/tensorflow/python/BUILD b/tensorflow/python/BUILD
+index 6c8d5b55..73f58ed7 100644
+--- a/tensorflow/python/BUILD
++++ b/tensorflow/python/BUILD
+@@ -5043,7 +5043,6 @@ tf_python_pybind_extension(
+ features = ["-layering_check"],
+ deps = [
+ ":pywrap_densor_device_headers",
+- "//tensorflow/dtensor/proto:layout_proto_cc",
+ "//tensorflow/python/lib/core:pybind11_lib",
+ "//tensorflow/python/lib/core:pybind11_status_headers",
+ "//third_party/python_runtime:headers", # buildcleaner: keep
+--
+2.30.2
+
diff --git a/recipe/patches/0012-Fix-further-abseil-linkage.patch b/recipe/patches/0012-Fix-further-abseil-linkage.patch
new file mode 100644
index 00000000..3dcf60a1
--- /dev/null
+++ b/recipe/patches/0012-Fix-further-abseil-linkage.patch
@@ -0,0 +1,41 @@
+From 8b33dc7715cfde4af71f22f85bdc969130de3c33 Mon Sep 17 00:00:00 2001
+From: "Uwe L. Korn"
+Date: Mon, 18 Sep 2023 14:47:08 +0000
+Subject: [PATCH 12/12] Fix further abseil linkage
+
+---
+ third_party/absl/system.absl.base.BUILD | 14 ++++++++++++--
+ 1 file changed, 12 insertions(+), 2 deletions(-)
+
+diff --git a/third_party/absl/system.absl.base.BUILD b/third_party/absl/system.absl.base.BUILD
+index d6bf8748..b3e42f4d 100644
+--- a/third_party/absl/system.absl.base.BUILD
++++ b/third_party/absl/system.absl.base.BUILD
+@@ -17,12 +17,22 @@ package(default_visibility = ["//visibility:public"])
+
+ cc_library(
+ name = "log_severity",
+- linkopts = ["-labsl_log_severity"],
++ linkopts = [
++ "-labsl_log_severity",
++ "-labsl_log_internal_check_op",
++ "-labsl_log_internal_message",
++ "-labsl_log_internal_nullguard",
++ ],
+ )
+
+ cc_library(
+ name = "raw_logging_internal",
+- linkopts = ["-labsl_raw_logging_internal"],
++ linkopts = [
++ "-labsl_raw_logging_internal",
++ "-labsl_log_internal_check_op",
++ "-labsl_log_internal_message",
++ "-labsl_log_internal_nullguard",
++ ],
+ visibility = [
+ "//absl:__subpackages__",
+ ],
+--
+2.30.2
+
diff --git a/recipe/test_libtensorflow.sh b/recipe/test_libtensorflow.sh
index 828df8c6..75a9ce81 100755
--- a/recipe/test_libtensorflow.sh
+++ b/recipe/test_libtensorflow.sh
@@ -2,5 +2,5 @@
set -euxo pipefail
-${CC} ${CFLAGS} ${LDFLAGS} -o test_c test_c.c -ltensorflow
+${CC} ${CFLAGS} ${LDFLAGS} -o test_c test_c.c -ltensorflow -labsl_status
./test_c
diff --git a/recipe/test_libtensorflow_cc.sh b/recipe/test_libtensorflow_cc.sh
index a486ac4a..f0e20086 100755
--- a/recipe/test_libtensorflow_cc.sh
+++ b/recipe/test_libtensorflow_cc.sh
@@ -6,5 +6,5 @@ if [[ "${target_platform}" == linux-* ]]; then
export LDFLAGS="${LDFLAGS} -lrt"
fi
export CXXFLAGS="${CXXFLAGS} -std=c++17"
-${CXX} ${CXXFLAGS} ${LDFLAGS} -o test_cc test_cc.cc -ltensorflow_cc -ltensorflow_framework
+${CXX} ${CXXFLAGS} ${LDFLAGS} -o test_cc test_cc.cc -ltensorflow_cc -ltensorflow_framework -labsl_status
./test_cc
|