Re: [PATCH 1/3] module: deal with alignment issues in built-in module versions

From: Linus Torvalds
Date: Thu Feb 17 2011 - 18:09:32 EST


On Thu, Feb 17, 2011 at 2:48 PM, Linus Torvalds
<torvalds@xxxxxxxxxxxxxxxxxxxx> 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.

Grr.

Where in gcc is the alignment expansion logic? I'd like to see what
the rules are, just for my own perverse satisfaction.

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/