Skip to content

Commit

Permalink
build(win): export extern symbols for use in FFI #22756
Browse files Browse the repository at this point in the history
Makes `extern` variables accessible through ffi on Windows.

Follow-up to #15999
  • Loading branch information
luukvbaal committed Mar 23, 2023
1 parent 4e4203f commit b028805
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
7 changes: 6 additions & 1 deletion src/nvim/main.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
// This is an open source non-commercial project. Dear PVS-Studio, please check
// it. PVS-Studio Static Code Analyzer for C, C++ and C#: http:https://www.viva64.com

#define EXTERN
// Make sure extern symbols are exported on Windows
#ifdef WIN32
# define EXTERN __declspec(dllexport)
#else
# define EXTERN
#endif
#include <assert.h>
#include <limits.h>
#include <msgpack/pack.h>
Expand Down
9 changes: 9 additions & 0 deletions test/functional/lua/ffi_spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -63,5 +63,14 @@ describe('ffi.cdef', function()
nil
)
]=])

-- Check that extern symbols are exported and accessible
eq(true, exec_lua[[
local ffi = require('ffi')
ffi.cdef('uint64_t display_tick;')
return ffi.C.display_tick >= 0
]])
end)
end)

0 comments on commit b028805

Please sign in to comment.