The real big item at this point is to actually get started on the writer.
It is my task this week to write up/flesh out the basic design of writer
components so the real work can start.
In the meantime, I think the new thing for you to work on this week is the
"smart reader" hooks (now DwarfTasks 4.2). That does not have other
prerequisites from me holding it up. It should naturally mix in well with
the tail end of the dwarflint reloc work, as that is used in its testing plan.
Do the new libdw C hooks on a separate branch for now. (It would be nice
to make it a fork from master, but if it's easier to hack on it using a
fork from dwarf, that is fine too.) We'll review those hook details
carefully before merging C changes. When they are in shape, my plan is to
merge into master the use of the hooks in the libdw C code, with just stub
definitions of the hooks. That will keep it easy to maintain use of the
hooks in the C code on master and e.g. be sure to use them if we merge the
CFI support to master, though they will be inline stubs that compile away.
The real definitions of the hooks will come later on the dwarf branch only.
The reloc-aware libdw is not the first priority, but it is something that
is already well-specified and straightforward to work on today.
My sense of the priority order of our tasks at large granularity is this:
1. basic writer data structure building (designed for the eventual fancy plans)
2. basic writing of almost-correct format, no relocs, no refs
3. reference tracker (component to solve reference equality and ref writer)
-> dwarfcmp meaningful for refs from non-identical-offsets files
4. write correct refs (automatically includes in-CU dup elim)
5. reloc-savvy interfaces in C++
6. reloc generation
The reader reloc hooks (DwarfTasks 4.2.a) task is buried down in #5.
But it doesn't have any other blocking prerequisites.
Work on #3 and #5 can go in parallel with #1.
My intent this week is to flesh all these out into finer-grained tasks.
Next week I hope you can get started on whichever of the highest priority
tasks appeals to you most (and I'll work on another one of them).
Thanks,
Roland