ARM64 Build #1062
Replies: 5 comments 5 replies
-
Hi @ByronBoskellWork, for a Windows build, please refer to the steps of a working Windows build in our CI: amazon-kinesis-video-streams-producer-sdk-cpp/.github/workflows/ci.yml Lines 278 to 297 in 4c4afff Be sure to modify the folder paths as per the location on your system. Additionally, you may also have to modify the bat file as per MSVC's path on your system and export the paths as follows:
Check kvssink works with:
Example GStreamer pipeline:
|
Beta Was this translation helpful? Give feedback.
-
It appears that the issue may be related to the aws-c-common, which currently does not support the ARM64 on Windows Universal Platform. The remarks in the post say:
which is exactly the situation you are encountering. It looks like the aws-sdk-cpp also relies on the aws-c-common library, as indicated by the following issue. @niyatim23 Does this suggest that Kinesis currently simply cannot be made to work on the Windows Universal Platform with ARM64? If so, can you suggest some other workaround for integrating a HoloLens video/audio stream with an AWS service? |
Beta Was this translation helpful? Give feedback.
-
The Windows Universal Platform (What's a Universal Windows Platform (UWP) app? - UWP applications | Microsoft Learn) is a platform which is separate from a standard Windows OS. It has different APIs and constraints from a standard windows system. This is described in the linked Microsoft Learn article. An app which works for a standard windows system is not necessarily compatible with a Windows Universal Platform app and at minimum will have to recompiled to run on the windows universal platform. Arm64 is a different kind of chip architecture ARM architecture family - Wikipedia and has different constraints to a non-arm chip. The HoloLens is both ARM64 and Windows Universal Platform. This means that software compiled for an x64 Windows machine is not compatible with the HoloLens and must be recompiled for both the change in operating system and the change in chipset. I can confirm that the producer library builds and runs on a x64 Windows 10 machine. The first step in working with the SDK was to configure for my machine’s local environment and test it. Within this repository is the file: amazon-kinesis-video-streams-producer-sdk-cpp/.github/workflows/ci.yml at develop · awslabs/amazon-kinesis-video-streams-producer-sdk-cpp On line 278 is the set-up for running a build on a standard windows machine. As mentioned above this build is not compatible with the ARM64 Universal Platform build target. Further down is the Ubuntu ARM64 target. While that is an ARM64 build, a HoloLens cannot run Ubuntu, nor can utilities be freely installed so this not help either. To build for this platform set I have made use of the toolchain files provided by visual studio to cross-compile to the ARM64 UWP. When I do so it creates a project however it will not compile as I mentioned with the error: Severity Code Description Project File Line Suppression State Error C1189 #error: Atomics are not currently supported for non-x86 MSVC platforms kvspicUtils C:\Users\ByronBoskell\aws-k-alt\dependency\libkvscproducer\kvscproducer-src\dependency\libkvspic\kvspic-src\src\utils\src\AtomicsMsvc.h 11 |
Beta Was this translation helpful? Give feedback.
-
Build Log: |
Beta Was this translation helpful? Give feedback.
-
Toolchain file: set(VCPKG_TARGET_ARCHITECTURE arm) set(VCPKG_CMAKE_SYSTEM_NAME WindowsStore) |
Beta Was this translation helpful? Give feedback.
-
I have been hoping to integrate this SDK with a Windows Universal Platform build. I have already had success creating a gstreamer pipeline on the platform and I was hoping to include the kvssink in the pipeline to stream camera audio / video similar to this example the first example pipeline in the repository.
I have been using Cmake GUI on a windows machine, I provided a toolchain file based off the example within in vcpkg included with visual studio. This successfully created a project in CMake, however when I try to compile to visual studio solution, I get the compile error:
#error Atomics are not currently supported for non-x86 MSVC platforms.
Is there some additional setup that has to be done? I have found this issue:
#827
Which implies that it is possible to compile on ARM64.
Beta Was this translation helpful? Give feedback.
All reactions