Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ rqsall(1) — IRIX 6.5.3f

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

rqs(1)

rqs64(1)

rqsread(1)

rqsprint(1)

ld(1)

rld(1)

inst(1M)

swmgr(1M)



RQSALL(1)                                                            RQSALL(1)



NAME
     rqsall - requickstarts out-of-sync ELF shared objects/executables on a
     system

SYNOPSIS
     rqsall [ options ] ifile

DESCRIPTION
     The rqsall command is used to requickstart ELF files that are out of sync
     on a system. This command reads a description of the ELF files that have
     been recorded (in an undocumented plain text format) in ifile. Those
     descriptions are generated using the rqsread command.  Using those
     descriptions this command determines which ELF files will not quickstart
     when executed. For each of those files, this command will normally
     execute the command /usr/etc/rqs or /usr/etc/rqs64 (as appropriate) on
     that file to resynchronize that file with the ELF files that it depends
     on (ie. the objects that are on that files liblist).  This command is
     normally invoked whenever software is installed using inst or swmgr.  The
     ifile that it is invoked on is /var/inst/.rqsfiles.  At most one
     so_locations file per ABI can possibly be read.  At most one so_locations
     file per ABI can possibly be updated.  By default so_locations files
     found are updated (though the contents may not change the files will
     still be rewritten).

     rqsall uses only the $range entry from any so_locations file entry to
     help determine what address range should be assigned if the DSO named in
     that entry needs to be moved.  If no $range entry is found for a DSO that
     must be moved, a default range is used.  The address assigned a DSO being
     moved is not allowed to conflict  with any DSO previously processed in
     this execution of rqsall. Within any range rqsall selects the highest
     available address.  For 64 bit objects, the default address range is
     0x00400000 to 0x1000000000.  For 32 bit objects (both old and new 32bit
     ABIs) the default address range is 0x00400000 to 0x60000000.  If the dso
     cannot be moved to that range (the range is full from other DSOs or the
     range is too small) it is an error (a warning is emitted on stderr) and
     the DSO will not be moved.

     Cycles of DSOs (where the DSO which references itself via its library
     list directly or indirectly) are not properly handled.

     -cmd rqs_cmd
          Change the command to be run on out-of-sync 32-bit file to be
          rqs_cmd. By default the command that is executed is /usr/etc/rqs.

     -cmd64 rqs64_cmd
          Change the command to be run on out-of-sync 64-bit file to be
          rqs64_cmd. By default the command that is executed is
          /usr/etc/rqs64.

     -cmdprefix path
          Prepends path to the name of the command to be run on an out-of-sync
          file.



                                                                        Page 1





