• S
    configure: add option to disable -fstack-protector flags · 63678e17
    Steven Noonan 提交于
    The -fstack-protector flag family is useful for ensuring safety and for
    debugging, but has a performance impact. Here are some boot time comparisons of
    the various versions of -fstack-protector using qemu-system-arm on an x86_64
    host:
    
        # -fstack-protector-all
        Startup finished in 1.810s (kernel) + 12.331s (initrd) + 49.016s (userspace) = 1min 3.159s
        Startup finished in 1.801s (kernel) + 12.287s (initrd) + 47.925s (userspace) = 1min 2.013s
        Startup finished in 1.812s (kernel) + 12.302s (initrd) + 47.995s (userspace) = 1min 2.111s
    
        # -fstack-protector-strong
        Startup finished in 1.744s (kernel) + 11.223s (initrd) + 44.688s (userspace) = 57.657s
        Startup finished in 1.721s (kernel) + 11.222s (initrd) + 44.194s (userspace) = 57.138s
        Startup finished in 1.693s (kernel) + 11.250s (initrd) + 44.426s (userspace) = 57.370s
    
        # -fstack-protector
        Startup finished in 1.705s (kernel) + 11.409s (initrd) + 43.563s (userspace) = 56.677s
        Startup finished in 1.877s (kernel) + 11.137s (initrd) + 43.719s (userspace) = 56.734s
        Startup finished in 1.708s (kernel) + 11.141s (initrd) + 43.628s (userspace) = 56.478s
    
        # no stack protector
        Startup finished in 1.743s (kernel) + 11.190s (initrd) + 43.709s (userspace) = 56.643s
        Startup finished in 1.763s (kernel) + 11.216s (initrd) + 43.767s (userspace) = 56.747s
        Startup finished in 1.711s (kernel) + 11.283s (initrd) + 43.878s (userspace) = 56.873s
    
    This patch introduces a configure option to disable the stack protector
    entirely, and conditional stack protector flag selection (in order,
    based on availability): -fstack-protector-strong, -fstack-protector-all,
    no stack protector.
    Signed-off-by: NSteven Noonan <snoonan@amazon.com>
    Cc: Anthony Liguori <aliguori@amazon.com>
    Reviewed-by: NStefan Weil <sw@weilnetz.de>
    [Prefer -fstack-protector-all to -fstack-protector, suggested by
     Laurent Desnogues. - Paolo]
    Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
    63678e17
configure 136.9 KB