aboutsummaryrefslogtreecommitdiff
path: root/doc/ports/notes.solaris
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
commitfa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch)
treebdda434976bc09c864f2e4fa6f16ba1952b1e555 /doc/ports/notes.solaris
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'doc/ports/notes.solaris')
-rw-r--r--doc/ports/notes.solaris514
1 files changed, 514 insertions, 0 deletions
diff --git a/doc/ports/notes.solaris b/doc/ports/notes.solaris
new file mode 100644
index 00000000..46a5fed2
--- /dev/null
+++ b/doc/ports/notes.solaris
@@ -0,0 +1,514 @@
+Begin IRAF port to Solaris 2.3
+Wed May 25 15:38:55 MST 1994
+----------------------------------------
+
+bin.ssun +
+bin.ssun/IB.SSOL.SUN +
+bin.sf2c +
+bin.sf2c/IB.SSOL.F2C +
+noao/bin.ssun +
+noao/bin.ssun/IB.SSOL.SUN +
+noao/bin.sf2c +
+noao/bin.sf2c/IB.SSOL.F2C +
+ Set up the Solaris platform (SSOL = Sun Solaris) and the two planned
+ Solaris architectures, SUN (Sun unbundled compilers) and F2C (F2C
+ and FSF compilers). (5/25)
+
+unix/hlib/irafuser.csh
+ 1. Replaced the `mach` reference by something that will work on both
+ SunOS and Solaris, using uname.
+ 2. Modified to define either SUNOS or SOLARIS in HSI_CF, so that
+ kernel code can support both systems. (5/25)
+
+unix/os/getproc.c
+ Added a Solaris version of uid_executing(). This reads /proc and
+ scans the process files to see if any belong to the given uid. (5/25)
+
+unix/hlib/irafuser.csh
+unix/os/mkpkg.sh
+ 1. alloc.e would no longer link without linking against the library
+ -ldl. Note that -ldl can only be linked dynamic (no -Bstatic).
+ 2. Added a new definition HSI_LFLAGS to irafuser.csh and modified the
+ mkpkg.sh in OS to use this to define the link flags for alloc.e.
+ This will probably have to be done for other HSI executables as well.
+ (5/25)
+
+unix/os/prwait.c
+ Solaris defines the exit_status argument to wait() differently and
+ the code had to be modified to allow for this. (5/27)
+
+unix/os/zfioks.c
+ The select facility on Solaris uses fd_set, FD_SET, etc. and it
+ was necessary to add #ifdef SOLARIS code to reflect this. (5/27)
+
+
+Fri Jun 24 14:23:32 MST 1994
+----------------------------------------
+Resume port (elsewhere for the past month)
+
+unix/hlib/libc/kernel.h
+ Added a definition PFV; PFI is now a pointer to function returning
+ int, and PFV is a pointer to a function returning void. Also added
+ a new definition SIGFUNC, which is whatever type signal() refers to
+ on the local system. (6/24)
+
+unix/os/zfioks.c
+ 1. Changed a number of PFI instances to SIGFUNC.
+ 2. Changed the second two arguments to ks_onsig to type int*. These
+ are not used and the actual type is different on Solaris than other
+ systems. Probably the args should just be omitted but it may be
+ more portable to define a couple of dummy args.
+ 3. The second argument to bind() is type (struct sockaddr *) in
+ Solaris, was (caddr_t) on other systems. (6/24)
+
+unix/os/zfiotx.c
+ 1. Deleted the import_fset, which apparently isn't used and which
+ contains a #define which conflicts with a Solaris one.
+ 2. Changed a bunch of PFI instances to SIGFUNC. Added some
+ (SIGFUNC) declarations to the signal handler arguments to signal().
+ 3. Replaced the two dummy arguments (same as item 2 above) in three
+ instances of event handlers with dummy args declared (int *). (6/24)
+
+unix/os/zopdir.c
+ Modified to use Solaris version of opendir/readdir. (6/24)
+
+unix/os/zoscmd.c
+ Modified to use SIGFUNC instead of PFI, and to declare generic
+ dummy arguments for an event handler. (6/24)
+
+unix/os/zshlib.c
+ Fixed a syntax error on the last line, an extra ';' following a
+ stubbed out function declaration. (6/24)
+
+unix/os/zwmsec.c
+ 1. Modified to use signal instead of sigvec; the latter is BSD specifc.
+ 2. sigpause() takes a signal number instead of a signal mask. Omitted
+ sigblock, which is no longer needed since we aren't using a mask, and
+ which doesn't exist on Solaris.
+ Possibly this routine should be completely rewritten on Solaris,
+ there may be better facilities for small timed delays. (6/24)
+
+unix/os/zxwhen.c
+ 1. For Solaris we must include <sys/siginfo.h> and <sys/ucontext.h>.
+ 2. fcancel macro modified to use the constant BUFSIZ.
+ 3. The table of hardware exceptions was modified to omit all
+ codes other than those for SIGFPE; the other codes (at least on
+ Solaris) alias with the FPE codes, and aren't used anywhere in
+ zxwhen anyway. Added Solaris SIGFPE codes.
+ 4. Modified calling sequence of exception handler ex_handler to
+ the form Solaris requires. Added a statement to get the hardware
+ exception code out of the siginfo argument.
+ 5. Replaced a number of PFI's by SIGFUNC's. (6/25)
+
+unix/os/zfiomt.c
+ Modified signal handling code to use type SIGFUNC. (6/25)
+
+unix/os/zzstrt.c
+ Made a few changes to get this code to compile, although the shared
+ library support isn't expected to work at this point. (6/25)
+
+unix/hlib/irafuser.csh
+unix/os/zzstrt.c
+ Added a new define SHLIB, used to conditionally compile zzstrt for
+ shared library support. (6/25)
+
+unix/boot/bootlib/bootlib.h
+ This file had a #ifdef UNIX in it, but this define is not defined
+ anywhere. Modified to #ifdef VMS but assume unix otherwise. (6/25)
+
+unix/hlib/irafuser.csh
+ Modified to define RANLIB as "echo ranlib" for Solaris. (6/25)
+
+unix/hlib/kernel.h
+ Solaris doesn't have bcopy/bzero, so added a couple of #defines to
+ kernel.h to map these functions onto the equivalent Solaris versions
+ memmove/memset. (6/25)
+
+unix/os/zoscmd.c
+unix/os/zopdpr.c
+unix/os/zfiopr.c
+ Replaced all calls to getdtablesize() by corresponding calls to
+ getrlimit(). (6/25)
+
+unix/os/zfgcwd.c
+ Replaced getwd() by getcwd(). (6/24)
+
+unix/boot/mkpkg/scanlib.c
+ It was necessary to add an (int) cast to (int)fread(...) > 0
+ to avoid a warning message from the compiler, because fread has an
+ odd type on Solaris. (6/25)
+
+unix/hlib/irafuser.csh
+ Added -lsocket -lnsl (the Solaris socket emulation library) to the
+ list of HSI host libraries used to link the HSI utilities. (6/25)
+
+unix/boot/spp/xc.c
+ Made some minor changes to xc for Solaris - not clear yet what all
+ will be needed. Most of it looks like it will work. Added a #ifdef
+ conditional for the Solaris F77 libraries, taking the SunSoft
+ compiler as the builtin default. Modified signal handling to use
+ SIGFUNC to be more portable. (6/25)
+
+unix/boot/rmfiles/rmfiles.c
+ Added an "extern char *vfn2osfn()" declaration. (6/25)
+
+unix/boot/spp/rpp/ratlibc/initst.c
+ Added a #ifdef conditional to access the stdio streams on Solaris.
+ (6/25)
+
+unix/gdev/sgidev/sgi2uapl.c
+unix/gdev/sgidev/sgi2uhpgl.c
+unix/gdev/sgidev/sgi2ueps.c
+ 1. These files contained a number of cases where the file descriptor
+ "out" was declared int where (FILE *) was intended.
+ 2. Replaced an instance of gethostname() in sgi2uapl.c by a call
+ to sysinfo(). (6/25)
+
+
+Sat Jun 25 23:26:24 MST 1994
+----------------------------------------
+Completed first bootstrap. Try initial sysgen of core system.
+
+unix/boot/spp/xc.c
+ Modified xc to automatically do a "-t" when linking. This disables
+ linker warnings about different size commons. (6/26)
+
+unix/os/irafpath.c
+ Added a case for Solaris/sparc. (6/26)
+
+mpkg
+as.ssol +
+bin.ssol +
+unix/setarch.sh
+unix/hlib/irafuser.csh
+ For Solaris/sparc the HSI AS and BIN are as.ssol and bin.ssol.
+ Hopefully it will be possible to use a single set of directories
+ for both the ssun and sf2c binary architectures. (6/26)
+
+unix/hlib/install
+ Added some code to set the platform architecture automatically for
+ either SunOS or Solaris. On a Solaris system the suntools stuff is
+ skipped. (6/26)
+
+unix/boot/bootlib/envinit.c
+ Fixed a bug/typo in this code: "printf (stderr, ...)". (6/26)
+
+unix/boot/bootlib/vfn2osfn.c
+ Several more cases of a null statement ";" at the end of this file.
+ This happens in dummy function constructs like "foo(){};". (6/26)
+
+unix/hlib/mkpkg.inc
+ Added cases for IRAFARCH=ssun and sf2c. (6/26)
+
+unix/hlib/mkpkg.sf.SSUN +
+unix/hlib/mkpkg.sf.SF2C +
+ Added starter special file lists for the two Solaris architectures.
+ (6/26)
+
+unix/as.ssol/zsvjmp.s
+ This assembler source appears to assemble ok, but I had to remove the
+ leading underscore from _zsvjmp_ as the SunSoft Fortran compiler
+ doesn't use leading underscores. (6/26)
+
+
+Sun Jun 26 20:18:48 MST 1994
+----------------------------------------
+Completed first core system sysgen: system starts up and runs, but a number
+of bugs are evident.
+
+unix/hlib/irafuser.csh
+ HSI_XF now includes flags such as -/DSYSV -/DSOLARIS etc., so that
+ mkpkg can be used to update HSI libraries such as OS. This is only
+ a temporary solution, ideally XC should accept HSI_CF. (6/27)
+
+sys/fio/fdirname.x
+ There was an actual bug in this file that showed up during testing
+ of the new port. zfxdir (kfxdir) was being used incorrectly to
+ test for the existence of host directory pathnames. (6/27)
+
+unix/os/zopdir.c
+ The above testing also revealed a bug in this file. This was
+ preventing commands such as "dir /" from working, due to a bug in
+ the code which strips trailing slashes from directory names. (6/27)
+
+unix/os/zfiotx.c
+ 1. Raw mode terminal i/o was not working properly on Solaris; output
+ data was being lost when raw mode was entered, even though the ioctl
+ used would (presumably) wait for the output to drain before changing
+ the terminal mode. It is not clear what the connection might be,
+ but this was fixed by deleting the iflag=0, i.e., not resetting the
+ iflags, when entering raw mode. Evidently clearing one of the
+ default input flags was the source of this problem, even though
+ ICANON was disabled. Since ICANON is disabled we shouldn't need
+ to change the iflags anyway, so it should be safe to omit this.
+ In fact, it is probably safer to preserve all default terminal flags
+ by default and change only those affecting raw i/o, but at present
+ I will leave it fully setting the oflags and lflags, since this
+ is working.
+ 2. Solaris also provides the POSIX termios interface which is the
+ recommended interface. This appears to be a simple front end to
+ the termio ioctl interface. I decided to avoid this for the moment
+ since the SYSV termio interface appears to be widely available.
+ (6/27)
+
+
+Sun Jul 3 23:08:27 MST 1994
+----------------------------------------
+Resume work on Solaris port.
+
+unix/as.ssol/enbint.s +
+unix/os/zzstrt.c
+unix/os/zxwhen.c
+ After a bit more research got IEEE floating point exception handling
+ working under Solaris. The new routine enbint.s is used to enable the
+ exceptions. sigaction turned out to block SIGFPE when the handler
+ was called and it proved necessary to add the SA_NODEFER flag to
+ prevent this. (7/03)
+
+unix/os/zfioks.c
+unix/os/zfiond.c
+ Fixed a couple bugs that were keeping networking from working.
+ "RSH" was not being defined correctly in zfioks, and it was necessary
+ to add FD_ZERO calls to zero the select fd arrays before calling
+ FD_SET. (7/04)
+
+sys/imfort/tasks/
+unix/hlib/fc.csh
+ Tested FC on the imfort tasks. This worked without incident following
+ minor changes to the fc.csh script. The only thing unusual is that
+ an IEEE retrospective is printed when the task exits, indicating
+ that the IEEE divzero,overflow,invalid exceptions were enabled.
+ This is annoying but is not exactly a bug (ieee_retrospective is always
+ called by Fortran programs, it just doesn't usually generate any
+ output), so for the moment I don't see the need to change anything
+ at present. (7/04)
+
+Build of ssun binaries for TABLES proceeded without incident. (7/04)
+
+unix/boot/bootlib/ossymlink.c
+ This file used #ifdef BSDUNIX incorrectly, preventing the #ifdef-ed
+ code from compiling on UNIX systems for which BSDUNIX was not set.
+ Changed the statement to #ifndef VMS. (7/05)
+
+unix/shlib/zzzend.c
+ Deleted ";" at the end (empty declaration). (7/10)
+
+unix/shlib/medit.c
+ Added a #define for bcopy, which doesn't exist in Solaris. (7/10)
+
+unix/shlib/mkpkg
+ Modified to avoid use of ranlib on Solaris platforms. (7/10)
+
+unix/boot/spp/mkxc.sh
+ Modified to do the compile and link in separate steps. (7/14)
+
+unix/gdev/sgidev/sgi2uapl.c
+ Modified to put "%!PS" in the Postscript file header. (7/19)
+
+dev/tapecap
+ Added Solaris support. (7/20)
+
+unix/boot/spp/xc.c
+ Added -lintl to the list of builtin host libraries. (7/23)
+
+unix/os/zfiotx.c
+ Rather than leaving iflags unmodified when raw mode is entered,
+ now clears several input processing flags, in particular CR is not
+ mapped to NL. (7/23)
+
+unix/hlib/zzsetenv.def
+ Changed the default printer device to "lw". (7/25)
+
+unix/shlib/Slib.c
+unix/shlib/edsym.c
+unix/shlib/elf.c +
+unix/shlib/medit.c
+unix/shlib/mkpkg
+unix/shlib/mkpkg.sh
+unix/shlib/mkshlib.csh.ssol +
+unix/shlib/zzzend.c
+unix/os/zzstrt.c
+ There were many changes here, especially to mkshlib.csh, edsym.c,
+ Slib,c, and zzend.c, to support IRAF shared libraries under Solaris.
+ Most of the changes were made earlier but I did not keep detailed
+ notes during development. The changes are not fully backwards
+ compatible, so it will be necessary to configure separate shlib
+ directories for SunOS and Solaris. (7/25)
+
+unix/hlib/mkpkg.inc
+ A wfits problem was traced to a bug in the Fortran optimizer using
+ SunSoft Fortran 2.0.1. Compiling -O2 avoids the problem. (7/29)
+
+unix/hlib/install
+ The install script was modified earlier to just exit when it came
+ to the gterm/imtool config stuff. Modified this to continue on
+ with this, but to do only the X11 related configuration. This
+ consists of making the /dev/imt fifos, installing the imtoolrc,
+ and checking that termcap and graphcap are sufficiently up to date
+ to contain xgterm and imtool entries. (7/30)
+
+unix/hlib/libc/kernel.h
+unix/os/zfiotx.c
+unix/os/zzstrt.c
+ Replaced the terminal driver by a version which maintains a unique
+ descriptor for every hardware terminal device, regardless of the
+ file descriptor used to access the terminal. (8/02)
+
+dev/graphcap
+ The xgterm graphcap entry now recognizes either CR or LF as the
+ trailer code for a cursor read. (8/02)
+
+unix/boot/mkpkg/mkpkg
+ Changed "cc" to "$(CC)". (8/17)
+
+unix/boot/spp/xc.c
+ XC now supports multiple packages in PKGENV. (8/18)
+
+-----------------------------------------------------
+Solaris 2.10.3 release
+*** apus upgraded to Solaris 2.4, SunSoft V3.0 compilers ***
+
+unix/os/zfiotx.c
+ Installed the tty_reset bugfix. (9/17)
+
+unix/os/getproc.c
+ This routine was omitting the "/proc" from pathnames of process
+ files in the /proc directory, causing uid_executing to always
+ return zero. (10/05)
+
+-----------------------------------------------------
+Merged in V2.10.4 revisions from tucana. (4/22 1995)
+
+unix/hlib/mkpkg.sf.SSUN
+ Added explicit $xc build commands to the special file list entries for
+ C files. The default compile flags from mkpkg.inc would cause a
+ warning when applied to C files, as CC doesn't understand -O2. (4/26)
+
+unix/shlib/mkshlib.ssol-sc2
+unix/shlib/mkshlib.ssol-sc3 +
+ Renamed mkshlib.csh.ssol to mkshlib.ssol-sc2. This is the version for
+ the version 2x SunSoft compilers. Started a variant mkshlib.ssol-sc3
+ for the version 3x compilers. In this made various minor changes:
+ 1) File header size increased from 0x74 to 0x78.
+ 2) Compiler libraries and objects are now in /opt/SUNWspro/SC*/lib
+ instead of /opt/SUNWspro/SC*.
+ 3) There is a new library -lsunmath which follows -lF77. (4/26)
+
+unix/boot/spp/xc.c
+ Modified to add the -lsunmath library if used with the Version 3 or
+ greater SunSoft compilers. XC attempt to automatically distinguish
+ Version 2 and Version 3 and do the right thing. (4/26)
+
+unix/hlib/mkpkg.inc
+ Removed the -O2 switch from the standard compile flags in mkpkg.inc.
+ This was put in for an older version of the compilers and probably
+ isn't needed any longer. This also avoids the problem of passing -O2
+ to the C compiler when compiling C code. (4/26)
+
+-----------------------------------------------------
+Completed a full bootstrap and sysgen of V2.10.4 Solaris/IRAF using
+Solaris 2.4 and the SunSoft V3 compilers. (4/26)
+
+unix/hlib/zzsetenv.def
+ Updated "version" to 2.10.4EXPORT. (5/18)
+
+unix/hlib/spy.cl
+ Rewrote spy.cl to work on both BSD and SYSV systems (SunOS and
+ Solaris in the case of Solaris/IRAF). (5/19)
+
+unix/os/zgtime.c
+ Modified for Solaris systems to use CLK_TCK (which does a runtime call
+ to sysconf) to get the clock frequency, instead of the compile time
+ kernel constant CLKFREQ. On our development system CLK_TCK is 100,
+ rather than 60 which is the value compiled into the kernel. (5/19)
+
+unix/os/gmttolst.c
+ In the internal routine get_timezone added a call to "tzset()"
+ before accessing the external variable timezone. This is necessary
+ to set the value of timezone in the first call after process
+ startup. (5/19)
+
+unix/os/zoscmd.c
+ This fix was made to resolve a problem where EMACS or VI would
+ hang up when run from the CL and ctrl/g or ctrl/c was typed.
+ Evidently this was due to the code in zoscmd.c which pretends to
+ ignore interrupts while the child is executing, but in reality was
+ catching interrupts and setting a flag then continuing to wait for
+ the child process to terminate. Evidently on SysV systems, or at
+ least on Solaris, the interrupt handler was causing the process
+ to read from the terminal, and wait() was not being reentered
+ folowing an interrupt causing both the parent and the child to read
+ from the terminal at the same time. The fix was to modify zoscmd.c
+ so that on SYSV systems the parent does not post any interrupt
+ handler. (5/19)
+
+unix/os/zzstrt.c
+unix/shlib/mkpkg
+bin.ssun/S10_5.4.e +
+ It appears that the system library libsocket.a in Solaris is
+ incompatible between Solaris 2.3 and 2.4. Networking is broken if
+ an IRAF executable linked under Solaris 2.3 is run on 2.4 and vice
+ versa. Our workaround, at least for the moment, is to have different
+ versions of the IRAF shared image for different versions of solaris.
+ During startup an IRAF process will query the OS release number,
+ e.g. 5.3 (Solaris 2.3) or 5.4 (Solaris 2.4) and map the corresponding
+ shared image. A mkpkg in unix/shlib updates the version of the
+ shared image corresponding to the OS release on which IRAF is
+ currently running. The new shared image file names are S10_5.3.e
+ for Solaris 2.3 and S10_5.4.e for Solaris 2.4. If the release
+ dependent version is not found the system will automatically fall
+ back to S10.e. (5/22)
+
+-----------------------------------------------------
+Did another sysgen-relink and rebuilt the distribution files. (5/22)
+
+unix/boot/spp/xc.c
+ Modified to compile only C and assembler files in the catch-all
+ compile phase. Prevents compile attempts where the file list
+ contains only object files. This was a problem under Solaris 2.5.
+ (10/19)
+
+unix/shlib/mkshlib.ssol-sc3
+ Modified to suport the SC4.0 compilers under Solaris 2.5. There was
+ a bug in the script if both SC3.0.1 and SC4.0 compilers were present
+ in the same system. The link line was slightly different for the
+ new compiler. (10/19)
+
+unix/shlib/mkshlib.ssol-sc3 -
+unix/shlib/mkshlib.ssol-sc34 +
+ 1. Changed the name of this file to sc34 since it supports both the SC3
+ and SC4 compilers. Updated the comments accordingly.
+ 2. I tried changing the page alignment for the shared image from
+ 0x2000 (8K) to 0x4000 (16K). The intent was to support Sparc clones
+ with 16K pages. It worked (at least on a Sun sparc), but would
+ produce a bogus version match please relink error message on startup
+ for old executables, due to relocation of the transfer vector. I had
+ to set things back to 0x2000 as we can't afford to break old
+ executables for a patch. (3/25 1996)
+
+unix/os/zmain.c
+ Added a #ifdef SYSV conditional to allow for different calling
+ sequences for setpgrp() on SYSV and BSD systems. (4/24)
+
+unix/os/zfinfo.c
+ Commented out the setpwent/getpwent, they are not needed on Solaris
+ and appear to cause an associated Solaris bug to crop up. (8/16)
+
+-------------------------------------------
+V2.10.4 patch 2 released. (5/22 1996)
+
+
+TODO
+ o Tue Nov 21 12:50:24 MST 1995
+ XC assumes /opt/SUNWspro in isv3().
+
+ o Thu Feb 1 11:54:17 MST 1996
+ Skip reports networking failure - AA05224
+
+ o Mon Mar 11 12:24:55 MST 1996
+ Modify zawset.c to use actual physical memory as determined by sysconf.
+
+ o Mon Mar 11 12:25:10 MST 1996
+ Change SHLIB address from 0a000000 to 03c000000 to allow 1 Gb process
+ data segment. This requires that all applications be relinked so
+ cannot be done until V2.11.