From b9e462e75a5375e62eed9381b14fc49be602a916 Mon Sep 17 00:00:00 2001 From: c8ef Date: Fri, 20 Mar 2026 21:01:09 +0800 Subject: [PATCH] make export cross platforms --- async_simple/CommonMacros.h | 6 ++++++ async_simple/uthread/internal/thread_impl.h | 8 ++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/async_simple/CommonMacros.h b/async_simple/CommonMacros.h index 76cdf050..f8299fd7 100644 --- a/async_simple/CommonMacros.h +++ b/async_simple/CommonMacros.h @@ -31,6 +31,12 @@ #define AS_INLINE __attribute__((__always_inline__)) inline #endif +#ifdef _WIN32 +#define AS_EXPORT __declspec(dllexport) +#else +#define AS_EXPORT __attribute__((__visibility__("default"))) +#endif + #ifdef __clang__ #if __has_feature(address_sanitizer) #define AS_INTERNAL_USE_ASAN 1 diff --git a/async_simple/uthread/internal/thread_impl.h b/async_simple/uthread/internal/thread_impl.h index af2fe5d2..5304dbf5 100644 --- a/async_simple/uthread/internal/thread_impl.h +++ b/async_simple/uthread/internal/thread_impl.h @@ -37,10 +37,10 @@ struct transfer_t { fcontext_t fctx; void* data; }; -extern "C" __attribute__((__visibility__("default"))) transfer_t -_fl_jump_fcontext(fcontext_t const to, void* vp); -extern "C" __attribute__((__visibility__("default"))) fcontext_t -_fl_make_fcontext(void* sp, std::size_t size, void (*fn)(transfer_t)); +extern "C" AS_EXPORT transfer_t _fl_jump_fcontext(fcontext_t const to, + void* vp); +extern "C" AS_EXPORT fcontext_t _fl_make_fcontext(void* sp, std::size_t size, + void (*fn)(transfer_t)); class thread_context;