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 variant + + linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.22python3.10.____cpython + + + variant + + + + linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.22python3.8.____cpython + + + variant + + + + linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.22python3.9.____cpython + + + variant + + + + linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11numpy1.23python3.11.____cpython + + + variant + + 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