This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl 5.003_07: hints/os2.sh
[perl5.git] / hints / sunos_4_1.sh
index ba469b3..16ea47a 100644 (file)
@@ -1,8 +1,44 @@
+# hints/sunos_4_1.sh
+# Last modified:  Thu Feb  8 11:46:05 EST 1996
+# Andy Dougherty  <doughera@lafcol.lafayette.edu>
+
 case "$cc" in
-*gcc*) usevfork=false ;;
+*gcc*) usevfork=false 
+       # GNU as and GNU ld might not work.  See the INSTALL file.
+       ;;
 *)     usevfork=true ;;
 esac
+
+# Configure will issue a WHOA warning.  The problem is that
+# Configure finds getzname, not tzname.  If you're in the System V
+# environment, you can set d_tzname='define' since tzname[] is
+# available in the System V environment.
 d_tzname='undef'
+
+# Configure will issue a WHOA warning.  The problem is that unistd.h
+# contains incorrect prototypes for some functions in the usual
+# BSD-ish environment.  In particular, it has
+# extern int   getgroups(/* int gidsetsize, gid_t grouplist[] */);
+# but groupslist[] ought to be of type int, not gid_t.
+# This is only really a problem for perl if the
+# user is using gcc, and not running in the SysV environment.
+# The gcc fix-includes script exposes those incorrect prototypes.
+# There may be other examples as well.  Volunteers are welcome to
+# track them all down :-).  In the meantime, we'll just skip unistd.h
+# for SunOS.
+i_unistd='undef'
+
+cat << 'EOM' >&4
+
+You will probably see  *** WHOA THERE!!! ***  messages from Configure for
+d_tzname and i_unistd.  Keep the recommended values.  See
+hints/sunos_4_1.sh for more information.
+EOM
+
+# SunOS 4.1.3 has two extra fields in struct tm.  This works around
+# the problem.  Other BSD platforms may have similar problems.
+POSIX_cflags='ccflags="$ccflags -DSTRUCT_TM_HASZONE"'
+
 # check if user is in a bsd or system 5 type environment
 if cat -b /dev/null 2>/dev/null
 then # bsd
@@ -10,5 +46,12 @@ then # bsd
 else # sys5
       groupstype='gid_t'
 fi
-# we don't set gidtype because unistd.h says gid_t getgid() but man
-# page says int getgid() for bsd. utils.c includes unistd.h :-(
+
+# If you get the message "unresolved symbol '__lib_version' " while
+# linking, your system probably has the optional 'acc' compiler (and
+# libraries) installed, but you are using the bundled 'cc' compiler with
+# the unbundled libraries.  The solution is either to use 'acc' and the
+# unbundled libraries (specifically /lib/libm.a), or 'cc' and the bundled
+# library.
+# 
+# Thanks to William Setzer <William_Setzer@ncsu.edu> for this info.