This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug other/49578] Profiling: call graph table overflows on Solaris.
- From: "egallager at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 24 Jul 2017 20:30:46 +0000
- Subject: [Bug other/49578] Profiling: call graph table overflows on Solaris.
- Auto-submitted: auto-generated
- References: <bug-49578-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49578
Eric Gallager <egallager at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |WAITING
Last reconfirmed| |2017-07-24
CC| |egallager at gcc dot gnu.org
Ever confirmed|0 |1
--- Comment #1 from Eric Gallager <egallager at gcc dot gnu.org> ---
(In reply to David Warme from comment #0)
> Created attachment 24631 [details]
> Patch to increase max num edges in profile call graph under Solaris.
>
> The Solaris implementation of profiling (-pg option) links in a
> special gmon.o file that defines the mcount() routine, and related
> functions. (On Solaris, mcount() does not reside in libc.so, so
> GCC must provide its own implementation.)
>
> This implementation of mcount() creates linked lists of nodes
> using an "unsigned short" as the link field to the next node.
> This places a hard limit of 65533 edges in the call graph of any
> program that is profiled -- a limitation that is easily exceeded
> by modern programs.
>
> The attached patch (made to the gcc-4.6.1 distribution) replaces
> the pertinent "unsigned short" fields with "unsigned int", and
> eliminates the upper bound when dynamically allocating the
> "tos" table. This enables profiling of large programs under
> Solaris.
>
> David Warme, Ph.D.
> Principal Computer Scientist
> Group W, Inc.
> Fairfax, VA 22031
> USA
Could you update your patch to a more recent version of gcc and then send it to
the gcc-patches mailing list please?