skip to navigation
skip to content

macholib 1.4.2

Mach-O header analysis and editing

Package Documentation

Latest Version: 1.9

macholib can be used to analyze and edit Mach-O headers, the executable format used by Mac OS X.

It’s typically used as a dependency analysis tool, and also to rewrite dylib references in Mach-O headers to be @executable_path relative.

Though this tool targets a platform specific file format, it is pure python code that is platform and endian independent.

Release history

macholib 1.4.2

macholib 1.4.2 is a minor bugfix release

  • The support for new load commands that was added in 1.4.1 contained a typo that caused problems on OSX 10.7 (Lion).

macholib 1.4.1

macholib 1.4.1 is a minor feature release


  • Add support for a number of new MachO load commands that were added during the lifetime of OSX 10.6: LC_LOAD_UPWARD_DYLIB, LC_VERSION_MIN_MACOSX, LC_VERSION_MIN_IPHONEOS and LC_FUNCTION_STARTS.

macholib 1.4

macholib 1.4 is a feature release


  • Documentation is now generated using sphinx and can be viewed at <>.

  • The repository has moved to bitbucket

  • There now is a testsuite

  • Private functionality inside modules was renamed to a name starting with an underscore.


    if this change affects your code you are relying on undefined implementation features, please stop using private functions.

  • The basic packable types in macholib.ptypes were renamed to better represent the corresponding C type. The table below lists the old an new names (the old names are still available, but are deprecated and will be removed in a future release).

    Old name New name
    p_byte p_int8
    p_ubyte p_uint8
    p_short p_int16
    p_ushort p_uint16
    p_int p_int32
    p_uint p_uint32
    p_long p_int32
    p_ulong p_uint32
    p_longlong p_int64
    p_ulonglong p_uint64

    Macholib.ptypes.p_ptr is no longer present as it had an unclear definition and isn’t actually used in the codebase.

Bug fixes:

  • The semantics of dyld.dyld_default_search were changed a bit, it now first searches the framework path (if appropriate) and then the linker path, irrespective of the value of the DYLD_FALLBACK* environment variables.

    Previous versions would change the search order when those variables was set, which is odd and doesn’t correspond with the documented behaviour of the system dyld.

  • It is once again possible to install using python2.5

  • The source distribution includes all files, this was broken due to the switch to mercurial (which confused setuptools)

macholib 1.3

macholib 1.3 is a feature release.


  • Experimental Python 3.x support

    This version contains lightly tested support for Python 3.

macholib 1.2.2

macholib 1.2.2 is a bugfix release.

Bug fixes:

  • Macholib should work better with 64-bit code (patch by Marc-Antoine Parent)
File Type Py Version Uploaded on Size
macholib-1.4.2.tar.gz (md5) Source 2011-07-24 365KB