From mboxrd@z Thu Jan 1 00:00:00 1970 From: Helge Deller Subject: Re: Bug#539378: [hppa]: fails to load nfs module: Global Offset Table overflow Date: Fri, 31 Jul 2009 23:08:35 +0200 Message-ID: <4A735D53.6060803@gmx.de> References: <20090731091729.1105.20608.reportbug@aragorn.fjphome.nl> <119aab440907311149j3e17466fy3782b86399142141@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Cc: Frans Pop , 539378@bugs.debian.org, Debian HPPA Port List , linux-parisc , Randolph Chung , Debian Bug Tracking System To: Carlos O'Donell Return-path: In-Reply-To: <119aab440907311149j3e17466fy3782b86399142141@mail.gmail.com> List-ID: List-Id: linux-parisc.vger.kernel.org On 07/31/2009 08:49 PM, Carlos O'Donell wrote: > [...] > However, on 64-bit the long format of ldd has a 16-bit signed > immediate offset (0xffff), meaning it can reach +0x7fff e.g. 4095 GOT > slots. > > Do you have the time to test something out? > > * Make this conditional on 32-bit vs. 64-bit and allow for 4095 GOT > entries on 64-bit. > * Fix ELF_GOT_STUB for the 64-bit case. It needs to reassemble a > 16-bit offset, the current code is IMO incorrect. i.e. it should be "& > 0x7fff", and use a new reassemble_16 see the PA 2.0 book definition of > ldd. > * Build kernel. > * Test loading NFS moudle. Carlos, thanks a lot for those explanations (and keep up your work with NPTL :-)). I'll know what you mean, and if it works it's a good idea. I'll try to come up with a patch. A few notes: - the GOT table is only used for 64bit anyway, so no need to differentiate for 32/64bits - Another possibility could be to sort the tables, so to reduce the number of needed entries. Helge