# hints/solaris_2.sh
-# Last modified: 27 September 1995 by
+# Last modified: Thu Feb 8 11:38:12 EST 1996
# Andy Dougherty <doughera@lafcol.lafayette.edu>
# Based on input from lots of folks, especially
# Dean Roehrich <roehrich@ironwood-fddi.cray.com>
-#
+
# See man vfork.
usevfork=false
-#
+
d_suidsafe=define
+
# Avoid all libraries in /usr/ucblib.
set `echo $glibpth | sed -e 's@/usr/ucblib@@'`
glibpth="$*"
+
# Remove bad libraries. -lucb contains incompatible routines.
# -lld doesn't do anything useful.
# -lmalloc can cause a problem with GNU CC & Solaris. Specifically,
set `echo " $libswanted " | sed -e 's@ ld @ @' -e 's@ malloc @ @' -e 's@ ucb @ @'`
libswanted="$*"
-# Look for architecture name. We want to suggest a useful default
-# for archlib and also warn about possible -x486 flags needed.
+# Look for architecture name. We want to suggest a useful default.
case "$archname" in
'')
if test -f /usr/bin/arch; then
fi
;;
esac
-case "$archname" in
-*86*) echo "For an Intel platform you might need to add -x486 to ccflags" >&4;;
-*) ;;
-esac
-# See below for excerpts from the Solaris FAQ.
+######################################################
+# General sanity testing. See below for excerpts from the Solaris FAQ.
# From roehrich@ironwood-fddi.cray.com Wed Sep 27 12:51:46 1995
# Date: Thu, 7 Sep 1995 16:31:40 -0500
# Here's another draft of the perl5/solaris/gcc sanity-checker.
case $PATH in
-*/usr/ucb*:/usr/bin:*|*/usr/ucb*:/usr/bin) cat <<END
+*/usr/ucb*:/usr/bin:*|*/usr/ucb*:/usr/bin) cat <<END >&4
NOTE: Some people have reported problems with /usr/ucb/cc.
Remove /usr/ucb from your PATH if you have difficulties.
case $? in
0) ;;
*)
- cat <<END
+ cat <<END >&4
NOTE: Your system does not have /dev/fd mounted. If you want to
be able to use set-uid scripts you must ask your system administrator
/usr/bin/ls /usr/lib/libucb* >/dev/null 2>&1
case $? in
0)
- cat <<END
+ cat <<END >&4
NOTE: libucb has been found in /usr/lib. libucb should reside in
/usr/ucblib. You may have trouble while building Perl extensions.
tmp=`/usr/bin/which make`
case "`/usr/bin/ls -l $tmp`" in
??????s*)
- cat <<END
+ cat <<END >&2
NOTE: Your PATH points to GNU make, and your GNU make has the set-group-id
bit set. You must either rearrange your PATH to put /usr/ccs/bin before the
# Get gcc to share its secrets.
echo 'main() { return 0; }' > try.c
verbose=`${cc:-cc} -v -o try try.c 2>&1`
+ rm -f try try.c
tmp=`echo "$verbose" | grep '^Reading' |
awk '{print $NF}' | sed 's/specs$/include/'`
# Determine if the fixed-includes look like they'll work.
- sed 1q $tmp/stdarg.h 2>&1 | grep 'stdarg.h for GNU' 2>&1 >/dev/null
- case $? in
- 0) ;;
- *)
- cat <<END
-
-NOTE: The fixincludes or just-fixinc script for gcc was not run
-properly. Your gcc may not be able to compile Perl. Inform your system
-administrator that ${cc:-cc} is not properly installed.
-
-END
- ;;
- esac
+ # Doesn't work anymore for gcc-2.7.2.
# See if as(1) is GNU as(1). GNU as(1) won't work for this job.
case $verbose in
*/usr/ccs/bin/as*) ;;
*)
- cat <<END
+ cat <<END >&2
NOTE: You are using GNU as(1). GNU as(1) will not build Perl.
You must arrange to use /usr/ccs/bin/as, perhaps by setting
-GCC_EXEC_PREFIX.
+GCC_EXEC_PREFIX or by including -B/usr/ccs/bin/ in your cc command.
+(Note that the trailing "/" is required.)
END
;;
case $verbose in
*/usr/ccs/bin/ld*) ;;
*)
- cat <<END
+ cat <<END >&2
NOTE: You are using GNU ld(1). GNU ld(1) will not build Perl.
You must arrange to use /usr/ccs/bin/ld, perhaps by setting
-GCC_EXEC_PREFIX.
+GCC_EXEC_PREFIX or by including -B/usr/ccs/bin/ in your cc command.
END
;;
# See if as(1) is GNU as(1). GNU as(1) won't work for this job.
case `as --version < /dev/null 2>&1` in
*GNU*)
- cat <<END
+ cat <<END >&2
NOTE: You are using GNU as(1). GNU as(1) will not build Perl.
You must arrange to use /usr/ccs/bin, perhaps by adding it to the
esac
# See if ld(1) is GNU ld(1). GNU ld(1) won't work for this job.
+ # ld --version doesn't properly report itself as a GNU tool,
+ # as of ld version 2.6, so we need to be more strict. TWP 9/5/96
+ gnu_ld=false
case `ld --version < /dev/null 2>&1` in
- *GNU*)
- cat <<END
+ *GNU*|ld\ version\ 2*)
+ gnu_ld=true ;;
+ *) ;;
+ esac
+ if $gnu_ld ; then :
+ else
+ case `which ld` in
+ no\ ld\ in*|[Cc]ommand\ not\ found*)
+ ;;
+ /*gnu*/ld|/*GNU*/ld)
+ gnu_ld=true ;;
+ esac
+ fi
+ if $gnu_ld ; then
+ cat <<END >&2
NOTE: You are using GNU ld(1). GNU ld(1) will not build Perl.
You must arrange to use /usr/ccs/bin, perhaps by adding it to the
-beginning of your PATH
+beginning of your PATH.
END
- ;;
- esac
+ fi
;; #not using gcc
esac