This is an automated email from the ASF dual-hosted git repository.

stevel pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/trunk by this push:
     new c83481e2dc2 HADOOP-19663. [RISC-V] Add RISC-V CRC32 build scaffolding 
and placeholder (#7903)
c83481e2dc2 is described below

commit c83481e2dc2682cf5e4633648ca94246f69e1857
Author: Peter Pan <[email protected]>
AuthorDate: Thu Oct 9 21:17:10 2025 +0800

    HADOOP-19663. [RISC-V] Add RISC-V CRC32 build scaffolding and placeholder 
(#7903)
    
    
    Contributed by Peter Proc
---
 .../hadoop-common/src/CMakeLists.txt               |  2 ++
 .../src/org/apache/hadoop/util/bulk_crc32_riscv.c  | 39 ++++++++++++++++++++++
 2 files changed, 41 insertions(+)

diff --git a/hadoop-common-project/hadoop-common/src/CMakeLists.txt 
b/hadoop-common-project/hadoop-common/src/CMakeLists.txt
index d2ef03645a4..8bf94acaad0 100644
--- a/hadoop-common-project/hadoop-common/src/CMakeLists.txt
+++ b/hadoop-common-project/hadoop-common/src/CMakeLists.txt
@@ -157,6 +157,8 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$" OR 
CMAKE_SYSTEM_PROCESSOR STREQUAL "x
   set(BULK_CRC_ARCH_SOURCE_FIlE "${SRC}/util/bulk_crc32_x86.c")
 elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
   set(BULK_CRC_ARCH_SOURCE_FIlE "${SRC}/util/bulk_crc32_aarch64.c")
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^riscv64" OR CMAKE_SYSTEM_PROCESSOR 
MATCHES "^riscv32")
+  set(BULK_CRC_ARCH_SOURCE_FIlE "${SRC}/util/bulk_crc32_riscv.c")
 else()
   message("No HW CRC acceleration for ${CMAKE_SYSTEM_PROCESSOR}, falling back 
to SW")
 endif()
diff --git 
a/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/util/bulk_crc32_riscv.c
 
b/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/util/bulk_crc32_riscv.c
new file mode 100644
index 00000000000..5955e4b7f96
--- /dev/null
+++ 
b/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/util/bulk_crc32_riscv.c
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * RISC-V CRC32 hardware acceleration (placeholder)
+ *
+ * Phase 1: provide a RISC-V-specific compilation unit that currently makes
+ * no runtime changes and falls back to the generic software path in
+ * bulk_crc32.c. Future work will add Zbc-based acceleration and runtime
+ * dispatch.
+ */
+
+#include <assert.h>
+#include <stddef.h> // for size_t
+
+#include "bulk_crc32.h"
+#include "gcc_optimizations.h"
+
+/* Constructor hook reserved for future HW capability detection and
+ * function-pointer dispatch. Intentionally a no-op for the initial phase. */
+void __attribute__((constructor)) init_riscv_crc_support(void)
+{
+  /* No-op: keep using the default software implementations. */
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to