summaryrefslogtreecommitdiff
path: root/win32
Commit message (Collapse)AuthorAgeFilesLines
* fix parallel ALL_STATIC Win32 buildDaniel Dragan2018-04-092-19/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* (perl #133009) handle the XP fallback after we're ready to writeTony Cook2018-04-022-4/+6
| | | | | | | | | 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.
* Maintain extralibs order for linkerSergey Aleynikov2018-03-291-3/+3
| | | | As per discussion in RT # 132992
* Fix ALL_STATIC builds with MinGWSergey Aleynikov2018-03-292-4/+4
| | | | ALL_STATIC required BUILD_STATIC set but that was not documented.
* Fix spelling in windows makefilesSergey Aleynikov2018-03-293-6/+6
|
* Fix static builds with MinGWSergey Aleynikov2018-03-292-2/+2
| | | | | Move Extensions_normalize target before Extensions target to satisfy dependencies.
* d_strchr is C89 and has been removed from ConfigureH.Merijn Brand2018-03-273-3/+0
|
* Bump the perl version in various places for 5.27.11Todd Rinaldo2018-03-203-3/+3
|
* New Perldelta for 5.27.11Todd Rinaldo2018-03-204-6/+10
|
* Actually make I18N::Langinfo avail on all platformsKarl Williamson2018-03-121-2/+1
| | | | | | | | | | | | 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.
* Bump versionreneeb2018-03-023-3/+3
|
* New Perldeltareneeb2018-03-024-6/+10
|
* (perl #127743) don't probe Storable limits so much (Win32 makefiles)Tony Cook2018-02-273-3/+3
| | | | Win32 port of the changes in 8175eebc32
* Fix gcc/dmake build on WindowsSteve Hay2018-02-161-4/+5
| | | | | Remove circular dependency in makefile.mk, following the same pattern as in GNUmakefile.
* (perl #127743) re-work recursion limit handlingTony Cook2018-02-083-10/+23
| | | | | | | | | | | | | | | | | | 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.
* Storable: various core fixups: $PERL,libpth,getcwdReini Urban2018-02-083-7/+3
| | | | | | | | | | | 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)
* Storable: core Makefile.SH supportReini Urban2018-02-083-4/+31
| | | | | | | | | | | | | | | | | | | | | | | | 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
* Define I_STDINT for gcc, and for VC++ 2010 onwardsSteve Hay2018-01-253-12/+16
| | | | | 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
* Bump the perl version in various places for 5.27.9Abigail2018-01-203-3/+3
|
* New perldelta for 5.27.9Abigail2018-01-204-6/+10
|
* configure probe for mkostemp()Zefram2017-12-223-0/+3
| | | | | This is another file descriptor creating function that's needed as an O_CLOEXEC-handling variant of an existing function.
* configure probes for accept4(), dup3(), pipe2()Zefram2017-12-223-0/+9
| | | | | These will shortly be used to implement I/O operations that create file descriptors with the FD_CLOEXEC flag set atomically.
* set PERL_EXIT_DESTRUCT_END in all embeddingsZefram2017-12-221-0/+1
| | | | | | 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.
* fix up faulty perl embeddingsZefram2017-12-211-5/+4
| | | | | | | | | | | | 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.
* Bump the perl version in various places for v5.27.8Chris 'BinGOs' Williams2017-12-203-3/+3
|
* New perldelta for v5.27.8Chris 'BinGOs' Williams2017-12-204-6/+10
|
* Resolve issue with Win32 caused by 0301e8995Chris 'BinGOs' Williams2017-12-201-1/+1
| | | | | | | | | | | | | | | | 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.
* Fix $Config{libpth} for x64 builds with VC++ earlier than 14.1 (VS2017)Steve Hay2017-11-283-0/+19
| | | | | This commit adapts and extends a patch from Marc-Philip <marc-philip@die-werners.de> on perl #132484.
* Bump the perl version in various places for 5.27.7Karen Etheridge2017-11-203-3/+3
|
* new perldelta for 5.27.7Karen Etheridge2017-11-204-6/+10
|
* Restore ability to build on platforms without snprintf()Aaron Crane2017-11-184-0/+26
| | | | | | | | | | | | | 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
* Provide option to build with -D__USE_MINGW_ANSI_STDIOSteve Hay2017-11-152-4/+23
| | | | | | | | | | | | | | 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.
* Improve cl version detectionSteve Hay2017-11-151-12/+7
| | | | | | | | | | | | | | | 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.
* avoid reading errno twice in a rowZefram2017-11-111-1/+2
| | | | | Reading errno can involve calling a function and indirecting through its result, so cache the value of errno where possible. [perl #122096]
* Change some strncmp(), etc. to strBEGINs()Karl Williamson2017-11-061-1/+1
| | | | | The latter is much clearer as to what's going on, and the programmer and program reader don't have to count characters.
* Convert strncmp into strnEQ, strnNEKarl Williamson2017-10-242-4/+4
| | | | | | | 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.
* Convert strcmp into strEQ, strNEKarl Williamson2017-10-241-1/+1
| | | | The latter two are easier to read
* Rely on C89 <string.h>Aaron Crane2017-10-216-21/+0
| | | | This requires a corresponding change in the metaconfig units.
* Don't attempt to use non-standard <memory.h>Aaron Crane2017-10-216-21/+0
| | | | It's only needed on systems without C89 <string.h>, which we rely on anyway.
* Rely on C89 <assert.h>Aaron Crane2017-10-216-21/+0
|
* Rely on C89 <math.h>Aaron Crane2017-10-216-21/+0
| | | | This requires a corresponding change in the metaconfig units.
* Don't attempt to define or use STANDARD_CAaron Crane2017-10-211-1/+0
| | | | We rely on a C89 implementation anyway.
* Rely on C89 strerror()Aaron Crane2017-10-216-42/+0
| | | | This requires a corresponding change to the metaconfig units.
* Don't try to use <values.h>Aaron Crane2017-10-216-27/+0
| | | | | All the information it contains can be gleaned more readily from C89 <limits.h> and <float.h>.
* Rely on C89 <float.h> defining DBL_DIGAaron Crane2017-10-213-24/+0
| | | | | | | | | 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.
* Rely on C89 <float.h>Aaron Crane2017-10-216-24/+0
| | | | This requires newer metaconfig units that also rely on C89 <float.h>.
* Rely on C89 <limits.h>Aaron Crane2017-10-216-24/+0
| | | | This requires newer metaconfig units that also rely on C89 <limits.h>.
* Rely on C89 strchr() and strrchr()Aaron Crane2017-10-213-36/+0
| | | | | | 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.
* Rely on C89 sprintf() return value semanticsAaron Crane2017-10-216-27/+0
|
* Rely on C89 <stddef.h>Aaron Crane2017-10-216-21/+0
|