rqsall(1)
rqsall - Requickstarts out-of-sync ELF shared objects/executables
As shipped in IRIX 6.5.7. Last changed in IRIX 6.5.5.
NAME rqsall - Requickstarts out-of-sync ELF shared objects/executables SYNOPSIS rqsall [options] ifile IMPLEMENTATION IRIX systems 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 (for example, the objects that are on that file's 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 32-bit 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. -cmd_prefix path Prepends path to the name of the command to be run on an out-of- sync file. -count Prints to stdout the total number of files that were requickstarted, the number of files that were successfully requickstarted, and the number of files 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 Files that are marked as non-quickstart will be requickstarted. -inst #filedesc or -inst filename A special flag used when calling this command from our installation software. Status is 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. 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') is indicated. 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 /e. -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. -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. -check_registry 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 -check_registry_path is provided. -check_registry_64 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 -check_registry_path is provided. -check_registry_path pathname Changes the default path of the registry file to check to pathname. The default value is /usr. -update_registry 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 -update_registry_path is provided. -update_registry_64 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 /lib64/so_locations. This option is ignored (and the default is used) if -update_registry_path is provided. -update_registry_path pathname Changes the default path of the registry file update to pathname. The default value is /usr. -no_registry No default registry files should be used for checking. -file objname The object is requickstarted to this single object. Other object requickstarting is suppressed when this option is specified. If multiple instances of this option are specified, only the last is effective. -log logfilename Writes a file name 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 deleted. -no_timestamp Stops rqsall from passing the -timestamp option to rqs. -no_echo Turns off echoing to standard output of each rqs command to be executed. -rqs_update_registry 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. -rqs_error_log rqslogname Passes the rqslogname to rqs via the -log option. -v Turns on additional output. Primarily used for debugging rqsall. -same_age 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). -read_only_registry Open registry files as read only. Useful for rqs testing. -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 Example 2. EXAMPLES Example 1: The following example shows a typical invocation of this command: cp /var/inst/.rqsfiles t rqsall -force -o t -update_registry /usr/lib/so_locations \ -update_registry_64 /usr/lib64/so_locations t # Make sure t is not empty! cp t t1 rqsall -rescan -same_age -force -move -o t2 t1 # Make sure t2 is not empty! cp t2 /var/inst/.rqsfiles Example 2: The following example shows, by specifying the -move option, a typical invocation of rqsall for every DSO listed in /var/inst/.rqsfiles, using the default so_locations files: # Ensure that you save a copy of your original .rqsfiles! # If lost it is hard to recover! cp /var/inst/.rqsfiles/var/inst/bkuprqsfiles rqsall -rescan -same_age -force -move \ -o /var/inst/.rqsfiles /var/inst/.rqsfiles NOTES Usually, only a single ifile is specified on the command line because rqsread creates only one file. Because this is the normal case (and the only case used in practice) the SYNOPSIS shows only one ifile. If multiple files are specified, they are logically concatenated. However, each ifile must be complete in the sense that the information (in the undocumented plain text format used) contains complete information sets for each object. FILES /usr/etc/rqsall /usr/etc/rqs /usr/etc/rqs32 /usr/etc/rqs64 /usr/lib/so_locations (for old 32-bit ABI) /usr/lib32/so_locations (for new 32-bit ABI) /usr/lib64/so_locations /var/inst/.rqsfiles SEE ALSO rqs(1), rqs64(1), rqsread(1), rqsprint(1), ld(1), rld(1), inst(1M), swmgr(1M) This man page is available only online.