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

_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[email protected]"

Reply via email to