The purpose of this document is to provide information on how the IDO compiler reorders BSS, and ways to deal with it in the context of matching decompilation (with and without -g3).
What is BSS?
If you're already familiar with BSS or the output of a compiler in general, you can skip this section, but otherwise here is a summary of the parts relevant to matching decompilation:
When compiling files, the C compiler outputs data into various sections depending on their purpose. For IDO, there are 4 relevant sections:
.text for generated machine code
.data and .bss for statically allocated variables
.rodata for read-only data (ex: string constants)