*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> rqs (1)              
Title
Content
Arch
Section
 

Contents


RQS(1)						       Last changed: 1-7-99

NAME    [Toc]    [Back]

     rqs, rqs32	- Make 32-bit executable or shared object QUICKSTARTable

SYNOPSIS    [Toc]    [Back]

     rqs [-t timestamp_value_in_hex] [-l text_address_in_hex] [-c
     so_locations_file]	[-u so_locations_file] [-f] [-L] [-Ldir] [-r
     root_path]	[-chroot root_path] [-log <file>] [-rld_addr <address>]	[-
     rld_addr_only] [-rld_unresolve_check_only]	[-
     rld_force_noquickstart_only] object

IMPLEMENTATION    [Toc]    [Back]

     IRIX systems

DESCRIPTION    [Toc]    [Back]

     rqs and rqs32 function identically	and take the same options.  rqs	is
     an	old 32-bit ABI program (-32).  rqs32 is	a new 32-bit ABI program
     (-n32).  Either can process old 32-bit ABI	and new	32-bit ABI
     applications and DSOs (so they can	be used	interchangeably).

     rqs takes an object, either an executable or a shared object, and
     using its liblist will then redo all the pre-relocations.	For shared
     objects only, if -load_address is specified, then the specified
     address will be used as the lowest	virtual	address	for that shared
     object, otherwise options -check_registry and/or -update_registry will
     be	used to	figure out possible QUICKSTART addresses for that shared
     object, just like ld.

     rqs will create a new version of the object and save it back in place,
     overwriting the previous version, so you may want to save a copy of
     the object	before requickstarting it.

     For an object to be requickstartable, the bit RHF_REQUICKSTART must be
     set in the	DT_MIPS_FLAGS field of its .dynamic section.  This bit is
     normally set by ld.  After	an object has been requickstarted, the bit
     RHF_REQUICKSTARTED	will be	set in the DT_MIPS_FLAGS field of its
     .dynamic section.

     With the -m option, rqs will move an object to a requested	address
     even if the result	will not quickstart.

     -f	  Requickstart object even if RHF_REQUICKSTART is not set in
	  object.

     -force_requickstart
	  is an	alternate spelling of the -f option.

     -t	timestamp_value_in_hex
	  Specifies a timestamp	value in hex to	replace	the one	in the
	  DT_MIPS_TIME_STAMP field of the .dynamic section, applicable to
	  shared object	only.

     -timestamp	timestamp_value_in_hex
	  is an	alternate spelling of the -t option.

     -l	text_address_in_hex
	  Specifies the	lowest virtual address for the shared object being
	  rqs'd, when specified, options -check_registry and
	  -update_registry will	be ignored.

     -load_address text_address_in_hex
	  This is an alternate spelling	of the -l option.

     -c	so_locations_file
	  Check	the location of	this shared object's segments and make sure
	  they stay out	of the way of others in	the so_locations_file.	A
	  single registry file,	either with -c or -u is	allowed.
	  Applicable to	shared object only.

     -check_registry so_locations_file
	  This is an alternate spelling	of the -c option.

     -u	so_locations_file
	  Register the location	of this	shared object's	segments and make
	  sure they stay out of	the way	of others in the so_locations_file.
	  so_locations_file is updated if it is	writable.  A single
	  registry file, either	with -c	or -u is allowed.  Applicable to
	  shared object	only.

     -update_registry so_locations_file
	  This is an alternate spelling	of the -u option.

     -L	  Change the algorithm of searching for	libraries to never look	in
	  the default directories (/usr/lib:/lib).  This option	has the
	  same semantics as the	-L option in the ld command.

     -Ldir
	  Change the algorithm of searching for	libraries to look in dir
	  before looking in the	default	directories.  This option has the
	  same semantics as the	-Ldir option in	the ld.	 The environment
	  variable LD_LIBRARY_PATH can also be used for	this purpose.  (For
	  a new	32-bit ABI object LD_LIBRARYN32_PATH is	used if	it exists,
	  or else LD_LIBRARY_PATH is used, if it exists.)

     -m	  Move the dso even if address overlaps	are detected (without this
	  option address overlaps cause	rqs to exit without doing
	  anything).  If an address overlap is detected, the RHF_QUICKSTART
	  flag is reset	(to 0) in the dynamic section.	Generally, this	is
	  useful only if the -l	option is also specified on the	command
	  line.

     -v	  Makes	rqs more verbose.  Generally intended for debugging, but it
	  is useful if you want	to know	if the -m option detected any
	  address overlaps (messages will be issued).

     -r	root_path
	  Change the path of the default directories that rqs uses for
	  searching libraries by appending root_path to	the front of the
	  default path,	just like that in _RLD_ROOT.  It can also be a
	  colon(:) separated list.  In fact, the environment variable
	  _RLD_ROOT can	also be	used for this purpose.	(For a new 32-bit
	  ABI object, use _RLDN32_ROOT instead of _RLD_ROOT).

     -root root_path
	  This is an alternate spelling	of the -r option.

     -chroot root_path
	  This causes the named	directory root_path to become the root
	  directory, the starting point	for path searches for path names
	  beginning with /e.

     -log file
	  Pipes	all error messages to file instead of standard output.

     -rld_addr address
	  Sets the dynamic section DT_MIPS_RLD_TEXT_RESOLVE_ADDR to
	  address.

     -rld_addr_only
	  Restricts the	changes	to be made to the dynamic section,
	  DT_MIPS_RLD_TEXT_RESOLVE_ADDR	(only effective	if the -rld_addr
	  option is also specified on the command line).

     -rld_unresolve_check_only
	  Restricts the	changes	to be to the dynamic section's
	  DT_MIPS_FLAGS	to set or unset	RHF_NO_UNRES_UNDEF depending on
	  whether there	were any undefined variables.

     -rld_force_noquickstart_only
	  Restricts the	changes	to be to reset the dynamic section's
	  DT_MIPS_FLAGS	RHF_QUICKSTART flag.

     The following options must	be put into the	environment variable
     _RQS_ARGS to be understood; they cannot be	specified on the command
     line.

     "-debug map"
	  Used for debugging rqs.  Prints information about the	mapping
	  (address) of the object.

     "-debug symbol"
	  Used for debugging rqs.  Prints information about the	symbol
	  searches and symbol finding in the object (in	symbol relocation).

     "-debug MALLOC"
	  Used for debugging rqs.  Prints a trace of some of the
	  malloc/realloc calls.

     "-debug hash"
	  Used for debugging rqs.  Prints a trace of the hashing function
	  used searching a hash	table for a symbol.

