03 Oct, 2012

1 commit

  • The correct syntax for gcc -x is "gcc -x assembler", not
    "gcc -xassembler". Even though the latter happens to work, the former
    is what is documented in the manual page and thus what gcc wrappers
    such as icecream do expect.

    This isn't a cosmetic change. The missing space prevents icecream from
    recognizing compilation tasks it can't handle, leading to silent kernel
    miscompilations.

    Besides me, credits go to Michael Matz and Dirk Mueller for
    investigating the miscompilation issue and tracking it down to this
    incorrect -x parameter syntax.

    Signed-off-by: Jean Delvare
    Acked-by: Ingo Molnar
    Cc: stable@vger.kernel.org
    Cc: Bernhard Walle
    Cc: Michal Marek
    Cc: Ralf Baechle
    Signed-off-by: Michal Marek

    Jean Delvare
     

11 Feb, 2009

1 commit


10 Feb, 2009

1 commit

  • Impact: stack protector for x86_32

    Implement stack protector for x86_32. GDT entry 28 is used for it.
    It's set to point to stack_canary-20 and have the length of 24 bytes.
    CONFIG_CC_STACKPROTECTOR turns off CONFIG_X86_32_LAZY_GS and sets %gs
    to the stack canary segment on entry. As %gs is otherwise unused by
    the kernel, the canary can be anywhere. It's defined as a percpu
    variable.

    x86_32 exception handlers take register frame on stack directly as
    struct pt_regs. With -fstack-protector turned on, gcc copies the
    whole structure after the stack canary and (of course) doesn't copy
    back on return thus losing all changed. For now, -fno-stack-protector
    is added to all files which contain those functions. We definitely
    need something better.

    Signed-off-by: Tejun Heo
    Signed-off-by: Ingo Molnar

    Tejun Heo