24 Sep, 2009

1 commit

  • When using CONFIG_RELOCATABLE, we build the kernel as a position
    independent executable. The kernel then uses a little bit of relocation
    code to relocate itself. That code only deals with R_PPC64_RELATIVE
    relocations though. If for some reason you use assembly constructs
    such as LOAD_REG_IMMEDIATE() to load the address of a symbol, you'll
    generate different kinds of relocations that won't be processed properly
    and bad things will happen. (We have 2 such bugs today).

    The perl script tries to filter out "known" bad ones. It's possible
    that we are missing some in the case of a weak function that nobody
    implements, we'll see if we get false positive and fix it.

    Signed-off-by: Tony Breeds
    Signed-off-by: Benjamin Herrenschmidt

    Tony Breeds