annotate README @ 12:3213b5ecae51

README added
author Space Falcon <falcon@ivan.Harhan.ORG>
date Sat, 06 Jun 2015 17:04:40 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
1 The Mercurial tree you are looking at is a kit for applying patches to those
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
2 parts of TCS211 Calypso GSM firmware that came as binary object libraries
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
3 without complete corresponding source.
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
4
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
5 TI's TCS211 fw build system expects all prebuilt objects (i.e., those which it
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
6 should not or cannot recompile from source) to be packaged in libraries (*.lib);
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
7 TI's *.lib format is a variant of classic UNIX ar(5) with COFF objects inside.
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
8 One can use the standard ar command on a GNU/Linux machine to extract the *.obj
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
9 files from TI's *.lib, but I wasn't comfortable with the idea of patching these
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
10 *.obj files in their extracted form and then using GNU/Linux version of ar to
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
11 repackage them back into *.lib, so instead I wrote a tool that processes a *.lib
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
12 archive and applies a specified set of patches to one or more member objects
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
13 contained therein.
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
14
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
15 The libs, gpflibs and oslibs subdirectories contain the set of *.lib files that
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
16 constitute our starting point, i.e., the baseline to which patches are to be
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
17 applied; the tool subdirectory contains the library patching tool and the
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
18 patches subdirectory contains some example patches. The patched libraries
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
19 built in the patches directory can then be plopped directly into a TCS211
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
20 project tree in the place of the original without any manual splitting or
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
21 repackaging.
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
22
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
23 The leo-obj subtree in the freecalypso-reveng repository contains a specialized
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
24 object format parser and disassembler for TI's version of COFF in question, as
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
25 well as some already prepared disassembly hints for some parts of the TCS211
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
26 binary deliverable we are working with. The present library patching tool
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
27 allows one to patch any given byte in any section in any member object in an
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
28 archive library; disassembly with tiobjd should be used to figure out which
3213b5ecae51 README added
Space Falcon <falcon@ivan.Harhan.ORG>
parents:
diff changeset
29 byte(s) one needs to patch in order to effect the desired change.