Abstract:
Techniques and mechanisms are provided for patching software, such as software for implementing parameterizable processor cores and peripherals on a programmable chip. Software components constructed using various shared modules can be updated without affecting other components using the same shared modules. In one example, a software component includes a manifest for identifying the implementations that should be associated with the various modules. When a patched implementation is provided for a particular module, the component manifest is changed to associate the patched implementation with the component. The pre-patch implementation is preserved so that other components using the pre-patch implementation may be kept unchanged.