summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcflags.SH21
-rw-r--r--hints/solaris_2.sh15
-rw-r--r--perl.h5
3 files changed, 24 insertions, 17 deletions
diff --git a/cflags.SH b/cflags.SH
index cc369d9ccd..966901a935 100755
--- a/cflags.SH
+++ b/cflags.SH
@@ -225,7 +225,26 @@ for file do
esac
case "$cc" in
-*g++*) ccflags="`echo $ccflags|sed 's/-Wdeclaration-after-statement/ /'`" ;;
+*g++*)
+ # We need to remove this also in here (removed early earlier).
+ ccflags="`echo $ccflags|sed 's/-Wdeclaration-after-statement/ /'`"
+ ;;
+esac
+
+case "$cc" in
+*g++*)
+ # Without -Wno-unused-variable g++ 4.x compiles are rather unwatchable
+ # because of all the warnings about Perl___notused, and g++ doesn't
+ # do __attribute__((unused)) (and even if at some stage it will), people
+ # do have older gcc installations. Yes, we lose some valid warnings.
+ for o in -Wno-unused-variable
+ do
+ case "$warn" in
+ *$o*) ;;
+ *) warn="$warn $o" ;;
+ esac
+ done
+ ;;
esac
if test -f .patch; then
diff --git a/hints/solaris_2.sh b/hints/solaris_2.sh
index d4549e3acb..fcb7233794 100644
--- a/hints/solaris_2.sh
+++ b/hints/solaris_2.sh
@@ -645,19 +645,6 @@ rm -f try.c try.o try a.out
# a delicate spot in Configure, so easier just to force our guess here
# for Solaris.
case "$cc" in
-*g++*|/opt/SUNWspro/bin/CC) d_dlopen='define' ;;
-esac
-
-# The Sun C++ doesn't define the global environ array.
-case "$cc" in
-/opt/SUNWspro/bin/CC)
- for o in NO_ENVIRON_ARRAY PERL_USE_SAFE_PUTENV
- do
- case "$ccflags" in
- *$o*) ;;
- *) ccflags="$ccflags $o" ;;
- esac
- done
- ;;
+*g++*|*CC*) d_dlopen='define' ;;
esac
diff --git a/perl.h b/perl.h
index 5dab0f8ebf..0f71630819 100644
--- a/perl.h
+++ b/perl.h
@@ -1150,15 +1150,16 @@ int sockatmark(int);
# endif
#endif
-#if defined(__osf__) && defined(__cplusplus) && !defined(_XOPEN_SOURCE_EXTENDED)
+#if defined(__osf__) && defined(__cplusplus) && !defined(_XOPEN_SOURCE_EXTENDED) /* Tru64 "cxx" (C++), see hints/dec_osf.sh for why the _XOPEN_SOURCE_EXTENDED cannot be defined. */
EXTERN_C int fchdir(int);
EXTERN_C int flock(int, int);
EXTERN_C int fseeko(FILE *, off_t, int);
EXTERN_C off_t ftello(FILE *);
#endif
-#if defined(__SUNPRO_CC)
+#if defined(__SUNPRO_CC) /* SUNWspro CC (C++) */
EXTERN_C char *crypt(const char *, const char *);
+EXTERN_C char **environ;
#endif
#ifdef SETERRNO