CHECKSYMS
Section: User Commands (1)
Updated: June 30, 2000
Index
Return to Main Contents
NAME
checksyms - check Mach-O production binary for proper conventions
SYNOPSIS
checksyms
[-r] [-d] [-t] [-b] [-v] [-] [-arch arch_flag] [-dylib_table filename] [-seg_addr_table filename] file [...]
DESCRIPTION
Checksyms
preforms checks on a Mach-O production binary to see that it follows the
proper conventions.
If the binary follows the conventions,
or is not a binary,
checksyms(1)
exits with zero status.
A non-zero exit status indicates the
binary does not follow the conventions for a production binary.
The conventions include:
proper stripping of symbols for the file type (and whether is is using the
dynamic linker),
if the file is a dynamic library then it checks for
the preferred linked address, setting of compatibility and
current versions,
proper prebinding and objcunique if is uses the dynamic linker,
and proper code generation if a dynamic binary so that there are no
relocation entries in read-only sections.
Some or all of the following options may be specified:
- -r
-
The binary is expected to do runtime loading of bundles and is allowed to
have static symbols. This is to aid in the debugging of bundles using the
production binary so that back traces in the debugger shows symbol names for
static routines. This is the default for dynamic libraries but not the default
for executables.
- -d
-
Print the detail of why the binary fails the checks.
- -v
-
Print a single string token for each of the checks the binary fails. This is
used by the verification tools to allow execptions to specific checks.
- -t
-
Allow all symbols except debugging symbols (those created by the compiler's
-g
option).
- -b
-
Check the binaries that use the dynamic linker to see that they do not have
relocation entries in read-only sections, are prebound and had objcunique run
on them. This is now the default.
- -
-
All of arguments following this flag are treated as filenames of binaries to
check.
- -arch arch_type
-
Specifies the architecture,
arch_type,
in the file to check. More than one
-arch arch_type
can be specified. The default is
-arch all
which checks all architectures in the file. See
arch(3)
for the currently known
arch_types.
- -dylib_table filename
-
This specifies the filename of the table of dynamic libraries and their
addresses. If not specified the default is ~rc/Data/DylibTable. The format
of the table is lines of a dynamic library name and an address in hex separated
by spaces and or tabs.
- -seg_addr_table filename
-
This specifies the filename of the segment address table of dynamic library
install names and their addresses. The format of this table is lines of two
forms.
The entries in the table are lines containing either a single hex address and an
install name or two hex addresses and an install name. In the first form the
single hex address is used for ``flat'' libraries and is the
-seg1addr.
In the second form is used for ``split'' libraries and the first address is
the
-segs_read_only_addr
address and the second address is the
-segs_read_write_addr
address.
If the
-seg_addr_table
option is specified this is used instead of the
table specified with the
-dylib_table
option.
If the the environment variable
LD_SEG_ADDR_TABLE
is set it is also used instead of the table specified with the
-dylib_table
option.
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
This document was created by
man2html,
using the manual pages.
Time: 04:27:03 GMT, April 24, 2025