REDO_PREBINDING(1)                             REDO_PREBINDING(1)



NAME
       redo_prebinding  - redo the prebinding of an executable or
       dynamic library

SYNOPSIS
       redo_prebinding [-c | -p | -d] [-i] [-z] [-r rootdir]  [-e
       executable_path]     [-seg_addr_table     table_file_name]
       [-seg_addr_table_filename   pathname]   [-o   output_file]
       input_file

DESCRIPTION
       Redo_prebinding  is used to redo the prebinding of an exe-
       cutable or dynamic  library  when  one  of  the  dependent
       dynamic  libraries changes.  The input file, executable or
       dynamic library, must have  initially  been  prebound  for
       this  program  to  redo the prebinding.  Also all depended
       libraries must have their prebinding up to date.  So  when
       redoing  the prebinding for libraries they must be done in
       dependency  order.   Also  when  building  executables  or
       dynamic  libraries that are to be prebound (with the -pre-
       bind  options  to  ld(1)  or  libtool(1))  the   dependent
       libraries  must  have  their  prebinding up to date or the
       result will not be prebound.

       The options allow for different types of checking for  use
       in shell scripts.  Only one of -c, -p or -d can be used at
       a time.  If redo_prebinding redoes the  prebinding  on  an
       input file it will run /usr/bin/objcunique if it exists on
       the result.

OPTIONS
       -c     only check if the file needs to have it's  prebind-
              ing  redone  and return status.  A 0 exit means the
              file's prebinding is up to date, 1 means  it  needs
              to  be  redone  and 2 means it could not be checked
              for reasons like a dependent library is missing (an
              error message is printed in these cases).

       -p     check  only  for  prebound files and return status.
              An exit status of 1 means the file is a Mach-O that
              could  have  been prebound and is not otherwise the
              exit status is 0.

       -d     check only for dynamic  shared  library  files  and
              return  status.  An exit status of 0 means the file
              is a dynamic shared library, 1 means  the  file  is
              not,  2  means  there  is some mix in the architec-
              tures.

       -i     ignore non-prebound files (useful when  running  on
              all types of files).

       -z     zero  out the prebind check sum in the output if it
              has one.

       -e executable_path
              replace any dependent library's  "@executable_path"
              prefix with the executable_path argument.

       -seg_addr_table table_file_name
              The -seg_addr_table option is used when the input a
              dynamic library and if specified  the  table  entry
              for the install_name of the dynamic library is used
              for  checking  and  the  address  to  relocate  the
              library to as it prefered address.

       -seg_addr_table_filename pathname
              Use  pathname  instead  of  the install name of the
              library  for  matching  an  entry  in  the  segment
              address table.

       -r rootdir
              prepend  the  rootdir  argument  to  all  dependent
              libraries.

       -o output_file
              write the updated file into output_file rather than
              back into the input file.

DIAGNOSTICS
       With no -c, -p or -d an exit status of 0 means success and
       2 means it could not be done for reasons like a  dependent
       library  is  missing (an error message is printed in these
       cases).  And exit of 3 is for the specific case  when  the
       dependent  libraries  are out of date with respect to each
       other.



Apple Computer, Inc.    September 10, 2001     REDO_PREBINDING(1)