diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2017-10-19 11:06:05 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2017-10-19 11:06:05 +0200 |
| commit | 3704c60135f96c02079274dad1a00b2dc3f846c9 (patch) | |
| tree | f9694cd29a8bd1773f1e462094d78065d4ce53dd /pkg/csource | |
| parent | f26811f08042dfa5aa5463e35fb3ec9e56005dae (diff) | |
executor: fix build breakages due to doexit
Some standard libraries contain "using ::exit;",
which breaks with the current redefinition of exit.
Diffstat (limited to 'pkg/csource')
| -rw-r--r-- | pkg/csource/akaros_common.go | 17 | ||||
| -rw-r--r-- | pkg/csource/linux_common.go | 10 |
2 files changed, 21 insertions, 6 deletions
diff --git a/pkg/csource/akaros_common.go b/pkg/csource/akaros_common.go index 669020aa8..88a80c638 100644 --- a/pkg/csource/akaros_common.go +++ b/pkg/csource/akaros_common.go @@ -31,7 +31,17 @@ var commonHeaderAkaros = ` #include <dirent.h> #endif -#define doexit exit +#if defined(SYZ_EXECUTOR) || (defined(SYZ_REPEAT) && defined(SYZ_WAIT_REPEAT)) || \ + defined(SYZ_USE_TMP_DIR) || defined(SYZ_HANDLE_SEGV) || defined(SYZ_TUN_ENABLE) || \ + defined(SYZ_SANDBOX_NAMESPACE) || defined(SYZ_SANDBOX_SETUID) || \ + defined(SYZ_SANDBOX_NONE) || defined(SYZ_FAULT_INJECTION) || defined(__NR_syz_kvm_setup_cpu) +__attribute__((noreturn)) static void doexit(int status) +{ + _exit(status); + for (;;) { + } +} +#endif @@ -55,6 +65,11 @@ var commonHeaderAkaros = ` #endif #if defined(SYZ_EXECUTOR) +#define exit vsnprintf +#define _exit vsnprintf +#endif + +#if defined(SYZ_EXECUTOR) #if defined(__GNUC__) #define SYSCALLAPI #define NORETURN __attribute__((noreturn)) diff --git a/pkg/csource/linux_common.go b/pkg/csource/linux_common.go index acc1647e4..2d84a9fbd 100644 --- a/pkg/csource/linux_common.go +++ b/pkg/csource/linux_common.go @@ -119,11 +119,6 @@ __attribute__((noreturn)) static void doexit(int status) } #endif -#if defined(SYZ_EXECUTOR) -#define exit use_doexit_instead -#define _exit use_doexit_instead -#endif - #include <stdint.h> @@ -146,6 +141,11 @@ __attribute__((noreturn)) static void doexit(int status) #endif #if defined(SYZ_EXECUTOR) +#define exit vsnprintf +#define _exit vsnprintf +#endif + +#if defined(SYZ_EXECUTOR) #if defined(__GNUC__) #define SYSCALLAPI #define NORETURN __attribute__((noreturn)) |