EXAMPLES    [Toc]    [Back]

     The following command can be used to move a set of	DSOs to	a common
     base address:

	  #!/bin/sh
	  for in dso1.so dso2.so dso3.so
	  do
	     rqs -l 0x300000 -m	-f  $i
	  done

     You may want to do	this if	a set of DSOs used by an application takes
     too much virtual address space to lay out sequentially, and the set is
     too large to try to provide so_locations at link time.

NOTES    [Toc]    [Back]

     Some options have long and	short spellings.  For example, -f and
     -force_requickstart do the	same thing.  The short form is easier to
     remember and spell.  Because the long form	is used	in existing scripts
     and programs, both	forms will be supported.

     Where any option specifies	that a value supplied on the command line
     is	to be in hexadecimal, the value	is interpreted as hexadecimal
     digits whether or not a leading "0x" is part of the option	value.

FILES    [Toc]    [Back]

     /usr/etc/rqs
     /usr/etc/rqs32
     /usr/lib/so_locations (for	old 32-bit ABI)
     /usr/lib32/so_locations (for new 32-bit ABI)

SEE ALSO    [Toc]    [Back]

      
      
     ld(1), rld(1), rqs64(1), rqsall(1)

     This man page is available	only online.
[ Back ]
 Similar pages
Name OS Title
rqs64 IRIX Fixes up 64-bit executable or shared object to be QUICKSTARTable
ldd Tru64 List dynamic dependencies of executable files or shared objects
ldd_ia HP-UX list dynamic dependencies of executable files or shared libraries
ldd HP-UX list dynamic dependencies of executable files or shared libraries
ldd_pa HP-UX list dynamic dependencies of executable files or shared libraries
shm_open FreeBSD open or create a shared memory object shm_unlink -- remove a shared memory object
dlopen Tru64 gain access to an executable object file
shm_open Tru64 Opens a shared memory object, creating the object if necessary (P1003.1b)
runexec IRIX run an executable program described in an executable descriptor file
dso IRIX Dynamic Shared Object (DSO)
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service