Date: Mon, 07 Jun 1999 16:35:33 -0700 (PDT) From: John Polstra <jdp@polstra.com> To: Hidetoshi Shimokawa <simokawa@sat.t.u-tokyo.ac.jp> Cc: freebsd-alpha@FreeBSD.org Subject: Re: cvs commit: src/lib/csu/alpha crtbegin.c Message-ID: <XFMail.990607163533.jdp@polstra.com> In-Reply-To: <14171.60400.466517.68187Y@ett.sat.t.u-tokyo.ac.jp>
next in thread | previous in thread | raw e-mail | index | archive | help
Hidetoshi Shimokawa wrote: > I noticed that some large dynamic linked program is slow on alpha. I couldn't resist investigating this. The problem only occurs with large programs, as you mentioned. It doesn't happen with "normal" sized programs. That provides some comfort. :-) I believe the problem occurs when the size of the GOT table exceeds its maximum of 64K bytes. In that case the linker has to construct multiple GOT tables. If you link gdb using "LDFLAGS=Wl,-warn-multiple-gp" you can see the warning about this: gdb: using multiple gp values As you know, the dynamic linker normally patches the GOT table entry on the first call to a function. When there are multiple GOT tables it must be patching the wrong one. This could probably cause worse problems than just slow performance, as you can imagine. That's all I know about it so far. I don't have a fix yet. John --- John Polstra jdp@polstra.com John D. Polstra & Co., Inc. Seattle, Washington USA "Self-interest is the aphrodisiac of belief." -- James V. DeLong To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.990607163533.jdp>