Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 08 Jun 1999 09:06:39 +0900
From:      Hidetoshi Shimokawa <simokawa@sat.t.u-tokyo.ac.jp>
To:        jdp@polstra.com
Cc:        freebsd-alpha@FreeBSD.org
Subject:   Re: cvs commit: src/lib/csu/alpha crtbegin.c
Message-ID:  <14172.24207.483731.81427C@ett.sat.t.u-tokyo.ac.jp>
In-Reply-To: In your message of "Mon, 07 Jun 1999 16:35:33 -0700 (PDT)" <XFMail.990607163533.jdp@polstra.com>
References:  <14171.60400.466517.68187Y@ett.sat.t.u-tokyo.ac.jp> <XFMail.990607163533.jdp@polstra.com>

next in thread | previous in thread | raw e-mail | index | archive | help
At Mon, 07 Jun 1999 16:35:33 -0700 (PDT),
John Polstra <jdp@polstra.com> wrote:
> 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.

Thank you for the investigation.

I have worse problems which I suspect dynamic link related.
I don't have simple example, but you can reproduce by building
kdeutils11 (and some other kde programs) in ports collection.

It dies in configure with the following conftest.C which gets signal
11 in the runtime link stage.

#include <stdio.h>
#include "confdefs.h"
#include <kapp.h>

int main() {
    printf("kde_htmldir=\"%s\"\n", KApplication::kde_htmldir().data());
    printf("kde_appsdir=\"%s\"\n", KApplication::kde_appsdir().data());
    printf("kde_icondir=\"%s\"\n", KApplication::kde_icondir().data());
    printf("kde_sounddir=\"%s\"\n", KApplication::kde_sounddir().data());
    printf("kde_datadir=\"%s\"\n", KApplication::kde_datadir().data());
    printf("kde_locale=\"%s\"\n", KApplication::kde_localedir().data());
    printf("kde_cgidir=\"%s\"\n", KApplication::kde_cgidir().data());
    printf("kde_confdir=\"%s\"\n", KApplication::kde_configdir().data());
    printf("kde_mimedir=\"%s\"\n", KApplication::kde_mimedir().data());
    printf("kde_toolbardir=\"%s\"\n", KApplication::kde_toolbardir().data());
    printf("kde_wallpaperdir=\"%s\"\n", 
	KApplication::kde_wallpaperdir().data());
    printf("kde_bindir=\"%s\"\n", KApplication::kde_bindir().data());
    printf("kde_partsdir=\"%s\"\n", KApplication::kde_partsdir().data());
    return 0;
    }

-- 
/\ Hidetoshi Shimokawa
\/  simokawa@sat.t.u-tokyo.ac.jp
PGP public key: finger -l simokawa@sat.t.u-tokyo.ac.jp


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?14172.24207.483731.81427C>