[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <BLU0-SMTP23C8D54498C7DFACDF083B97DB0@phx.gbl>
Date: Sat, 6 Apr 2013 11:16:19 -0400
From: John David Anglin <dave.anglin@...l.net>
To: James Bottomley <James.Bottomley@...senPartnership.com>
CC: Rusty Russell <rusty@...tcorp.com.au>,
Sebastian Wankerl <sisewank@....cs.fau.de>,
linux-kernel@...r.kernel.org,
Philip Kranz <philip.kranz@...glemail.com>,
i4passt@...ts.informatik.uni-erlangen.de,
linux-parisc@...r.kernel.org, corbet@....net
Subject: Re: [PATCH] Add non-zero module sections to sysfs
On 6-Apr-13, at 6:52 AM, James Bottomley wrote:
> On Sat, 2013-04-06 at 15:22 +1030, Rusty Russell wrote:
>>> The problem is our assumption that section names be unique. This
>>> assumption is wrong. The ELF spec says (version 1.1 page 1-15): "An
>>> object file may have more than one section with the same name."
>>> We need
>>> to fix the kernel not to rely on a bogus assumption ... but we had
>>> no
>>> idea how to do that in a way that preserved the backwards
>>> compatibility
>>> of sections subdirectory.
>>>
>>> I admit that 35dead4235e2b67da7275b4122fed37099c2f462 is a hack,
>>> but now
>>> the problem has got attention, can we fix it properly?
>>
>> Yep. The original patch didn't go through me, or we would have had
>> this
>> discussion back then...
>>
>> The use of section names in sysfs goes back to one Mr. Corbet. Why
>> did
>> he do it that way? Because gdb's add-symbol-file makes the same
>> assumption. So if we fixed the sysfs somehow, it still wouldn't be
>> useful, since there's no way to tell gdb :(
>>
>> The real answer don't use -ffunction-sections on modules: probably
>> not
>> as important as the rest of the kernel. And the new shiny is
>> -flto anyway.
>>
>> And that leaves us with a PA-RISC specific issue, for which we should
>> move the fix to PA-RISC.
>>
>> Thoughts?
>
> Well, we don't have much of a choice. Our ELF stub jump on 32 bits
> is a
> PCREL17. That means once a module size is over 128k there's a
> chance we
> might not be able to link it because the jump is too big for the
> instruction. IPV6 is one such big module today, but I'm sure there
> are
> others. The only way I know to fix this is to allow the linker to
> insert stubs between functions, so we only fail at linking if a single
> function is >128k big. The way to do this is -ffunction-sections,
> unless there's something else we could do (all we really need is a way
> to ensure we can insert ELF stubs every 128k).
There is now a config work around for this. See:
http://www.spinics.net/lists/linux-parisc/msg04521.html
Dave
--
John David Anglin dave.anglin@...l.net
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists