From: Nick Clifton Date: Sat, 3 Jan 2009 10:00:58 +0000 (+0000) Subject: PR 7099 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c8d1c0af8062b171426f9dc64e895a39eb255146;p=binutils-gdb.git PR 7099 * gprof.texi (Compiling): Mention the need for using -static-libgcc on shared library systems. --- diff --git a/gprof/ChangeLog b/gprof/ChangeLog index 1d1f5960c4f..50b2ab23c69 100644 --- a/gprof/ChangeLog +++ b/gprof/ChangeLog @@ -1,3 +1,9 @@ +2009-01-03 Nick Clifton + + PR 7099 + * gprof.texi (Compiling): Mention the need for using + -static-libgcc on shared library systems. + 2009-01-02 Nick Clifton * po/id.po: Updated Indonesian translation. diff --git a/gprof/gprof.texi b/gprof/gprof.texi index f389087b7ad..1f86383de7c 100644 --- a/gprof/gprof.texi +++ b/gprof/gprof.texi @@ -325,6 +325,20 @@ example: ld -o myprog /lib/gcrt0.o myprog.o utils.o -lc_p @end example +If you are running the program on a system which supports shared +libraries you may run into problems with the profiling support code in +a shared library being called before that library has been fully +initialised. This is usually detected by the program encountering a +segmentation fault as soon as it is run. The solution is to link +against a static version of the library containing the profiling +support code, which for @code{gcc} users can be done via the +@samp{-static} or @samp{-static-libgcc} command line option. For +example: + +@example +gcc -g -pg -static-libgcc myprog.c utils.c -o myprog +@end example + If you compile only some of the modules of the program with @samp{-pg}, you can still profile the program, but you won't get complete information about the modules that were compiled without @samp{-pg}. The only information