Review/testing request: changing the detection of
data_addr/text_addr
Nathan Whitehorn
nwhitehorn at freebsd.org
Thu Mar 25 02:42:15 UTC 2010
John Baldwin wrote:
> On Wednesday 24 March 2010 3:29:23 pm Nathan Whitehorn wrote:
>
>> We currently detect the offical "text" and "data" addresses for ELF
>> files in kern/imgact_elf.c by the heuristic of calling whichever section
>> contains the executable's entry point the text section and everything
>> else data. In general, both this concept and the very few things that
>> use them are obsolete and rare. The data addresses are, however, used in
>> obreak() to find the current break. On powerpc64, this logic fails,
>> because the entry point points to a function descriptor in the data
>> section, causing sbrk() to fail, which in turn breaks profiling.
>>
>> The patch at http://people.freebsd.org/~nwhitehorn/textseg.diff changes
>> this algorithm to make the official text area be the largest executable
>> segment, and all others data. The patch has been tested on sparc64,
>> amd64, powerpc, and (of course) powerpc64, with no evident bad effects.
>>
>
> My only comment is that I would keep the existing language about obreak() as
> it describes multiple data segments, etc. Instead, I would just use the first
> sentence of your new comment to replace the first paragraph in the old
> comment.
>
That's a good point. I've updated the patch with the new comment. Thanks
for taking a look! If no one objects, I'll commit both of these patches
tomorrow.
-Nathan
More information about the freebsd-hackers
mailing list