summaryrefslogtreecommitdiff
path: root/Configure
diff options
context:
space:
mode:
authorAndy Dougherty <doughera@lafayette.edu>2012-06-06 11:12:58 -0400
committerAndy Dougherty <doughera@lafayette.edu>2012-06-06 11:12:58 -0400
commit6f87f404fa51739971a4068da1f11443024f3fc4 (patch)
treed2545a7cc2e2ef1e6026a13ced7d15cc6bf73550 /Configure
parent9e477c131aa954c3c7a61e08ff178c4bbded69a6 (diff)
downloadperl-6f87f404fa51739971a4068da1f11443024f3fc4.tar.gz
Configure: Avoid Cppsym warnings for extra tokens [perl #113024]
The cppsymbols can include macros such as __INT16_C(c), which can't be tested with a simple #ifdef. This patch strips off the opening parenthesis and everything following it. These macros were generated by cpp -dM. Also ensure Cppsym.true list is sorted for later input to comm. (I noticed this while testing this change on Solaris.)
Diffstat (limited to 'Configure')
-rwxr-xr-xConfigure5
1 files changed, 3 insertions, 2 deletions
diff --git a/Configure b/Configure
index a780b81ad1..3ae16ca407 100755
--- a/Configure
+++ b/Configure
@@ -21936,15 +21936,16 @@ $cc -o try -Dcpp_stuff=$cpp_stuff $optimize \$ccflags $ldflags try.c $libs && $r
EOSH
chmod +x Cppsym.try
$eunicefix Cppsym.try
-./Cppsym < Cppsym.know > Cppsym.true
+./Cppsym < Cppsym.know | $sort | $uniq > Cppsym.true
: Add in any linux cpp "predefined macros":
case "$osname::$gccversion" in
*linux*::*.*|*gnukfreebsd*::*.*|gnu::*.*)
tHdrH=_tmpHdr
rm -f $tHdrH'.h' $tHdrH
touch $tHdrH'.h'
+ # Filter out macro arguments, such as Linux's __INT8_C(c)
if $cpp -dM $tHdrH'.h' > $tHdrH'_cppsym.h' && [ -s $tHdrH'_cppsym.h' ]; then
- sed 's/#define[\ \ ]*//;s/[\ \ ].*$//' <$tHdrH'_cppsym.h' >$tHdrH'_cppsym.real'
+ sed -e 's/#define[\ \ ]*//;s/[\ \ ].*$//' -e 's/(.*//' <$tHdrH'_cppsym.h' >$tHdrH'_cppsym.real'
if [ -s $tHdrH'_cppsym.real' ]; then
cat $tHdrH'_cppsym.real' Cppsym.know | sort | uniq | ./Cppsym | sort | uniq > Cppsym.true
fi