]> git.ipfire.org Git - thirdparty/grub.git/commit
configure: Warn if stack protector is not allowed
authorNicholas Vinson <nvinson234@gmail.com>
Thu, 7 Jul 2022 23:52:47 +0000 (19:52 -0400)
committerDaniel Kiper <daniel.kiper@oracle.com>
Tue, 12 Jul 2022 12:33:25 +0000 (14:33 +0200)
commit1b3d97bdf8b026d1fe43accd14dd190dd47e183f
tree890fafb97223b56fe2a4cb2fb2e85363f07ff011
parentb6a2ea4f8267b893b95bd42528c92391dc6fcf4c
configure: Warn if stack protector is not allowed

Introduce ERROR_PLATFORM_NOT_SUPPORT_SSP environment variable to treat
the "--enable-stack-protector is only supported on EFI platforms" message
as a warning instead of an error. If ERROR_PLATFORM_NOT_SUPPORT_SSP is
set to "no" (case-insensitive), then the message will be printed as
a warning. Otherwise, it prints as an error. The default behavior is to
print the message as an error.

For any wrapper build script that has some variation of:

    for p in SELECTED_GRUB_PLATFORMS; do    \
        configure --enable-stack-protector  \
            --with-platform${P} ... || die; \
    done
    make

The GRUB will fail to build if SELECTED_GRUB_PLATFORMS contains a platform
that does not support SSP.

Such wrapper scripts need to work-around this issue by modifying the
above for-loop, so it conditionally passes --enable-stack-protector to
configure for the proper GRUB platform(s).

However, if the above example is modified to have to conditionally pass
in --enable-stack-protector, its behavior is effectively the same as the
proposed change. Additionally, The list of SSP supported platforms is
now in 2 places. One in the configure script and one in the build wrapper
script. If the second list is not properly maintained it could mistakenly
disable SSP for a platform that later gained support for it.

Signed-off-by: Nicholas Vinson <nvinson234@gmail.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
configure.ac