From: <kai...@us...> - 2008-04-17 21:37:10
|
Revision: 28 http://elftoolchain.svn.sourceforge.net/elftoolchain/?rev=28&view=rev Author: kaiwang27 Date: 2008-04-17 14:37:07 -0700 (Thu, 17 Apr 2008) Log Message: ----------- Overhaul of elfcopy section traversal and build process, again. The point is that we should make as less assumptions about section structure and order as possible. Section traversal is devided into three pass: In the first pass, an internal section structure is created for each section that will appear in the output object. The internal section structure contains information like input and output scn, input section index, input section size, offset, etc. Output section scn will be created in the encouter order, thus section headers in output object will retain their original relative order. In the other hand, internal section sturct themselves are sorted according to section offset, which will make later resync easier. In the second pass, internal section queue is traversed. Section is copied from input to output or modified according to user instructions, symbol table is created in this pass. The third pass is key point of this overhaul: This pass solves overlapping between sections. sections are "resynced" according to their offsets, sizes and whether they are loadable. For example, 1) |A-> | |B-> | will be adjusted to: |A-> ||B-> | 2) |A-> | |B-> | given B is unloadable, will be adjusted to: |A-> ||B-> | 3) |A-> | |B-> | given B is loadable, the gap remains. Other changes include: 1) merge mcs operations into normal section modification. 2) remove unnecessary "global" variable. 3) style nits. Hopefully this time we can make it right! Modified Paths: -------------- projects/elfcopy/trunk/Makefile projects/elfcopy/trunk/elfcopy.h projects/elfcopy/trunk/main.c projects/elfcopy/trunk/sections.c projects/elfcopy/trunk/segments.c projects/elfcopy/trunk/symbols.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kai...@us...> - 2008-04-26 00:27:50
|
Revision: 51 http://elftoolchain.svn.sourceforge.net/elftoolchain/?rev=51&view=rev Author: kaiwang27 Date: 2008-04-25 17:27:44 -0700 (Fri, 25 Apr 2008) Log Message: ----------- Make string table duplicate finding function capable of "forward looking", For example, assuming string table contains string ".text", later when we try to insert a new string ".rel.text", we should remove the first ".text". Because of this change, sh_name should be calculated after the content of .shstrtab is "fixed". Old find_duplicate func will be removed after we change symbol string table to use above new func. Modified Paths: -------------- projects/elfcopy/trunk/elfcopy.h projects/elfcopy/trunk/sections.c projects/elfcopy/trunk/utils.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Kai W. <kai...@gm...> - 2008-04-26 00:38:43
|
On Fri, Apr 25, 2008 at 05:27:47PM -0700, kai...@us... wrote: > Revision: 51 > http://elftoolchain.svn.sourceforge.net/elftoolchain/?rev=51&view=rev > Author: kaiwang27 > Date: 2008-04-25 17:27:44 -0700 (Fri, 25 Apr 2008) > > Log Message: > ----------- > Make string table duplicate finding function capable of "forward > looking", For example, assuming string table contains string ".text", Sorry about the miswording here. I don't know why I said "forward looking" :-/ Actually I meant strings in the table should be deleted if it is "contained" by the new string. (The old code won't touch existing strings in the table, it just ignore the new string if it is duplicated/suffix of some string in the table) > later when we try to insert a new string ".rel.text", we should remove > the first ".text". > > Because of this change, sh_name should be calculated after the content of > .shstrtab is "fixed". > > Old find_duplicate func will be removed after we change symbol string table > to use above new func. |
From: <kai...@us...> - 2008-05-02 00:11:15
|
Revision: 57 http://elftoolchain.svn.sourceforge.net/elftoolchain/?rev=57&view=rev Author: kaiwang27 Date: 2008-05-01 17:11:12 -0700 (Thu, 01 May 2008) Log Message: ----------- - If strip operation is STRIP ALL, relocation infomation need to be stripped as well. - copy_data routine will use s->buf as section content if it is not NULL. - remove unused code. Modified Paths: -------------- projects/elfcopy/trunk/elfcopy.h projects/elfcopy/trunk/sections.c projects/elfcopy/trunk/segments.c projects/elfcopy/trunk/symbols.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kai...@us...> - 2008-05-02 16:00:21
|
Revision: 60 http://elftoolchain.svn.sourceforge.net/elftoolchain/?rev=60&view=rev Author: kaiwang27 Date: 2008-05-02 09:00:15 -0700 (Fri, 02 May 2008) Log Message: ----------- - update sh_link field if section index changed after processing. - rename set_shname to update_shdr since it now updates sh_link also. - move COPYREL macro into filter_reloc routine. Modified Paths: -------------- projects/elfcopy/trunk/elfcopy.h projects/elfcopy/trunk/main.c projects/elfcopy/trunk/sections.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kai...@us...> - 2008-06-02 16:29:46
|
Revision: 109 http://elftoolchain.svn.sourceforge.net/elftoolchain/?rev=109&view=rev Author: kaiwang27 Date: 2008-06-02 09:29:37 -0700 (Mon, 02 Jun 2008) Log Message: ----------- - Handle GLOBAL and LOCAL symbols seperately. Let LOCAL symbols always appear first. - Add STT_SECTION symbol for sections that do not have one (or stripped) (work-in-progress) Modified Paths: -------------- projects/elfcopy/trunk/elfcopy.h projects/elfcopy/trunk/sections.c projects/elfcopy/trunk/symbols.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kai...@us...> - 2008-06-17 14:46:34
|
Revision: 136 http://elftoolchain.svn.sourceforge.net/elftoolchain/?rev=136&view=rev Author: kaiwang27 Date: 2008-06-17 07:46:32 -0700 (Tue, 17 Jun 2008) Log Message: ----------- - section header of .symtab and .strtab is copied inside create_symtab, so no need to copy them in create_scn - create section scn and setup old-new index pair for .symtab and .strtab inside create_symtab. - remove trailing whitespaces. Modified Paths: -------------- projects/elfcopy/trunk/sections.c projects/elfcopy/trunk/symbols.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kai...@us...> - 2008-05-04 20:45:36
|
Revision: 79 http://elftoolchain.svn.sourceforge.net/elftoolchain/?rev=79&view=rev Author: kaiwang27 Date: 2008-05-04 13:45:34 -0700 (Sun, 04 May 2008) Log Message: ----------- Symbol name string table (.strtab) usually do not "compress", i.e, allow duplicate(same postfix) strings. Modified Paths: -------------- projects/elfcopy/trunk/elfcopy.h projects/elfcopy/trunk/symbols.c projects/elfcopy/trunk/utils.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kai...@us...> - 2008-05-14 17:52:09
|
Revision: 91 http://elftoolchain.svn.sourceforge.net/elftoolchain/?rev=91&view=rev Author: kaiwang27 Date: 2008-05-14 10:52:07 -0700 (Wed, 14 May 2008) Log Message: ----------- Make use of a index map to keep track of changes of section index, instead of iterating the whole section list each time we lookup a index change. Modified Paths: -------------- projects/elfcopy/trunk/elfcopy.h projects/elfcopy/trunk/main.c projects/elfcopy/trunk/sections.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kai...@us...> - 2008-05-26 16:16:50
|
Revision: 98 http://elftoolchain.svn.sourceforge.net/elftoolchain/?rev=98&view=rev Author: kaiwang27 Date: 2008-05-26 09:16:47 -0700 (Mon, 26 May 2008) Log Message: ----------- If reloc section will be removed in the output object, skip it when marking symbols used in relocation. (debug printf will be removed later) Modified Paths: -------------- projects/elfcopy/trunk/elfcopy.h projects/elfcopy/trunk/sections.c projects/elfcopy/trunk/symbols.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kai...@us...> - 2008-06-02 14:28:51
|
Revision: 107 http://elftoolchain.svn.sourceforge.net/elftoolchain/?rev=107&view=rev Author: kaiwang27 Date: 2008-06-02 07:28:49 -0700 (Mon, 02 Jun 2008) Log Message: ----------- - Add structure symbuf, which will be used to store local and global symbol seperately. - Add global var nos, which is used to keep track of total output sections. Modified Paths: -------------- projects/elfcopy/trunk/elfcopy.h projects/elfcopy/trunk/sections.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kai...@us...> - 2008-06-03 20:49:21
|
Revision: 116 http://elftoolchain.svn.sourceforge.net/elftoolchain/?rev=116&view=rev Author: kaiwang27 Date: 2008-06-03 13:49:10 -0700 (Tue, 03 Jun 2008) Log Message: ----------- Create symbol table before copying section content. Modified Paths: -------------- projects/elfcopy/trunk/main.c projects/elfcopy/trunk/sections.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kai...@us...> - 2008-06-04 00:43:50
|
Revision: 118 http://elftoolchain.svn.sourceforge.net/elftoolchain/?rev=118&view=rev Author: kaiwang27 Date: 2008-06-03 17:43:41 -0700 (Tue, 03 Jun 2008) Log Message: ----------- - Rename filter_reloc to update_reloc, this function will now update symbol index inside r_info. Symbol index might change after STRIP_DEBUG for example, thus relocation info needs to be updated. - Add global vector symndx to record symbox index changes. - Rename ndxtab to secndx for consistency. Modified Paths: -------------- projects/elfcopy/trunk/elfcopy.h projects/elfcopy/trunk/main.c projects/elfcopy/trunk/sections.c projects/elfcopy/trunk/symbols.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kai...@us...> - 2008-06-04 17:21:28
|
Revision: 125 http://elftoolchain.svn.sourceforge.net/elftoolchain/?rev=125&view=rev Author: kaiwang27 Date: 2008-06-04 10:21:26 -0700 (Wed, 04 Jun 2008) Log Message: ----------- Set st_value filed of STT_SECTION symbols to section vma. Modified Paths: -------------- projects/elfcopy/trunk/elfcopy.h projects/elfcopy/trunk/sections.c projects/elfcopy/trunk/symbols.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kai...@us...> - 2008-07-01 01:50:28
|
Revision: 156 http://elftoolchain.svn.sourceforge.net/elftoolchain/?rev=156&view=rev Author: kaiwang27 Date: 2008-06-30 18:50:26 -0700 (Mon, 30 Jun 2008) Log Message: ----------- Implement option --only-keep-debug. Modified Paths: -------------- projects/elfcopy/trunk/elfcopy.h projects/elfcopy/trunk/main.c projects/elfcopy/trunk/sections.c projects/elfcopy/trunk/symbols.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kai...@us...> - 2008-07-04 06:10:36
|
Revision: 168 http://elftoolchain.svn.sourceforge.net/elftoolchain/?rev=168&view=rev Author: kaiwang27 Date: 2008-07-03 23:10:26 -0700 (Thu, 03 Jul 2008) Log Message: ----------- Discard all the program headers when strip action is --only-keep-debug. Modified Paths: -------------- projects/elfcopy/trunk/sections.c projects/elfcopy/trunk/segments.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kai...@us...> - 2008-07-04 07:57:36
|
Revision: 171 http://elftoolchain.svn.sourceforge.net/elftoolchain/?rev=171&view=rev Author: kaiwang27 Date: 2008-07-04 00:57:26 -0700 (Fri, 04 Jul 2008) Log Message: ----------- Implement -x (--discard-all) and -X (--discard-locals), and made them synonym. Modified Paths: -------------- projects/elfcopy/trunk/elfcopy.h projects/elfcopy/trunk/main.c projects/elfcopy/trunk/sections.c projects/elfcopy/trunk/symbols.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |