This is a live mirror of the Perl 5 development currently hosted at
7 years agoOptimisation for 'my $x; my $y;' -> 'my ($x, $y)'.
Matthew Horsfall [Thu, 9 Jan 2014 02:09:11 +0000 (21:09 -0500)]
Optimisation for 'my $x; my $y;' -> 'my ($x, $y)'.


  sub { my $x; my $y; return 1; }

Up to speed with:

  sub { my ($x, $y); return 1; }

7 years ago[perl #121104] avoid using a less sane find(1)
Tony Cook [Thu, 30 Jan 2014 00:13:41 +0000 (11:13 +1100)]
[perl #121104] avoid using a less sane find(1)

7 years agolocale.c: Fix failure to find UTF-8 locales
Karl Williamson [Wed, 29 Jan 2014 23:44:27 +0000 (16:44 -0700)]
locale.c: Fix failure to find UTF-8 locales

Commit 119ee68b changed the method to determine if a locale is a UTF-8
one to a method that was usable on more platforms, by using the C99 libc
function mbtowc().  I didn't realize that there needs to be a special
call to this function preceeding the main call to make sure it is in the
initial state.  This commit fixes that.

In looking at the results from several different platforms, I decided it
is best to use nl_langinfo() in preference to mbtowc() when available,
and only use mbtowc() if nl_langinfo doesn't exist on the platform or
fails to return a real result, which happens for some locales on Darwin.
This commit does that as well.

7 years agolib/locale.t: Better debug information
Karl Williamson [Wed, 29 Jan 2014 21:59:19 +0000 (14:59 -0700)]
lib/locale.t: Better debug information

This adds a couple of lines of information, and sorts some other output

7 years agoClarify op_free documentation
Matthew Horsfall (alh) [Wed, 29 Jan 2014 17:37:17 +0000 (12:37 -0500)]
Clarify op_free documentation

7 years agoregcomp.c: Process all POSIXes in [...] under /l
Karl Williamson [Wed, 29 Jan 2014 21:38:00 +0000 (14:38 -0700)]
regcomp.c: Process all POSIXes in [...] under /l

Commit 31f05a37 introduced a regression in which if you have something
like /[\s\d[:punct:]/, all but the final class were ignored.  This was
due to initialization happening every time through the loop, instead of
the first time needed.

7 years agoregcomp.c: White-space only
Karl Williamson [Wed, 29 Jan 2014 05:30:37 +0000 (22:30 -0700)]
regcomp.c: White-space only

Properly indent 9 lines.  This makes it easier to see the logic flaws to
be fixed in the next commits.

7 years agot/ find_locales() Don't destroy callers ENV
Karl Williamson [Wed, 29 Jan 2014 16:51:38 +0000 (09:51 -0700)]
t/ find_locales() Don't destroy callers ENV

This code was recently moved from lib/locale.t to a new file essentially
unchanged, so that it could be common code.  It deletes several
environment variables, such as PATH,  to avoid interference with going
out and looking at the locales.  In lib/locale.t, those environment
variables are not needed again, but that isn't true of all the callers.
The solution is simply to localize the removal.

This should fix [perl #121106], but there remain test failures there.

7 years agoremove redundancy in documentation of exec
Ricardo Signes [Wed, 29 Jan 2014 16:38:30 +0000 (11:38 -0500)]
remove redundancy in documentation of exec

exec's behavior is determined by the count of items in LIST, and
not by whether it's an array.

7 years agoupdate embed.fnc now op_null and op_free have docs
David Mitchell [Wed, 29 Jan 2014 14:22:11 +0000 (14:22 +0000)]
update embed.fnc now op_null and op_free have docs

7 years agoPATCH: [perl #121109] locales failing
Karl Williamson [Wed, 29 Jan 2014 02:04:24 +0000 (03:04 +0100)]
PATCH: [perl #121109] locales failing

This was due to a logic error in toFOLD_LC() introduced in
31f05a37c4e9c37a7263491f2fc0237d836e1a80.  It affected only the code
point at 0xB5 and shows up only in locales in which the character at that
code point is an uppercase letter.

7 years agoperldelta for Cow Tools
Father Chrysostomos [Thu, 23 Jan 2014 05:31:04 +0000 (21:31 -0800)]
perldelta for Cow Tools

I somehow missed this.

7 years agoop.c: fix grammar in apidocs
Father Chrysostomos [Wed, 29 Jan 2014 01:55:04 +0000 (17:55 -0800)]
op.c: fix grammar in apidocs

7 years agoFix crash with (??{undef *^R}) and (?{})
Father Chrysostomos [Wed, 29 Jan 2014 01:50:45 +0000 (17:50 -0800)]
Fix crash with (??{undef *^R}) and (?{})

$ ./perl -Ilib -e '"" =~ /(??{undef *^R;""})(?{42})/'
Segmentation fault: 11

This started crashing in 4b22688e5c.

What happens is that the undef frees the scalar pointed to by oreplsv
in regtry,  Then that scalar is reused for the regexp object created
from the return value of the ?? block.  sv_setsv(oreplsv,...) ends up
trying to set the IV slot of a regexp, overwriting the engine field
(sv_setsv probably needs an assertion).  Then later accesses crash
because r->engine is now a bad pointer.

(Though why it only started crashing in 4b22688e5c and not before I
have not figured out.)

The solution is for S_regtry to hang on to the SV with an extra refer-
ence count in case it gets freed.

7 years agodocument op_free and op_null
Daniel Dragan [Tue, 28 Jan 2014 07:32:57 +0000 (02:32 -0500)]
document op_free and op_null


Tony Cook: s/Neutralized/Neutralizes/

7 years agomktables: Refer to an actual commit number
Karl Williamson [Tue, 28 Jan 2014 06:06:46 +0000 (23:06 -0700)]
mktables: Refer to an actual commit number

7 years agoversion has files customized by 858cc5e3f0 and e2ca569edb
Steve Hay [Tue, 28 Jan 2014 13:56:30 +0000 (13:56 +0000)]
version has files customized by 858cc5e3f0 and e2ca569edb

Now logged in as #92536.

7 years agoExtUtils::MakeMaker has files customized by d59900f697 and 8aaffb9f45
Steve Hay [Tue, 28 Jan 2014 13:46:12 +0000 (13:46 +0000)]
ExtUtils::MakeMaker has files customized by d59900f697 and 8aaffb9f45

Now logged in as #92535.

7 years agoConfig::Perl::V has files customized by 0b39d4dc4a
Steve Hay [Tue, 28 Jan 2014 13:45:26 +0000 (13:45 +0000)]
Config::Perl::V has files customized by 0b39d4dc4a

Now logged in as #92534.

7 years agoUpdate autodie to CPAN version 2.23
Chris 'BinGOs' Williams [Tue, 28 Jan 2014 09:19:51 +0000 (09:19 +0000)]
Update autodie to CPAN version 2.23


2.23      2014-01-27 13:50:55EST+1100 Australia/Melbourne

        * TEST / BUGFIX: Improved testing support on Android
          and Blackberry devices. (GH #44, thanks to

        * TEST / INTERNAL / TRAVIS: Various non-code
          tweaks to make travis-ci more happy with testing

        * BUGFIX: autodie no longer weakens strict by allowing
          undeclared variables with the same name as built-ins.
          (RT #74246, thanks to Neils Thykier and Father

        * BUGFIX: `use autodie qw( foo ! foo);` now correctly
          insists that we have hints for foo. (Thanks Niels Thykier)

        * INTERNAL: Improved benchmarking code, thanks to
          Niels Thykier.

7 years agoregcomp.c: Change a variable and flag bit names
Karl Williamson [Tue, 28 Jan 2014 05:42:25 +0000 (22:42 -0700)]
regcomp.c: Change a variable and flag bit names

The meaning of these was expanded two commits ago, so update the name to
reflect this, to prevent future confusion

7 years agoWhite-space, comments only
Karl Williamson [Tue, 28 Jan 2014 05:30:29 +0000 (22:30 -0700)]
White-space, comments only

This mostly indents and outdents base on blocks added or removed by the
previous commit.  But there are a few comment changes and vertical
alignment of macro backslash continuation characters, and other
white-space changes

7 years agoWork properly under UTF-8 LC_CTYPE locales
Karl Williamson [Mon, 27 Jan 2014 22:35:00 +0000 (15:35 -0700)]
Work properly under UTF-8 LC_CTYPE locales

This large (sorry, I couldn't figure out how to meaningfully split it
up) commit causes Perl to fully support LC_CTYPE operations (case
changing, character classification) in UTF-8 locales.

As a side effect it resolves [perl #56820].

The basics are easy, but there were a lot of details, and one
troublesome edge case discussed below.

What essentially happens is that when the locale is changed to a UTF-8
one, a global variable is set TRUE (FALSE when changed to a non-UTF-8
locale).  Within the scope of 'use locale', this variable is checked,
and if TRUE, the code that Perl uses for non-locale behavior is used
instead of the code for locale behavior.  Since Perl's internal
representation is UTF-8, we get UTF-8 behavior for a UTF-8 locale.

More work had to be done for regular expressions.  There are three

1) The character classes \w, [[:punct:]] needed no extra work, as
the changes fall out from the base work.

2) Strings that are to be matched case-insensitively.  These form
EXACTFL regops (nodes).  Notice that if such a string contains only
characters above-Latin1 that match only themselves, that the node can be
downgraded to an EXACT-only node, which presents better optimization
possibilities, as we now have a fixed string known at compile time to be
required to be in the target string to match.  Similarly if all
characters in the string match only other above-Latin1 characters
case-insensitively, the node can be downgraded to a regular EXACTFU node
(match, folding, using Unicode, not locale, rules).  The code changes
for this could be done without accepting UTF-8 locales fully, but there
were edge cases which needed to be handled differently if I stopped
there, so I continued on.

In an EXACTFL node, all such characters are now folded at compile time
(just as before this commit), while the other characters whose folds are
locale-dependent are left unfolded.  This means that they have to be
folded at execution time based on the locale in effect at the moment.
Again, this isn't a change from before.  The difference is that now some
of the folds that need to be done at execution time (in regexec) are
potentially multi-char.  Some of the code in regexec was trivial to
extend to account for this because of existing infrastructure, but the
part dealing with regex quantifiers, had to have more work.

Also the code that joins EXACTish nodes together had to be expanded to
account for the possibility of multi-character folds within locale
handling.  This was fairly easy, because it already has infrastructure
to handle these under somewhat different circumstances.

3) In bracketed character classes, represented by ANYOF nodes, a new
inversion list was created giving the characters that should be matched
by this node when the runtime locale is UTF-8.  The list is ignored
except under that circumstance.  To do this, I created a new ANYOF type
which has an extra SV for the inversion list.

The edge case that caused the most difficulty is folding involving the
MICRO SIGN, U+00B5.  It folds to the GREEK SMALL LETTER MU, as does the
GREEK CAPITAL LETTER MU.  The MICRO SIGN is the only 0-255 range
character that folds to outside that range.  The issue is that it
doesn't naturally fall out that it will match the CAP MU.  If we let the
CAP MU fold to the samll mu at compile time (which it can because both
are above-Latin1 and so the fold is the same no matter what locale is in
effect), it could appear that the regnode can be downgraded away from
EXACTFL to EXACTFU, but doing so would cause the MICRO SIGN to not case
insensitvely match the CAP MU.  This could be special cased in regcomp
and regexec, but I wanted to avoid that.  Instead the mktables tables
are set up to include the CAP MU as a character whose presence forbids
the downgrading, so the special casing is in mktables, and not in the C

7 years agoRename an internal flag
Karl Williamson [Fri, 24 Jan 2014 17:56:35 +0000 (10:56 -0700)]
Rename an internal flag

The UTF8 in the name is kind of misleading, and would be more misleading
after future commits make UTF8 locales special.

7 years agoregcomp.c: Avoid calling heavy duty functions when possible
Karl Williamson [Fri, 24 Jan 2014 03:09:43 +0000 (20:09 -0700)]
regcomp.c: Avoid calling heavy duty functions when possible

This code calls the general purpose functions to fold and convert to
utf8.  These can be avoided for many frequently used code points.

7 years agoregcomp.c: Nit in comments
Karl Williamson [Fri, 24 Jan 2014 02:56:51 +0000 (19:56 -0700)]
regcomp.c: Nit in comments

7 years agoregcomp.c: Swap two else clauses for clarity.
Karl Williamson [Fri, 24 Jan 2014 02:50:12 +0000 (19:50 -0700)]
regcomp.c: Swap two else clauses for clarity.

This makes one clause mostly positive tests, instead of mostly negative
tests; using positives is easier to understand.

7 years agoregen pod issues
Father Chrysostomos [Tue, 28 Jan 2014 04:14:00 +0000 (20:14 -0800)]
regen pod issues

7 years agoIncrease $B::Deparse::VERSION to 1.25
Father Chrysostomos [Tue, 28 Jan 2014 04:09:19 +0000 (20:09 -0800)]
Increase $B::Deparse::VERSION to 1.25

7 years ago[perl #121050] Teach B::Deparse about prototype whitespace
Father Chrysostomos [Tue, 28 Jan 2014 02:07:45 +0000 (18:07 -0800)]
[perl #121050] Teach B::Deparse about prototype whitespace

It has been hanging or unnecessarily using & since commit d16269d835
caused spaces to be preserved in the prototype and stripped when
applied during sub call compilation.  That commit did not update
B::Deparse accordingly.

7 years agoPATCH: Bump Locale-Codes from 3.28 to 3.29
Sullivan Beck [Mon, 27 Jan 2014 20:07:39 +0000 (15:07 -0500)]
PATCH: Bump Locale-Codes from 3.28 to 3.29

I just released Locale-Codes-3.29 which contains the core modules
Locale::Country, Locale::Language, and Locale::Currency.  The patch is
attached here.


The core modules Locale::Country, Locale::Language, and Locale::Currency
(all part of the Locale-Codes distribution) should be updated on a
regular basis. They contain "codes" from various internet standards
which change over time.

I plan on releasing new versions at 4 times a year to keep the codes
up-to-date. At this point, I'm not planning on any significant code
changes (other than bug fixes), so the only significant changes between
releases should be to update the codes.

Signed-off-by: Chris 'BinGOs' Williams <>
7 years agoTaint more operands with case changes
Karl Williamson [Mon, 27 Jan 2014 17:42:28 +0000 (10:42 -0700)]
Taint more operands with case changes

 The documentation says that Perl taints certain operations when subject
 to locale rules, such as lc() and ucfirst().  Prior to this commit
 there were exceptions when the operand to these functions contained no
 characters whose case change actually varied depending on the locale,
 for example the empty string or above-Latin1 code points.  Changing to
 conform to the documentation simplifies the core code, and yields more
 consistent results.

7 years agofold_grind.t: Use LC_CTYPE, not LC_ALL
Karl Williamson [Fri, 24 Jan 2014 21:35:37 +0000 (14:35 -0700)]
fold_grind.t: Use LC_CTYPE, not LC_ALL

We are testing here just LC_CTYPE, so is better to use just that

7 years agoAvoid unnecessary malformed checking
Karl Williamson [Fri, 24 Jan 2014 18:42:19 +0000 (11:42 -0700)]
Avoid unnecessary malformed checking

regen/ can create macros for use where we need to worry
about the possibility of malformed UTF-8, and for where we don't.  In
the case of looking at regex patterns, the Perl core has complete
control over generating them, and hence isn't generally going to create
too short a buffer;  if it does, it's a bug that will show up and get
fixed.  This commit changes to generate and use the faster macros that
don't do bounds checking.

7 years agoregen/ Don't test UV >= 0
Karl Williamson [Sat, 25 Jan 2014 23:53:24 +0000 (16:53 -0700)]
regen/ Don't test UV >= 0

An unsigned must always be >= 0, and generating a test for that can lead
to a compiler warning, even if it gets optimized out.  The input to the
macros generated by this are supposed to be UV.  This commit suppresses
any >= 0 test.

7 years agoregen/ Fix warning
Karl Williamson [Fri, 24 Jan 2014 04:46:17 +0000 (21:46 -0700)]
regen/ Fix warning

wrap() is already defined by the regen infrastructure; no need to do so
again, and get warning if we persist in doing so.

7 years agoMove an inversion list generation to mktables
Karl Williamson [Fri, 24 Jan 2014 03:34:15 +0000 (20:34 -0700)]
Move an inversion list generation to mktables

Prior to this patch, this was in regen/, but future
commits will want it to also be used by the header generated by
regen/, so use a common source so the logic doesn't have
to be duplicated.

7 years agoRegen porting/known_pod_issues.dat
Karl Williamson [Mon, 27 Jan 2014 17:28:46 +0000 (10:28 -0700)]
Regen porting/known_pod_issues.dat

This is to acknowledge the too-long verbatim lines in perlandroid,
which look to me to be better left long

7 years agoMove more locale code to t/
Karl Williamson [Fri, 24 Jan 2014 20:58:13 +0000 (13:58 -0700)]
Move more locale code to t/

This trivial code to determine if a locale is a utf8 one or not is
currently used in just one place, but future commits will use it in
others, and will make it non-trivial, and non-obvious.

7 years agoAndroid support
Brian Fraser [Sun, 26 Jan 2014 17:44:36 +0000 (14:44 -0300)]
Android support

This merge introduces Android support for Perl, for all three currently
available architectures (ARM, MIPS, x86), either through native builds
or cross-compilation (from x86_64 and x86 hosts).

7 years agoperldelta for Android
Brian Fraser [Sun, 26 Jan 2014 04:17:03 +0000 (01:17 -0300)]
perldelta for Android

Plus an entry in perlport

7 years agoAndroid hints: run-adb-shell was mishandling '\0'
Brian Fraser [Sun, 26 Jan 2014 04:12:45 +0000 (01:12 -0300)]
Android hints: run-adb-shell was mishandling '\0'

That's literally '\0', all four characters, not a null.  Previously, due to
mistakenly passing things through the shell twice, it turned '\0' into an
actual null, and that screwed up the test for fflush(NULL)

7 years agoConfigure: Fix the fflush(NULL) test in cross builds
Brian Fraser [Sun, 26 Jan 2014 04:06:40 +0000 (01:06 -0300)]
Configure: Fix the fflush(NULL) test in cross builds

Second attempt at this. This is less portable than the previous
version, since it assumes that the target system will have a cat, but unlike
the previous version this now actually works.

7 years minor wording fixups
Brian Fraser [Sat, 25 Jan 2014 04:54:07 +0000 (05:54 +0100)] minor wording fixups

7 years agoreentr.c: Handle systems without getpwent
Brian Fraser [Wed, 22 Jan 2014 13:17:53 +0000 (10:17 -0300)]
reentr.c: Handle systems without getpwent

Namely, Android.

7 years agoExtUtils::ParseXS: Fix tests for native android builds
Brian Fraser [Tue, 21 Jan 2014 17:09:58 +0000 (14:09 -0300)]
ExtUtils::ParseXS: Fix tests for native android builds

7 years agoAUTHORS and MANIFEST for the CBuilder Android patch
Brian Fraser [Tue, 21 Jan 2014 18:22:58 +0000 (15:22 -0300)]
AUTHORS and MANIFEST for the CBuilder Android patch

7 years agoUp the version of ExtUtils::CBuilder
Brian Fraser [Sun, 26 Jan 2014 16:07:49 +0000 (13:07 -0300)]
Up the version of ExtUtils::CBuilder

7 years agoCBuilder, android: Fix the useshrplib check
Brian Fraser [Tue, 21 Jan 2014 16:15:56 +0000 (13:15 -0300)]
CBuilder, android: Fix the useshrplib check

7 years agoExtUtils::CBuilder: Android with useshrplib needs -lperl
Piotr Roszatycki [Wed, 15 Jan 2014 22:34:57 +0000 (23:34 +0100)]
ExtUtils::CBuilder: Android with useshrplib needs -lperl

7 years agopod fixups on
Brian Fraser [Tue, 21 Jan 2014 18:23:12 +0000 (15:23 -0300)]
pod fixups on

7 years Notes about cross-compiling from a x86 host
Brian Fraser [Mon, 20 Jan 2014 15:54:04 +0000 (12:54 -0300)] Notes about cross-compiling from a x86 host

7 years Update for native builds
Brian Fraser [Sun, 19 Jan 2014 19:17:45 +0000 (16:17 -0300)] Update for native builds

7 years agoAdded
Brian Fraser [Sat, 9 Nov 2013 19:31:34 +0000 (16:31 -0300)]

7 years Handle native android builds better
Brian Fraser [Mon, 13 Jan 2014 05:31:18 +0000 (02:31 -0300)] Handle native android builds better

7 years agoext/POSIX/t/sysconf.t: Skip testing pathconf with _PC_LINK_MAX on android
Brian Fraser [Fri, 26 Apr 2013 07:16:19 +0000 (04:16 -0300)]
ext/POSIX/t/sysconf.t: Skip testing pathconf with _PC_LINK_MAX on android

7 years agoIO::Socket::INET: Handle getprotobyn{ame,umber} not being available
Brian Fraser [Mon, 29 Apr 2013 04:08:13 +0000 (01:08 -0300)]
IO::Socket::INET: Handle getprotobyn{ame,umber} not being available

7 years agoNet::Ping: Handle getprotobyn{ame,umber} not being available
Brian Fraser [Mon, 29 Apr 2013 03:23:56 +0000 (00:23 -0300)]
Net::Ping: Handle getprotobyn{ame,umber} not being available

7 years agodist/IO/t/io_pipe.t: Work around android only having an inbuilt echo
Brian Fraser [Fri, 26 Apr 2013 01:57:01 +0000 (22:57 -0300)]
dist/IO/t/io_pipe.t: Work around android only having an inbuilt echo

7 years agot/op/sigdispatch.t: SKIP, not TODO
Brian Fraser [Tue, 12 Nov 2013 06:19:17 +0000 (03:19 -0300)]
t/op/sigdispatch.t: SKIP, not TODO

7 years agot/io/fs.t: Handle Android's pwd being a shell builtin
Brian Fraser [Wed, 13 Nov 2013 02:59:15 +0000 (23:59 -0300)]
t/io/fs.t: Handle Android's pwd being a shell builtin

7 years agot/op/filetest.t: On Android, don't try checking if ln exists with which
Brian Fraser [Mon, 12 Aug 2013 00:00:26 +0000 (21:00 -0300)]
t/op/filetest.t: On Android, don't try checking if ln exists with which

Assume that it does -- even the most barebone of toolbox binaries
provides ln, but not which.

7 years agot/op/sigdispatch.t: Increase timeout to avoid issues on slow processors
Brian Fraser [Thu, 25 Apr 2013 16:46:09 +0000 (13:46 -0300)]
t/op/sigdispatch.t: Increase timeout to avoid issues on slow processors

7 years agot/op/stat.t: use 'ls -l' on android, even if d_readlink is defined
Brian Fraser [Wed, 24 Apr 2013 22:58:33 +0000 (19:58 -0300)]
t/op/stat.t: use 'ls -l' on android, even if d_readlink is defined

7 years agot/op/fork.t: Up the sleep time in a test to avoid timing issues
Brian Fraser [Wed, 24 Apr 2013 22:08:21 +0000 (19:08 -0300)]
t/op/fork.t: Up the sleep time in a test to avoid timing issues

7 years agot/op/fork.t: Work around android only having an inbuilt echo
Brian Fraser [Wed, 24 Apr 2013 22:07:44 +0000 (19:07 -0300)]
t/op/fork.t: Work around android only having an inbuilt echo

7 years agot/op/magic.t: Skip tests that use env on Android
Brian Fraser [Tue, 12 Nov 2013 06:40:44 +0000 (03:40 -0300)]
t/op/magic.t: Skip tests that use env on Android

7 years agot/op/magic.t: Work around android only having an inbuilt pwd
Brian Fraser [Wed, 24 Apr 2013 05:28:12 +0000 (02:28 -0300)]
t/op/magic.t: Work around android only having an inbuilt pwd

7 years agot/op/incfilter.t: Work around android only having an inbuilt echo
Brian Fraser [Wed, 24 Apr 2013 04:09:42 +0000 (01:09 -0300)]
t/op/incfilter.t: Work around android only having an inbuilt echo

7 years agot/op/sigdispatch.t: TODO tests that don't work on some Android builds
Jess Robinson [Fri, 19 Apr 2013 11:08:34 +0000 (12:08 +0100)]
t/op/sigdispatch.t: TODO tests that don't work on some Android builds

7 years agot/op/magic.t: TODO tests that don't work on some cross-compile builds
Jess Robinson [Fri, 19 Apr 2013 11:08:34 +0000 (12:08 +0100)]
t/op/magic.t: TODO tests that don't work on some cross-compile builds

7 years agot/op/sprintf.t: Add Android to the list of skips for %.0g
Jess Robinson [Fri, 19 Apr 2013 11:08:34 +0000 (12:08 +0100)]
t/op/sprintf.t: Add Android to the list of skips for %.0g

7 years agoAdjust fs test to try more ways of getting the CWD. Expire if we still didn't get it.
Jess Robinson [Fri, 19 Apr 2013 11:02:19 +0000 (12:02 +0100)]
Adjust fs test to try more ways of getting the CWD. Expire if we still didn't get it.

7 years agopod/perlport.pod: Note which functions are not available on Android
Brian Fraser [Sat, 18 May 2013 00:55:08 +0000 (21:55 -0300)]
pod/perlport.pod: Note which functions are not available on Android

7 years agoConfigure: If cross-compiling to linux, pick the proper hints file
Brian Fraser [Fri, 15 Nov 2013 06:39:02 +0000 (03:39 -0300)]
Configure: If cross-compiling to linux, pick the proper hints file

Something like arm-linux-gnueabihf -- which is what the raspberry pi
gets as its targetarch -- is really just plain Linux, so set osname
to that and load up the hints file.

7 years agoConfigure: added special osname checks for nto and android
Brian Fraser [Fri, 11 Oct 2013 19:55:08 +0000 (16:55 -0300)]
Configure: added special osname checks for nto and android

When cross-compiling, for android, anything matching *linux-android*
gets osname=linux-androideabi.  This is to allow compiling to
all three android variants (x86, arm, mips).
For QNX Neutrino, anything matching nto*|*-nto-* gets osname=nto. In
the future, that might change to 'qnx', but right now we don't want
it to pick up the hints file.
For anything else, keep the current behavior, which is to set osname
to the output of `echo $targetarch|sed 's,^[^-]*-,,'`

7 years agoAndroid hints: Set d_csh to undef in cross builds
Brian Fraser [Thu, 23 Jan 2014 22:41:22 +0000 (23:41 +0100)]
Android hints: Set d_csh to undef in cross builds

7 years agoAndroid hints: load the linux hints to get those defaults
Brian Fraser [Thu, 23 Jan 2014 14:13:34 +0000 (15:13 +0100)]
Android hints: load the linux hints to get those defaults

7 years agoAndroid hints: Clean up some files if cross-compiling with adb
Brian Fraser [Wed, 22 Jan 2014 19:45:10 +0000 (16:45 -0300)]
Android hints: Clean up some files if cross-compiling with adb

7 years agoAndroid hints: In native builds, add -L/system/lib to ldflags
Brian Fraser [Wed, 22 Jan 2014 11:23:00 +0000 (08:23 -0300)]
Android hints: In native builds, add -L/system/lib to ldflags

This is just a safety net against the linker being weird.

7 years agoConfigure, Android hints: Changes to allow native builds
Brian Fraser [Mon, 13 Jan 2014 02:56:47 +0000 (23:56 -0300)]
Configure, Android hints: Changes to allow native builds

7 years agoAndroid hints: When Configure finishes, turn $^O into 'android'
Brian Fraser [Mon, 13 Jan 2014 03:10:32 +0000 (00:10 -0300)]
Android hints: When Configure finishes, turn $^O into 'android'

During Configure, we want it to be linux-android, so that
it'll also go through all of the linux checks.

7 years agoAndroid hints: Add m to libswanted
Brian Fraser [Mon, 13 Jan 2014 00:10:11 +0000 (21:10 -0300)]
Android hints: Add m to libswanted

7 years agoAndroid hints: Set osvers to getprop
Brian Fraser [Sun, 12 Jan 2014 04:32:24 +0000 (01:32 -0300)]
Android hints: Set osvers to getprop

7 years agoMake compiling with adb work again
Brian Fraser [Fri, 25 Oct 2013 14:08:05 +0000 (11:08 -0300)]
Make compiling with adb work again

7 years agoAndroid hints: Only use adb if $targetrun is set to adb
Brian Fraser [Sat, 12 Oct 2013 02:53:46 +0000 (23:53 -0300)]
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.

7 years agoAndroid hints: Only set userelocatableinc if it doesn't have a value
Brian Fraser [Wed, 21 Aug 2013 03:38:14 +0000 (00:38 -0300)]
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.

7 years agohints/ If the host OS is darwin, set firstmakefile to GNUmakefile
Brian Fraser [Sun, 11 Aug 2013 21:43:17 +0000 (18:43 -0300)]
hints/ If the host OS is darwin, set firstmakefile to GNUmakefile

7 years agohints/ use $chmod instead of plain chmod
Brian Fraser [Sun, 11 Aug 2013 21:38:05 +0000 (18:38 -0300)]
hints/ use $chmod instead of plain chmod

7 years agohints/ use $cat instead of plain cat
Brian Fraser [Sun, 11 Aug 2013 21:37:35 +0000 (18:37 -0300)]
hints/ use $cat instead of plain cat

7 years agohints/ adb takes care of creating the target dir on the target
Brian Fraser [Sun, 11 Aug 2013 21:30:18 +0000 (18:30 -0300)]
hints/ adb takes care of creating the target dir on the target

7 years agohints/ sed might not understand "\r", use $tr instead
Brian Fraser [Sun, 11 Aug 2013 20:49:13 +0000 (17:49 -0300)]
hints/ sed might not understand "\r", use $tr instead

7 years agohints/ Rather than relaying on adb, save the exit status in...
Brian Fraser [Fri, 9 Aug 2013 09:39:49 +0000 (06:39 -0300)]
hints/ Rather than relaying on adb, save the exit status in a file and then copy it over

7 years agohints/ getservent_r() is a partial stub, mark it as undefined...
Brian Fraser [Sat, 18 May 2013 02:14:49 +0000 (23:14 -0300)]
hints/ getservent_r() is a partial stub, mark it as undefined to avoid issues with threads

7 years agoandroid hints: Always define d_libname_unique
Brian Fraser [Wed, 15 May 2013 12:09:58 +0000 (09:09 -0300)]
android hints: Always define d_libname_unique

7 years agoAndroid hints: Detect stub functions and mark them as undefined.
Brian Fraser [Sun, 28 Apr 2013 00:01:44 +0000 (21:01 -0300)]
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.

7 years agoCorrectly quote result from adb, otherwise multiline responses breal (eg signal_cmd)
Jess Robinson [Sat, 11 May 2013 13:37:39 +0000 (14:37 +0100)]
Correctly quote result from adb, otherwise multiline responses breal (eg signal_cmd)

7 years agoAndroid hints, run-ssh: Make sure that the stdout of commands run from Configure...
Jess Robinson [Mon, 29 Apr 2013 08:54:35 +0000 (09:54 +0100)]
Android hints, run-ssh: Make sure that the stdout of commands run from Configure and Makefile on remote hosts is transfered back correctly

7 years agoNo locales in Android, just set the lot to undef
Jess Robinson [Fri, 19 Apr 2013 11:18:46 +0000 (12:18 +0100)]
No locales in Android, just set the lot to undef

7 years agoAndroid hints, run-adb-shell: Handle the -env switch
Jess Robinson [Fri, 19 Apr 2013 11:00:14 +0000 (12:00 +0100)]
Android hints, run-adb-shell: Handle the -env switch

Currently, this is used during 'make test' to specify LD_LIBRARY_PATH