Skip to content

Commit 4c9e38d

Browse files
Add loongarch64 support
1 parent aa0dff0 commit 4c9e38d

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

src/main/c/Posix/Makefile

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ COMPILE_ARM64 := aarch64-unknown-linux-gnu-gcc
77
COMPILE_PPC64LE := powerpc64le-unknown-linux-gnu-gcc
88
COMPILE_SOLARIS_X86 := x86_64-sun-solaris2.10-gcc
99
COMPILE_SOLARIS_SPARC := sparc-sun-solaris2.10-gcc
10+
COMPILE_LOONGARCH64 := gcc
1011
COMPILE_OSX_X86 := o32-clang
1112
COMPILE_OSX_X86_64 := o64-clang
1213
COMPILE_OSX_ARM64 := oa64-clang
@@ -59,6 +60,7 @@ OBJECTSarmv7hf := $(BUILD_DIR)/armv7hf/SerialPort_Posix.o $(BUILD_D
5960
OBJECTSarmv8_32 := $(BUILD_DIR)/armv8_32/SerialPort_Posix.o $(BUILD_DIR)/armv8_32/PosixHelperFunctions.o
6061
OBJECTSarmv8_64 := $(BUILD_DIR)/armv8_64/SerialPort_Posix.o $(BUILD_DIR)/armv8_64/PosixHelperFunctions.o
6162
OBJECTSppc64le := $(BUILD_DIR)/ppc64le/SerialPort_Posix.o $(BUILD_DIR)/ppc64le/PosixHelperFunctions.o
63+
OBJECTSloongarch64 := $(BUILD_DIR)/loongarch64/SerialPort_Posix.o $(BUILD_DIR)/loongarch64/PosixHelperFunctions.o
6264
OBJECTSsolaris32 := $(BUILD_DIR)/solaris_x86/SerialPort_Posix.o $(BUILD_DIR)/solaris_x86/PosixHelperFunctions.o
6365
OBJECTSsolaris64 := $(BUILD_DIR)/solaris_x86_64/SerialPort_Posix.o $(BUILD_DIR)/solaris_x86_64/PosixHelperFunctions.o
6466
OBJECTSsolarisSparc32 := $(BUILD_DIR)/solaris_sparc32/SerialPort_Posix.o $(BUILD_DIR)/solaris_sparc32/PosixHelperFunctions.o
@@ -79,6 +81,7 @@ FLAGSarmv7hf := -mthumb -mthumb-interwork -march=armv7+fp -mfloat
7981
FLAGSarmv8_32 := -mthumb -mthumb-interwork -march=armv8-a
8082
FLAGSarmv8_64 := -march=armv8-a
8183
FLAGSppc64le := -mtune=powerpc64le -m64
84+
FLAGSloongarch64 := -march=loongarch64
8285
FLAGSsolaris32 := -m32
8386
FLAGSsolaris64 := -m64
8487
FLAGSsolarisSparc32 := -mno-app-regs -mcpu=v8 -mv8plus -m32
@@ -93,7 +96,7 @@ FLAGSosx64 := -arch x86_64 -m64
9396
FLAGSosxaarch64 := -arch arm64
9497

9598
# Define phony and suffix rules
96-
.PHONY: all clean linux linux32 linux64 arm armv5 armv6hf armv7hf armv8_32 armv8_64 powerpc ppc64le solaris solaris32 solaris64 solarisSparc32 solarisSparc64 osx osx32 osx64 osxaarch64 android freebsd freebsd32 freebsd64 freebsdArm64 openbsd openbsd32 openbsd64
99+
.PHONY: all clean linux linux32 linux64 arm armv5 armv6hf armv7hf armv8_32 armv8_64 loonogarch64 powerpc ppc64le solaris solaris32 solaris64 solarisSparc32 solarisSparc64 osx osx32 osx64 osxaarch64 android freebsd freebsd32 freebsd64 freebsdArm64 openbsd openbsd32 openbsd64
97100
.SUFFIXES:
98101
.SUFFIXES: .cpp .c .o .class .java .h
99102

@@ -172,6 +175,12 @@ armv8_64 : $(JAVA_CLASS_DIR) $(BUILD_DIR)/armv8_64 $(BUILD_DIR)/armv8_64/$(LIBRA
172175
$(MKDIR) -p $(RESOURCE_DIR_LINUX)/armv8_64/
173176
$(COPY) $(BUILD_DIR)/armv8_64/*.* $(RESOURCE_DIR_LINUX)/armv8_64/
174177

178+
# Build architecture-specific LOONGARCH libraries
179+
loongarch64 : $(JAVA_CLASS_DIR) $(BUILD_DIR)/loongarch64 $(BUILD_DIR)/loongarch64/$(LIBRARY_NAME_POSIX)
180+
$(DELETE) -rf $(BUILD_DIR)/loongarch64/*.o
181+
$(MKDIR) -p $(RESOURCE_DIR_LINUX)/loongarch64/
182+
$(COPY) $(BUILD_DIR)/loongarch64/*.* $(RESOURCE_DIR_LINUX)/loongarch64/
183+
175184
# Build architecture-specific POWERPC libraries
176185
ppc64le : $(JAVA_CLASS_DIR) $(BUILD_DIR)/ppc64le $(BUILD_DIR)/ppc64le/$(LIBRARY_NAME_POSIX)
177186
$(DELETE) -rf $(BUILD_DIR)/ppc64le/*.o
@@ -253,6 +262,8 @@ $(BUILD_DIR)/armv8_32 :
253262
$(MKDIR) -p $@
254263
$(BUILD_DIR)/armv8_64 :
255264
$(MKDIR) -p $@
265+
$(BUILD_DIR)/loongarch64 :
266+
$(MKDIR) -p $@
256267
$(BUILD_DIR)/ppc64le :
257268
$(MKDIR) -p $@
258269
$(BUILD_DIR)/solaris_x86 :
@@ -297,6 +308,8 @@ $(BUILD_DIR)/armv8_32/$(LIBRARY_NAME_POSIX) : $(JNI_HEADER) $(OBJECTSarmv8_32)
297308
$(COMPILE_ARM32) $(LDFLAGS_POSIX) $(FLAGSarmv8_32) -o $@ $(OBJECTSarmv8_32) $(LIBRARIES_POSIX)
298309
$(BUILD_DIR)/armv8_64/$(LIBRARY_NAME_POSIX) : $(JNI_HEADER) $(OBJECTSarmv8_64)
299310
$(COMPILE_ARM64) $(LDFLAGS_POSIX) $(FLAGSarmv8_64) -o $@ $(OBJECTSarmv8_64) $(LIBRARIES_POSIX)
311+
$(BUILD_DIR)/loongarch64/$(LIBRARY_NAME_POSIX) : $(JNI_HEADER) $(OBJECTSloongarch64)
312+
$(COMPILE_LOONGARCH64) $(LDFLAGS_POSIX) $(FLAGloongarch64) -o $@ $(OBJECTSloongarch64) $(LIBRARIES_POSIX)
300313
$(BUILD_DIR)/ppc64le/$(LIBRARY_NAME_POSIX) : $(JNI_HEADER) $(OBJECTSppc64le)
301314
$(COMPILE_PPC64LE) $(LDFLAGS_POSIX) $(FLAGSppc64le) -o $@ $(OBJECTSppc64le) $(LIBRARIES_POSIX)
302315
$(BUILD_DIR)/solaris_x86/$(LIBRARY_NAME_POSIX) : $(JNI_HEADER) $(OBJECTSsolaris32)
@@ -339,6 +352,8 @@ $(BUILD_DIR)/armv8_32/%.o : %.c
339352
$(COMPILE_ARM32) $(INCLUDES) $(CFLAGS_POSIX) $(FLAGSarmv8_32) -c $< -o $@
340353
$(BUILD_DIR)/armv8_64/%.o : %.c
341354
$(COMPILE_ARM64) $(INCLUDES) $(CFLAGS_POSIX) $(FLAGSarmv8_64) -c $< -o $@
355+
$(BUILD_DIR)/loongarch64/%.o : %.c
356+
$(COMPILE_LOONGARCH64) $(INCLUDES) $(CFLAGS_POSIX) $(FLAGSloongarch64) -c $< -o $@
342357
$(BUILD_DIR)/ppc64le/%.o : %.c
343358
$(COMPILE_PPC64LE) $(INCLUDES) $(CFLAGS_POSIX) $(FLAGSppc64le) -c $< -o $@
344359
$(BUILD_DIR)/solaris_x86/%.o : %.c

src/main/java/com/fazecast/jSerialComm/SerialPort.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,9 +164,9 @@ else if ((OS.contains("nix")) || (OS.contains("nux")))
164164
if (!System.getProperty("os.arch_full", "").isEmpty())
165165
architectures = new String[] { System.getProperty("os.arch_full").toLowerCase() };
166166
else if (arch.contains("86") || arch.contains("amd"))
167-
architectures = new String[] { "x86_64", "x86", "armv5", "armv6hf", "armv7hf", "armv8_64", "armv8_32", "ppc64le" };
167+
architectures = new String[] { "x86_64", "x86", "armv5", "armv6hf", "armv7hf", "armv8_64", "armv8_32", "ppc64le", "loongarch64" };
168168
else
169-
architectures = new String[] { "armv5", "armv6hf", "armv7hf", "armv8_64", "x86_64", "armv8_32", "ppc64le", "x86" };
169+
architectures = new String[] { "armv5", "armv6hf", "armv7hf", "armv8_64", "x86_64", "armv8_32", "ppc64le", "x86", "loongarch64" };
170170
}
171171
else
172172
{

0 commit comments

Comments
 (0)