summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xConfigure40
-rw-r--r--NetWare/config.wc1
-rw-r--r--Porting/Glossary5
-rw-r--r--Porting/config.sh1
-rw-r--r--Porting/config_H6
-rwxr-xr-xcflags.SH4
-rw-r--r--config_h.SH6
-rw-r--r--configure.com1
-rw-r--r--deb.c4
-rw-r--r--dump.c4
-rw-r--r--epoc/config.sh1
-rw-r--r--gv.c22
-rw-r--r--mathoms.c4
-rw-r--r--mg.c18
-rw-r--r--op.c64
-rw-r--r--opcode.h4
-rw-r--r--plan9/config.plan96
-rw-r--r--plan9/config_h.sample6
-rw-r--r--symbian/config.sh1
-rw-r--r--uconfig.h27
-rwxr-xr-xuconfig.sh1
-rw-r--r--win32/config.bc1
-rw-r--r--win32/config.ce1
-rw-r--r--win32/config.gc1
-rw-r--r--win32/config.vc1
-rw-r--r--win32/config.vc641
-rw-r--r--win32/config_H.bc6
-rw-r--r--win32/config_H.ce6
-rw-r--r--win32/config_H.gc6
-rw-r--r--win32/config_H.vc6
-rw-r--r--win32/config_H.vc646
31 files changed, 182 insertions, 79 deletions
diff --git a/Configure b/Configure
index c4621133e2..0e0970cd4f 100755
--- a/Configure
+++ b/Configure
@@ -373,6 +373,7 @@ d_void_closedir=''
d_cmsghdr_s=''
d_const=''
d_copysignl=''
+d_cplusplus=''
cryptlib=''
d_crypt=''
crypt_r_proto=''
@@ -7136,6 +7137,32 @@ $rm -f try try.* glibc.ver
set d_gnulibc
eval $setvar
+echo " "
+echo "Checking for C++..." >&4
+cat >try.c <<'EOCP'
+#include <stdio.h>
+int main(void)
+{
+#ifdef __cplusplus
+ printf("define\n");
+#else
+ printf("undef\n");
+#endif
+ return 0;
+}
+EOCP
+set try
+if eval $compile_ok && $run ./try > cplusplus; then
+ val=`$cat cplusplus`
+ echo "You are using a C++ compiler."
+else
+ val="$undef"
+ echo "You are not using a C++ compiler."
+fi
+$rm -f try try.* cplusplus
+set d_cplusplus
+eval $setvar
+
: see if nm is to be used to determine whether a symbol is defined or not
case "$usenm" in
'')
@@ -7585,10 +7612,20 @@ esac'
: see if dlopen exists
xxx_runnm="$runnm"
+xxx_ccflags="$ccflags"
runnm=false
+: with g++ one needs -shared to get is-in-libc to work for dlopen
+case "$gccversion" in
+'') ;;
+*) case "$d_cplusplus" in
+ "$define") ccflags="$ccflags -shared" ;;
+ esac
+ ;;
+esac
set dlopen d_dlopen
eval $inlibc
runnm="$xxx_runnm"
+ccflags="$xxx_ccflags"
: see if this is a unistd.h system
set unistd.h i_unistd
@@ -10845,7 +10882,7 @@ typedef struct spug { int drokk; } spug;
int main()
{
const char *foo;
- const spug y;
+ const spug y = { 0 };
}
EOCP
if $cc -c $ccflags const.c >/dev/null 2>&1 ; then
@@ -21328,6 +21365,7 @@ d_closedir='$d_closedir'
d_cmsghdr_s='$d_cmsghdr_s'
d_const='$d_const'
d_copysignl='$d_copysignl'
+d_cplusplus='$d_cplusplus'
d_crypt='$d_crypt'
d_crypt_r='$d_crypt_r'
d_csh='$d_csh'
diff --git a/NetWare/config.wc b/NetWare/config.wc
index 511ebf3f57..30c6e5dd96 100644
--- a/NetWare/config.wc
+++ b/NetWare/config.wc
@@ -124,6 +124,7 @@ d_closedir='define'
d_cmsghdr_s='undef'
d_const='define'
d_copysignl='undef'
+d_cplusplus='undef'
d_crypt='undef'
d_crypt_r='undef'
d_csh='undef'
diff --git a/Porting/Glossary b/Porting/Glossary
index 43723bb230..9e9f9e1e07 100644
--- a/Porting/Glossary
+++ b/Porting/Glossary
@@ -534,6 +534,11 @@ d_const (d_const.U):
indicates to the C program that this C compiler knows about the
const type.
+d_cplusplus (d_cplusplus.U):
+ This variable conditionally defines the USE_CPLUSPLUS symbol, which
+ indicates that a C++ compiler was used to compiled Perl and will be
+ used to compile extensions.
+
d_copysignl (d_copysignl.U):
This variable conditionally defines the HAS_COPYSIGNL symbol, which
indicates to the C program that the copysignl() routine is available.
diff --git a/Porting/config.sh b/Porting/config.sh
index 9cf8297ca3..5f95bdec1f 100644
--- a/Porting/config.sh
+++ b/Porting/config.sh
@@ -139,6 +139,7 @@ d_closedir='define'
d_cmsghdr_s='define'
d_const='define'
d_copysignl='define'
+d_cplusplus='undef'
d_crypt='define'
d_crypt_r='undef'
d_csh='define'
diff --git a/Porting/config_H b/Porting/config_H
index f07eb4877e..51e86b1a20 100644
--- a/Porting/config_H
+++ b/Porting/config_H
@@ -3869,6 +3869,12 @@
*/
#define HAS_COPYSIGNL /**/
+/* USE_CPLUSPLUS:
+ * This symbol, if defined, indicates that a C++ compiler was
+ * used to compiled Perl and will be used to compile extensions.
+ */
+/*#define USE_CPLUSPLUS /**/
+
/* HAS_DBMINIT_PROTO:
* This symbol, if defined, indicates that the system provides
* a prototype for the dbminit() function. Otherwise, it is up
diff --git a/cflags.SH b/cflags.SH
index 41e004007a..cc369d9ccd 100755
--- a/cflags.SH
+++ b/cflags.SH
@@ -224,6 +224,10 @@ for file do
*) ;;
esac
+case "$cc" in
+*g++*) ccflags="`echo $ccflags|sed 's/-Wdeclaration-after-statement/ /'`" ;;
+esac
+
if test -f .patch; then
ccflags="-DPERL_PATCHNUM=`cat .patch` $ccflags"
fi
diff --git a/config_h.SH b/config_h.SH
index 0db54634ea..f6074f1c93 100644
--- a/config_h.SH
+++ b/config_h.SH
@@ -1259,6 +1259,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
*/
#$d_copysignl HAS_COPYSIGNL /**/
+/* USE_CPLUSPLUS:
+ * This symbol, if defined, indicates that a C++ compiler was
+ * used to compiled Perl and will be used to compile extensions.
+ */
+#$d_cplusplus USE_CPLUSPLUS /**/
+
/* HAS_CRYPT:
* This symbol, if defined, indicates that the crypt routine is available
* to encrypt passwords and the like.
diff --git a/configure.com b/configure.com
index 9b4f08b25b..45a69a1224 100644
--- a/configure.com
+++ b/configure.com
@@ -5696,6 +5696,7 @@ $ WC "d_class='undef'"
$ WC "d_cmsghdr_s='undef'"
$ WC "d_const='define'"
$ WC "d_copysignl='define'"
+$ WC "d_cplusplus='undef'"
$ WC "d_crypt='define'"
$ WC "d_csh='undef'"
$ WC "d_cuserid='define'"
diff --git a/deb.c b/deb.c
index 58411d1ded..1d3de4c5ef 100644
--- a/deb.c
+++ b/deb.c
@@ -204,9 +204,7 @@ Perl_deb_stack_all(pTHX)
for (;;)
{
const size_t si_name_ix = si->si_type+1; /* -1 is a valid index */
- const char * const si_name =
- (const char *)
- ((si_name_ix >= sizeof(si_names)) ? "????" : si_names[si_name_ix]);
+ const char * const si_name = (si_name_ix >= sizeof(si_names)) ? "????" : si_names[si_name_ix];
I32 ix;
PerlIO_printf(Perl_debug_log, "STACK %"IVdf": %s\n",
(IV)si_ix, si_name);
diff --git a/dump.c b/dump.c
index fc3e8f3a18..03bdab3bac 100644
--- a/dump.c
+++ b/dump.c
@@ -718,8 +718,8 @@ Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, const OP *o)
"%*sTYPE = %s ===> ",
(int)(PL_dumpindent*level-4), "", OP_NAME(o));
if (o->op_next)
- PerlIO_printf(file, (const char *)(seq ? "%"UVf"\n" : "(%"UVf")\n"),
- sequence_num(o->op_next));
+ PerlIO_printf(file, seq ? "%"UVf"\n" : "(%"UVf")\n",
+ sequence_num(o->op_next));
else
PerlIO_printf(file, "DONE\n");
if (o->op_targ) {
diff --git a/epoc/config.sh b/epoc/config.sh
index 217b6c8ba8..a71e68e230 100644
--- a/epoc/config.sh
+++ b/epoc/config.sh
@@ -129,6 +129,7 @@ d_cmsghdr_s='undef'
d_cmsghdr_s='undef'
d_const='define'
d_copysignl='undef'
+d_cplusplus='undef'
d_crypt='undef'
d_crypt_r='undef'
d_csh='undef'
diff --git a/gv.c b/gv.c
index 203b05cd75..0fc0367224 100644
--- a/gv.c
+++ b/gv.c
@@ -81,13 +81,12 @@ Perl_gv_IOadd(pTHX_ register GV *gv)
* this is a dirhandle.
*/
const char * const fh =
- (const char *)
- (PL_op->op_type == OP_READDIR ||
- PL_op->op_type == OP_TELLDIR ||
- PL_op->op_type == OP_SEEKDIR ||
- PL_op->op_type == OP_REWINDDIR ||
- PL_op->op_type == OP_CLOSEDIR ?
- "dirhandle" : "filehandle");
+ PL_op->op_type == OP_READDIR ||
+ PL_op->op_type == OP_TELLDIR ||
+ PL_op->op_type == OP_SEEKDIR ||
+ PL_op->op_type == OP_REWINDDIR ||
+ PL_op->op_type == OP_CLOSEDIR ?
+ "dirhandle" : "filehandle";
Perl_croak(aTHX_ "Bad symbol for %s", fh);
}
@@ -162,8 +161,7 @@ GP *
Perl_newGP(pTHX_ GV *const gv)
{
GP *gp;
- const char *const file =
- CopFILE(PL_curcop) ? CopFILE(PL_curcop) : (const char *)"";
+ const char *const file = CopFILE(PL_curcop) ? CopFILE(PL_curcop) : "";
STRLEN len = strlen(file);
U32 hash;
@@ -1277,7 +1275,7 @@ Perl_gv_fullname4(pTHX_ SV *sv, const GV *gv, const char *prefix, bool keepmain)
SvOK_off(sv);
return;
}
- sv_setpv(sv, prefix ? prefix : (const char *)"");
+ sv_setpv(sv, prefix ? prefix : "");
name = HvNAME_get(hv);
if (name) {
@@ -1562,9 +1560,7 @@ Perl_Gv_AMupdate(pTHX_ HV *stash)
FALSE)))
{
/* Can be an import stub (created by "can"). */
- const char * const name =
- (const char *)
- ((gvsv && SvPOK(gvsv)) ? SvPVX_const(gvsv) : "???");
+ const char * const name = (gvsv && SvPOK(gvsv)) ? SvPVX_const(gvsv) : "???";
Perl_croak(aTHX_ "%s method \"%.256s\" overloading \"%s\" "\
"in package \"%.256s\"",
(GvCVGEN(gv) ? "Stub found while resolving"
diff --git a/mathoms.c b/mathoms.c
index 2ba6c41be4..72639dc1cd 100644
--- a/mathoms.c
+++ b/mathoms.c
@@ -484,14 +484,14 @@ Perl_huge(void)
void
Perl_gv_fullname(pTHX_ SV *sv, const GV *gv)
{
- gv_fullname3(sv, gv, (const char *)(sv == (const SV*)gv ? "*" : ""));
+ gv_fullname3(sv, gv, sv == (const SV*)gv ? "*" : "");
}
/* compatibility with versions <= 5.003. */
void
Perl_gv_efullname(pTHX_ SV *sv, const GV *gv)
{
- gv_efullname3(sv, gv, (const char *)(sv == (const SV*)gv ? "*" : ""));
+ gv_efullname3(sv, gv, sv == (const SV*)gv ? "*" : "");
}
void
diff --git a/mg.c b/mg.c
index 3f2fd5a489..d4412f8a4e 100644
--- a/mg.c
+++ b/mg.c
@@ -730,7 +730,7 @@ Perl_magic_get(pTHX_ SV *sv, MAGIC *mg)
{
const int saveerrno = errno;
sv_setnv(sv, (NV)errno);
- sv_setpv(sv, (const char *)(errno ? Strerror(errno) : ""));
+ sv_setpv(sv, errno ? Strerror(errno) : "");
errno = saveerrno;
}
#endif
@@ -810,11 +810,11 @@ Perl_magic_get(pTHX_ SV *sv, MAGIC *mg)
sv_setpvn(sv, WARN_NONEstring, WARNsize) ;
}
else if (PL_compiling.cop_warnings == pWARN_STD) {
- sv_setpvn(sv,
- (const char *)
- ((PL_dowarn & G_WARN_ON) ?
- WARN_ALLstring : WARN_NONEstring),
- WARNsize);
+ sv_setpvn(
+ sv,
+ (PL_dowarn & G_WARN_ON) ? WARN_ALLstring : WARN_NONEstring,
+ WARNsize
+ );
}
else if (PL_compiling.cop_warnings == pWARN_ALL) {
/* Get the bit mask for $warnings::Bits{all}, because
@@ -993,7 +993,7 @@ Perl_magic_get(pTHX_ SV *sv, MAGIC *mg)
sv_setpv(sv, os2error(Perl_rc));
else
#endif
- sv_setpv(sv, (const char *)(errno ? Strerror(errno) : ""));
+ sv_setpv(sv, errno ? Strerror(errno) : "");
errno = saveerrno;
}
#endif
@@ -1048,7 +1048,7 @@ Perl_magic_setenv(pTHX_ SV *sv, MAGIC *mg)
{
dVAR;
STRLEN len = 0, klen;
- const char *s = SvOK(sv) ? SvPV_const(sv,len) : (const char *)"";
+ const char *s = SvOK(sv) ? SvPV_const(sv,len) : "";
const char * const ptr = MgPV_const(mg,klen);
my_setenv(ptr, s);
@@ -1650,7 +1650,7 @@ int
Perl_magic_nextpack(pTHX_ SV *sv, MAGIC *mg, SV *key)
{
dVAR; dSP;
- const char * const meth = (const char *)(SvOK(key) ? "NEXTKEY" : "FIRSTKEY");
+ const char * const meth = SvOK(key) ? "NEXTKEY" : "FIRSTKEY";
ENTER;
SAVETMPS;
diff --git a/op.c b/op.c
index 0d48328174..300ac859ff 100644
--- a/op.c
+++ b/op.c
@@ -1875,12 +1875,10 @@ Perl_bind_match(pTHX_ I32 type, OP *left, OP *right)
|| ltype == OP_PADHV) && ckWARN(WARN_MISC))
{
const char * const desc
- = PL_op_desc[(rtype == OP_SUBST || rtype == OP_TRANS) ?
- (int)rtype : OP_MATCH];
- const char * const sample =
- (const char *)
- (((ltype == OP_RV2AV || ltype == OP_PADAV)
- ? "@array" : "%hash"));
+ = PL_op_desc[(rtype == OP_SUBST || rtype == OP_TRANS)
+ ? (int)rtype : OP_MATCH];
+ const char * const sample = ((ltype == OP_RV2AV || ltype == OP_PADAV)
+ ? "@array" : "%hash");
Perl_warner(aTHX_ packWARN(WARN_MISC),
"Applying %s to %s will act on scalar(%s)",
desc, sample, sample);
@@ -4576,10 +4574,9 @@ Perl_newLOOPEX(pTHX_ I32 type, OP *label)
if (label->op_type == OP_STUB && (label->op_flags & OPf_PARENS))
o = newOP(type, OPf_SPECIAL);
else {
- o = newPVOP(type, 0,
- savepv(label->op_type == OP_CONST
- ? SvPVx_nolen_const(((SVOP*)label)->op_sv)
- : (const char *)""));
+ o = newPVOP(type, 0, savepv(label->op_type == OP_CONST
+ ? SvPVx_nolen_const(((SVOP*)label)->op_sv)
+ : ""));
}
#ifdef PERL_MAD
op_getmad(label,o,'L');
@@ -5037,9 +5034,8 @@ Perl_newATTRSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
aname = NULL;
gv = name ? gv_fetchsv(cSVOPo->op_sv, gv_fetch_flags, SVt_PVCV)
- : gv_fetchpv((const char *)
- (aname ? aname
- : (PL_curstash ? "__ANON__" : "__ANON__::__ANON__")),
+ : gv_fetchpv(aname ? aname
+ : (PL_curstash ? "__ANON__" : "__ANON__::__ANON__"),
gv_fetch_flags, SVt_PVCV);
if (!PL_madskills) {
@@ -5132,10 +5128,8 @@ Perl_newATTRSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
if (PL_copline != NOLINE)
CopLINE_set(PL_curcop, PL_copline);
Perl_warner(aTHX_ packWARN(WARN_REDEFINE),
- (const char *)
- (CvCONST(cv)
- ? "Constant subroutine %s redefined"
- : "Subroutine %s redefined"), name);
+ CvCONST(cv) ? "Constant subroutine %s redefined"
+ : "Subroutine %s redefined", name);
CopLINE_set(PL_curcop, oldline);
}
#ifdef PERL_MAD
@@ -5516,11 +5510,9 @@ CV *
Perl_newXS(pTHX_ const char *name, XSUBADDR_t subaddr, const char *filename)
{
dVAR;
- GV * const gv =
- gv_fetchpv((const char *)
- (name ? name :
- (PL_curstash ? "__ANON__" : "__ANON__::__ANON__")),
- GV_ADDMULTI, SVt_PVCV);
+ GV * const gv = gv_fetchpv(name ? name :
+ (PL_curstash ? "__ANON__" : "__ANON__::__ANON__"),
+ GV_ADDMULTI, SVt_PVCV);
register CV *cv;
if (!subaddr)
@@ -5546,11 +5538,9 @@ Perl_newXS(pTHX_ const char *name, XSUBADDR_t subaddr, const char *filename)
if (PL_copline != NOLINE)
CopLINE_set(PL_curcop, PL_copline);
Perl_warner(aTHX_ packWARN(WARN_REDEFINE),
- (const char *)
- (CvCONST(cv)
- ? "Constant subroutine %s redefined"
- : "Subroutine %s redefined"),
- name);
+ CvCONST(cv) ? "Constant subroutine %s redefined"
+ : "Subroutine %s redefined"
+ ,name);
CopLINE_set(PL_curcop, oldline);
}
}
@@ -5646,7 +5636,7 @@ Perl_newFORM(pTHX_ I32 floor, OP *o, OP *block)
#ifdef GV_UNIQUE_CHECK
if (GvUNIQUE(gv)) {
- Perl_croak(aTHX_ (const char*)"Bad symbol for form (GV is unique)");
+ Perl_croak(aTHX_ "Bad symbol for form (GV is unique)");
}
#endif
GvMULTI_on(gv);
@@ -5656,10 +5646,8 @@ Perl_newFORM(pTHX_ I32 floor, OP *o, OP *block)
if (PL_copline != NOLINE)
CopLINE_set(PL_curcop, PL_copline);
Perl_warner(aTHX_ packWARN(WARN_REDEFINE),
- (const char *)
- (o
- ? "Format %"SVf" redefined"
- : "Format STDOUT redefined"), (void*)cSVOPo->op_sv);
+ o ? "Format %"SVf" redefined"
+ : "Format STDOUT redefined", (void*)cSVOPo->op_sv);
CopLINE_set(PL_curcop, oldline);
}
SvREFCNT_dec(cv);
@@ -6434,9 +6422,8 @@ Perl_ck_fun(pTHX_ OP *o)
if (op) {
SV *tmpstr = NULL;
const char * const a =
- (const char *)
- (kid->op_type == OP_AELEM ?
- "[]" : "{}");
+ kid->op_type == OP_AELEM ?
+ "[]" : "{}";
if (((op->op_type == OP_RV2AV) ||
(op->op_type == OP_RV2HV)) &&
(firstop = ((UNOP*)op)->op_first) &&
@@ -7292,7 +7279,7 @@ Perl_ck_join(pTHX_ OP *o)
if (kid && kid->op_type == OP_MATCH) {
if (ckWARN(WARN_SYNTAX)) {
const REGEXP *re = PM_GETRE(kPMOP);
- const char *pmstr = (const char *)(re ? re->precomp : "STRING");
+ const char *pmstr = re ? re->precomp : "STRING";
Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
"/%s/ should probably be written as \"%s\"",
pmstr, pmstr);
@@ -7396,9 +7383,8 @@ Perl_ck_subr(pTHX_ OP *o)
arg++;
if (o3->op_type != OP_REFGEN && o3->op_type != OP_UNDEF)
bad_type(arg,
- (const char*)
- (arg == 1 ? "block or sub {}" : "sub {}"),
- gv_ename(namegv), o3);
+ arg == 1 ? "block or sub {}" : "sub {}",
+ gv_ename(namegv), o3);
break;
case '*':
/* '*' allows any scalar type, including bareword */
diff --git a/opcode.h b/opcode.h
index 6dd31c3810..4b32c85f31 100644
--- a/opcode.h
+++ b/opcode.h
@@ -1535,9 +1535,9 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
#ifndef PERL_GLOBAL_STRUCT_INIT
#ifndef DOINIT
-EXT const U32 PL_opargs[];
+EXTCONST U32 PL_opargs[];
#else
-EXT const U32 PL_opargs[] = {
+EXTCONST U32 PL_opargs[] = {
0x00000000, /* null */
0x00000000, /* stub */
0x00003604, /* scalar */
diff --git a/plan9/config.plan9 b/plan9/config.plan9
index 94d0a12cd4..d7feada49b 100644
--- a/plan9/config.plan9
+++ b/plan9/config.plan9
@@ -3831,6 +3831,12 @@
*/
/*#define HAS_COPYSIGNL /**/
+/* USE_CPLUSPLUS:
+ * This symbol, if defined, indicates that a C++ compiler was
+ * used to compiled Perl and will be used to compile extensions.
+ */
+/*#define USE_CPLUSPLUS /**/
+
/* HAS_DBMINIT_PROTO:
* This symbol, if defined, indicates that the system provides
* a prototype for the dbminit() function. Otherwise, it is up
diff --git a/plan9/config_h.sample b/plan9/config_h.sample
index cd32c8dd6d..5709812049 100644
--- a/plan9/config_h.sample
+++ b/plan9/config_h.sample
@@ -3776,6 +3776,12 @@
*/
/*#define HAS_COPYSIGNL /**/
+/* USE_CPLUSPLUS:
+ * This symbol, if defined, indicates that a C++ compiler was
+ * used to compiled Perl and will be used to compile extensions.
+ */
+/*#define USE_CPLUSPLUS /**/
+
/* HAS_DBMINIT_PROTO:
* This symbol, if defined, indicates that the system provides
* a prototype for the dbminit() function. Otherwise, it is up
diff --git a/symbian/config.sh b/symbian/config.sh
index 2e7327fdb2..4824a3ea69 100644
--- a/symbian/config.sh
+++ b/symbian/config.sh
@@ -78,6 +78,7 @@ d_closedir='undef'
d_cmsghdr_s='undef'
d_const='define'
d_copysignl='undef'
+d_cplusplus='undef'
d_crypt='undef'
d_crypt_r='undef'
d_csh='undef'
diff --git a/uconfig.h b/uconfig.h
index 2b2d1e02cd..e18a6cc656 100644
--- a/uconfig.h
+++ b/uconfig.h
@@ -349,13 +349,6 @@
*/
/*#define HAS_PIPE / **/
-/* HAS_POLL:
- * This symbol, if defined, indicates that the poll routine is
- * available to poll active file descriptors. You may safely
- * include <poll.h> when this symbol is defined.
- */
-/*#define HAS_POLL / **/
-
/* HAS_READDIR:
* This symbol, if defined, indicates that the readdir routine is
* available to read directory entries. You may have to include
@@ -1174,6 +1167,11 @@
/*#define HAS_BUILTIN_EXPECT / **/
/*#define HAS_BUILTIN_CHOOSE_EXPR / **/
+/* HAS_C99_VARIADIC_MACROS:
+ * If defined, the compiler supports C99 variadic macros.
+ */
+/*#define HAS_C99_VARIADIC_MACROS / **/
+
/* CASTI32:
* This symbol is defined if the C compiler can cast negative
* or large floating point numbers to 32-bit ints.
@@ -1237,6 +1235,12 @@
*/
/*#define HAS_COPYSIGNL / **/
+/* USE_CPLUSPLUS:
+ * This symbol, if defined, indicates that a C++ compiler was
+ * used to compiled Perl and will be used to compile extensions.
+ */
+/*#define USE_CPLUSPLUS / **/
+
/* HAS_CRYPT:
* This symbol, if defined, indicates that the crypt routine is available
* to encrypt passwords and the like.
@@ -3475,7 +3479,7 @@
/* I_POLL:
* This symbol, if defined, indicates that <poll.h> exists and
- * should be included.
+ * should be included. (see also HAS_POLL)
*/
/*#define I_POLL / **/
@@ -4396,4 +4400,11 @@
#define M_VOID /* Xenix strikes again */
#endif
+/* HAS_POLL:
+ * This symbol, if defined, indicates that the poll routine is
+ * available to poll active file descriptors. You may safely
+ * include <poll.h> when both this symbol *and* I_POLL are defined.
+ */
+/*#define HAS_POLL / **/
+
#endif
diff --git a/uconfig.sh b/uconfig.sh
index dc4940263b..01c6ad2614 100755
--- a/uconfig.sh
+++ b/uconfig.sh
@@ -67,6 +67,7 @@ d_closedir='define'
d_cmsghdr_s='undef'
d_const='undef'
d_copysignl='undef'
+d_cplusplus='undef'
d_crypt='undef'
d_crypt_r='undef'
d_csh='undef'
diff --git a/win32/config.bc b/win32/config.bc
index d460097e7e..3c0e0237b2 100644
--- a/win32/config.bc
+++ b/win32/config.bc
@@ -126,6 +126,7 @@ d_closedir='define'
d_cmsghdr_s='undef'
d_const='define'
d_copysignl='undef'
+d_cplusplus='undef'
d_crypt='undef'
d_crypt_r='undef'
d_csh='undef'
diff --git a/win32/config.ce b/win32/config.ce
index d155e889ff..342dc4859a 100644
--- a/win32/config.ce
+++ b/win32/config.ce
@@ -124,6 +124,7 @@ d_closedir='define'
d_cmsghdr_s='undef'
d_const='define'
d_copysignl='undef'
+d_cplusplus='undef'
d_crypt='undef'
d_crypt_r='undef'
d_csh='undef'
diff --git a/win32/config.gc b/win32/config.gc
index da97c1abae..fd9e2e1c91 100644
--- a/win32/config.gc
+++ b/win32/config.gc
@@ -126,6 +126,7 @@ d_closedir='define'
d_cmsghdr_s='undef'
d_const='define'
d_copysignl='undef'
+d_cplusplus='undef'
d_crypt='undef'
d_crypt_r='undef'
d_csh='undef'
diff --git a/win32/config.vc b/win32/config.vc
index ec90484884..0a9b61f04c 100644
--- a/win32/config.vc
+++ b/win32/config.vc
@@ -126,6 +126,7 @@ d_closedir='define'
d_cmsghdr_s='undef'
d_const='define'
d_copysignl='undef'
+d_cplusplus='undef'
d_crypt='undef'
d_crypt_r='undef'
d_csh='undef'
diff --git a/win32/config.vc64 b/win32/config.vc64
index bcda881865..837a8ebfec 100644
--- a/win32/config.vc64
+++ b/win32/config.vc64
@@ -126,6 +126,7 @@ d_closedir='define'
d_cmsghdr_s='undef'
d_const='define'
d_copysignl='undef'
+d_cplusplus='undef'
d_crypt='undef'
d_crypt_r='undef'
d_csh='undef'
diff --git a/win32/config_H.bc b/win32/config_H.bc
index 166322c9df..c222bd1a66 100644
--- a/win32/config_H.bc
+++ b/win32/config_H.bc
@@ -3852,6 +3852,12 @@
*/
/*#define HAS_CLEARENV /**/
+/* USE_CPLUSPLUS:
+ * This symbol, if defined, indicates that a C++ compiler was
+ * used to compiled Perl and will be used to compile extensions.
+ */
+/*#define USE_CPLUSPLUS /**/
+
/* HAS_COPYSIGNL:
* This symbol, if defined, indicates that the copysignl routine is
* available. If aintl is also present we can emulate modfl.
diff --git a/win32/config_H.ce b/win32/config_H.ce
index 9809781f0b..4fecfa8309 100644
--- a/win32/config_H.ce
+++ b/win32/config_H.ce
@@ -3837,6 +3837,12 @@
*/
/*#define HAS_COPYSIGNL /**/
+/* USE_CPLUSPLUS:
+ * This symbol, if defined, indicates that a C++ compiler was
+ * used to compiled Perl and will be used to compile extensions.
+ */
+/*#define USE_CPLUSPLUS /**/
+
/* HAS_DBMINIT_PROTO:
* This symbol, if defined, indicates that the system provides
* a prototype for the dbminit() function. Otherwise, it is up
diff --git a/win32/config_H.gc b/win32/config_H.gc
index c28f1a41db..5b0b00bb7d 100644
--- a/win32/config_H.gc
+++ b/win32/config_H.gc
@@ -3888,6 +3888,12 @@
*/
/*#define HAS_COPYSIGNL /**/
+/* USE_CPLUSPLUS:
+ * This symbol, if defined, indicates that a C++ compiler was
+ * used to compiled Perl and will be used to compile extensions.
+ */
+/*#define USE_CPLUSPLUS /**/
+
/* HAS_DBMINIT_PROTO:
* This symbol, if defined, indicates that the system provides
* a prototype for the dbminit() function. Otherwise, it is up
diff --git a/win32/config_H.vc b/win32/config_H.vc
index f394791096..70456bafc5 100644
--- a/win32/config_H.vc
+++ b/win32/config_H.vc
@@ -3885,6 +3885,12 @@
*/
/*#define HAS_COPYSIGNL /**/
+/* USE_CPLUSPLUS:
+ * This symbol, if defined, indicates that a C++ compiler was
+ * used to compiled Perl and will be used to compile extensions.
+ */
+/*#define USE_CPLUSPLUS /**/
+
/* HAS_DBMINIT_PROTO:
* This symbol, if defined, indicates that the system provides
* a prototype for the dbminit() function. Otherwise, it is up
diff --git a/win32/config_H.vc64 b/win32/config_H.vc64
index 82beceb1d3..8637aff035 100644
--- a/win32/config_H.vc64
+++ b/win32/config_H.vc64
@@ -3858,6 +3858,12 @@
*/
/*#define HAS_COPYSIGNL /**/
+/* USE_CPLUSPLUS:
+ * This symbol, if defined, indicates that a C++ compiler was
+ * used to compiled Perl and will be used to compile extensions.
+ */
+/*#define USE_CPLUSPLUS /**/
+
/* HAS_DBMINIT_PROTO:
* This symbol, if defined, indicates that the system provides
* a prototype for the dbminit() function. Otherwise, it is up