This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] move __gmon_start__ call out of .init section


>>>>> On Thu, 7 Nov 2002 14:27:35 -0800, Roland McGrath <roland@redhat.com> said:

  >> The problem is that the unwind info for the .init/.fini section
  >> will be incorrect if it contains any function call.

  Roland> I don't really see why it should matter for these functions
  Roland> (when do you unwind through them?), but I can take your word
  Roland> for it that it does.

It matters during debugging for example (that's how I originally found
the problem).  There are other reasons.  For example, a profiling tool
might want to periodically create a stack trace to create call-graph
profiles.

  Roland> It's a weak reference and so might be zero.  There is no
  Roland> provision in the spec for preinit_array elements being zero,
  Roland> so it would be questionable to have it skip them (rather
  Roland> than a user putting a random zero into the array getting the
  Roland> crash he deserves).

We wouldn't be putting __gmon_init__ directly into .preinit---we would
put a function there which will then check whether __gmon_init__ is
NULL and, if not, call it.

  Roland> It sounds like this is really an ia64-specific issue and so
  Roland> there isn't any question of wanting to do this for the other
  Roland> platforms.  So I will put your change in.

OK, thanks.

  Roland> Please fix whatever you are using to munge your diffs so
  Roland> that it produces correct file names instead of the garbage
  Roland> all your recent patches have contained.  After today I won't
  Roland> be in the mood to manually unmunge patches that can't be
  Roland> applied by any single -pN setting.

Hmmh, I'm sorry about that.  I was using a script that Uli sent me
some time ago.  I'm not a (heavy) CVS user but Uli told me that the
patches created by "cvs diff -U" are broken.  What's the recommend way
to create a diff from the glibc CVS?

	--david


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]