FreeCalypso > hg > tcs211-patches
view README @ 18:94999935b791 default tip
main-rvtmodem.patch created
author | Mychaela Falconia <falcon@ivan.Harhan.ORG> |
---|---|
date | Sun, 01 Nov 2015 06:40:12 +0000 |
parents | 3213b5ecae51 |
children |
line wrap: on
line source
The Mercurial tree you are looking at is a kit for applying patches to those parts of TCS211 Calypso GSM firmware that came as binary object libraries without complete corresponding source. TI's TCS211 fw build system expects all prebuilt objects (i.e., those which it should not or cannot recompile from source) to be packaged in libraries (*.lib); TI's *.lib format is a variant of classic UNIX ar(5) with COFF objects inside. One can use the standard ar command on a GNU/Linux machine to extract the *.obj files from TI's *.lib, but I wasn't comfortable with the idea of patching these *.obj files in their extracted form and then using GNU/Linux version of ar to repackage them back into *.lib, so instead I wrote a tool that processes a *.lib archive and applies a specified set of patches to one or more member objects contained therein. The libs, gpflibs and oslibs subdirectories contain the set of *.lib files that constitute our starting point, i.e., the baseline to which patches are to be applied; the tool subdirectory contains the library patching tool and the patches subdirectory contains some example patches. The patched libraries built in the patches directory can then be plopped directly into a TCS211 project tree in the place of the original without any manual splitting or repackaging. The leo-obj subtree in the freecalypso-reveng repository contains a specialized object format parser and disassembler for TI's version of COFF in question, as well as some already prepared disassembly hints for some parts of the TCS211 binary deliverable we are working with. The present library patching tool allows one to patch any given byte in any section in any member object in an archive library; disassembly with tiobjd should be used to figure out which byte(s) one needs to patch in order to effect the desired change.