Releases: culler/macher
v1.9
v1.8
Version 1.8 fixes bugs in the remove_signature action which would cause Apple tools to complain about the file structure after removing the signature. The key point is that the signature is always located at the end of the LINKEDIT segment, immediately following the strings block in the SYMTAB. Apple uses the LC_SYMTAB load command to find the offset of the signature, and also requires that for an unsigned slice the end of the LINKEDIT segment must be the end of the slice.
v1.7
Version 1.7 fixes a bug which would cause the macher append command to create an invalid fat file in the case when the Mach-O file is thin. In that case additional padding was needed in order to ensure that the data slice offset is correctly aligned. When appending a data slice to a thin dylib file the incorrect alignment would cause the linker to complain that the data slice was not page aligned.
v1.6
Version 1.6 fixes some bugs with the clear_rpaths command and automatically removes all code signatures whenever it modifies the target file. The code structure has been made clearer (I hope).
If you download the macher file in the assets you will need to make it executable and remove the quarantine flag before it can be run:
% chmod +x macher
% xattr -c macher
Alternatively, download and open the signed and notarized macher.pkg to install macher as /usr/local/bin/macher
Version 1.5 for x86_64 and arm64
Version 1.5 adds support for the LC_REEXPORT_DYLIB load command.
If you download the macher file in the assets you will need to make it executable and remove the quarantine flag before it can be run:
% chmod +x macher
% xattr -c macher
Alternatively, download and open the signed and notarized macher.pkg to install macher as /usr/local/bin/macher .
Fat binary for x86_64 and arm64
Adds support for M1 systems with a fat binary.
If you download the macher file in the assets you will need to make it executable and remove the quarantine flag before it can be run:
% chmod +x macher
% xattr -c macher
Alternatively, download and open the signed and notarized macher.pkg to install macher as /usr/local/bin/macher .
Macher 1.3
Now supports applying all actions to fat binaries.
Macher 1.2
Several bugfixes.
Macher 1.1
A data file can now be appended to either fat or thin binaries. In either case the result is a fat binary with the data slice as the last slice. The data slice has cpu type CPU_ANY and cpu subtype CPU_SUBTYPE_ANY.
Macher 1.0
This is the initial release of macher. The executable is fat; it supports x86_64 and arm64e.