Libsodium error sodium.h

458 views
Skip to first unread message

Ni Va

unread,
Mar 5, 2022, 1:07:53 PM3/5/22
to vim_dev
Hi,

I encounter this error trying to link gvim with mingw32 make on Win10

Informations Interfaces
c:/Ruby31
c:/Python310

Flags are:
OLE=yes GUI=yes XPM=no DIRECTx=yes DYNAMIC_LUA=yes LUA=./lua-5.4.4/src LUA_VER=54 PYTHON3=c:/Python310 DYNAMIC_PYTHON3=yes PYTHON3_VER=311 DYNAMIC_PYTHON3_DLL=python311.dll RUBY=c:/Ruby31 DYNAMIC_RUBY=yes RUBY_VER=31 RUBY_API_VER_LONG=3.1.0 -I/c/Ruby31-x64/include/ruby-3.1.0/ruby DYNAMIC_SODIUM=yes SODIUM=libsodium-win32-1.0.18 DYNAMIC_SODIUM_DLL=libsodium-23.dll -I./libsodium-win32-1.0.18/include TERMINAL=yes EVENT_LOOP=yes STATIC_STDCPLUS=yes WINVER=0x0A00

Would you bypass build ? (y/n)n
make for i686
make -f Make_ming.mak OLE=yes GUI=yes XPM=no DIRECTx=yes DYNAMIC_LUA=yes LUA=./lua-5.4.4/src LUA_VER=54 PYTHON3=c:/Python310 DYNAMIC_PYTHON3=yes PYTHON3_VER=311 DYNAMIC_PYTHON3_DLL=python311.dll RUBY=c:/Ruby31 DYNAMIC_RUBY=yes RUBY_VER=31 RUBY_API_VER_LONG=3.1.0 -I/c/Ruby31-x64/include/ruby-3.1.0/ruby DYNAMIC_SODIUM=yes SODIUM=libsodium-win32-1.0.18 DYNAMIC_SODIUM_DLL=libsodium-23.dll -I./libsodium-win32-1.0.18/include TERMINAL=yes EVENT_LOOP=yes STATIC_STDCPLUS=yes WINVER=0x0A00 DEBUG=no

mkdir -p gobji686
gcc -c -I. -Iproto -DWIN32 -DWINVER=0x0A00 -D_WIN32_WINNT=0x0A00 -DHAVE_PATHDEF -DFEAT_HUGE -DHAVE_STDINT_H -DHAVE_SODIUM -DHAVE_GETTEXT -DHAVE_LOCALE_H -DDYNAMIC_GETTEXT -DFEAT_OLE -DFEAT_CSCOPE -DFEAT_NETBEANS_INTG -DFEAT_JOB_CHANNEL -DFEAT_IPV6 -DHAVE_INET_NTOP -DFEAT_TERMINAL -DFEAT_SOUND -DFEAT_DIRECTX -DDYNAMIC_DIRECTX -DFEAT_DIRECTX_COLOR_EMOJI -DFEAT_GUI_MSWIN -DFEAT_CLIPBOARD -DFEAT_MBYTE_IME -DDYNAMIC_IME -DDYNAMIC_ICONV -pipe -march=i686 -Wall -I./lua-5.4.4/src/include -I./lua-5.4.4/src -DFEAT_LUA -DDYNAMIC_LUA -DDYNAMIC_LUA_DLL=\"lua54.dll\" -DFEAT_RUBY -I c:/Ruby31/include/ruby-3.1.0 -I c:/Ruby31/include/ruby-3.1.0/i386-mingw32 -DDYNAMIC_RUBY -DDYNAMIC_RUBY_DLL=\"msvcrt-ruby310.dll\" -DRUBY_VERSION=31 -DFEAT_PYTHON3 -DDYNAMIC_PYTHON3 -DDYNAMIC_PYTHON3_DLL=\"python311.dll\" -O3 -fomit-frame-pointer -freg-struct-return alloc.c -o gobji686/alloc.o
In file included from alloc.c:14:
vim.h:506:11: fatal error: sodium.h: No such file or directory
  506 | # include <sodium.h>
      |           ^~~~~~~~~~
compilation terminated.
mingw32-make: *** [Make_cyg_ming.mak:1183: gobji686/alloc.o] Error 1




Just a check of header sodium
foo.bar@pc MINGW32 /c/Users/foo.bar/source/Vim.8.2.4510/src
# ls ./libsodium-win32-1.0.18/include/
sodium  sodium.h

Ken Takata

unread,
Mar 6, 2022, 1:46:10 AM3/6/22
to vim_dev
Hi,

The current version of Make_cyg_ming.mak only supports setting "yes" to the "SODIUM" option.
If you install libsodium from pacman, you can use "SODIUM=yes".
I created PR #9896 to fix that.

Specifying -I./libsodium-win32-1.0.18/include in the command line is not correct. It specifies the include directory for "make" not for "gcc".
We don't have the "DYNAMIC_SODIUM_DLL" option (yet). We cannot specify the name of the DLL.

2022年3月6日日曜日 3:07:53 UTC+9 niva...@gmail.com:

Ni Va

unread,
Mar 6, 2022, 5:02:08 AM3/6/22
to vim_dev
Okay Thanks a lot Ken, 

Do i have to download your fix on Make_cyg_ming.mak?
Because I tried removing -I include directive and DYNAMIC_SODIUM_DLL, just leaving SODIUM=yes and got same error. 

Thank in advance. 
NV

Ni Va

