perlio.c, PerlIO_tmpfile: Fall back to cwd if we have no /tmp or $TMPDIR

With this, open($fh, undef) will now work on systems without
a /tmp (or equivalent) where TMPDIR is not set.
PerlIO_tmpfile: Don't leak an SV

This was spotted by Daniel Dragan on the thread for #120591
Hints file for android cross-compiling.

The hints file names for cross-compiling (currently) need to match the prefix of the cross-compiler used.
Create a Perl with relocatable inc when building for Android.
Android hints: set targetsh to /system/bin/sh

Android, for reasons best known to itself, doesn't have a "/bin/sh" it
has a "/system/bin/sh".  We need to run "/bin/sh" as $sh inside
./Configure on the host, but store a different path for use on the
actual Android system (eg by backticks, system etc, in SH_PATH).

The new variable is "targetsh" and defaults to "sh" unless changed by the hints file/Configure params.
Android hints, run-adb-shell: Handle the -env switch

Currently, this is used during 'make test' to specify LD_LIBRARY_PATH
No locales in Android, just set the lot to undef
Android hints, run-ssh: Make sure that the stdout of commands run from Configure and Makefile on remote hosts is transfered back correctly
Correctly quote result from adb, otherwise multiline responses breal (eg signal_cmd)
Android hints: Detect stub functions and mark them as undefined.

Bionic implements several functions as stumps that simply warn
and return null, which leads to situations like this:

FIX ME! implement getprotobyname() bionic/libc/bionic/stubs.c:378

This commit introduces some probes for functions (getnetbyname,
getnetbyaddr, getmntent, getprotobyname, getprotobynumber, endpwent,
ttyname) that we use and are actually stubs in at least some
versions of Android.
If we find a stub, we pretend that the function is undefined, so
the above example becomes this:

Unsupported socket function "getprotobyname" called at -e line 1.

Note that this commit does not fix the modules that assume that
these functions are always available, so 'make test' still fails.
android hints: Always define d_libname_unique
hints/linux-androideabi.sh: getservent_r() is a partial stub, mark it as undefined to avoid issues with threads
hints/linux-androideabi.sh: Rather than relaying on adb, save the exit status in a file and then copy it over
hints/linux-androideabi.sh: sed might not understand "\r", use $tr instead
hints/linux-androideabi.sh: adb takes care of creating the target dir on the target
hints/linux-androideabi.sh: use $cat instead of plain cat
hints/linux-androideabi.sh: use $chmod instead of plain chmod
hints/linux-androideabi.sh: If the host OS is darwin, set firstmakefile to GNUmakefile
Android hints: Only set userelocatableinc if it doesn't have a value

Without this, Configure would've bailed out if trying to build a
-Duseshrplib perl.
Android hints: Only use adb if $targetrun is set to adb

This loses us some DWIMnery, but allows cross-compiling to
android using ssh, which is much easier to set up than getting
the SDK.