xref: /openbsd/gnu/usr.bin/perl/hints/svr4.sh (revision 898184e3)
1# svr4 hints, System V Release 4.x
2# Last modified 1996/10/25 by Tye McQueen, tye@metronet.com
3# Merged 1998/04/23 with perl5.004_04 distribution by
4# Andy Dougherty <doughera@lafayette.edu>
5
6# Use Configure -Dcc=gcc to use gcc.
7case "$cc" in
8'') cc='/bin/cc'
9    test -f $cc || cc='/usr/ccs/bin/cc'
10    ;;
11esac
12
13# We include support for using libraries in /usr/ucblib, but the setting
14# of libswanted excludes some libraries found there.  If you run into
15# problems, you may have to remove "ucb" from libswanted.  Just delete
16# the comment '#' from the sed command below.
17ldflags='-L/usr/ccs/lib -L/usr/ucblib'
18ccflags='-I/usr/include -I/usr/ucbinclude'
19# Don't use problematic libraries:
20libswanted=`echo " $libswanted " | sed -e 's/ malloc / /'` # -e 's/ ucb / /'`
21# libmalloc.a - Probably using Perl's malloc() anyway.
22# libucb.a - Remove it if you have problems ld'ing.  We include it because
23#   it is needed for ODBM_File and NDBM_File extensions.
24
25if [ -r /usr/ucblib/libucb.a ]; then	# If using BSD-compat. library:
26    gconvert_preference='gcvt sprintf'	# Try gcvt() before gconvert().
27    # Use the "native" counterparts, not the BSD emulation stuff:
28    d_bcmp='undef' d_bcopy='undef' d_bzero='undef' d_safebcpy='undef'
29    d_index='undef' d_killpg='undef' d_getprior='undef' d_setprior='undef'
30    d_setlinebuf='undef'
31    # d_setregid='undef' d_setreuid='undef'  # ???
32fi
33
34# UnixWare has /usr/lib/libc.so.1, /usr/lib/libc.so.1.1, and
35# /usr/ccs/lib/libc.so.  Configure chooses libc.so.1.1 while it
36# appears that /usr/ccs/lib/libc.so contains more symbols:
37#
38# Try the following if you want to use nm-extraction.  We'll just
39# skip the nm-extraction phase, since searching for all the different
40# library versions will be hard to keep up-to-date.
41#
42# if [ "" = "$libc" -a -f /usr/ccs/lib/libc.so -a \
43#   -f /usr/lib/libc.so.1 -a -f /usr/lib/libc.so.1.1 ]; then
44#     if nm -h /usr/ccs/lib/libc.so | egrep '\<_?select$' >/dev/null; then
45# 	if nm -h /usr/lib/libc.so.1 | egrep '\<_?select$'` >/dev/null ||
46# 	   nm -h /usr/lib/libc.so.1.1 | egrep '\<_?select$'` >/dev/null; then
47# 	    :
48# 	else
49# 	    libc=/usr/ccs/lib/libc.so
50# 	fi
51#     fi
52# fi
53#
54#  Don't bother with nm.  Just compile & link a small C program.
55case "$usenm" in
56'') usenm=false;;
57esac
58
59# Broken C-Shell tests (Thanks to Tye McQueen):
60# The OS-specific checks may be obsoleted by the this generic test.
61	sh_cnt=`sh -c 'echo /*' | wc -c`
62	csh_cnt=`csh -f -c 'glob /*' 2>/dev/null | wc -c`
63	csh_cnt=`expr 1 + $csh_cnt`
64if [ "$sh_cnt" -ne "$csh_cnt" ]; then
65    echo "You're csh has a broken 'glob', disabling..." >&2
66    d_csh='undef'
67fi
68
69# Unixware-specific problems.  The undocumented -X argument to uname
70# is probably a reasonable way of detecting UnixWare.
71# UnixWare has a broken csh.  (This might already be detected above).
72# In Unixware 2.1.1 the fields in FILE* got renamed!
73# Unixware 1.1 can't cast large floats to 32-bit ints.
74# Configure can't detect memcpy or memset on Unixware 2 or 7
75#
76#    Leave leading tabs on the next two lines so Configure doesn't
77#    propagate these variables to config.sh
78	uw_ver=`uname -v`
79	uw_isuw=`uname -X 2>&1 | grep Release`
80
81if [ "$uw_isuw" = "Release = 4.2" ]; then
82   case $uw_ver in
83   1.1)
84      d_casti32='undef'
85      ;;
86   esac
87fi
88if [ "$uw_isuw" = "Release = 4.2MP" ]; then
89   case $uw_ver in
90   2.1)
91	d_csh='undef'
92	d_memcpy='define'
93	d_memset='define'
94	;;
95   2.1.*)
96	d_csh='undef'
97	d_memcpy='define'
98	d_memset='define'
99	stdio_cnt='((fp)->__cnt)'
100	d_stdio_cnt_lval='define'
101	stdio_ptr='((fp)->__ptr)'
102	d_stdio_ptr_lval='define'
103	;;
104   esac
105fi
106if [ "$uw_isuw" = "Release = 5" ]; then
107   case $uw_ver in
108   7)
109	d_csh='undef'
110	d_memcpy='define'
111	d_memset='define'
112	stdio_cnt='((fp)->__cnt)'
113	d_stdio_cnt_lval='define'
114	stdio_ptr='((fp)->__ptr)'
115	d_stdio_ptr_lval='define'
116	;;
117   esac
118fi
119# End of Unixware-specific tests.
120
121# DDE SMES Supermax Enterprise Server
122case "`uname -sm`" in
123"UNIX_SV SMES")
124    # the *grent functions are in libgen.
125    libswanted="$libswanted gen"
126    # csh is broken (also) in SMES
127    # This may already be detected by the generic test above.
128    d_csh='undef'
129    case "$cc" in
130    *gcc*) ;;
131    *)	# for cc we need -K PIC (not -K pic)
132 	cccdlflags="$cccdlflags -K PIC"
133	;;
134    esac
135    ;;
136esac
137
138# NCR MP-RAS.  Thanks to Doug Hendricks for this info.
139# The output of uname -a looks like this
140#	foo foo 4.0 3.0 3441 Pentium III(TM)-ISA/PCI
141# Similar errors reported for
142#       foo foo 4.0 3.0 4400 pentium ii(tm)-isapci '
143# and also for
144#	foo foo 4.2 1.1.2 shg2 386at
145# W. Geoffrey Rommel, 2003-09-09 reported:
146# I have talked to a developer at NCR, and there seems to be no
147# reliable way to make sure that this is really MP-RAS. It's not
148# in uname, it's not in the kernel, it's not in sysinfo ...
149# However, the files /etc/issue and /etc/.relid are present in MP-RAS.
150#
151# Other System V-derived systems may have /etc/issue, but /etc/.relid
152# may well be unique.  Configure-time tests for the POSIX
153# _mwoflocheckl issue (see ext/POSIX/hints/svr4.pl) would be appreciated.
154#
155if test -f /etc/issue -a -f /etc/.relid; then
156    # libcrypt contains nothing libc wouldn't have.
157    libswanted=`echo " $libswanted " | sed -e 's/ crypt / /'`
158    # With the NCR High Performance C Compiler R3.0c, miniperl fails
159    # t/op/regexp.t test 461 unless we compile with optimize=-O0.
160    # Volunteers are needed to determine just which files need special
161    # treatment.  For now, use optimize=-O0 for everything.
162    #
163    d_usleep='undef'
164    d_ualarm='undef'
165    case "$optimize" in
166    '') optimize='-O0' ;;
167    esac
168fi
169
170# Configure may fail to find lstat() since it's a static/inline function
171# in <sys/stat.h> on Unisys U6000 SVR4, UnixWare 2.x, and possibly other
172# SVR4 derivatives.  (Though UnixWare has it in /usr/ccs/lib/libc.so.)
173d_lstat=define
174
175d_suidsafe='define'	# "./Configure -d" can't figure this out easilly
176
177