REDO_PREBINDING(1)
β¨ REDO_PREBINDING(1) β¨
okay so bestie, welcome to the redo_prebinding manual page π
this is the General Commands Manual entry and honestly? it's giving "vintage macOS system tool that still slays." let's get into it π
πΈ NAME πΈ
redo_prebinding β redo the prebinding of an executable or dynamic library. no cap, that's the whole vibe. β¨
π¦ SYNOPSIS π¦
redo_prebinding [-c | -p | -d] [-i] [-z] [-u] [-r rootdir] [-e
executable_path] [-seg_addr_table table_file_name]
[-seg_addr_table_filename pathname] [-seg1addr address] [-o output_file]
[-s] input_file
like, that's a lot of flags but don't panic, we're gonna go through every single one, fr fr π«Ά
π DESCRIPTION π
so Redo_prebinding is used to redo the prebinding of an executable or dynamic library when one of the dependent dynamic libraries changes. think of it like: your library bestie got a glow-up, and now you need to update your whole friend group chat accordingly. π
the input file β executable or dynamic library β must have initially been prebound for this program to redo the prebinding. and 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. (yes, order matters. main character energy requires structure, periodt. π)
also, when building executables or dynamic libraries that are to be prebound (with the -prebind options to ld(1) or libtool(1)), the dependent libraries must have their prebinding up to date or the result will not be prebound. like, it simply won't. no notes. π
the options allow for different types of checking for use in shell scripts. important: only one of -c, -p or -d can be used at a time. pick one, bestie, you can't have all three. π
and if redo_prebinding redoes the prebinding on an input file, it will run /usr/bin/objcunique if it exists on the result. cute little bonus step, iykyk. β¨
π OPTIONS π
-cβ only check if the file needs to have it's prebinding redone and return status. a0exit means the file's prebinding is up to date,1means it needs to be redone and2means it could not be checked for reasons like a dependent library is missing (an error message is printed in these cases). lowkey the vibe check of this whole tool. π₯-pβ check only for prebound files and return status. an exit status of1means the file is a Mach-O that could have been prebound and is not otherwise the exit status is0. iconic binary behavior. β-dβ check only for dynamic shared library files and return status. an exit status of0means the file is a dynamic shared library,1means the file is not,2means there is some mix in the architectures. messy architecture energy tbh. π-iβ ignore non-prebound files (useful when running on all types of files). like a "not my problem" filter. π-zβ zero out the prebind check sum in the output if it has one. resetting the receipts. π§-uβ unprebind, rather than reprebind (-c,-p,-d,-eignored). resets or removes prebinding-specific information from the input file. as unprebinding is intended to produce a canonical Mach-O binary, bundles and non-prebound executables and dylibs are acceptable as input. for these files, the unprebind operation will zero library time stamps and version numbers and zero entries in the two-level hints table. this one's doing the most and we respect it. π-eexecutable_pathβ replace any dependent library's"@executable_path"prefix with theexecutable_pathargument. path-swapping realness. π«Ά-seg_addr_tabletable_file_nameβ The-seg_addr_tableoption 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. (yes, that's the exact wording, and yes it's a lil grammatically chaotic β we don't fix, we just report π)-seg_addr_table_filenamepathnameβ usepathnameinstead of the install name of the library for matching an entry in the segment address table. matching but make it specific. π-seg1addraddressβ move the input library to base addressaddress. this option does not apply when-u,-seg_addr_tableor-seg_addr_table_filenameare specified. read the fine print bestie, it matters. β-rrootdirβ prepend therootdirargument to all dependent libraries. path prefix era. πΈ-ooutput_fileβ write the updated file intooutput_filerather than back into the input file. non-destructive behavior, we love to see it. π-sβ write the updated file to standard output. let it shine, let it be seen. π
π₯ 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. drama in the dependency tree, smh. π
bestie. pay attention to those exit codes.0= slay,2= couldn't do it,3= your libraries are fighting. π
and that's the whole page, bestie!! π<br> written by Apple Computer, Inc., dated March 29, 2004 β vintage but still valid, we stan a retro icon ππ<br> REDO_PREBINDING(1) out. periodt. π
β¨
π¦ where this page comes from
- nixpkgs unstable: cctools 1010.6
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms