I recently tried building PDL on Android, but hit a bit of a snag of the OS, which caused the tests for Callext.pm to fail. On Android, transitive library dependencies don't quite work, so for example, if libperl.so links to libm.so, a binary linking to libperl will only get the functions from libm that libperl actually uses, and nothing more, which is not usually what one would expect.
Thankfully, the fix for this is super easy. On this line:
instead of just checking for Windows, it also needs to check for Android, ala:
my $libs = $^O =~ /MSWin|android/i ?
That gets all of the tests for PDL passing.