summaryrefslogtreecommitdiff
path: root/hints/dgux.sh
blob: 6735edea7c4f6db40fbd70465a1281d519d6eb10 (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
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
# $Id: dgux.sh 821 2002-10-22 11:14:00Z richardc $

# This is a hints file for DGUX, which is EMC's Data General's Unix.  It 
# was originally developed with version 5.4.3.10 of the OS, and then was
# later updated running under version 4.11.2 (running on m88k hardware).
# The gross features should work with versions going back to 2.nil but
# some tweaking will probably be necessary.
#
# DGUX is an SVR4 derivative.  It ships with gcc as the standard
# compiler.  Since version 3.0 it has shipped with Perl 4.036
# installed in /usr/bin, which is kind of neat.  Be careful when you
# install that you don't overwrite the system version, though (by
# answering yes to the question about installing perl as /usr/bin/perl),
# as it would suck to try to get support if the vendor learned that you
# were physically replacing the system binaries.
#
# -Roderick Schertler <roderick@argon.org>

# The standard system compiler is gcc, but invoking it as cc changes its
# behavior.  I have to pick one name or the other so I can get the
# dynamic loading switches right (they vary depending on this).  I'm
# picking gcc because there's no way to get at the optimization options
# and so on when you call it cc.

##########################################
# Modified by Takis Psarogiannakopoulos
# Universirty of Cambridge
# Centre for Mathematical Sciences
# Department of Pure Mathematics
# Wilberforce road
# Cambridge CB3 0WB , UK
# e-mail <takis@XFree86.Org>
# Use GCC-2.95.2/3 rev (DG/UX) for threads
# This compiler supports the -pthread switch
# to link correctly DG/UX 's -lthread.
# March 2002
###########################################

cc=gcc
ccflags="-DDGUX -D_DGUX_SOURCE"
# Debug build. If using GNU as,ld use the flag -gstabs+
# ccflags="-g -mstandard -DDGUX -D_DGUX_SOURCE -DDEBUGGING"
# Dummy ; always compile with -O2 on GCC 2.95.2/3 rev (DG/UX)
# even if you debugging the program!
optimize="-mno-legend -O2"

archname="ix86-dgux"
libpth="/usr/lib"

#####################################
# <takis@XFree86.Org>
# Change this if you want.
# prefix =/usr/local
#####################################

prefix=/usr/local
perlpath="$prefix/bin/perl58"
startperl="#! $prefix/bin/perl58"
privlib="$prefix/lib/perl58"
man1dir="$prefix/man/man1"
man3dir="$prefix/man/man3"

sitearch="$prefix/lib/perl58/$archname"
sitelib="$prefix/lib/perl58"

#Do not overwrite by default /usr/bin/perl of DG/UX
installusrbinperl="$undef"

# Configure may fail to find lstat()
# function in <sys/stat.h>.
d_lstat='define'

# Internal (perl) malloc is causing serious problems and
# test failures in DG/UX. Most notable Embed.t 
# So for perl-5.7.3 and on do NOT use. 
# I have no time to investigate more.
# <takis@XFree86.Org>

case "$usemymalloc" in
'') usemymalloc='n' ;;
esac

case "$uselongdouble" in
'') uselongdouble='y' ;;
esac

#usevfork=true
usevfork=false

# DG has this thing set up with symlinks which point to different places
# depending on environment variables (see elink(5)) and the compiler and
# related tools use them to access different development environments
# (COFF, ELF, m88k BCS and so on), see sde(5).  The upshot, however, is
# that when a normal program tries to access one of these elinks it sees
# no such file (like stat()ting a mis-directed symlink).  Setting
# $plibpth to explicitly include the place to which the elinks point
# allows Configure to find libraries which vary based on the development
# environment.
#
# Starting with version 4.10 (the first time the OS supported Intel
# hardware) all libraries are accessed with this mechanism.
#
# The default $TARGET_BINARY_INTERFACE changed with version 4.10.  The
# system now comes with a link named /usr/sde/default which points to
# the proper entry, but older versions lacked this and used m88kdgux
# directly.

: && sde_path=${SDE_PATH:-/usr}/sde	# hide from Configure
while : # dummy loop
do
    if [ -n "$TARGET_BINARY_INTERFACE" ]
	then set X "$TARGET_BINARY_INTERFACE"
	else set X default dg m88k_dg ix86_dg m88kdgux m88kdguxelf
    fi
    shift
    default_sde=$1
    for sde
    do
	[ -d "$sde_path/$sde" ] && break 2
    done
    cat <<END >&2

NOTE:  I can't figure out what SDE is used by default on this machine (I
didn't find a likely directory under $sde_path).  This is bad news.  If
this is a R4.10 or newer system I'm not going to be able to find any of
your libraries, if this system is R3.10 or older I won't be able to find
the math library.  You should re-run Configure with the environment
variable TARGET_BINARY_INTERFACE set to the proper value for this
machine, see sde(5) and the notes in hints/dgux.sh.

END
    sde=$default_sde
    break
done

plibpth="$plibpth $sde_path/$sde/usr/lib"
unset sde_path default_sde sde

#####################################
# <takis@XFree86.Org>
#####################################

libperl="libperl58.so"

# Many functions (eg, gethostent(), killpg(), getpriority(), setruid()
# dbm_*(), and plenty more) are defined in -ldgc.  Usually you don't
# need to know this (it seems that libdgc.so is searched automatically
# by ld), but Configure needs to check it otherwise it will report all
# those functions as missing.

#####################################
# <takis@XFree86.Org>
#####################################

# libswanted="dgc gdbm $libswanted"
#libswanted="dbm posix $libswanted"
# Do *NOT* add there the malloc native 
# DG/UX library!
libswanted="dbm posix resolv socket nsl dl m"

#####################################
# <takis@XFree86.Org>
#####################################

mydomain='.localhost'
cf_by=`(whoami) 2>/dev/null`
cf_email="$cf_by@localhost"

# Dynamic loading works using the dlopen() functions.  Note that dlfcn.h
# used to be broken, it declared _dl*() rather than dl*().  This was the
# case up to 3.10, it has been fixed in 4.11.  I'm not sure if it was
# fixed in 4.10.  If you have the older header just ignore the warnings
# (since pointers and integers have the same format on m88k).

# usedl=true
usedl=false

# For cc rather than gcc the flags would be `-K PIC' for compiling and
# -G for loading.  I haven't tested this.

#####################################
# <takis@XFree86.Org>
# Use -fPIC instead -fpic 
#####################################

cccdlflags=-fPIC
#We must use gcc
ld="gcc"
lddlflags="-shared"

############################################################################
# DGUX Posix 4A Draft 10 Thread support
# <takis@XFree86.Org>
# use Configure -Dusethreads to enable
############################################################################

cat > UU/usethreads.cbu <<'EOCBU'
case "$usethreads" in
$define|true|[yY]*)
	ccflags="$ccflags"
	# DG/UX has this for sure! Main Configure fails to
	# detect it but it is needed!
	d_pthread_atfork='define'
	shift
	# DG/UX's sched_yield is in -lrte
	# Do *NOT* add there the malloc native 
	# DG/UX library!
	libswanted="dbm posix resolv socket nsl dl m rte"
	archname="ix86-dgux-thread"
	sitearch="$prefix/lib/perl58/$archname"
	sitelib="$prefix/lib/perl58"
  case "$cc" in
	*gcc*)
	   #### Use GCC -2.95.2/3 rev (DG/UX) and -pthread
	   #### Otherwise take out the switch -pthread 
	   #### And add manually the -D_POSIX4A_DRAFT10_SOURCE flag.
	   ld="gcc"
	   ccflags="$ccflags -D_POSIX4A_DRAFT10_SOURCE"
	   # Debug build : use -DS flag on command line perl
	   # ccflags="$ccflags -g -mstandard -DDEBUGGING -D_POSIX4A_DRAFT10_SOURCE -pthread"
	   cccdlflags='-fPIC'
	   lddlflags="-shared"
	   #### Use GCC -2.95.2/3 rev (DG/UX) and -pthread
	   #### Otherwise take out the switch -pthread
	   #### And add manually the -lthread library.
	   ldflags="$ldflags -pthread"
	;;

	*)
	   echo "Not supported DG/UX cc and threads !"
	;;
  esac
esac
EOCBU

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

###################################################