Source: openni-sensor-primesense Version: 5.1.0.41-12 Severity: normal Tags: ftbfs, patch User: debian-ri...@lists.debian.org Usertags: riscv64 X-Debbugs-Cc: debian-ri...@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
signature.asc
Description: PGP signature