Tclkit HP-UX notes

2003-12-22 - notes by Bob Techentin, Tclkit 8.4.5

  O/S:  HP-UX B.11.00
  Environment
    CC="cc"
    CFLAGS="-Ae +DAportable +Onolimit -O"
    CXX="aCC"
    CXXFLAGS="+DAportable -O"
  gentkit.local - maps gcc/g++ to native cc/aCC compilers
     array set X {
          gcc "cc -Ae +DAportable +Onolimit -O"
          g++ "aCC +DAportable -O"
     }

2003-09-29 - notes by Bob Techentin

The build went smoothly - at least as smoothly as before. Genkit still fails for me at line 373, because "gzip | tar" returns a non-zero value on our HP systems. Adding a catch fixes this problem.

  Ok, I've added a catch and a check that the expected dir exists after this.  -jcw

I also forced the build to use the native HP compilers by defining CC, CFLAGS, CXX, and CXXFLAGS environment variables, then wrote similar values to genkit.local for gcc and g++. I used the native flags "-Ae" for ANSI C, +DAportable" for PA-RISC 1.1 and 1.2 architectures, and "-O" and "+Onolimit" for optimization.


2003-03-24 - notes by Reinhard Fobbe

        -- mea culpa, I'm fixing my "post-build" steps to better deal with this (jcw)
        $ file tclkit-mae16 tclkit-mae16.vfs/lib/tk8.4/libtk8.4.sl
        tclkit-mae16:                           PA-RISC1.1 shared executable dynamically linked
        tclkit-mae16.vfs/lib/tk8.4/libtk8.4.sl: PA-RISC1.1 shared library

2003-03-17 - notes by Bob Techentin

2002-11-03


 # Clean up temporary files left around by the Tcl VFS when loading
 # shared libraries on certain platforms
 #
 # Call at the start of your Starkit if you are running on the following
 # platforms:
 #     HP-UX
 #
 # Steve Landers <[email protected]>
 #
 proc VFScleanup {} {
    global tcl_platform
    switch $tcl_platform(os) {
        HP-UX {
            # HP-UX ... what a system! Too bad Mr Packard didn't have
            # precedence ;-)
            #
            # Tcl uses mkstemp to create the temporary file. As at HP-UX
            # B.11.00 this doesn't use the TMPDIR, TMP or TEMP variables, but
            # rather places the temporary files in /var/tmp
            set dir /var/tmp
            set pattern "tcl??????"
        }
        Windows* {
            # We could implement this for Windows, since a program crash or
            # termination without normal exiting will leave the temporary
            # files. Since this is relatively uncommon it hasn't been
            # implemented
            return
        }
        default {
            return
        }
    }
    # note we silently ignore any errors
    catch {
        if {[file isdirectory $dir]} {
            set user $tcl_platform(user)
            set now [clock seconds]
            # Number of seconds old that a temporary file must it will be
            # deleted.
            # This is done to avoid the (extremely unlikely) race condition
            # wherein two Starkits run currently, and this cleanup runs between
            # when the Tcl VFS creates the temporary file and when it loads it
            set age 10
            set here [pwd]
            cd $dir
            foreach file [glob $pattern] {
                # only those files owned by the current user
                if {[file attributes $file -owner] eq $user} {
                    if {[expr {$now - [file mtime $file]}] > $age} {
                        file delete $file
                    }
                }
            }
	    cd $here
        }
    } msg
    # puts stderr "msg = $msg"          ;# uncomment to debug
 }