Messages in this thread | | | Subject | Re: [PATCH 1/3] module: deal with alignment issues in built-in module versions | From | Benjamin Herrenschmidt <> | Date | Fri, 18 Feb 2011 18:14:15 -0600 |
| |
On Thu, 2011-02-17 at 15:08 -0800, Linus Torvalds wrote: > On Thu, Feb 17, 2011 at 2:48 PM, Linus Torvalds > <torvalds@linux-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.
| |