summaryrefslogtreecommitdiff
path: root/hints/svr4.sh
blob: 756dfcdc5bcadc3d0e3f749b9e1e7db93631d4fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
# svr4 hints, System V Release 4.x
# Last modified 1996/10/25 by Tye McQueen, tye@metronet.com
# Merged 1998/04/23 with perl5.004_04 distribution by 
# Andy Dougherty <doughera@lafayette.edu>

# Use Configure -Dcc=gcc to use gcc.
case "$cc" in
'') cc='/bin/cc'
    test -f $cc || cc='/usr/ccs/bin/cc'
    ;;
esac

# We include support for using libraries in /usr/ucblib, but the setting
# of libswanted excludes some libraries found there.  If you run into
# problems, you may have to remove "ucb" from libswanted.  Just delete
# the comment '#' from the sed command below.
ldflags='-L/usr/ccs/lib -L/usr/ucblib'
ccflags='-I/usr/include -I/usr/ucbinclude'
# Don't use problematic libraries:
libswanted=`echo " $libswanted " | sed -e 's/ malloc / /'` # -e 's/ ucb / /'`
# libmalloc.a - Probably using Perl's malloc() anyway.
# libucb.a - Remove it if you have problems ld'ing.  We include it because
#   it is needed for ODBM_File and NDBM_File extensions.

if [ -r /usr/ucblib/libucb.a ]; then	# If using BSD-compat. library:
    gconvert_preference='gcvt sprintf'	# Try gcvt() before gconvert().
    # Use the "native" counterparts, not the BSD emulation stuff:
    d_index='undef' d_killpg='undef' d_getprior='undef' d_setprior='undef'
    d_setlinebuf='undef' 
    # d_setregid='undef' d_setreuid='undef'  # ???
fi

# UnixWare has /usr/lib/libc.so.1, /usr/lib/libc.so.1.1, and
# /usr/ccs/lib/libc.so.  Configure chooses libc.so.1.1 while it
# appears that /usr/ccs/lib/libc.so contains more symbols:
#
# Try the following if you want to use nm-extraction.  We'll just
# skip the nm-extraction phase, since searching for all the different
# library versions will be hard to keep up-to-date.
#
# if [ "" = "$libc" -a -f /usr/ccs/lib/libc.so -a \
#   -f /usr/lib/libc.so.1 -a -f /usr/lib/libc.so.1.1 ]; then
#     if nm -h /usr/ccs/lib/libc.so | egrep '\<_?select$' >/dev/null; then
# 	if nm -h /usr/lib/libc.so.1 | egrep '\<_?select$'` >/dev/null ||
# 	   nm -h /usr/lib/libc.so.1.1 | egrep '\<_?select$'` >/dev/null; then
# 	    :
# 	else
# 	    libc=/usr/ccs/lib/libc.so
# 	fi
#     fi
# fi
#
#  Don't bother with nm.  Just compile & link a small C program.
case "$usenm" in
'') usenm=false;;
esac

# Broken C-Shell tests (Thanks to Tye McQueen):
# The OS-specific checks may be obsoleted by the this generic test.
	sh_cnt=`sh -c 'echo /*' | wc -c`
	csh_cnt=`csh -f -c 'glob /*' 2>/dev/null | wc -c`
	csh_cnt=`expr 1 + $csh_cnt`
if [ "$sh_cnt" -ne "$csh_cnt" ]; then
    echo "You're csh has a broken 'glob', disabling..." >&2
    d_csh='undef'
fi

# Unixware-specific problems.  The undocumented -X argument to uname 
# is probably a reasonable way of detecting UnixWare.  
# UnixWare has a broken csh.  (This might already be detected above).
# In Unixware 2.1.1 the fields in FILE* got renamed!
# Unixware 1.1 can't cast large floats to 32-bit ints.
# Configure can't detect memcpy or memset on Unixware 2 or 7
#
#    Leave leading tabs on the next two lines so Configure doesn't 
#    propagate these variables to config.sh
	uw_ver=`uname -v`
	uw_isuw=`uname -X 2>&1 | grep Release`

if [ "$uw_isuw" = "Release = 4.2" ]; then
   case $uw_ver in
   1.1)
      d_casti32='undef'
      ;;
   esac
fi
if [ "$uw_isuw" = "Release = 4.2MP" ]; then
   case $uw_ver in
   2.1)
	d_csh='undef'
	;;
   2.1.*)
	d_csh='undef'
	stdio_cnt='((fp)->__cnt)'
	d_stdio_cnt_lval='define'
	stdio_ptr='((fp)->__ptr)'
	d_stdio_ptr_lval='define'
	;;
   esac
fi
if [ "$uw_isuw" = "Release = 5" ]; then
   case $uw_ver in
   7)
	d_csh='undef'
	stdio_cnt='((fp)->__cnt)'
	d_stdio_cnt_lval='define'
	stdio_ptr='((fp)->__ptr)'
	d_stdio_ptr_lval='define'
	;;
   esac
fi
# End of Unixware-specific tests.

# DDE SMES Supermax Enterprise Server
case "`uname -sm`" in
"UNIX_SV SMES")
    # the *grent functions are in libgen.
    libswanted="$libswanted gen"
    # csh is broken (also) in SMES
    # This may already be detected by the generic test above.
    d_csh='undef'
    case "$cc" in
    *gcc*) ;;
    *)	# for cc we need -K PIC (not -K pic)
 	cccdlflags="$cccdlflags -K PIC"
	;;
    esac
    ;;
esac

# NCR MP-RAS.  Thanks to Doug Hendricks for this info.
# The output of uname -a looks like this
#	foo foo 4.0 3.0 3441 Pentium III(TM)-ISA/PCI
# Similar errors reported for
#       foo foo 4.0 3.0 4400 pentium ii(tm)-isapci '
# and also for
#	foo foo 4.2 1.1.2 shg2 386at
# W. Geoffrey Rommel, 2003-09-09 reported:
# I have talked to a developer at NCR, and there seems to be no
# reliable way to make sure that this is really MP-RAS. It's not
# in uname, it's not in the kernel, it's not in sysinfo ...
# However, the files /etc/issue and /etc/.relid are present in MP-RAS.
#
# Other System V-derived systems may have /etc/issue, but /etc/.relid
# may well be unique.  Configure-time tests for the POSIX
# _mwoflocheckl issue (see ext/POSIX/hints/svr4.pl) would be appreciated.
#
if test -f /etc/issue -a -f /etc/.relid; then
    # libcrypt contains nothing libc wouldn't have.
    libswanted=`echo " $libswanted " | sed -e 's/ crypt / /'`
    # With the NCR High Performance C Compiler R3.0c, miniperl fails
    # t/op/regexp.t test 461 unless we compile with optimize=-O0.
    # Volunteers are needed to determine just which files need special
    # treatment.  For now, use optimize=-O0 for everything.
    #
    d_usleep='undef'
    d_ualarm='undef'
    case "$optimize" in
    '') optimize='-O0' ;;
    esac
fi

# Configure may fail to find lstat() since it's a static/inline function
# in <sys/stat.h> on Unisys U6000 SVR4, UnixWare 2.x, and possibly other
# SVR4 derivatives.  (Though UnixWare has it in /usr/ccs/lib/libc.so.)
d_lstat=define

d_suidsafe='define'	# "./Configure -d" can't figure this out easily