Turns out the solution was indeed to define the __cxa_pure_virtual
as a dummy function due to https://bugs.llvm.org/show_bug.cgi?id=49839 , the issue is that I wasn't adding the __device__
attribute at the front. The function should then be something like:
extern "C" __device__ void __cxa_pure_virtual() {
while (1) {
}
}