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",
-    }
-)