Source: openni-sensor-primesense Version: 5.1.0.41-12 Severity: normal Tags: ftbfs, patch User: debian-riscv@lists.debian.org Usertags: riscv64 X-Debbugs-Cc: debian-riscv@lists.debian.org Dear openni-sensor-primesense Maintainer, Like openni-sensor-pointclouds[0], there is a possibility of being built on riscv64 arch for the package also: ``` dh binary-arch --buildsystem=makefile dh_update_autotools_config -a -O--buildsystem=makefile dh_autoreconf -a -O--buildsystem=makefile dh_auto_configure -a -O--buildsystem=makefile debian/rules override_dh_auto_build make[1]: Entering directory '/<<PKGBUILDDIR>>' cd Platform/Linux/CreateRedist && bash -e RedistMaker Unknown machine type: riscv64 make[1]: *** [debian/rules:7: override_dh_auto_build] Error 1 make[1]: Leaving directory '/<<PKGBUILDDIR>>' make: *** [debian/rules:4: binary-arch] Error 2 dpkg-buildpackage: error: debian/rules binary-arch subprocess returned exit status 2 ``` The patch attached is to fix the issue and I can build riscv64 package on my real riscv64 hardware with it. But this patch took a long time to work properly for me due to unknown reason. Please let me know if you need my assistant. Thank you again! Bo [0]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1014665 -- Best Regards,
--- a/Platform/Linux/CreateRedist/RedistMaker
+++ b/Platform/Linux/CreateRedist/RedistMaker
@@ -37,6 +37,8 @@
PLATFORM="Arm" ;;
mips*)
PLATFORM="Mips" ;;
+ riscv*)
+ PLATFORM="Riscv64" ;;
*)
echo "Unknown machine type: $MACHINE_TYPE"
exit 1
--- a/Platform/Linux/Build/Common/CommonDefs.mak
+++ b/Platform/Linux/Build/Common/CommonDefs.mak
@@ -20,7 +20,9 @@
else ifneq (,$(findstring ppc,$(MACHINE)))
HOST_PLATFORM = Powerpc
else ifneq (,$(findstring mips,$(MACHINE)))
- HOST_PLATFORM = Mips
+ HOST_PLATFORM = Mips
+else ifneq (,$(findstring riscv64,$(MACHINE)))
+ HOST_PLATFORM = Riscv64
else
DUMMY:=$(error Can't determine host platform)
endif
--- /dev/null
+++ b/Platform/Linux/Build/Common/Platform.Riscv64
@@ -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
--- a/Source/Utils/XnSensorServer/SensorServer.cpp
+++ b/Source/Utils/XnSensorServer/SensorServer.cpp
@@ -56,7 +56,7 @@
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)
+#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)
xnLogSetOutputFolder("/var/log/primesense/XnSensorServer/");
#endif
--- a/Source/XnDeviceSensorV2/XnDeviceSensorInit.h
+++ b/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)
+#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)
#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
--- a/Source/XnDeviceSensorV2/XnSensorClient.cpp
+++ b/Source/XnDeviceSensorV2/XnSensorClient.cpp
@@ -882,7 +882,7 @@
#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)
+#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)
sprintf(strServerDir, "/usr/lib/libopenni-sensor-primesense0");
#endif
Attachment:
signature.asc
Description: PGP signature