Enable USE_QUADMATH builds on Windows #18465
Merged
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.
This PR enables building of perl with USE_QUADMATH on MS Windows using (32-bit and 64-bit) mingw-w64 ports of gcc.
Unforunately, having it smoked is probably not going to prove much, and the same can be said of the CI testing that I expect this PR to initiate.
AFAIK there are currently no smokers set up to attempt a USE_QUADMATH build on Windows - the best that can be shown by smoking it is that these changes haven't broken pre-existing functionality.
I've run extensive testing locally which has established (to my satisfaction, at least) that no such "pre-existing functionality" has been altered.
Furthermore, that same extensive testing has shown that the USE_QUADMATH builds themselves are fine.
With both 'gmake' and 'dmake', I have built (with the files contained in this PR) the following configurations of perl:
MSWin32-x86-multi-thread
MSWin32-x86-multi-thread-ld
MSWin32-x86-multi-thread-quadmath
MSWin32-x86-multi-thread-64int
MSWin32-x86-multi-thread-64int-ld
MSWin32-x86-multi-thread-64int-quadmath
MSWin32-x64-multi-thread
MSWin32-x64-multi-thread-ld
MSWin32-x64-multi-thread-quadmath
For each of those (9 x 2 == 18) builds I ran (n|g)make, (n|g)make test, (n|g)make install, and (n|g)make distclean.
Everything was fine, except for the following caveat that applies only to the "MSWin32-x86-multi-thread-quadmath" configuration:
For this build (with both 'gmake' and 'dmake'), I get some Math::BigInt/BigFloat test failures. Those test failures are identical for both flavours of make.
I don't think this should be considered to be a blocker.
Firstly, it's not breaking any existing builds.
Secondly, this configuration has ivsize=4 and nvtype of __float128, which is a very rare configuration. (I doubt that there are any smokers for any system that test such a configuration. Right ?)
I don't see it as a configuration that will be highly favoured. (Far more likely that a selection of ivsize==8 will be desired when nvtype is set to __float128.)
Of course, I'll investigate this strange issue anyway - with an aim to fixing it with a separate PR, after this one has been merged into blead.
Cheers,
Rob