diff options
Diffstat (limited to 'doc/ports/aux_port.doc')
-rw-r--r-- | doc/ports/aux_port.doc | 978 |
1 files changed, 978 insertions, 0 deletions
diff --git a/doc/ports/aux_port.doc b/doc/ports/aux_port.doc new file mode 100644 index 00000000..743d453c --- /dev/null +++ b/doc/ports/aux_port.doc @@ -0,0 +1,978 @@ +Begin IRAF port to Macintosh A/UX 2.0, 26Jan91. +----------------------------------------------- + +unix/as +unix/as.mac + +unix/bin +unix/bin.mac + +unix/hlib/irafuser.csh + Set up a new "mac" architecture. (01/26) + +unix/hlib/libc/iraf.h + Set the iraf root to point to /u1/iraf. (01/26) + +unix/as.mac/ishift.s +unix/as.mac/zsvjmp.s + Modified for the GNU assembler (GAS). (01/26) + +unix/hlib/*.csh + Modified for A/UX. (01/26) + +unix/hlib/config.h +unix/hlib/libc/spp.h + Checked that LEN_JMPBUF was large enough to handle the setjmp + buffer used by A/UX. (01/26) + +unix/boot/bootlib/mkpkg.sh +unix/boot/generic/mkpkg.sh +unix/boot/mkpkg/mkpkg.sh +unix/boot/rmbin/mkpkg.sh +unix/boot/rmfiles/mkpkg.sh +unix/boot/rtar/mkpkg.sh +unix/boot/spp/mkpkg.sh +unix/boot/spp/mkxc.sh +unix/boot/spp/rpp/mkpkg.sh +unix/boot/spp/rpp/ratlibc/mkpkg.sh +unix/boot/spp/rpp/ratlibf/mkpkg.sh +unix/boot/spp/rpp/rppfor/mkpkg.sh +unix/boot/spp/xpp/mkpkg.sh +unix/boot/wtar/mkpkg.sh +unix/boot/xyacc/mkpkg.sh +unix/gdev/sgidev/mkpkg.sh +unix/os/mkpkg.sh +unix/shlib/mkpkg.sh + Changed all occurrences of "cc" to "$CC" and all occurrences of + "f77" to "$F77". Changed all occurrences of "ranlib" to $RANLIB. + (01/26) + +unix/hlib/irafuser.csh + Added definitions for CC, F77, and RANLIB (set to "echo ranlib" for + A/UX, which uses COFF). For the first attempt to compile the system + I am using gcc and the Absoft A/UX Fortran compiler. Later I would + like to try f2c (Fortran to C translator) with gcc as an alternative + to the Absoft Fortran. Early tests indicate that this should work, + and may produce better optimized code than the Absoft compiler. I + have already verified that the A/UX f77 cannot be used to build iraf + - there were serious problems just trying to compile the files in + one directory. (01/26) + +------- +Begin bootstrap. For this I have the GCC flags set to fairly restrictive +values, enabling some optional warning messages, to flush out any +questionable coding constructs. GCC is also an ANSI C compiler, which may +mean additional problems. (01/26) + +unix/os/mkpkg.sh + GCC doesn't echo the filename (as in "file.c:") during compiles, + which I found annoying, so I changed the mkpkg.sh to use the Bourne + shell FOR construct to compile each file separately. (01/26) + +unix/setarch.sh + The A/UX version of "test" does not have the -h flag to test for + symbolic links, so the existing script did not work. Still trying + to a portable way to do this, I changed the script to use the + construct: if [ "`ls -d as`" = "as" ]; then ... (01/26) + +unix/os/alloc.c + 1. The file header comment section contained the sequence "for the + /dev/* entries...". The "/*" would cause a warning from gcc that + there might be a comment buried in another comment, which can cause + a comment to terminate prematurely. In this case it was harmless + and indeed there was no error, but I changed the text to eliminate + the warning. + 2. Moved the #include <sys/types.h> to before the #include <utmp.h>, + as the A/UX version of the latter requires the former. (01/26) + +unix/os/getproc.c + 1. Had to add + + #ifdef AUX + #include <sys/mmu.h> + #include <sys/page.h> + #include <sys/region.h> + #endif + + before the #include <sys/proc.h>, to get the latter to compile. + + 2. In the A/UX nlist facility n_name is an array rather than a + pointer to char, so entries such as + + nl[0].n_name = "_proc"; + + had to be changed to + + strcpy (nl[0].n_name, "_proc"); (01/26) + +unix/os/prwait.c + In pr_getipc(), deleted unused variables error_code, error_status, + waitpid. (01/26) + +unix/os/zalloc.c + 1. In ZDVALL, deleted unused variable x_status. + 2. Deleted unused variable i in loggedin(). (01/26) + +unix/os/zfioks.c + 1. Deleted the old, commented out code for rcmd(), as variables + defined for this were being reported as unused. Added a comment + explaining that rcmd and friendly-host authentication cannot be + used without making the process suid root. + 2. Added #ifdef SYSV support for SysV termio. Terminal driver + ioctls are used in this routine to set raw mode for the password + prompts. + 3. GCC was complaining that the setjmp/longjmp used in zardks, + zawrks could cause certain register variables to become undefined + (op and nbytes in zardks, ofd in zawrks), so I changed the storage + class from register to auto for these variables. (01/26) + +unix/os/zfiolp.c + I had to change the declaration + + static PKCHAR xnullstr[1] = XEOS; + to + static PKCHAR xnullstr[1] = { XEOS }; + + (PKCHAR=short and XEOS=0) or GCC would complain about an invalid + initializer. Must be a feature of the ANSI C syntax. (01/26) + +unix/os/zfiotx.c +unix/hlib/libc/kernel.h + 1. Modified to add #ifdef SYSV support for SysV terminal i/o. + 2. GCC complained about some functions which were used (default + storage class extern) and later declared static; added static + declarations for these functions to the file header to eliminate + these (harmless) warning messages. (01/27) + +unix/os/zfxdir.c + Deleted unused local variable "ch". (01/27) + +unix/os/zgcmdl.c + Deleted unused local variable "ev". (01/27) + +unix/os/zgcmdl.c + Produced a coupld of "/* within comment" warning messages due an + example of some <iraf.h> code in the header comment. Changed /* in + the example to /@ to avoid the (harmless) warning. (01/27) + +unix/os/zgtime.c + Had to #ifndef SYSV the #include <sys/timeb.h> as this file does + not exist on SysV systems. (01/27) + +unix/os/zmain.c + Deleted unused local variables "junk" and "wsetsize". (01/27) + +unix/os/zwmsec.c + Added "static" to explicitly specify the storage class in the first + declarations of "napmsx", which is declared static in the source + given later in the file. (01/27) + +unix/os/zxwhen.c + 1. The system dependent definition "fcancel" would not work for A/UX; + added a #ifdef AUX version. + 2. GCC did not realize that the call to kernel_panic in zxwhen was + an exit, and would warn that the value of variable "vex", used later + in the procedure, could be unitialized. Added a statement to init + this to null to avoid the warning message. + 3. In zxgmes, the char pointer to the returned error message was + not being initialized if no error had occurred. Modified to return + the null string in this case. (01/27) + +unix/os/zzstrt.c + Added #ifdef SUNOS4 conditionals around certain declarations which + are used only the #ifdef SUNOS4 code which follows, to avoid unused + variable warnings. (01/27) + +unix/boot/bootlib/envinit.c + Deleted the unused variable "osfn" in loadpkgenv. (01/27) + +unix/boot/bootlib/bootlib.h + Deleted the commented out #define NOVOS definition, which causes + a /* in comment warning and doesn't need to be in this file anyhow. + (01/27) + +unix/boot/bootlib/osfcopy.c + 1. Deleted the unused variable "binary_file". + 2. Added a return at the end of the function, to guarantee that + a function value was returned. (01/27) + +unix/boot/bootlib/ostime.c + Modified with #ifdef SYSV for SysV. This whole business needs to + be redone sometime to provide rigorously correct time primitives + for iraf. (01/27) + +unix/boot/bootlib/vfn2osfn.c + Local variable "first_time" defined but never used. (01/27) + +unix/boot/generic/generic.c + 1. In copy_comment(), added an entry time initializer for the + local variable "flag". + 2. GCC complained about the variable "ch" in evaluate_expr() possibly + being used before being initialized. This looked harmless in this + case, but I added a global initializer to eliminate the warning + message. (01/27) + +unix/boot/mkpkg/host.c + Deleted a couple of unused "exit_status" variables. (01/27) + +unix/boot/mkpkg/host.c + Deleted unused variable "ip" in search_mkpkgfile(). (01/27) + +unix/boot/mkpkg/mkpkg +unix/boot/mkpkg/mkpkg.h +unix/boot/mkpkg/scanlib.c + 1. Added a #include "mkpkg.h" to scanlib.c. This file includes extern.h + which references a structure defined in mkpkg.h. + 2. Deleted unused local variable "key" in h_scanlibrary(). (01/27) + 3. Replaced the MAX_SYMBOLS definition in scanlib.c by MAX_LIBFILES, + as there is also a MAX_SYMBOLS in mkpkg.h which means something + quite different. (01/29) + +unix/boot/mkpkg/sflist.c + In sf_scanlist, the GCC static analysis indicated that variable "tail" + could possibly be used without being initialized. Added code to + initialize tail=head before scanning the list. (01/27) + +unix/boot/mkpkg/tok.c + 1. In do_if(), in the event of a syntax error the local variable "bval" + could be used without being initialized. Once again probably harmless + but it makes GCC complain. + 2. Unused variable "ch" in do_call(). + 3. Module do_include() was not returning an exit status in all + cases. (01/27) + +unix/boot/rmfiles.c + 1. Unused variable "i" in main(). + 2. Another warning from GCC static analysis suggesting that local + variable "fp" might be being used before being initialized (definitely + not in this case, but I added an initializer to avoid the message). + (01/27) + +unix/boot/wtar/wtar.c + Unused variable "op" in putheader(). (01/27) + +unix/boot/spp/xc.c + 1. Unused variable "cmdbuf" in main(). + 2. Variable "append" in sys() could be used before being + initialized. (01/27) + +unix/boot/spp/xpp/xppcode.c + 1. Unused variable "irafdefs" in do_include(). + 2. parse_task_statement() did not return a function value in all cases. + 3. accum() did not return a function value in all cases. + 4. Unused variable "digit" in charcon(). Function did not return + a value in all cases. + 5. Variable "value" not initialized in all cases (when an error + occurs, but it causes a warning message). (01/27) + +unix/boot/spp/xpp/decl.c + Local variable "sp" was not being initialized in all cases (i.e., + when an error occurred). (01/27) + +unix/boot/spp/rpp/ratlibc/getlin.c + The local variable "c" was not being initialized in all cases. (01/27) + +unix/mkpkg.sh + Commented out the SHLIB build code, as there is no shared library + support for Mac/IRAF yet. (01/27) + +unix/gdev/sgidev/sgidispatch.c + Deleted unused local variables "maxch" and "status". (01/27) + +-------------------------- +Second bootstrap attempt. (01/27) + +unix/os/gmttolst.c + Added #ifdef SYSV support. (01/27) + +unix/os/mkpkg.sh + Changed the "rm alloc.o" to "rm -f alloc.o", as the .o file is + not being left behind on this system, using GCC. (01/27) + +unix/os/zfioks.c +unix/hlib/irafuser.csh + GCC still warns that longjmp could clobber the values of several + local variables in this routine. Evidently this is a feature of + ANSI C. The values of automatic variables not declared "volatile" + are not guaranteed to be preserved in a longjmp. Added a -DANSI + to irafuser.csh and some #ifdef ANSI code to zfioks.c to provide + the necessary (but not non-ANSI backwards compatible) definitions. + (01/27) + +unix/os/zfiotx.c + Another longjmp warning, this time in ZGETTX. Variable "op" might + not be saved over a longjmp. In this case I was able to avoid the + problem merely by moving the op initialization statement to after + the setjmp. (01/27) + +unix/os/zfiopl.c + In zclspl, another case of an array aggregate initializer "= val;" + having to be changed to "= { val };" when initializing an array of + length 1. (01/27) + +unix/os/zoscmd.c + Modified so that if SYSV is defined, "fork" is used instead of + the BSD-ism "vfork". (01/27) + +------------------------- +Third bootstrap attempt. + +unix/boot/spp/rpp/ratlibf/*.f +unix/boot/spp/rpp/rppfor/*.f + The Fortran compiler I am using (Absoft) is case sensitive by default + and does not append an underscore to symbol names. For testing + purposes it would be most useful to have the Fortran names occupy + the same name space as the C library names, so I translated the + contents of all the above files to lower case. (01/27) + + [In retrospect this wasn't the best way to do this, the Fortran + compiler has a switch which does it more simply. (01/29)] + +unix/boot/spp/rpp/ratlibc/ratdef.h + Removed the trailing underscore from the names of the Fortran + routines. (01/27) + +unix/hlib/libc/knames.h +unix/hlib/libc/xnames.h + Edited to remove the trailing underscore from all names. (01/27) + +unix/boot/spp/rpp/ratlibr/defs +unix/boot/spp/rpp/rpprat/defs + It probably doesn't matter, but these directories both have a copy + of the "defs" file and the files should be the same, but they aren't. + The version in rpprat has been changed to increase the size of + various size limiting buffers. The fortran sources should be + regenerated using compatible defs files. (01/28) + +unix/boot/spp/rpp/mkpkg.sh + RPP failed to link in the first bootstrap attempt. To fix this + it was necessary to modify the $CC link command in the mkpkg.sh, + as follows: + + $CC $HSI_CF -t rpp.o librpp.a libf.a libc.a -lf77 -o rpp.e + + The -t flag had to be added to avoid warnings about the inconsistent + sizes for the cdsmem common (see "defs", above). The -lf77 had to + be added for the Absoft compiler, as evidently it uses library + functions for a few simple things like ABS that some RPP code + references. (01/28) + +unix/boot/mkpkg/host.c + Added a #ifdef SYSV to the code which calls RANLIB, since this is + not used on SYSV (COFF) systems. (01/28) + +unix/os/irafpath.c + Added a #ifdef AUX conditional to search the "unix/bin.mac" directory + for Mac/IRAF system files. (01/28) + +unix/spp/rpp/rppfor/poicod.f + The HSI bootstrap completed successfully, although some things are + probably still not working correctly. XC now runs but in my very + first compile test I ran into a nasty problem in the third party + Absoft Fortran compiler. The compiler complains about the following + statement in fio$areadb.x being out of order: + + memi(fp+15) = 0 + + Evidently it thinks this array assignment is a statement function + or something. I was further able to isolate the problem with the + following source: + + subroutine areadb (fd) + integer fd + integer Memi(1) + real Memr(1) + equivalence (Memi, Memr) + common /Mem/ Memi + save + memi(fd+15) = 0 + end + + The compiler barfs on a syntax error on line 8 of this file, the + lone assignment statement. With a little further testing I was + able to establish that this is due to case sensitivity in the + compiler! Changing the memi to Memi causes the problem to go away. + To fix the problem in RPP I had to replace the file poicod.f by + a version that uses "mem" rather than "Mem" in the data strings. + (01/28) + +unix/hlib/libc/libc.h + The Absoft compiler prefixes the names of Fortran commons with C + (e.g., "Cfiocom", "Cmem", etc.) and omits the trailing underscore + as in C. Modified libc.h to reflect the above naming scheme. (01/28) + +--------------------------------- +Started first core system sysgen. (01/28) + +sys/plio/plr2l.gx +sys/plio/plp2l.gx +sys/plio/pllsten.x +sys/plio/pllrop.x + The Absoft Fortran compiler could not handle the following type of + statement in these files: + + ll_out[op] = M_DH + -dv + + It was necessary to place parens around the (-dv) to avoid the + problem. (01/29) + +unix/hlib/iraf.h +unix/boot/spp/xpp/decl.c + 1. There were a lot of problems in PLIO in the initial sysgen due to + the use of bitwise boolean intrinsics in these files. The Absoft + compiler does have some bitwise functions but 1) they are typed, + not generic functions, and 2) a function which takes two short + integer arguments as input can return an integer result (contrary + to the documentation). Also, this is not a problem but a comment, + but the compiler generates function calls for the bitwise operators, + which is rather inefficient. The only way I could come up with to + work around these limitations was to define the bitwise intrinsics + in hlib$iraf.h as follows: + + define and iand(int($1),int($1)) + define or ior(int($1),int($1)) + define not jnot(int($1)) + define xor ieor(int($1),int($2)) + + 2. Unfortunately the argument expansion in the above definitions + would cause problems with functions that declare the bitwise + intrinsics, i.e., that contains statements such as "int and()". + It was necessary to modify decl.c to add special processing for + function declarations so that any declarations of the bitwise + intrinsics could be omitted. This may be a generally useful + addition as special processing of intrinsic functions might be + required on any system. (01/29) + +sys/mwcs/mwtransd.x + This file also contained a "foo + -bar" construct requiring + parenthesis to get by the Absoft parser. (01/29) + +sys/imfort/imemsg.x + This file contained four Fortran escapes (error message strings) + which ran over the 72 character line limit of Fortran, causing the + Absoft compiler to complain. (01/29) + +unix/hlib/mkpkg.inc + Added the following default compile time flags: + + -f Fold all symbol names to lower case. This is needed + for some of the Fortran sources. + + -k Restore all registers when a procedure returns. + This is necessary if Fortran modules are to be + called from C code. + + Mac/IRAF also needs the -z link flag. (01/29) + +sys/gio/nspp/portlib/gridal.f + The equivalence on line 4 was incorrect (or at least ill-advised) + due to a dimension error. The code "mfmtx(1),ifmt(1))" should + have been "mfmtx(1),ifmt(1,1))". (01/29) + +sys/gio/nspp/portlib/z8zpbd.f +sys/gio/nspp/portlib/z8zpii.f + The Absoft compiler didn't want to permit use of DATA to initialize + variables in common so I had to move all the remaining DATA + statements out of z8zpbd.f into run time initialization statements + in z8zpbd.f (01/29) + +unix/boot/spp/xc.c + 1. The routine printargs() was printing one more argument then there + was, due to a <= that should have been a < in a FOR loop. + 2. Modified XC to use GCC for linking. (01/29) + +----------------------- +This took care of all the problems with the sysgen up to the attempt to +link the first task. Trying to build the system task, there was a file +that did not compile. Inexplicably the system hang twice requiring a +reboot, once while linking and the other time while trying to do a mkpkg +on the system task (the system hand requiring a reboot in my first attempt +to link an iraf task!). No idea why this happening. (01/29) + +The above problem was due to the rebuilding of XC after the first sysgen. +libsys.a and libvops.a existed this time so XC was not built NOVOS, which +was no good as the entire kernel needs to be consistent one way or the +other, and I haven't done runtime checks of the iraf libraries yet anyhow. +(01/30) + +unix/hlib/mkfloat.csh + The tar -x flags are "tar -xpf" for BSD systems, and "tar -xof" for + SysV systems. Added a new SET at the top to document the dependency + and set the value to -xof for AUX. (01/30) + +unix/hlib/irafuser.csh +unix/hlib/fc.csh +unix/hlib/cl.csh + Set up two different architectures for Mac/IRAF. These are the + following: + + mf2 Absoft MacFortran II binaries + f2c F2C/GCC binaries + + F2C is a publically available Fortran to C translator, and GCC is + the GNU C compiler. These can be combined to yield an interesting + Fortran compiler constructed from only publically available sources. + This is particularly interesting since we are already using GCC + as our C compiler for A/UX. Initially I am building with the Absoft + compiler but I plan to try F2C/GCC later. (01/30) + +mkpkg +noao/mkpkg +bin.generic + + Edited the root mkpkg file to add entries "mf2" and "f2c" for setting + the bin.mf2 and bin.f2c architectures. Deleted all the Sun + architecture entries. Added a bin.generic subdirectory. (01/30) + +pkg/system/help/lroff/textout.x + Modified to eliminate the ENTRY point. (01/30) + +----------------------- +First successful iraf process link on A/UX - xx_system.e (01/30) + +unix/hlib/iraf.h +unix/hlib/libc/xnames.h + The Absoft compiler does not append an underscore to function names + hence SPP/Fortran function names occupy the same name space as C + names. Probably there are a number of SPP procedure names which + redefine standard C library or other host system names (this has also + been a problem with VMS/IRAF so fixing that system will be another + benefit of dealing with this here). The first such name collision + found is GETPID. Since the SPP getpid was calling the host getpid + an infinite loop would result. This is probably what was causing + the system to hang up when XC was run earlier. (01/30) + + Summary of redefined names (to be added to as I locate them): + + getpid + + All such name collisions are handled by remapping the name in iraf.h + and libc/xnames.h. + +unix/boot/spp/xc.c +unix/hlib/mkpkg.inc + Modified XC to use CC for linking (I was using GCC) and change the + "-/t" link flag in mkpkg.inc to "-/Wl,-t", which instructs CC to + hand off the flag -t to the linker. (01/30) + +unix/os/zzstrt.c +unix/os/zxwhen.c + Digging into the A/UX internals to see how A/UX handles the IEEE + exceptions I find that a function "initfpu" is called during process + startup. It turns out though, that this function is a no-op! + From the assembler it appears that the current version is initfpu(){}. + Must be a placeholder for a future version of A/UX when it will be + done "right". No changes to zzstrt/zxwhen yet until I figure out + how... (01/30) + +unix/hlib/mkpkg.inc +unix/hlib/mkpkg.sf.MF2 + Uh oh... Absoft compiler bug, and a troublingly simple one. The + memio$sizeof.x procedure is only one line long: + + return (ty_size[dtype]) + + but the Absoft compiler with default optimization enabled is + eliminating most of the code and producing something which does + not even use the ty_size array. Added the file to the mkpkg + special file list to be compiled without optimization. (01/30) + +-------- +unix/hlib/mkpkg.sf.MF2 + On March 27 I finally got a few more hours to play with this port; + looked into the next runtime bug in x_system.e. It turned out to + be necessary to recompile file fio$fgetfd.x without optimization. + Once again, the bug was disturbing as it did not look like an + especially subtle bug. It looked like the compiler was allocating + the same location on the stack in two places and the second reference + would overwrite the first. After working around this one, I tried + running x_system.e and it failed again with another startup bug, + still trying to execute all the code in clopen.x. It begins to + look bad for the Absoft compiler; if we can't get any further than + this I suspect the system will be riddled with optimizer bugs. (3/29) + +-------- +I think it is time to give up on the Absoft compiler, at least for now, and +try F2C instead. (4/3) + +unix/hlib/irafuser.csh +unix/hlib/mkpkg.sf.F2C + + Configured for F2C architecture. (4/3) + +unix/hlib/libc/libc.h +unix/hlib/libc/xnames.h +unix/hlib/libc/knames.h +unix/boot/spp/rpp/ratlibc/ratdef.h +unix/as.mac/zsvjmp.s + Restored the trailing underscores, since F2C adheres to this + convention. (4/3) + +unix/hlib/iraf.h + Commented out the definitions for and,or,not,xor, since F2C uses + the SPP versions (which came originally from UNIX f77). (4/3) + +sys/fmtio/ctotok.x + Local variable numch never used (this is old code so I don't know + why no other compiler has found this). (4/3) + +sys/fmtio/evexpr.y +sys/fmtio/evexpr.x + The second argument (a debug flag) to yyparse (xev_parse) is a + boolean, but xev_parse was being called elsewhere with an integer + argument. Changed to a boolean since the Y*cc code contains many + if (yydebug) constructs. (4/3) + +sys/etc/main.x + FREDIR is a subroutine but was being called as a function in one + place in this file. (4/3) + +sys/tty/ttyputl.x + This file contained a statement call putci (fd, "_") which was + incorrect, since the argument "_" is type char but is supposed to + be integer. (4/3) + +sys/gio/gopen.x + The pointer array graphcap_file was not being used. (4/3) + +sys/pmio/pmplls.x + The second call to pl_plls was missing the ll_depth argument. (4/3) + +sys/qpoe/qpppar.x + The second call to qp_sizeof was missing an argument. (4/3) + +sys/imfort/bfio.x + There was an extra "status" argument to one of the calls to + zsttbf. (4/3) + +unix/boot/spp/xc.c + Built the CC link time flag "-Wl,-t" directly into XC, since it + is needed to link iraf programs and is too much of a nusiance to + have to type when XC is used manually. The flag turns off a linker + warning message warning about inconsistent lengths for commons. + (4/3) + +sys/gio/ncarutil/conran.f + Local variable LNGTHS not used. (4/3) + +pkg/plot/crtpict/t_crtpict.x + A call to gardwrd was missing the maxch argument. (4/3) + +unix/hlib/install + 1. Had trouble with the $hbin/sgi2* $hlib/sgi2* stuff in MODEFILES. + The second did not expand to anything and the string "$hlib/sgi2*" + was left in MODEFILES with the * unexpanded, causing problems later + when appended to a directory prefix. Since there are not supposed + to be any executables in hlib anyhow I deleted the second reference. + 2. In the code which checks the MODEFILES, I added a test to see + if the file exists as named, before looking for it in each of the + directories. Referencing a nonexistent directory can cause the + script to bomb on A/UX (it shouldn't, but it does - a bug in csh). + 3. Had to change /etc/chown to /bin/chown. (4/3) + +pkg/plot/getdata.x + The statement if(nxrows) was incorrect as nxrows is integer. (4/3) + +pkg/xtools/intrp.f +unix/hlib/mkpkg.sf.F2C +unix/as/intrp.c + + F2C failed to produce correct C code for this file (which contains + multiple ENTRY points). Hand edited the C version and added it to + the special file list. (4/3) + +pkg/dataio/fits/fits_wpixels.x +unix/hlib/mkpkg.sf.F2C +unix/as/fits_wpixels.c + + Same bug as above. (4/3) + +pkg/plot/t_graph.x + Variable window declared but not used. (4/3) + +pkg/plot/t_velvect.x + Variable nset declared but not used. (4/3) + +sys/fmio/fmlfundel.x + The two calls to fmio_bind and fmio_errck were both lacking the + fm argument. (5/3) + +sys/ki/kireceive.x + A call to strcpy was missing an argument. (5/3) + +sys/imio/imopsf.x + The call to pl_ssize had an extra unused argument. (5/3) + +sys/etc/pagefiles.x + ttyctrl, which is an integer function, was being called as a + subroutine. (5/3) + +sys/gio/gopen.x + Local string variable graphcap never used. (5/3) + +sys/imio/iki/oif/oifclose.x +sys/imio/iki/oif/oifdelete.x + The integer function protect() was being called as a subroutine. + (5/3) + +sys/plio/plglr.gx + The routine pl_rangerop was being called incorrectly. (5/3) + +sys/plio/plprop.gx + The VOPS routine argt (replace if greater than) was being + called incorrectly in three places. (5/3) + +sys/plio/plascii.x + The subroutine pl_glpi() was being called as a function. (5/3) + +sys/plio/pldebug.x + The integer function pl_l2ri() was being called as a subroutine. + (5/3) + +sys/pmio/pmglp.gx + The routine pl_pixrop was being called incorrectly. (5/3) + +sys/qpoe/qpioopen.x + A call to syserr was being made where syserrs was intended. (5/3) + +unix/os/zzstrt.c + Added a call to "setcompat (COMPAT_BSD)" to be executed upon + process startup. This tells the kernel to use BSD semantics + when executing system calls. This fixed a problem I was having + with ZWMSEC, which would result in the process being killed + with a SIGALRM when the interval timer interrupted, even though + a signal handler had been posted earlier with sigvec. (5/4) + +unix/os/zzstrt.c + Here is another problem that, like the previous one, was very + indirect and hence difficult to track down. The time-task feature + of iraf, e.g., "$imstat dev$pix", when run for the first time + in a new process, would return a clock time such as "-416:+0" + instead of "0:13" or whatever. Thereafter it would be ok, until + the process was restarted. This turned out to be due to the + clock time returned by the first call to ZGTIME being wrong. + The eventual solution was to add a call to TZSET to zzstrt to + initialize the SysV time stuff before any time calculations + take place. What I suspect was happening is that in gmt_to_lst + I was accessing "timezone", which is a global data variable in + SysV, but the value was being changed sometime later in an + indirect call to TZSET. Using a global variable for something + like this that is evidently not constant is a very questionable + feature of SVID (unless it is a bug in A/UX). (5/5) + +unix/hlib/mkpkg.sf.F2C + It turns out that the A/UX version of bcopy does not work (is + destructive) for overlapping arrays, so I had to remove all the + entries for amov$t and bytmov from the special file list. This + problem showed up as a segmentation violation in HELP. (5/5) + + All three of these last bugs were very difficult to track down - + essentially, in each case I eventually just guessed what it might + be, after tracking the problem down to a region of code. + +math/curfit/cvpower.gx + Changed a "amovk$t(INDEFR,...)" to "amovk$t(INDEF,...)". The former + causes a real to be passed where a double is expected. (5/6) + +sys/gio/cursor/grccmd.x + External pr_psio() declared but never used. (5/6) + +sys/gio/stdgraph/stgclws.x + External std_onerror() declared but never used. (5/6) + +sys/libc/qsort.c + The static function qst() was being used before being declared, + resulting in an extern/static declaration inconsistency. (5/6) + +math/gsurfit/gs_f1deval.gx + In the line: call amulk$t (Mem$t[sx], 2., Mem$t[sx], npts) + The real constant "2." was changed to the generic form "2$f". (5/6) + +sys/ki/irafks.x + The "task irafks = onentry" was incorrect since ONENTRY is an integer + function. This was harmless since the purpose of the task statement + was merely to get an iraf main, but I set up a dummy t_irafks task + to avoid the type clash. (5/6) + +pkg/cl/bkg.c + Static function bkg_close() used before being declared static. + Added a static function declaration to the file header. (5/6) + +pkg/cl/debug.c + Same as above, function dd_f(). (5/6) + +pkg/cl/edcap.c + Same as above, function map_escapes(). (5/6) + +pkg/cl/pfiles.c + Same as above, function mapname(). (5/6) + +pkg/cl/cl.x + Same problem as in irafks, above. ONENTRY is a function and should + not be referenced as a subroutine in the task statement. Added a + dummy t_cl procedure to avoid the type clash. (5/6) + +unix/hlib/login.cl + The line + + if (access ("home$loginuser.cl") cl < "home$loginuser.cl" + + causes the following statement to be ignored if the IF is true. + This is a CL bug, but for now the workaround is to add a null + statement ; to the line following the IF. (5/6) + +pkg/cl/gram.c + dumpparams() modified to write to t_out instead of t_stdout. + ccdphot related experiment. (6/21) + +------------------ +Rebuilt HSI with VOS facilities. (7/19) +Started build of NOAO packages. (7/20) + +unix/hlib/irafuser.csh + Added "-Wl,-t" to the HSI_CF flags. This gets rid of a linker + warning about xercom changing size. (7/20) + +-------------------- +System upgraded to V2.10. Started with the SunOS version of the system +from tucana, merged A/UX stuff back in, which many minor changes. (10/01) + +unix/hlib/irafuser.csh + Added -traditional to the GCC flags, to avoid some problems + in the A/UX system includes, probably introduced in the upgrade to + A/UX 2.0.1. (10/02) + +lib/libex.a + After the sysgen I had to do a "ar ts" on this file to regenerate + the symbol table; not clear why this library and no other. Until + the reason is clear, no action. (10/02) + + [This appears to be a bug in AR; it is failing to properly generate + [the symbol table for very large libraries. A manual "ar ts" seems + [to fix the problem, but this bug will cause problems with a sysgen.] + +sys/gio/ncarutil/pwrity.f + Unused variable LEN on line 335. (10/02) + +sys/gio/ncarutil/pwrzi.f +sys/gio/ncarutil/pwrzs.f +sys/gio/ncarutil/pwrzt.f + Variables HIGH,WIDE,WHITE, and LNGTH not used (same problem in + all three files). (10/02) + +math/gsurfit/mkpkg + Contained a statement $ifeq (USE_GENERIC, YES) which was incorrect, + as a lower case "yes" is required since $ifeq uses a simple string + comparison. (10/02) + +math/nlfit/nlzero.gx + Multiple problems; two calls to aclr had an extra argument, but + invalid pointer references too. (10/02) + +mkpkg + The special file list wasn't being used; this was traced to the + use of a symbol link to the iraf root directory. One cannot + reference the iraf root via a link or directory path comparisons + will fail. (10/03) + +sys/fio/fntgfn.x + A pattern such as "*%" would match all filenames, a potentially + disastrous feature if used, say, to delete host filenames containing + the % character. % is dangerous because it is just another character + in a unix filename, but in iraf it is one of the the pattern + matching metachacters (substring editing). The filename template + code was modified to 1) require at least two unescaped % characters + in a pattern for the % to be recognized as a metacharacter, and + 2) to allow the % character to be escaped (the code was supposed + to do this but it was only partially implemented). (10/14) + +---------------------------------------------------------------------- +Summer 1992 - Mac system upgraded to A/UX 3.0. New versions of F2C and GCC +installed. V2.10 upgrade resumed Oct 13-14 1992. There were a number of +minor changes most of which are probably not worth recording here. The +main changes were to "f77" and "xc". f77 is a script in /usr/local/bin +which calls f2c and gcc to act as a Fortran compiler. This was tuned to +improve the integration of f2c and gcc. XC was modified to support gcc +better, e.g. omit .o files from compiles to avoid annoying gcc warnings, +use gcc rather than cc for linking, search the right directories, etc. +The new version of GCC (2.2.1) is quite a bit changed from what I used +last year. I had to make one bug fix to cpp to get source level debugging +to work for .f files compiled with f77/f2c/gcc. + +diff/merged the HSI and did a fresh bootstrap, pretty routine. (10/13) +installed and built tables and noao. (10/13-14) +diff/merged the DEV directory. (10/14) + +unix/hlib/install + Changed the code which checks the ownership and permissions of alloc.e. + On a/ux, ls -l prints the group by default, and this was causing the + old string comparison to fail. (11/21/92) + +unix/os/zfioks.c +unix/os/zfiotx.c + Changed some TCSETAF ioctl's to TCSETAW ioctl's. The TCSETAF ioctl + claims to flush the output buffer before changing the terminal driver + settings, but output data was being lost. Using TCSETAW appears to + avoid this problem. (01/13 1993) + +unix/hlib/iraf.h +unix/hlib/libc/spp.h + Changed the values of INDEFR and INDEFD to the following. + + INDEFR 3.4e38 + INDEFD 1.7d308 + + and IS_INDEFR and IS_INDEFD were changed to + + IS_INDEFR (($1) > 3.3e38) + IS_INDEFD (($1) > 1.6d308) + + This was necessary as the floating point equality tests used to + check for INDEF were failing using F2C/GCC. (01/15 1993) + +math/iminterp/arbpix.x +math/interp/arbpix.x +noao/astutil/t_setairmass.x +noao/digiphot/photcal/evaluate/phprint.x +noao/mtlocal/cyber/cykeywords.x +noao/mtlocal/cyber/t_ridsfile.x +noao/onedspec/ecidentify/ecline.x +noao/onedspec/irsiids/t_bswitch.x +noao/onedspec/irsiids/t_flatdiv.x +noao/onedspec/irsiids/t_flatfit.x +noao/onedspec/irsiids/t_sums.x +noao/twodspec/apextract/peaks.x +noao/twodspec/multispec/fitclean.x +noao/twodspec/multispec/fitsmooth.x +noao/twodspec/multispec/intgauss5.x +noao/twodspec/multispec/peaks.x +noao/twodspec/multispec/solve.x +noao/twodspec/multispec/t_fitfunc.x +pkg/bench/xctest/lintran.x +pkg/images/lib/sigl2.x +pkg/images/tv/display/sigl2.x +pkg/images/tv/iis/src/sigl2.x +pkg/lists/lintran.x +pkg/plot/crtpict/sigl2.x +pkg/proto/t_imscale.x +sys/clio/clgeti.x +sys/clio/clgetl.x +sys/clio/clgetr.x +sys/clio/clgets.x +sys/clio/clglpi.x +sys/clio/clglpl.x +sys/clio/clglpr.x +sys/clio/clglps.x +sys/clio/clputi.x +sys/gio/calcomp/t_calcomp.x + The above files were modified to replace "equals-INDEF" style + constructs with "IS_INDEF" constructs. (01/15) + +unix/hlib/install + Added a number of "rm -f $TEMP" statements to delete any old $TEMP + files before attempting to create new ones. (2/01) + +unix/os/zzstrt.c + Added #ifdef AUX code to enable the IEEE exceptions in the 68882. + There is no A/UX support for this so it had to be done in assembler + by writing to the FP control register. (3/09 1993) + +unix/os/zxwhen.c + Added #ifdef AUX code to decode SIGFPE and print error messages + appropriate to the exception. There is no A/UX support for this so + it was necessary to write assembler to read the FP status register + and test which exception occurred. (3/09) |