]> git.vpit.fr Git - perl/modules/re-engine-Plugin.git/commitdiff
Protect against d_cplusplus perls
authorVincent Pit <perl@profvince.com>
Mon, 21 Dec 2015 15:39:15 +0000 (16:39 +0100)
committerVincent Pit <perl@profvince.com>
Mon, 21 Dec 2015 15:54:38 +0000 (16:54 +0100)
It's only a matter of time before someone uses this in the wild.

Makefile.PL

index 53397f990096c0a32633bce616c78ed08ade9ee6..f82c8e507d1bfece6affc034efb0234a3841b38f 100644 (file)
@@ -4,6 +4,30 @@ use strict;
 use warnings;
 use ExtUtils::MakeMaker;
 
+use Config;
+
+if ($Config{d_cplusplus}) {
+ print STDERR <<'FAILPLUSPLUS';
+Configuration aborted: C++ compilers are not supported
+
+    Your perl has been built with a C++ compiler, which is then handed to
+    XS extensions as if it were a proper C compiler. This extension is
+    written in C, and naturally only supports C compilers, so it cannot be
+    built with your perl.
+
+    Note that building perl with a C++ compiler is only supposed to be done
+    by core developers in order to check that the perl headers can be
+    included from C++ code. Its use in the wild is not supported by the
+    perl5 porters. If your vendor has built its perl binary with a C++
+    compiler, please consider reporting this issue to them.
+
+    This text will be displayed 10 seconds, and then the configuration
+    script will exit.
+FAILPLUSPLUS
+ sleep 10;
+ exit 0;
+}
+
 my @DEFINES;
 
 # Fork emulation got "fixed" in 5.10.1