RQSALL(1) RQSALL(1)
rqsall - requickstarts out-of-sync ELF shared objects/executables on a
system
rqsall [ options ] ifile
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.
-cmd_prefix 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.
-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
Page 3
RQSALL(1) RQSALL(1)
/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
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.
-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 command.
-v Turns on additional output. A second -v turns on even more.
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 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.
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
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
/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
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.
rqs(1), rqs64(1), rqsread(1), rqsprint(1), ld(1), rld(1), inst(1M),
swmgr(1M)
PPPPaaaaggggeeee 5555 [ Back ]
|