RQSALL(1)                                                            RQSALL(1)



     -count
          Prints to stdout on the total number of files that were
          requickstarted, the number of files that were successfully
          requickstarted, and the number of failed to be requickstarted.

     -debug noexec
          Keeps the out-of-sync files from actually being requickstarted. This
          is typically used as a debugging aid to determine which files will
          be requickstarted.  This option prevents requickstarting files and
          also prevents updating of any so_locations file.

     -debug reason
          Dumps relocation information.  Displays the reason why a file needs
          to be requickstarted.

     -force
          Without this flag, files that are marked as non-quickstart will not
          be requickstarted.

     -inst #filedesc or -inst filename
           A special flag used when calling this command from our installation
          software. Causes status to be written out to either the file
          descriptor given by filedesc (for example, to write to file
          descriptor 10, -inst #10 would be the correct option) or to the file
          given by filename.  The output is appended if specified by
          #filedesc.  The output is written (not appended) if specified by
          filename.  The information written includes the count of the files
          that are going to be requickstarted and then for each file that is
          being requickstarted, the name of the file, its original inst
          checksum value, and an indication of success ('S') or failure ('F').
          The fields are separated by control A's.

     -o outfile
          Causes an updated version (after requickstarting) of the description
          file to be written to outfile. outfile can be the same as the input
          file, file.

     -prefix dir
          Treats dir as the prefix for the files being read. When the
          description file is read, the prefix is prepended to all file names.
          Similarly, when the output file is generated, the prefix directory
          is removed. This option, along with the -root option, is used to
          requickstart files that are located in a directory beginning at
          other than /.

     -rescan
          Causes the descriptions of the files recorded in file to be
          rescanned. This option would be used in the case where the files on
          the system have been changed since the last time the descriptions
          have been recorded.





                                                                        Page 2





RQSALL(1)                                                            RQSALL(1)



     -root dir
          Passes dir down to rqs to adjust where that command will look for
          shared objects.

     -timestamp value
          Passes down value to rqs as the timestamp to be recorded in the
          requickstarted file.

     -rld rldname
          Supplies the name of the rld(1).  If this option is supplied, the
          address of the rld applicable to the object is checked against the
          rld address in the object (checked against
          DT_MIPS_RLD_TEXT_RESOLVE_ADDR) and if the addresses do not match,
          the address of the rld given by rldname is passed to rqs with the
          -rld_addr option.  If nothing else is to be changed in this object,
          the -rld_addr_only option is also passed to rqs. This option may not
          work well for 32-bit objects since the rld address need not be
          identical for old 32-bit ABI and new 32-bit ABI rld but there is no
          way to separate the different versions of rld for the different 32-
          bit ABIs in this option.

     -checkregistry location_file_for_32_bit_objects
          Uses location_file_for_32_bit_objects as the list of potential
          shared object locations. This information is used when determining a
          new location for a 32 bit shared object. The default is
          /lib/so_locations for old 32-bit ABI objects and /lib32/so_locations
          for new 32-bit ABI objects.  This option is ignored (and the default
          is used) if -checkregistrypath is provided.

     -checkregistry64 location_file_for_64_bit_objects
          Uses location_file_for_64_bit_objects as the list of potential
          shared object locations. This information is used when determining a
          new location for a 64 bit shared object. The default is
          /lib64/so_locations.  This option is ignored (and the default is
          used) if -checkregistrypath is provided.

     -checkregistrypath pathname
          Changes the default path of the registry file to check to pathname.
          The default value is /usr.

     -updateregistry location_file_for_32_bit_objects
          Uses location_file_for_32_bit_objects as the list of potential
          shared object locations. This information is used when determining a
          new location for a 32 bit shared object. The default for this is
          /lib/so_locations for old 32-bit ABI objects and /lib32/so_locations
          for new 32-bit ABI objects.  This option is ignored (and the default
          is used) if -updateregistrypath is provided.

     -updateregistry64 location_file_for_64_bit_objects
          Uses location_file_for_64_bit_objects as the list of potential
          shared object locations. This information is used when determining a
          new location for a 64 bit shared object. The default for this is



                                                                        Page 3





RQSALL(1)                                                            RQSALL(1)



          /lib64/so_locations.  This option is ignored (and the default is
          used) if -updateregistrypath is provided.

     -updateregistrypath pathname
          Changes the default path of the registry file update to pathname.
          The default value is /usr.

     -noregistry
          No DEFAULT registry files should be used for checking.

     -file objname
          Restricts the object to actually be requickstarted to this single
          object.  The logic of checking is identical whether this is present
          or not, but other object requickstarting is suppressed with this
          present.  If multiple instances of this option are present only the
          last is effective.

     -log logfilename
          Writes a filename and action letter (T for requickstarted) in the
          named file for each file requickstarted.  The file is opened for
          output (not append) so previous contents are erased.

     -notimestamp
          Stops rqsall from passing the -timestamp option to rqs.

     -noecho
          Turns off echoing to standard output of each rqs command to be
          executed.

     -rqsupdateregistry
          Enables passing of -check_registry and/or -update_registry commands
          to rqs using the file names from the -check_registry,
          -update_registry, -check_registry_64, -update_registry_64 options.
          Suppresses update of any so_locations file by rqsall and lets rqs or
          rqs64 do the update.

     -rqserrorlog rqslogname
          Passes the rqslogname to rqs via the -log command.

     -v   Turns on additional output. A second -v turns on even more.
          Primarily used for debugging rqsall.

     -sameage
          Allows rqs to run even if no dependent DSO changed (that is, the
          library-list entries seem to have the same identical checksums and
          dates as the actual referenced DSOs).

     -readonlyregistry
          Open registry files read only. Useful for rqs testing.






                                                                        Page 4





RQSALL(1)                                                            RQSALL(1)



     -move
          Reassign load addresses for every DSO listed in the description
          file.  Each DSO will be requickstarted using the -load_address
          option of rqs.  Although slow, the use of this option will
          defragment virtual address ranges assigned to each DSO and maximize
          available contiguous heap.  See the example below for a typical
          invocation.

EXAMPLE
     A typical invocation of this command would look like:

     rqsall -force -o description_file -update_registry /usr/lib/so_locations
     -update_registry_64 /usr/lib64/so_locations  description_file

EXAMPLE
     With the -move option, a typical invocation of rqsall for every DSO
     listed in /var/inst/.rqsfiles and using the default so_locations files
     would look like:

     rqsall -rescan -same_age -force -move -o /var/inst/.rqsfiles
     /var/inst/.rqsfiles

FILES
     /usr/etc/rqsall
     /usr/etc/rqs
     /usr/etc/rqs32
     /usr/etc/rqs64
     /usr/lib/so_locations   (for old 32bit ABI)
     /usr/lib32/so_locations (for new 32bit ABI)
     /usr/lib64/so_locations
     /var/inst/.rqsfiles

NOTES
     Ordinarily only a single ifile is specified on the command line since
     rqsread only creates one file. Since this is the normal case (and the
     only case used in practice) the SYNOPSIS shows only one ifile.  If
     multiple files are specified these are logically concatenated together.
     However each ifile must be 'complete'  on its own in the sense that the
     information (in the undocumented plain text format used) must contain
     complete information sets for each object.

SEE ALSO
     rqs(1), rqs64(1), rqsread(1), rqsprint(1), ld(1), rld(1), inst(1M),
     swmgr(1M)











                                                                        Page 5



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026