Jeremy Fitzhardinge wrote:Traditionally, brk is always zeroed. extend_brk() zeros the memory it returns (to be consistent with bootmem, and to make it easier to migrate from bss -> brk).
It really doesn't make much sense to me, and is more than a bitMostly because I knew that the bss would get mapped into the appropriate
confusing given the symbols.
phdr segment correctly, but I wasn't sure that another bss-like section
would be.
It will; in fact if they are adjacent then ld will typically merge the
PHDRs.
Also because historically the brk segment was just an
extension of the executable's bss, and its more or less the same too.
An extension of, yes, but not a part of.
Is there any real benefit in putting it into another section?
Well, the semantics are different; the .bss section is zeroed while the
brk isn't,
and the brk symbols don't necessarily point to the data
associated with those particular symbols, unlike (of course) the bss.