Source: openni-sensor-primesense
Version: 5.1.0.41-13
Severity: wishlist
Tags: patch
User: debian-loonga...@lists.debian.org
Usertags: loong64
Dear maintainers,
Compiling the openni-sensor-primesense failed for loong64 in the Debian
Package Auto-Building environment.
The full compilation log can be found at
https://buildd.debian.org/status/logs.php?pkg=openni-sensor-primesense&ver=5.1.0.41-13&arch=loong64
Please consider the patch I have attached.
And the openni-sensor-primesense source package was compiled
successfully on my local loong64 rootfs environment.
If you have any questions, you can contact me at any time.
thanks,
Dandan Zhang
Description: Add support for loongarch64
Last-Update: 2023-12-06
--- openni-sensor-primesense-5.1.0.41.orig/Platform/Linux/Build/Common/CommonDefs.mak
+++ openni-sensor-primesense-5.1.0.41/Platform/Linux/Build/Common/CommonDefs.mak
@@ -23,6 +23,8 @@ else ifneq (,$(findstring mips,$(MACHINE
HOST_PLATFORM = Mips
else ifneq (,$(findstring riscv64,$(MACHINE)))
HOST_PLATFORM = Riscv64
+else ifneq (,$(findstring loongarch64,$(MACHINE)))
+ HOST_PLATFORM = Loongarch64
else
DUMMY:=$(error Can't determine host platform)
endif
--- /dev/null
+++ openni-sensor-primesense-5.1.0.41/Platform/Linux/Build/Common/Platform.Loongarch64
@@ -0,0 +1,11 @@
+export GLUT_SUPPORTED=1
+
+ifeq "$(CFG)" "Release"
+
+ # Optimization level, minus currently buggy optimizing methods (which break bit-exact)
+ CFLAGS += -O3 -fno-tree-pre -fno-strict-aliasing
+
+ # More optimization flags
+ CFLAGS += -ftree-vectorize -ffast-math -funsafe-math-optimizations -fsingle-precision-constant
+
+endif
--- openni-sensor-primesense-5.1.0.41.orig/Platform/Linux/CreateRedist/RedistMaker
+++ openni-sensor-primesense-5.1.0.41/Platform/Linux/CreateRedist/RedistMaker
@@ -39,6 +39,8 @@ else
PLATFORM="Mips" ;;
riscv*)
PLATFORM="Riscv64" ;;
+ loongarch64)
+ PLATFORM="Loongarch64" ;;
*)
echo "Unknown machine type: $MACHINE_TYPE"
exit 1
--- openni-sensor-primesense-5.1.0.41.orig/Source/Utils/XnSensorServer/SensorServer.cpp
+++ openni-sensor-primesense-5.1.0.41/Source/Utils/XnSensorServer/SensorServer.cpp
@@ -56,7 +56,7 @@ int main(int argc, char* argv[])
nRetVal = XnSensorServerGetGlobalConfigFile(strConfigDir, strConfigFile, XN_FILE_MAX_PATH);
XN_CHECK_RC(nRetVal, "Resolving global config file");
-#if (XN_PLATFORM == XN_PLATFORM_LINUX_X86 || XN_PLATFORM == XN_PLATFORM_LINUX_ARM || XN_PLATFORM == XN_PLATFORM_LINUX_AARCH64 || XN_PLATFORM == XN_PLATFORM_LINUX_POWERPC || XN_PLATFORM == XN_PLATFORM_MACOSX || XN_PLATFORM == XN_PLATFORM_LINUX_MIPS || XN_PLATFORM == XN_PLATFORM_LINUX_RISCV64)
+#if (XN_PLATFORM == XN_PLATFORM_LINUX_X86 || XN_PLATFORM == XN_PLATFORM_LINUX_ARM || XN_PLATFORM == XN_PLATFORM_LINUX_AARCH64 || XN_PLATFORM == XN_PLATFORM_LINUX_POWERPC || XN_PLATFORM == XN_PLATFORM_MACOSX || XN_PLATFORM == XN_PLATFORM_LINUX_MIPS || XN_PLATFORM == XN_PLATFORM_LINUX_RISCV64 || XN_PLATFORM == XN_PLATFORM_LINUX_LOONGARCH64)
xnLogSetOutputFolder("/var/log/primesense/XnSensorServer/");
#endif
--- openni-sensor-primesense-5.1.0.41.orig/Source/XnDeviceSensorV2/XnDeviceSensorInit.h
+++ openni-sensor-primesense-5.1.0.41/Source/XnDeviceSensorV2/XnDeviceSensorInit.h
@@ -57,7 +57,7 @@
#define XN_SENSOR_USB_MISC_BUFFER_SIZE 0x1000
#define XN_SENSOR_USB_MISC_BUFFERS 1
-#elif (XN_PLATFORM == XN_PLATFORM_LINUX_X86 || XN_PLATFORM == XN_PLATFORM_LINUX_ARM || XN_PLATFORM == XN_PLATFORM_LINUX_AARCH64 || XN_PLATFORM == XN_PLATFORM_LINUX_POWERPC || XN_PLATFORM == XN_PLATFORM_MACOSX || XN_PLATFORM == XN_PLATFORM_ANDROID_ARM || XN_PLATFORM == XN_PLATFORM_LINUX_MIPS || XN_PLATFORM == XN_PLATFORM_LINUX_RISCV64)
+#elif (XN_PLATFORM == XN_PLATFORM_LINUX_X86 || XN_PLATFORM == XN_PLATFORM_LINUX_ARM || XN_PLATFORM == XN_PLATFORM_LINUX_AARCH64 || XN_PLATFORM == XN_PLATFORM_LINUX_POWERPC || XN_PLATFORM == XN_PLATFORM_MACOSX || XN_PLATFORM == XN_PLATFORM_ANDROID_ARM || XN_PLATFORM == XN_PLATFORM_LINUX_MIPS || XN_PLATFORM == XN_PLATFORM_LINUX_RISCV64 || XN_PLATFORM == XN_PLATFORM_LINUX_LOONGARCH64)
#define XN_SENSOR_USB_IMAGE_BUFFER_SIZE_MULTIPLIER_ISO 32
#define XN_SENSOR_USB_IMAGE_BUFFER_SIZE_MULTIPLIER_BULK 40
#define XN_SENSOR_USB_IMAGE_BUFFER_SIZE_MULTIPLIER_LOWBAND_ISO 16
--- openni-sensor-primesense-5.1.0.41.orig/Source/XnDeviceSensorV2/XnSensorClient.cpp
+++ openni-sensor-primesense-5.1.0.41/Source/XnDeviceSensorV2/XnSensorClient.cpp
@@ -882,7 +882,7 @@ XnStatus XnSensorClient::StartServerProc
#if (XN_PLATFORM == XN_PLATFORM_WIN32)
nRetVal = GetModuleDir(strServerDir);
-#elif (XN_PLATFORM == XN_PLATFORM_LINUX_X86 || XN_PLATFORM == XN_PLATFORM_LINUX_ARM || XN_PLATFORM == XN_PLATFORM_LINUX_AARCH64 || XN_PLATFORM == XN_PLATFORM_LINUX_POWERPC || XN_PLATFORM == XN_PLATFORM_MACOSX || XN_PLATFORM == XN_PLATFORM_LINUX_MIPS || XN_PLATFORM == XN_PLATFORM_LINUX_RISCV64)
+#elif (XN_PLATFORM == XN_PLATFORM_LINUX_X86 || XN_PLATFORM == XN_PLATFORM_LINUX_ARM || XN_PLATFORM == XN_PLATFORM_LINUX_AARCH64 || XN_PLATFORM == XN_PLATFORM_LINUX_POWERPC || XN_PLATFORM == XN_PLATFORM_MACOSX || XN_PLATFORM == XN_PLATFORM_LINUX_MIPS || XN_PLATFORM == XN_PLATFORM_LINUX_RISCV64 || XN_PLATFORM == XN_PLATFORM_LINUX_LOONGARCH64)
sprintf(strServerDir, "/usr/lib/libopenni-sensor-primesense0");
#endif