unread,
Mar 6, 2022, 4:27:47 PM3/6/22
to vim_dev
Hi Ken, 

Just getting same error after match 4519 of vim: sodium.h is not regognized. 

foo.bar@I-1 MINGW32 ~
# pacman -Qi mingw-w64-x86_64-libsodium
Name            : mingw-w64-x86_64-libsodium
Version         : 1.0.18-2
Description     : P(ortable|ackageable) NaCl-based crypto library (mingw-w64)
Architecture    : any
URL             : https://github.com/jedisct1/libsodium
Licenses        : custom:ISC
Groups          : None
Provides        : None
Depends On      : mingw-w64-x86_64-gcc-libs
Optional Deps   : None
Required By     : None
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 1376.62 KiB
Packager        : CI (msys2-autobuild/8ebdca93/751008704)
Build Date      : Thu Apr 15 08:41:50 2021
Install Date    : Sat Mar 5 15:39:43 2022
Install Reason  : Explicitly installed
Install Script  : No
Validated By    : Signature


Flags are:
OLE=yes GUI=yes XPM=no DIRECTx=yes DYNAMIC_LUA=yes LUA=./lua-5.4.4/src LUA_VER=54 PYTHON3=c:/Python310 DYNAMIC_PYTHON3=yes PYTHON3_VER=311 DYNAMIC_PYTHON3_DLL=python311.dll RUBY=c:/Ruby31 DYNAMIC_RUBY=yes RUBY_VER=31 RUBY_API_VER_LONG=3.1.0 -I/c/Ruby31-x64/include/ruby-3.1.0/ruby SODIUM=yes TERMINAL=yes EVENT_LOOP=yes STATIC_STDCPLUS=yes WINVER=0x0A00

Would you bypass build ? (y/n)nmake for i686
make -f Make_ming.mak OLE=yes GUI=yes XPM=no DIRECTx=yes DYNAMIC_LUA=yes LUA=./lua-5.4.4/src LUA_VER=54 PYTHON3=c:/Python310 DYNAMIC_PYTHON3=yes PYTHON3_VER=311 DYNAMIC_PYTHON3_DLL=python311.dll RUBY=c:/Ruby31 DYNAMIC_RUBY=yes RUBY_VER=31 RUBY_API_VER_LONG=3.1.0 -I/c/Ruby31-x64/include/ruby-3.1.0/ruby SODIUM=yes TERMINAL=yes EVENT_LOOP=yes STATIC_STDCPLUS=yes WINVER=0x0A00 DEBUG=no

mkdir -p gobji686
gcc -c -I. -Iproto -DWIN32 -DWINVER=0x0A00 -D_WIN32_WINNT=0x0A00 -DHAVE_PATHDEF -DFEAT_HUGE -DHAVE_STDINT_H -DHAVE_GETTEXT -DHAVE_LOCALE_H -DDYNAMIC_GETTEXT -DFEAT_OLE -DFEAT_CSCOPE -DFEAT_NETBEANS_INTG -DFEAT_JOB_CHANNEL -DFEAT_IPV6 -DHAVE_INET_NTOP -DFEAT_TERMINAL -DFEAT_SOUND -DFEAT_DIRECTX -DDYNAMIC_DIRECTX -DFEAT_DIRECTX_COLOR_EMOJI -DHAVE_SODIUM -DDYNAMIC_SODIUM -DFEAT_GUI_MSWIN -DFEAT_CLIPBOARD -DFEAT_MBYTE_IME -DDYNAMIC_IME -DDYNAMIC_ICONV -pipe -march=i686 -Wall -I./lua-5.4.4/src/include -I./lua-5.4.4/src -DFEAT_LUA -DDYNAMIC_LUA -DDYNAMIC_LUA_DLL=\"lua54.dll\" -DFEAT_RUBY -I c:/Ruby31/include/ruby-3.1.0 -I c:/Ruby31/include/ruby-3.1.0/i386-mingw32 -DDYNAMIC_RUBY -DDYNAMIC_RUBY_DLL=\"msvcrt-ruby310.dll\" -DRUBY_VERSION=31 -DFEAT_PYTHON3 -DDYNAMIC_PYTHON3 -DDYNAMIC_PYTHON3_DLL=\"python311.dll\" -O3 -fomit-frame-pointer -freg-struct-return alloc.c -o gobji686/alloc.o

In file included from alloc.c:14:
vim.h:506:11: fatal error: sodium.h: No such file or directory
  506 | # include <sodium.h>
      |           ^~~~~~~~~~
compilation terminated.
mingw32-make: *** [Make_cyg_ming.mak:1184: gobji686/alloc.o] Error 1

Ken Takata

unread,
Mar 6, 2022, 9:29:09 PM3/6/22
to vim_dev
Hi,

Couldn't reproduce.
Does sodium.h exist in C:\msys64\mingw64\include (for 64-bit) and/or C:\msys64\mingw32\include (for 32-bit)?

2022年3月7日月曜日 6:27:47 UTC+9 niva...@gmail.com:

Ni Va

unread,
Mar 7, 2022, 4:02:14 AM3/7/22
to vim_dev
Effectively sodium.h not found in C:\msys64\mingw32\include meanwhile i follow §2.2 from installpc.txt.


MSYS2 has its own git package, and you can also install it via pacman:

    $ pacman -S git

For enabling libsodium support, you also need to install the package

    $ pacman -S mingw-w64-x86_64-libsodium


Ni Va

unread,
Mar 7, 2022, 10:30:22 AM3/7/22
to vim_dev
Reply all
Reply to author
Forward
0 new messages