Skip to content
  • Borislav Petkov's avatar
    x86: Disable generation of traditional x87 instructions · b399fe35
    Borislav Petkov authored
    
    
    We recently had the case where wrongly used floating-constant 'E' caused
    the generation of traditional x87 instructions in kernel code and
    wreaking all kinds of havoc.
    
    Disable the generation of those too. This will save people a lot of time
    when trying to debug such issues by erroring out of the build instead of
    let them manifest themselves in very spectacular and happy-crappy ways
    at runtime.
    
    We're using -mno-fp-ret-in-387 in addition to -mno-80387 (which is ==
    -msoft-float) because, as the gcc manpage says:
    
      On machines where a function returns floating-point results in the
      80387 register stack, some floating-point opcodes may be emitted even
      if -msoft-float is used.
    
    so we want to turn off *all* non-integer instructions involving any
    architectural FPU state, unless it is absolutely necessary (and those
    cases need special handling anyway).
    
    Cc: Jiri Kosina <jkosina@suse.cz>
    Cc: Michael Matz <matz@suse.de>
    Cc: Michal Hocko <mhocko@suse.cz>
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Link: http://lkml.kernel.org/r/1391561711-3023-1-git-send-email-bp@alien8.de
    
    
    Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
    b399fe35