Jrobinson/configure for cross#3
Open
Hugmeir wants to merge 58 commits intocastaway:jrobinson/configure-for-crossfrom
Hugmeir:jrobinson/configure-for-cross
Open
Jrobinson/configure for cross#3Hugmeir wants to merge 58 commits intocastaway:jrobinson/configure-for-crossfrom Hugmeir:jrobinson/configure-for-cross
Hugmeir wants to merge 58 commits intocastaway:jrobinson/configure-for-crossfrom
Hugmeir:jrobinson/configure-for-cross
Conversation
…env LD_LIBRARY_PATH=...
This is primarily to get the tests working. open($fh, undef) calls
PerlIO_tmpfile(), which requires either /tmp to exist or $ENV{TMPDIR}
to be set. In Android, neither of those is true.
A possible fix would be to have PerlIO_tmpfile() behave like File::Temp
and just try the cwd; the "real" fix would require calling java
at startup to get Context.getCacheDir.
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's linker has some unusual behavior, in that it only uses the basename of a library in its cache. That means that, as far as dlopen() is concerned, the libraries for Hash::Util and List::Util, both of which are called Util.so, are the same. This commit teaches ExtUtils::MM_Unix about d_libname_unique. When defined, it signals MakeMaker to rename the .so files to something "unique" -- so for example, Hash/Util/Util.so becomes Hash/Util/Perl_Hash_Util.so.
If a platform has getppid() but not getconf and we're building a threaded perl, this file would've shown undef warnings, although no tests were affected.
… as undefined to avoid issues with threads
… is not available
This is generally a non-issue, however, if /tmp doesn't exist
and $ENV{TMPDIR} isn't set, ->tmpdir() used to return ".", which
broke the following pattern:
use File::Temp qw(tempdir);
use File::Spec;
my $tmpdir = tempdir(CLEANUP => 1);
chdir $tmpdir;
my $file = File::Spec->catfile($tmpdir, "foo");
open my $fh, ">", $file or die $!;
Because $tmpdir would be something like 'bfhskjf94589', and after
the chdir, the open() would've tried to open $tmpdir/$tmpdir/foo.
On Android, all locales are simply disabled, which broke the assumption that LC_TIME is always available.
…of "-dc" on Android
…oss-compiling and !-e $Config{cc}
…d make is not available
…lags when calling gzip
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The long awaited(?) pull request! I've tweaked things a bit so that commits that touch dist/, ext/, and cpan/ are at the "top" (the terminology escapes me), so you can merge just the important stuff and leave those out if it makes your life easier.
The very last commit touches Configure itself, so it definitely should not be merged. Also, I've left out the changes to make cross compilation work on a Mac host, because that's not quite working yet.