reexec_to_match_kernel.3 [plain text]
.Dd Apr 14, 2008
.Dt REEXEC_TO_MATCH_KERNEL 3
.Os "Mac OS X"
.Nd Re-exec the current binary to match the ABI of the running kernel
.Fa "bool isLP64"
function re-executes the current binary to match the ABI of the running kernel.
That is, if the current kernel is a 64-bit Intel kernel, it will attempt to
execute the 64-bit x86_64 userspace slice of the universal binary. The API
intentionally does not take arguments because its use should be transparent
to the program and to the user.
is coarser-grained, and only attempts to match the word width that is requested.
For example, if the current system defaults to executing the 64-bit x86_64
userspace slice, but the program should instead run in 32-bit i386 mode,
this routine can be used.
can each be used exactly once in a program's lifetime. In certain circumstances,
it may even be desirable to use one, and then the other.
.Sh RETURN VALUES
functions return 0 if re-execution was not required. It returns -1 and
sets errno if there was an error performing the re-execution, for example
if the binary is not universal, or does not contain a slice to match the running
kernel's ABI. If the function succeeds, control never returns to the caller
and the program starts from main() again.