windows: Add _stack_chk_guard/_stack_chk_fail symbols for Windows 64-bit target

Otherwise the GRUB cannot start due to missing symbols when stack
protector is enabled on EFI platforms.

Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
Reviewed-by: Vladimir Serbinenko <phcoder@gmail.com>
This commit is contained in:
Daniel Kiper 2024-04-09 19:56:02 +02:00
parent 0876fdf215
commit 8719cc2040

View File

@ -25,6 +25,10 @@
#ifdef GRUB_STACK_PROTECTOR #ifdef GRUB_STACK_PROTECTOR
extern grub_addr_t EXPORT_VAR (__stack_chk_guard); extern grub_addr_t EXPORT_VAR (__stack_chk_guard);
extern void __attribute__ ((noreturn)) EXPORT_FUNC (__stack_chk_fail) (void); extern void __attribute__ ((noreturn)) EXPORT_FUNC (__stack_chk_fail) (void);
#if defined(_WIN64) && !defined(__CYGWIN__) /* MinGW, Windows 64-bit target. */
static grub_addr_t __attribute__ ((weakref("__stack_chk_guard"))) EXPORT_VAR (_stack_chk_guard);
static void __attribute__ ((noreturn, weakref("__stack_chk_fail"))) EXPORT_FUNC (_stack_chk_fail) (void);
#endif
#endif #endif
#endif /* GRUB_STACK_PROTECTOR_H */ #endif /* GRUB_STACK_PROTECTOR_H */