[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1298074455.2460.85.camel@pasglop>
Date: Fri, 18 Feb 2011 18:14:15 -0600
From: Benjamin Herrenschmidt <benh@...nel.crashing.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: David Miller <davem@...emloft.net>, dtor@...are.com,
linux-kernel@...r.kernel.org, geert@...ux-m68k.org,
rusty@...tcorp.com.au, linux-m68k@...r.kernel.org,
linux-arch@...r.kernel.org
Subject: Re: [PATCH 1/3] module: deal with alignment issues in built-in
module versions
On Thu, 2011-02-17 at 15:08 -0800, Linus Torvalds wrote:
> On Thu, Feb 17, 2011 at 2:48 PM, Linus Torvalds
> <torvalds@...ux-foundation.org> wrote:
> >
> > Gaah, I didn't realize that we've never had to do anything like this
> > before, and that the exception table is all arch-specific code. So we
> > don't have any way to "output that damned pointer and stop whining
> > about it" model at all.
>
> Actually, I don't think the problem is about ".word" vs ".xword". We
> should be able to just use ".long" everywhere.
>
> But the symbol _name_ may have different prefixes, and when we use
> "asm()" at the top level, we can't use the expressions to fix it up.
> So a
>
> asm(".long %0":'i" (symbol))
>
> doesn't work (ignore the lack of section naming, that's not
> important), and neither can we just do something like
>
> #define output_asm_pointer(section, symbol) \
> asm(".long " #symbol)
>
> portably, because some linker formats want to see prepended underscores etc.
Except that .long is 32-bit on ppc64 :-( You need .llong for 64-bit.
Cheers,
Ben.
--
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