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
|
OTP R4B b1 UnixWare Release Notes
------------------------------------
Kent Boortz
This is an *unsupported* release of OTP to UnixWare 2.1.2.
In fact, it should not be considered a release or a product at all,
it is a demo what a real release could look like.
Questions should be directed directly to
Kent Boortz
[email protected]
Changes or problems:
* There is no documentation as part of this release.
Use the R5B documentation that comes with the
Solaris release.
* To run older graphical tools based on 'pxw' like
'xerl' and 'interpreter' you have to add
"/usr/X/lib" to your LD_LIBRARY_PATH.
* The OTP test cases looks reasonable well considering the
short time I had to do the port. The tests of the base
system gives equal results than on Solaris. There are
some problems with the 'ic' application (CORBA) and there
may be some 'mnesia' problems (the tests where not completed
when I wrote this note)
* OTP normally try to handle IP host name lookups
by itself, parsing /etc/hosts and other configuration
files. This is done because the normal calls like
gethostbyname() is blocking. In this UnixWare port
the normal gethostbyname() is used and if a reply
from the name server takes some time this may block
the OTP system from doing other tasks (it may be the
case that it doesn't block the whole system, it may
just keep other Erlang processes that do DNS lookups
waiting, I'm not sure).
* The erl_interface library support varios types of threading
This is not supported in the OTP UnixWare release.
* If you use gcc you compile and link dynamic drivers with
gcc -fPIC -c foo.c
ld -G -t text -o foo.so foo.o
With the UnixWare C compiler I belive it will be
gcc -KPIC -c foo.c
ld -G -t text -o foo.so foo.o
* The default shell limits was a problem when I was running
some large tests. These limits can be changed by building
a new kernel. To enable unlimited use of virtual memory
and data you do as root
% /etc/conf/bin/idtune SDATLIM 0x7FFFFFFF
% /etc/conf/bin/idtune HDATLIM 0x7FFFFFFF
% /etc/conf/bin/idtune SVMMLIM 0x7FFFFFFF
% /etc/conf/bin/idtune HVMMLIM 0x7FFFFFFF
% /etc/conf/bin/idbuild
When you reboot a new kernel will be built.
* I didn't give the system enough swap space. You can add
swap on an ordinary file. To add about 100 MB more swap
you do as root
% dd < /dev/zero > /moreswap bs=512 count=200000
% swap -a /moreswap 0 200000
The first line will create a 100 MB file on the root partition
and the second line will add this file as swap space. Note that
the "swap" command is a bit buggy and may hang. Reboot UnixWare
and try again.
Internel notes on build the release
* If the network addresses are changed you enter single user
mode by hitting a key after the "Booting UnixWare..." and
the beep. At the prompt
BOOT# Hit return only to clear line
BOOT# INITSTATE=S
BOOT# go
This will put you into single user mode. Find out ip address,
default router and DNS server. At the shell prompt
# /usr/local/bin/tcsh
# setenv TERM vt100
# cd /etc
# vi resolv.conf
< edit and save with :x! >
# cd /etc/inet
# vi hosts
< edit and save with :x! >
# vi config
< edit and save with :x! >
# cd /
# shutdown now
Now it should be possible to restart in single user mode.
It may still have long timeouts because the NIS information
is wrong. As root you do
# ypinit -c
and type in "arda" as NIS domain and "gandalf.du.uab.ericsson.se"
as NIS server.
* Prebuilding the release. Create a view with the -ncaexported option.
See "http://otp/product/internal/test/doc/howto/export_view.html".
Build a solaris release (optionally using a boostrap compiler)
# cd /clearcase/otp/erts/autoconf; cm -V; cd ..
# cm -V opt EMULATOR=jam BUILD_ALL=1 >& LOG.1
* Create the directories for mount points and mount the view on
the UnixWare machine.
# mkdir -p /clearcase/otp; cd /clearcase/otp
# mkdir erts internal_tools libraries system tools
Use s script like
#!/bin/sh
HOST=$1
VIEW=$2
MOUNT=$HOST:/view/$VIEW/clearcase/otp
mount -F nfs $MOUNT/erts $DIR/erts
mount -F nfs $MOUNT/libraries $DIR/libraries
mount -F nfs $MOUNT/tools $DIR/tools
mount -F nfs $MOUNT/internal_tools $DIR/internal_tools
mount -F nfs $MOUNT/system $DIR/system
to mount the ClearCase VOBs.
* Building the
* Building the
"/usr/X/lib" to your LD_LIBRARY_PATH.
Had to patch the file
/usr/local/lib/g++-include/_G_config.h
not to define _G_HAVE_SYS_CDEFS 1
Problems with pxw yacc
yacc -dv -b i386-univel-sysv4.2MP/y parse.y
UX:yacc: ERROR: Illegal option -- b
UX:yacc: TO FIX: Usage: yacc [-wvVdlt] [-Q(y/n)] [-p driver_file] file
gmake[6]: *** [i386-univel-sysv4.2MP/y.tab.c] Error 1
Create some symbolic links (until got compiled libs for UnixWare)
# cd crypt/src/ssleay
# ln -s elibcrypto.so.i386-pc-solaris2.5.1 elibcrypto.so.i386-univel-sysv4.2MP
# cd ssl/src/ssleay
# ln -s i386-pc-solaris2.5.1 i386-univel-sysv4.2MP
Run
# ntpdate super.du.uab.ericsson.se
now and then to set the time on the machine.
Disabled HAVE_MULTICAST_SUPPORT from "drv/inet_drv.c", should be set in configure
UnixWare want two arguments to 'ln'
SkunkWare gcc, ln, tar, ..... required, make sure PATH points out them first
The emulator has to be linked with "gcc -r -Wl,-Bexport " to be linkable
with dynamic libraries.
Tcl/Tk was compiled from
tcl7.6p2plus.tar.gz
tk4.2p2plus.tar.gz
and the make-files where changed, see
(not needed it seems, if not using gcc at least)
VILL HA "-ly -ll" BARA PA PXW ???????
You can view the limits of the Unix processes in
/etc/conf/mtune.d/proc
|