diff options
author | H. Peter Anvin (Intel) <hpa@zytor.com> | 2019-03-23 17:06:48 -0700 |
---|---|---|
committer | H. Peter Anvin (Intel) <hpa@zytor.com> | 2019-03-23 17:06:48 -0700 |
commit | 80b516df534ff9d6cb0659d7eff6022d959cb334 (patch) | |
tree | e198aaabb1a2f2492fdfbb5cf99d7ccfaec5783b | |
parent | 6be0597ff1d1d4f2c3b0a6d283b04caafc29016d (diff) | |
download | syslinux-80b516df534ff9d6cb0659d7eff6022d959cb334.tar.gz syslinux-80b516df534ff9d6cb0659d7eff6022d959cb334.tar.xz syslinux-80b516df534ff9d6cb0659d7eff6022d959cb334.zip |
setjmp: for EFI, use setjmp() from gnu-efi
setjmp() is provided by gnu-efi, so if we are using gnu-efi, use the
version defined in <efi.h>, not the one from klibc.
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
-rw-r--r-- | com32/include/setjmp.h | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/com32/include/setjmp.h b/com32/include/setjmp.h index e7090955..3403b72c 100644 --- a/com32/include/setjmp.h +++ b/com32/include/setjmp.h @@ -5,24 +5,32 @@ #ifndef _SETJMP_H #define _SETJMP_H -#include <klibc/extern.h> -#include <klibc/compiler.h> -#include <stddef.h> - -#if __SIZEOF_POINTER__ == 4 -#include <klibc/i386/archsetjmp.h> -#elif __SIZEOF_POINTER__ == 8 -#include <klibc/x86_64/archsetjmp.h> +#if defined(__FIRMWARE_EFI32__) || defined(__FIRMWARE_EFI64__) + +# include <efi.h> + #else -#error "unsupported architecture" -#endif + +# include <klibc/extern.h> +# include <klibc/compiler.h> +# include <stddef.h> + +# ifdef __i386__ +# include <klibc/i386/archsetjmp.h> +# elif defined(__x86_64__) +# include <klibc/x86_64/archsetjmp.h> +# else +# error "unsupported architecture" +# endif __extern int setjmp(jmp_buf); __extern __noreturn longjmp(jmp_buf, int); typedef jmp_buf sigjmp_buf; -#define sigsetjmp(__env, __save) setjmp(__env) -#define siglongjmp(__env, __val) longjmp(__env, __val) +# define sigsetjmp(__env, __save) setjmp(__env) +# define siglongjmp(__env, __val) longjmp(__env, __val) + +#endif #endif /* _SETJMP_H */ |