| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Normalize depends on mktables's output. Mktables is a very long serial CPU
intensive build product. No other modules except Normalize depend on
mktables. Normalize XS module must be split out from all other XS modules
to fill CPU cores with parallel work, so that the 2 longest running
tagets, Mktables and all XS modules, run in parallel instead of 1 after
another. Since Normalize was hardcoded as a dynamic module, in an
ALL_STATIC build, Normalize was build twice, once as a static in the
big Extensions_static target, and once as a dynamic module, a race
happened if a parallel build was done, and if the Extensions_static target
got around to trying to build Normalize static, before by chance Normalize
dyn was build, Normalize static failed. This can be demostrated by cleaning
the src tree and building each target individually explicitly. Fix the race
by creating a Normalize static and dynamic target and dropout the deps
depending on if its ALL_STATIC or not. Also the now "big" Extensions_static
target when doing an ALL_STATIC build also failed because the general XS
modules that need lib.pm to build didn't have lib.pm available when their
Makefile.PL'es were run. For example cpan/Compress-Raw-Bzip2 needs lib.pm
to build. So separate out lib.pm from Dynaloader target so both dyn
extensions and static exts have lib.pm available. Technically, static exts
dont need lib.pm unless its ALL_STATIC, since for dyn win32 perl Win32CORE
is the only static module, but lib.pm is relativly fast and easy and low
dep to build so build it anyways for static ext target in non-ALL_STATIC
mode rather than special case the dep between ALL_STATIC and
non-ALL_STATIC.
-re.pm doesn't need lib.pm
-normalize doesn't need lib.pm
Reverts "Fix static builds with MinGW" commit 9999704e7ac and adds fixes.
This is a follow on to [perl #132992].
To reduce the diff-ness between the dmake and gmake mkfs. Make the
distclean identical. For dmkf, dont delete Storable.pm twice. And for gmfk
add Amiga dir deletion since lib_cleanup.pl requires it for dmkf but the
original day 1 of gmkf in commit 342634f3c8 "kmx's original GNUmakefile"
never had the Amiga line, but that day 1 commit also never added
GNUmakefile to lib_cleanup.pl the way makefile.mk was already added and
chked for its dir clean list. So add GNUmakefile to be chked by
lib_cleanup.pl the way the other 2 win32 mkfs are checked. In gmfk move
Storable.pm line to match dmfk which is more psuedo-alpha sorted. Also
fix the Test vs Test2 typo.
Some more text is available in the ticket associated with this patch.
|
|
|
|
|
|
|
|
|
| |
Also, check we can use Storable before trying to probe recursion
limits.
As bulk88 points out, Win32 may return 0 from system even if the
probe crashes, so instead have the probe output some text after the
recursion check and test that the text is output.
|
|
|
|
| |
As per discussion in RT # 132992
|
|
|
|
| |
ALL_STATIC required BUILD_STATIC set but that was not documented.
|
| |
|
|
|
|
|
| |
Move Extensions_normalize target before Extensions
target to satisfy dependencies.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
I thought I had done this earlier, but testing on Windows demonstrated
that I hadn't.
While at it, move the details in the docs for Perl_langinfo to the
module's pod.
This doesn't follow the paradigm for putting the Configure stuff in all
the related configure files, but I saw no point to doing so. If you are
reading this because I was wrong, feel free to ticket it or fix it.
|
| |
|
| |
|
|
|
|
| |
Win32 port of the changes in 8175eebc32
|
|
|
|
|
| |
Remove circular dependency in makefile.mk, following the same pattern as in
GNUmakefile.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously this worked by calculating the limits and then rebuilding
Storable.so, this meant Storable.so was built twice meaning a new make
would then rebuild its dependencies.
This was also a hard limit, so if Storable's user knew the available
stack space changed they would need to rebuild Storable to adapt.
This also allows for successful static Storable builds.
I also updated the stacksize tool to prevent popping up segfault error
messages at the user on Win32.
Since I was still seeing test failures in recurse.t on a variety of
platforms, I made the default limit calculations even more
conservative.
|
|
|
|
|
|
|
|
|
|
|
| |
stacksize needs to run perl, not miniperl,
but the chdir broke $^X (a relative path).
Quote $^X only with whitespace.
Set LD_LIBRARY_PATH with a shared libperl.
Support a --core argument to stacksize.
Probe it twice.
(cherry picked from commit 0df5d8e463b9b5cfe14f9c235191fd3e5e4013a4)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
redo building Storable after perl was built,
with the probed stacksize.h values.
We can only produce stacksize.h with a PERL_EXE
so we have to do it twice.
TonyC:
- this fixes the stack overflow iff the rebuild_storable target runs
after storable is built, but there's nothing preventing
lib/auto/Storable/Storable.so being built *after* rebuild_storable
in a parallel build at this point.
- It's also possible for both the lib/...Storable.so target and the
rebuild_storable target to run at the same time, possibly
corrupting the generated binary (check 4d106cc5 for ext/SDBM_File
for example)
Conflicts:
.git-rr-cache
pod/perlcdelta.pod
win32/Makefile.ce
|
|
|
|
|
| |
Fixes the Math-MPFR-4.0.0 build on 5.27.7 onwards.
See: https://www.nntp.perl.org/group/perl.perl5.porters/2018/01/msg248964.html
|
| |
|
| |
|
|
|
|
|
| |
This is another file descriptor creating function that's needed as an
O_CLOEXEC-handling variant of an existing function.
|
|
|
|
|
| |
These will shortly be used to implement I/O operations that create file
descriptors with the FD_CLOEXEC flag set atomically.
|
|
|
|
|
|
| |
The new tests in commit 503bc07b4b9e34ed04a725b2bc8faec1ae0f3be2
showed up platform differences in whether END blocks get run.
Set PERL_EXIT_DESTRUCT_END in all embeddings to make this consistent.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some platform-specific embeddings of perl were misusing the
return values from perl_parse() and perl_run(), in some cases
causing failure due to exit(0) combined with the recent changes
in commit 0301e899536a22752f40481d8a1d141b7a7dda82. Commit
d4a50999a5525c2681d59cae5fcd94f94ff897fd partially fixed a Windows
embedding. More fully fix that, along with NetWare and OS/2. Even in
embeddings with correct logic, stop using a variable named "exitstatus"
to hold the result of perl_parse() or perl_run(), to avoid misleading
people who copy the code.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
From #p5p
[18:12] < xenu> is it just me or is it impossible to build perl using visual c++?
[18:13] < xenu> it fails with 'NMAKE : fatal error U1077: '..\perl.exe' : return code '0x100'"
[18:14] < pink_mist> I'm pretty sure it ought to be possible
[18:14] < xenu> the funny part is that perl.exe built by msvc *always* exits with 255 exit code
[18:14] < xenu> even if you run it like this ..\perl.exe -e "print 1"
[18:14] < xenu> it will print '1' and terminate with exit code 255
[18:42] < xenu> Zefram: 0301e899536a22752f40481d8a1d141b7a7dda82 broke win32
[18:43] < xenu> basically the problem is than PerlRun in win32/perllib.c uses return value of perl_run() as a exit code
[19:08] < BinGOs> xenu: does 'exitstatus = perl_destruct(my_perl);' fix the issue?
[19:20] < xenu> BinGOs: yep
[19:20] < BinGOs> okay cool thanks for confirming.
[19:20] < BinGOs> I'll commit that now.
|
|
|
|
|
| |
This commit adapts and extends a patch from Marc-Philip
<marc-philip@die-werners.de> on perl #132484.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
C89 does not in fact define snprintf() or vsnprintf(), and we must therefore
probe for the existence of those functions before trying to use them.
khw++ for pointing out my earlier error.
This reverts part or all of each of the following commits:
13d66b05c6163c3514774d3d11da5f3950e97e98 Rely on C89 vsnprintf()
e791399041815a1a45cea3c7f277c7045b96e51b Rely on C89 snprintf()
adf7d503e55721c500f0bf66560b8f5df7966fe7 pod/perlhacktips.pod: remove some outdated portability notes
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit adapts and extends a patch from sisyphus1@optusnet.com.au on
perl #130447.
Note for the future: One of the MinGW/gcc developers has said that
explicitly defining __USE_MINGW_ANSI_STDIO in this way is not guaranteed
to work in the future, so we may have to pursue other options instead one
day: https://rt.perl.org/Ticket/Display.html?id=130447#txn-1461711
However, we already do this for "nvtype=long double" builds and it's
working fine so far, so it seems acceptable to allow the same thing for
"nvtype=double" builds for now.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Drop the use of the word "Version" so it works on non-English systems.
Instead, simply look for a number of the form X.Y (or X.Y.Z etc) with word
boundaries around it. Thus, we can find numbers like 12.00.8804 or
19.00.24213.1, but not accidentally pick up things like x86 or 1984-1998.
Also, drop the "--version" argument since it doesn't really exist and
causes warnings/errors to be output. A bare "cl" command suffices to get a
usage message including the version number to be output.
Finally, the Windows version detection can be similarly improved.
This fixes perl #132421.
|
|
|
|
|
| |
Reading errno can involve calling a function and indirecting through
its result, so cache the value of errno where possible. [perl #122096]
|
|
|
|
|
| |
The latter is much clearer as to what's going on, and the programmer and
program reader don't have to count characters.
|
|
|
|
|
|
|
| |
The new versions are much easier to comprehend.
There are several cases in vms.c where strEQ and strNE suffice, instead
of having to have a count parameter.
|
|
|
|
| |
The latter two are easier to read
|
|
|
|
| |
This requires a corresponding change in the metaconfig units.
|
|
|
|
| |
It's only needed on systems without C89 <string.h>, which we rely on anyway.
|
| |
|
|
|
|
| |
This requires a corresponding change in the metaconfig units.
|
|
|
|
| |
We rely on a C89 implementation anyway.
|
|
|
|
| |
This requires a corresponding change to the metaconfig units.
|
|
|
|
|
| |
All the information it contains can be gleaned more readily from C89
<limits.h> and <float.h>.
|
|
|
|
|
|
|
|
|
| |
I would like to be able to assume that we have long doubles, and therefore
that LDBL_DIG and friends are all defined too. But it seems that we may
still support some platforms which are otherwise C89, but don't have even
trivial long-double support; in particular, HP/UX 10 apparently uses a
struct of four uint32_t values as long double, but doesn't support other
bits, and confuses the Configure probe that looks for quadmath.
|
|
|
|
| |
This requires newer metaconfig units that also rely on C89 <float.h>.
|
|
|
|
| |
This requires newer metaconfig units that also rely on C89 <limits.h>.
|
|
|
|
|
|
| |
This needs a metaconfig change that defangs the standard unit for finding
strchr(), because that unit sees the uses of "index" and "rindex" (in files
like keywords.c and opcode.h) as indicators that it must be used instead.
|
| |
|
| |
|