Update pthreadpool and FXdiv dependencies
- Update pthreadpool and FXdiv revisions
- Use upstream BUILD files
PiperOrigin-RevId: 306067972
diff --git a/WORKSPACE b/WORKSPACE
index 26f7cb0..f350234 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -2,21 +2,25 @@
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+# Bazel rule definitions
+http_archive(
+ name = "rules_cc",
+ strip_prefix = "rules_cc-master",
+ urls = ["https://github.com/bazelbuild/rules_cc/archive/master.zip"],
+)
+
# Google Test framework, used by most unit-tests.
http_archive(
- name = "com_google_googletest",
- urls = ["https://github.com/google/googletest/archive/master.zip"],
- strip_prefix = "googletest-master",
+ name = "com_google_googletest",
+ strip_prefix = "googletest-master",
+ urls = ["https://github.com/google/googletest/archive/master.zip"],
)
# Google Benchmark library, used in micro-benchmarks.
http_archive(
name = "com_google_benchmark",
- urls = [
- "https://github.com/google/benchmark/archive/master.zip"
- ],
strip_prefix = "benchmark-master",
- build_file = "@//third_party:benchmark.BUILD",
+ urls = ["https://github.com/google/benchmark/archive/master.zip"],
)
# FP16 library, used for half-precision conversions
@@ -33,23 +37,17 @@
# FXdiv library, used for repeated integer division by the same factor
http_archive(
name = "FXdiv",
- strip_prefix = "FXdiv-f8c5354679ec2597792bc70a9e06eff50c508b9a",
- sha256 = "7d3215bea832fe77091ec5666200b91156df6724da1e348205078346325fc45e",
- urls = [
- "https://github.com/Maratyszcza/FXdiv/archive/f8c5354679ec2597792bc70a9e06eff50c508b9a.tar.gz",
- ],
- build_file = "@//third_party:FXdiv.BUILD",
+ strip_prefix = "FXdiv-f7dd0576a1c8289ef099d4fd8b136b1c4487a873",
+ sha256 = "6e4b6e3c58e67c3bb090e286c4f235902c89b98cf3e67442a18f9167963aa286",
+ urls = ["https://github.com/Maratyszcza/FXdiv/archive/f7dd0576a1c8289ef099d4fd8b136b1c4487a873.zip"],
)
# pthreadpool library, used for parallelization
http_archive(
name = "pthreadpool",
- strip_prefix = "pthreadpool-fa67ff531c0f9999c742d500a4fa061b96937297",
- sha256 = "6d9ead083d4f7f9efb0b7b1a2d212816f65eb536cef4a0bf640403309b793a15",
- urls = [
- "https://github.com/Maratyszcza/pthreadpool/archive/fa67ff531c0f9999c742d500a4fa061b96937297.tar.gz",
- ],
- build_file = "@//third_party:pthreadpool.BUILD",
+ strip_prefix = "pthreadpool-da486afd0f9e2b42ccb90940e2dfba6cfed38708",
+ sha256 = "8602a23e9d69cedf6054f428b3f8dbd935e1c5811df3adf38f0985ed1fed74ee",
+ urls = ["https://github.com/Maratyszcza/pthreadpool/archive/da486afd0f9e2b42ccb90940e2dfba6cfed38708.zip"],
)
# clog library, used for logging
diff --git a/cmake/DownloadFXdiv.cmake b/cmake/DownloadFXdiv.cmake
index fe687e2..b4dc0ef 100644
--- a/cmake/DownloadFXdiv.cmake
+++ b/cmake/DownloadFXdiv.cmake
@@ -12,8 +12,8 @@
INCLUDE(ExternalProject)
ExternalProject_Add(fxdiv
- URL https://github.com/Maratyszcza/FXdiv/archive/f8c5354679ec2597792bc70a9e06eff50c508b9a.tar.gz
- URL_HASH SHA256=7d3215bea832fe77091ec5666200b91156df6724da1e348205078346325fc45e
+ URL https://github.com/Maratyszcza/FXdiv/archive/f7dd0576a1c8289ef099d4fd8b136b1c4487a873.zip
+ URL_HASH SHA256=6e4b6e3c58e67c3bb090e286c4f235902c89b98cf3e67442a18f9167963aa286
SOURCE_DIR "${CMAKE_BINARY_DIR}/FXdiv-source"
BINARY_DIR "${CMAKE_BINARY_DIR}/FXdiv"
CONFIGURE_COMMAND ""
diff --git a/cmake/DownloadPThreadPool.cmake b/cmake/DownloadPThreadPool.cmake
index cf8c39f..c28f157 100644
--- a/cmake/DownloadPThreadPool.cmake
+++ b/cmake/DownloadPThreadPool.cmake
@@ -12,8 +12,8 @@
INCLUDE(ExternalProject)
ExternalProject_Add(pthreadpool
- URL https://github.com/Maratyszcza/pthreadpool/archive/76042155a8b1e189c8f141429fd72219472c32e1.tar.gz
- URL_HASH SHA256=91c7b00c16c60c96f23d1966d524879c0f6044caf4bc5e9fc06518dda643e07e
+ URL https://github.com/Maratyszcza/pthreadpool/archive/da486afd0f9e2b42ccb90940e2dfba6cfed38708.zip
+ URL_HASH SHA256=8602a23e9d69cedf6054f428b3f8dbd935e1c5811df3adf38f0985ed1fed74ee
SOURCE_DIR "${CMAKE_BINARY_DIR}/pthreadpool-source"
BINARY_DIR "${CMAKE_BINARY_DIR}/pthreadpool"
CONFIGURE_COMMAND ""
diff --git a/third_party/FXdiv.BUILD b/third_party/FXdiv.BUILD
deleted file mode 100644
index ef2853b..0000000
--- a/third_party/FXdiv.BUILD
+++ /dev/null
@@ -1,15 +0,0 @@
-# Description:
-# C99/C++ library for division via fixed-point multiplication by inverse
-
-package(default_visibility = ["//visibility:public"])
-
-licenses(["notice"])
-
-exports_files(["LICENSE"])
-
-cc_library(
- name = "FXdiv",
- hdrs = glob(["include/fxdiv.h"]),
- includes = ["include"],
- strip_include_prefix = "include",
-)
diff --git a/third_party/benchmark.BUILD b/third_party/benchmark.BUILD
deleted file mode 100644
index 3d439d6..0000000
--- a/third_party/benchmark.BUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-licenses(["notice"])
-
-exports_files(["LICENSE"])
-
-cc_library(
- name = "benchmark",
- srcs = glob(["src/*.h", "src/*.cc",]),
- hdrs = glob(["include/benchmark/*.h"]),
- copts = [
- "-DHAVE_POSIX_REGEX",
- "-Wno-deprecated-declarations",
- ],
- linkopts = select({
- ":linux_x86_64": ["-lm"],
- ":linux_arm64": ["-lm"],
- ":android": ["-lm"],
- "//conditions:default": [],
- }),
- includes = ["include"],
- visibility = ["//visibility:public"],
-)
-
-config_setting(
- name = "linux_x86_64",
- values = {"cpu": "k8"},
- visibility = ["//visibility:public"],
-)
-
-config_setting(
- name = "linux_arm64",
- values = {"cpu": "aarch64"},
- visibility = ["//visibility:public"],
-)
-
-config_setting(
- name = "android",
- values = {
- "crosstool_top": "//external:android/crosstool",
- },
- visibility = ["//visibility:public"],
-)
diff --git a/third_party/pthreadpool.BUILD b/third_party/pthreadpool.BUILD
deleted file mode 100644
index f60c737..0000000
--- a/third_party/pthreadpool.BUILD
+++ /dev/null
@@ -1,192 +0,0 @@
-# Description:
-# Portable pthread-based thread pool for C and C++
-
-package(default_visibility = ["//visibility:public"])
-
-licenses(["notice"])
-
-exports_files(["LICENSE"])
-
-INTERNAL_HDRS = [
- "src/threadpool-atomics.h",
- "src/threadpool-common.h",
- "src/threadpool-object.h",
- "src/threadpool-utils.h",
-]
-
-PORTABLE_SRCS = [
- "src/memory.c",
- "src/portable-api.c",
-]
-
-PTHREADS_IMPL_SRCS = PORTABLE_SRCS + ["src/pthreads.c"]
-
-GCD_IMPL_SRCS = PORTABLE_SRCS + ["src/gcd.c"]
-
-SHIM_IMPL_SRCS = ["src/shim.c"]
-
-cc_library(
- name = "pthreadpool",
- srcs = select({
- ":pthreadpool_sync_primitive_explicit_condvar": INTERNAL_HDRS + PTHREADS_IMPL_SRCS,
- ":pthreadpool_sync_primitive_explicit_futex": INTERNAL_HDRS + PTHREADS_IMPL_SRCS,
- ":pthreadpool_sync_primitive_explicit_gcd": INTERNAL_HDRS + GCD_IMPL_SRCS,
- ":emscripten_with_threads": INTERNAL_HDRS + PTHREADS_IMPL_SRCS,
- ":emscripten": SHIM_IMPL_SRCS,
- ":macos_x86": INTERNAL_HDRS + GCD_IMPL_SRCS,
- ":macos_x86_64": INTERNAL_HDRS + GCD_IMPL_SRCS,
- ":ios": INTERNAL_HDRS + GCD_IMPL_SRCS,
- "//conditions:default": INTERNAL_HDRS + PTHREADS_IMPL_SRCS,
- }),
- copts = [
- "-std=gnu11",
- "-Wno-deprecated-declarations",
- ] + select({
- ":optimized_build": ["-O2"],
- "//conditions:default": [],
- }) + select({
- ":linux_arm": ["-DPTHREADPOOL_USE_CPUINFO=1"],
- ":linux_aarch64": ["-DPTHREADPOOL_USE_CPUINFO=1"],
- ":android_armv7": ["-DPTHREADPOOL_USE_CPUINFO=1"],
- ":android_arm64": ["-DPTHREADPOOL_USE_CPUINFO=1"],
- "//conditions:default": ["-DPTHREADPOOL_USE_CPUINFO=0"],
- }) + select({
- ":pthreadpool_sync_primitive_explicit_condvar": [
- "-DPTHREADPOOL_USE_CONDVAR=1",
- "-DPTHREADPOOL_USE_FUTEX=0",
- "-DPTHREADPOOL_USE_GCD=0",
- ],
- ":pthreadpool_sync_primitive_explicit_futex": [
- "-DPTHREADPOOL_USE_CONDVAR=0",
- "-DPTHREADPOOL_USE_FUTEX=1",
- "-DPTHREADPOOL_USE_GCD=0",
- ],
- ":pthreadpool_sync_primitive_explicit_gcd": [
- "-DPTHREADPOOL_USE_CONDVAR=0",
- "-DPTHREADPOOL_USE_FUTEX=0",
- "-DPTHREADPOOL_USE_GCD=1",
- ],
- "//conditions:default": [],
- }),
- hdrs = [
- "include/pthreadpool.h",
- ],
- defines = [
- "PTHREADPOOL_NO_DEPRECATED_API",
- ],
- includes = [
- "include",
- ],
- linkopts = select({
- ":emscripten_with_threads": [
- "-s ALLOW_BLOCKING_ON_MAIN_THREAD=1",
- "-s PTHREAD_POOL_SIZE=8",
- ],
- "//conditions:default": [],
- }),
- strip_include_prefix = "include",
- deps = [
- "@FXdiv",
- ] + select({
- ":linux_arm": ["@cpuinfo"],
- ":linux_aarch64": ["@cpuinfo"],
- ":android_armv7": ["@cpuinfo"],
- ":android_arm64": ["@cpuinfo"],
- "//conditions:default": [],
- }),
-)
-
-############################# Build configurations #############################
-
-# Synchronize workers using pthreads condition variable.
-config_setting(
- name = "pthreadpool_sync_primitive_explicit_condvar",
- define_values = {"pthreadpool_sync_primitive": "condvar"},
-)
-
-# Synchronize workers using futex.
-config_setting(
- name = "pthreadpool_sync_primitive_explicit_futex",
- define_values = {"pthreadpool_sync_primitive": "futex"},
-)
-
-# Synchronize workers using Grand Central Dispatch.
-config_setting(
- name = "pthreadpool_sync_primitive_explicit_gcd",
- define_values = {"pthreadpool_sync_primitive": "gcd"},
-)
-
-config_setting(
- name = "optimized_build",
- values = {
- "compilation_mode": "opt",
- },
-)
-
-config_setting(
- name = "linux_arm",
- values = {"cpu": "arm"},
-)
-
-config_setting(
- name = "linux_aarch64",
- values = {"cpu": "aarch64"},
-)
-
-config_setting(
- name = "android_armv7",
- values = {
- "crosstool_top": "//external:android/crosstool",
- "cpu": "armeabi-v7a",
- },
-)
-
-config_setting(
- name = "android_arm64",
- values = {
- "crosstool_top": "//external:android/crosstool",
- "cpu": "arm64-v8a",
- },
-)
-
-# Note: we need to individually match x86 and x86-64 macOS rather than use
-# catch-all "apple_platform_type": "macos" because that option defaults to
-# "macos" even when building on Linux!
-config_setting(
- name = "macos_x86",
- values = {
- "apple_platform_type": "macos",
- "cpu": "darwin",
- },
-)
-
-config_setting(
- name = "macos_x86_64",
- values = {
- "apple_platform_type": "macos",
- "cpu": "darwin_x86_64",
- },
-)
-
-config_setting(
- name = "ios",
- values = {
- "crosstool_top": "@bazel_tools//tools/cpp:toolchain",
- "apple_platform_type": "ios",
- },
-)
-
-config_setting(
- name = "emscripten",
- values = {
- "crosstool_top": "//toolchain:emscripten",
- }
-)
-
-config_setting(
- name = "emscripten_with_threads",
- values = {
- "crosstool_top": "//toolchain:emscripten",
- "copt": "-pthread",
- }
-)