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
240
241
242
243
244
245
246
247
248
249
250
|
SUN/IRAF V2.3 Installation, 14 April 1986 Sun-3, software floating point
------------------------------------------------------------------------------
/usr/iraf/
Unpacked a source-only TAR archive made on lyra this afternoon;
didn't first delete anything. Made sure we had a .login with
$iraf defined as the local IRAF root (/usr/iraf/). (4/14)
/usr/include/iraf.h
As Superuser, "ln -s unix/hlib/libc/iraf.h ." (4/14)
/usr/bin/alloc -> $hlib/alloc.e
/usr/bin/generic -> $hlib/generic.e
/usr/bin/mkpkg -> $hlib/mkpkg.e
/usr/bin/rmbin -> $hlib/rmbin.e
/usr/bin/rmfiles -> $hlib/rmfiles.e
/usr/bin/rtar -> $hlib/rtar.e
/usr/bin/wtar -> $hlib/wtar.e
/usr/bin/xc -> $hlib/xc.e
/usr/bin/cl -> $hlib/cl.e
As Superuser, performed these symbolic links. (4/14)
unix/hlib/mkiraf.csh
unix/hlib/libc/iraf.h
Modified IRAF root pathname, HOST definition; irafuser.csh not
modified, as $iraf is defined in the IRAF account .login. (4/14)
unix/hlib/mkmlist.csh
Changed bgrep to grep, since bgrep not available in standard
UNIX. (Not important, doesn't have to work, so the efficiency
of bgrep on the development machine is worth the mach. dependence.)
(4/14)
as/
vaxas/
mc68000/
Moved as/ to $iraf/vaxas/; moved $iraf/mc68000/ishift.SUN,
zsvjmp.SUN to as/ishift.s, zsvjmp.s. (Now that we have a
SUN-3 with 68020, the BYTPAK etc. assembler sources should also be
implemented). (4/14)
unix/hlib/mach.h
unix/hlib/libc/spp.h (EPSILON)
Compiled osb$zzeps.f with "f77 -O -f68881 -o zzeps.e zzeps.f";
ran it to check hardware floating point epsilon; turned out to
be same as software floating point to 4 places. Modified machine
epsilon and byte-swapping definitions (see unix/mc68000/README).
(4/14)
unix/hlib/[dir]1mach.f
Commented out the VAX lines and uncommented the IEEE floating
point lines for the 68000. (4/15)
unix/hlib/mkpkg.inc
Modified XFLAGS to "-c -O -f68881" for our hardware floating point
option. To verify that this works, I examined zzeps.e, compiled with
the same flags, with adb and found that, indeed, only single arguments
were being passed and actual floating point instructions were being
generated. Set USE_CALCOMP to NO. (4/15)
unix/hlib/libc/kernel.h
Commented out DEBUGMEM in order to use the standard UNIX malloc rather
than IRAF's version. This is necessary for some reason on the Sun for
SunCGI routines to be callable from SPP programs. (4/15)
unix/hlib/libc/iraf.h
Added definition for SUN3; the Sun IRAF kernel is still mostly
identical with the VAX kernel, but zxwhen.c needs to know if it
is being compiled on a Sun-3. (4/15)
unix/
Attempted a bootstrap; had to make the following modification to
get it to work: (4/15)
unix/os/zxwhen.c
Renamed structure vax_exception to hwx_exception; added ifdef branch
for SUN3 FPE traps-to-strings structure. (The version that compiled
under the Sun-2 failed to compile under the Sun-3.) (4/15)
unix/
Performed a bootstrap with "sh -x mkpkg.csh >& spool &".
The only error showing was in bootlib/mkpkg.csh, "syntax error
at line 13: `end of file' unexpected", presumably due to the
conditional construct, and possibly a CSHELL bug (libboot.a
built correctly and ended up in $hlib as it should anyway). (4/15)
unix/hlib/alloc.e
This file must belong to root, since it needs root permissions at
runtime to allocate devices. Do the following:
% cd $hlib
% su
% /etc/chown 0 alloc.e (4/15)
-------------------------------------------
The bootstrap is now complete. The next step is to do a full system compile.
Attempted a "mkpkg >& spool &" from the root directory. Got compiler
failure in fio$; "Compiler error line 0 of (null): invalid flag
s...y...s...t...e...m...=" when trying to compile fowner.f. Also
got similar errors in fmtio$gstrcat.f and other places. No further
files from the original XC command line were compiled. Common
denominator was the length of the command line to the f77 compiler.
Made the following change: (4/15)
unix/boot/mkpkg/host.c
Changed SZ_CMD from 512 to 400; this shortens the command line
that MKPKG constructs for XC. Rebuilt MKPKG with "sh -x mkpkg.csh".
(4/15)
Started another sysgen. Noticed compiler errors on the following
files; let the sysgen continue while fixing them.
sys/fmtio/gctod.f
sys/fmtio/xtoc.f
These routines had to be hand-compiled without switch "-f68881".
Made copies of the fortran in local/bugs, and hand-compiled
each routine in its own directory. Something to do with complex
numbers? Since it didn't look like they affected anything else,
just did a "mkpkg" to load them back into libsys and let the
sysgen continue. (4/15)
sys/vops/ak/abeqkx.f
sys/vops/ak/abeqx.f
sys/vops/ak/abgekx.f
sys/vops/ak/abgtkx.f
sys/vops/ak/ablekx.f
sys/vops/ak/abltkx.f
sys/vops/ak/abnekx.f
sys/vops/ak/abnex.f
sys/vops/ak/advzx.f
sys/vops/lz/allnx.f
sys/vops/lz/alogx.f
sys/vops/lz/arcpx.f
sys/vops/lz/arczx.f
Same with these routines; again, all contained complex datatypes.
Hand-compiled, then a "mkpkg" from vops. (4/16)
unix/hlib/mkpkg.inc
Changed LFLAGS from "" to "-f68881" to get pick up the references
generated by the same switch during default compilation. This may
cause a problem with those files hand-compiled without this switch
due to compiler errors. (4/16)
pkg/dataio/reblock/t_reblock.x line 56
pkg/dataio/cardimage/t_wcardimage.x 39
pkg/images/imutil/imdelete.x 43
pkg/onedspec/t_widstape.x 65
pkg/plot/gkiextract.x 99
pkg/utilities/t_translit.x 41, 68
pkg/imred/vtel/dicoplot.x 324
pkg/imred/vtel/tcopy.x 59
pkg/imred/vtel/vtfix.x 60
pkg/imred/vtel/writevt.x 42
All these lines tested a boolean conditional against "true" or "false".
The Sun-3 f77 compiler refused to compile these; all were changed to
just the name of the boolean or !boolean as appropriate.
This was only done on the Sun, since this is an experimental version;
mail will be sent on lyra. (4/16)
pkg/images/tv/display/iisers.x
No change made, since there is no need for this code on the Sun,
and it looked like there were non-obvious consequences in other
routines for changing either the values or changing shorts to ints.
However, note should be taken on lyra that "erase" is a short integer,
and it is being assigned to ERASE (in one of the local include
files), which has the value "32768" -- too high by one, apparently.
pkg/images/tv/cv/iism70/iiscursor.x
pkg/images/tv/cv/iism70/zclear.x
Also no change made, but similar problem: the include file
definitions IREAD (100000B) and ERASE (32768) are being used
in assignments to short integers, in one case "32768+256". (4/16)
unix/boot/spp/xc.c
Added references for the standard Fortran libraries -lI77 and -lU77,
plus a reference to the temporary library $hlib/libk.a, which contains
several routines referenced by the Fortran compiler, but not provided
in any SUN library. See below. (4/25)
unix/hlib/SUN_kludge/
This a temporary directory added to build the kludge library libk.a
so that IRAF programs can be linked on the SUN-3. Source for the
following routines were added:
Fc_eq compare complex numbers for equality
Fc_conv_h convert complex to short
Fh_conv_c convert short to complex
The conversion routines appear to have been overlooked by SUN, and
should be added to /usr/lib/libF77.a. (4/25)
unix/mkpkg.csh
Added a line to compile the kludge library during the bootstrap. (4/25)
unix/hlib/mkpkg.inc
Added the flag "-f68881" to LFLAGS (the linker flags). This is
necessary to get the linker to reference /lib/Mcrt1.o rather than
/lib/Fcrt1.o. If this is not done and one attempts to link code
compiled with the -f68881 switch, an unresolved reference to
the external "f68881_used" will result. (4/25)
sys/osb/miiupk16.x
sys/osb/miiupk32.x
Replaced by the new versions from lyra, which fix the BYTE_SWAP
bug. (4/25)
sys/gio/nspp/portlib/flush.f
sys/gio/nspp/portlib/flash[13].f
sys/gio/nsppkern/gktcancel.f
sys/gio/nsppkern/gktclear.f
sys/gio/nsppkern/gktclose.f
sys/gio/ncarutil/sysint/spps.f
Changed the name of the NSPP routine "flush" to "mcflsh" to avoid
a library conflict with the Fortran FLUSH. (4/25)
pkg/images/tv/display/iisers.x
pkg/images/tv/cv/iism70/iiscursor.x
pkg/images/tv/cv/iism70/zclear.x
All these files produced a compiler bug due to a compile time
assignment of an unsigned short integer number 1XXXXX into a
short variable. Had to change these to run time assignments to
get the desired truncation assignment. (4/25)
local/.login
local/login.cl
Aliased XC to 'xc -f68881' since all floating point is handled that
way on this machine. (4/25)
unix/hlib/libc/finfo.h
The fi_owner field of the finfo structure was not dimensioned
properly, causing the storage allocated for the structure to be
overrun. This was found in a call to pfileopen/filetime in the
CL; the finfo structure is allocated space on the stack, hence the
stack was being corrupted. This was a fairly serious bug which has
been in the system for a long time. (4/25)
[[ The system is now up (4/25) ]]
dev/pix
dev/pix.pix
Moved the test image over from lyra:
wfits dev$pix /u2/tody/pix.fits (on VAX lyra)
rfits lyra!/u2/tody/pix.fits (on SUN)
We ought to add a dev$pix.fits file so that the test image is
available on source only archives. (4/25)
|