]> git.vpit.fr Git - perl/modules/autovivification.git/commitdiff
Protect against d_cplusplus perls
authorVincent Pit <perl@profvince.com>
Mon, 21 Dec 2015 14:58:25 +0000 (15:58 +0100)
committerVincent Pit <perl@profvince.com>
Mon, 31 Jul 2017 15:49:28 +0000 (17:49 +0200)
It's only a matter of time before someone uses this in the wild.

Makefile.PL

index 51fa2c8db470c44613f263b213405d317b2379ef..1a7a80b1d769417172a246b0083c6d5ab9c21544 100644 (file)
@@ -6,6 +6,28 @@ 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;
 my %macro;