From 4ebbf6568bedb51266957eead6254d6610fd2ba3 Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Mon, 27 Apr 2026 17:45:52 +0300 Subject: [PATCH] fasthttp: make public on linux/windows --- vlib/fasthttp/fasthttp_linux.v | 2 +- vlib/fasthttp/fasthttp_windows.v | 2 +- vlib/v/gen/c/cheaders.v | 9 +++++---- vlib/v/gen/c/cheaders_manual_stdlib_decls_test.v | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/vlib/fasthttp/fasthttp_linux.v b/vlib/fasthttp/fasthttp_linux.v index e13ab2722..f458af3a2 100644 --- a/vlib/fasthttp/fasthttp_linux.v +++ b/vlib/fasthttp/fasthttp_linux.v @@ -37,7 +37,7 @@ mut: data C.epoll_data_t } -struct Server { +pub struct Server { pub: family net.AddrFamily = .ip6 port int = 3000 diff --git a/vlib/fasthttp/fasthttp_windows.v b/vlib/fasthttp/fasthttp_windows.v index 22cbf15e4..54aa8d567 100644 --- a/vlib/fasthttp/fasthttp_windows.v +++ b/vlib/fasthttp/fasthttp_windows.v @@ -1,6 +1,6 @@ module fasthttp -struct Server { +pub struct Server { pub: port int = 3000 max_request_buffer_size int = 8192 diff --git a/vlib/v/gen/c/cheaders.v b/vlib/v/gen/c/cheaders.v index 6826742c1..726a3824c 100644 --- a/vlib/v/gen/c/cheaders.v +++ b/vlib/v/gen/c/cheaders.v @@ -480,10 +480,11 @@ typedef __builtin_va_list va_list; #ifdef __cplusplus extern "C" { #endif -// mingw-w64 stdio.h declares these as static __mingw_ovr inline overrides. -// Skip them under mingw to avoid static-after-extern conflicts when -// thirdparty headers later include stdio.h. -#if !defined(__MINGW32__) && !defined(__MINGW64__) +// mingw-w64 stdio.h declares these as static __mingw_ovr inline overrides +// when __USE_MINGW_ANSI_STDIO is on. Skip them under gcc+mingw to avoid +// static-after-extern conflicts; clang+mingw needs them because it builds +// with -Werror=implicit-function-declaration and does not hit the conflict. +#if !((defined(__MINGW32__) || defined(__MINGW64__)) && !defined(__clang__)) V_CRT_LINKAGE int V_CRT_CALL vfprintf(FILE *stream, const char *format, va_list ap); V_CRT_LINKAGE int V_CRT_CALL vsnprintf(char *str, size_t size, const char *format, va_list ap); V_CRT_LINKAGE int V_CRT_CALL fprintf(FILE *stream, const char *format, ...); diff --git a/vlib/v/gen/c/cheaders_manual_stdlib_decls_test.v b/vlib/v/gen/c/cheaders_manual_stdlib_decls_test.v index 38958d226..c72646583 100644 --- a/vlib/v/gen/c/cheaders_manual_stdlib_decls_test.v +++ b/vlib/v/gen/c/cheaders_manual_stdlib_decls_test.v @@ -73,7 +73,7 @@ fn test_msvc_windows_prelude_uses_msvc_crt_headers() { assert generated_c.contains('#ifndef va_copy\n\t#define va_copy(dest, src) ((dest) = (src))\n#endif\n#ifndef _TRUNCATE'), generated_c assert generated_c.contains('#if defined(_MSC_VER) && !defined(__clang__)\n\t#define V_CRT_LINKAGE __declspec(dllimport)\n\t#define V_CRT_CALL VCALLCONV(cdecl)\n#else\n\t#define V_CRT_LINKAGE\n\t#define V_CRT_CALL\n#endif'), generated_c assert generated_c.contains('#if !defined(_MSC_VER) || defined(__clang__)\n#ifdef __cplusplus\nextern "C" {\n#endif\n'), generated_c - assert generated_c.contains('#if !defined(__MINGW32__) && !defined(__MINGW64__)\nV_CRT_LINKAGE int V_CRT_CALL vfprintf(FILE *stream, const char *format, va_list ap);'), generated_c + assert generated_c.contains('#if !((defined(__MINGW32__) || defined(__MINGW64__)) && !defined(__clang__))\nV_CRT_LINKAGE int V_CRT_CALL vfprintf(FILE *stream, const char *format, va_list ap);'), generated_c assert generated_c.contains('V_CRT_LINKAGE int V_CRT_CALL _vscprintf(const char *format, va_list ap);'), generated_c assert generated_c.contains('V_CRT_LINKAGE int V_CRT_CALL _vsnprintf_s(char *buffer, size_t size, size_t count, const char *format, va_list ap);'), generated_c assert generated_c.contains('#include '), generated_c -- 2.39.5