In order to more easily cope with merges and avoid issues with binary formats, we're now using the ar format which will give us a pure ascii archive that'll make it possible to track & merge individual changes like with other text files. Unfortunately the format doesn't support paths.. recommended way of making changes and updating archive: rm -rf foo cd foo ar x ../cpu-os-macros.a cd - # preserve order of files within the archive LC_ALL=C /bin/sh -c 'ar cDr cpu-os-macros.a foo/*macros'