[vim/vim] Can't compile Vim with libsodium anymore. (#8663)

20 views
Skip to first unread message

Cthulhux

unread,
Jul 29, 2021, 8:03:28 PM7/29/21
to vim/vim, Subscribed

Vim 8.2.3245 has moved a few includes around. That seems to break crypt.c with libsodium (MSVC, Visual Studio 2019):

crypt.c(134): error C2065: "crypto_pwhash_argon2id_SALTBYTES": nichtdeklarierter Bezeichner

crypt.c(130): error C2099: Initialisierung ist keine Konstante

crypt.c(130): warning C4047: "Initialisierung": Anzahl der Dereferenzierungen bei "int" und "void *" unterschiedlich

crypt.c(130): warning C4028: Formaler Parameter "4" unterscheidet sich von der Deklaration

crypt.c(157): error C2065: "crypto_box_SEEDBYTES": nichtdeklarierter Bezeichner

crypt.c(157): error C2057: Konstanter Ausdruck erwartet

crypt.c(159): error C2061: Syntaxfehler: Bezeichner "crypto_secretstream_xchacha20poly1305_state"

crypt.c(161): error C2059: Syntaxfehler: "}"

crypt.c(420): warning C4013: "sodium_init" undefiniert; Annahme: extern mit Rückgabetyp int

crypt.c(423): warning C4013: "randombytes_buf" undefiniert; Annahme: extern mit Rückgabetyp int

crypt.c(446): warning C4013: "sodium_munlock" undefiniert; Annahme: extern mit Rückgabetyp int

crypt.c(446): error C2065: "sodium_state_T": nichtdeklarierter Bezeichner

crypt.c(446): error C2059: Syntaxfehler: ")"

crypt.c(448): warning C4013: "sodium_memzero" undefiniert; Annahme: extern mit Rückgabetyp int

crypt.c(448): error C2065: "sodium_state_T": nichtdeklarierter Bezeichner

crypt.c(449): warning C4013: "sodium_free" undefiniert; Annahme: extern mit Rückgabetyp int

crypt.c(725): error C2065: "crypto_box_SEEDBYTES": nichtdeklarierter Bezeichner

crypt.c(725): error C2057: Konstanter Ausdruck erwartet

crypt.c(725): error C2133: "dkey": Unbekannte Größe

crypt.c(726): error C2065: "sodium_state_T": nichtdeklarierter Bezeichner

crypt.c(726): error C2065: "sd_state": nichtdeklarierter Bezeichner

crypt.c(726): warning C4552: "*": Ergebnis des Ausdrucks nicht verwendet.

crypt.c(732): error C2065: "sd_state": nichtdeklarierter Bezeichner

crypt.c(732): error C2065: "sodium_state_T": nichtdeklarierter Bezeichner

crypt.c(732): error C2059: Syntaxfehler: ")"

crypt.c(733): error C2065: "sd_state": nichtdeklarierter Bezeichner

crypt.c(733): error C2065: "sodium_state_T": nichtdeklarierter Bezeichner

crypt.c(736): warning C4013: "crypto_pwhash" undefiniert; Annahme: extern mit Rückgabetyp int

crypt.c(736): warning C4034: sizeof gibt 0 zurück

crypt.c(737): error C2065: "crypto_pwhash_OPSLIMIT_INTERACTIVE": nichtdeklarierter Bezeichner

crypt.c(737): error C2065: "crypto_pwhash_MEMLIMIT_INTERACTIVE": nichtdeklarierter Bezeichner

crypt.c(738): error C2065: "crypto_pwhash_ALG_DEFAULT": nichtdeklarierter Bezeichner

crypt.c(741): error C2065: "sd_state": nichtdeklarierter Bezeichner

crypt.c(744): error C2065: "sd_state": nichtdeklarierter Bezeichner

crypt.c(744): error C2223: Der linke Teil von "->key" muss auf eine Struktur/Union zeigen

crypt.c(744): error C2065: "crypto_box_SEEDBYTES": nichtdeklarierter Bezeichner

crypt.c(744): warning C4022: "memcpy": Zeigertyp für übergebenen Parameter 2 stimmt nicht mit dem deklarierten Zeigertyp überein

crypt.c(744): error C2168: "memcpy": zu wenig Parameter an systeminterne Funktion übergeben

crypt.c(746): warning C4013: "sodium_mlock" undefiniert; Annahme: extern mit Rückgabetyp int

crypt.c(746): error C2065: "sd_state": nichtdeklarierter Bezeichner

crypt.c(746): error C2223: Der linke Teil von "->key" muss auf eine Struktur/Union zeigen

crypt.c(746): error C2065: "crypto_box_SEEDBYTES": nichtdeklarierter Bezeichner

crypt.c(752): error C2065: "sd_state": nichtdeklarierter Bezeichner

crypt.c(755): error C2065: "sd_state": nichtdeklarierter Bezeichner

crypt.c(755): error C2223: Der linke Teil von "->count" muss auf eine Struktur/Union zeigen

crypt.c(756): error C2065: "sd_state": nichtdeklarierter Bezeichner

crypt.c(756): warning C4047: "=": Anzahl der Dereferenzierungen bei "void *" und "int" unterschiedlich

crypt.c(907): error C2065: "crypto_secretstream_xchacha20poly1305_TAG_FINAL": nichtdeklarierter Bezeichner

crypt.c(909): error C2065: "sodium_state_T": nichtdeklarierter Bezeichner

crypt.c(909): error C2065: "sod_st": nichtdeklarierter Bezeichner

crypt.c(909): warning C4047: "=": Anzahl der Dereferenzierungen bei "int" und "void *" unterschiedlich

crypt.c(909): error C2106: "=": Linker Operand muss ein L-Wert sein

crypt.c(910): error C2065: "sod_st": nichtdeklarierter Bezeichner

crypt.c(910): error C2223: Der linke Teil von "->count" muss auf eine Struktur/Union zeigen

crypt.c(913): error C2065: "crypto_secretstream_xchacha20poly1305_ABYTES": nichtdeklarierter Bezeichner

crypt.c(913): error C2065: "crypto_secretstream_xchacha20poly1305_HEADERBYTES": nichtdeklarierter Bezeichner

crypt.c(924): warning C4013: "crypto_secretstream_xchacha20poly1305_init_push" undefiniert; Annahme: extern mit Rückgabetyp int

crypt.c(924): error C2065: "sod_st": nichtdeklarierter Bezeichner

crypt.c(924): error C2223: Der linke Teil von "->state" muss auf eine Struktur/Union zeigen

crypt.c(925): error C2065: "sod_st": nichtdeklarierter Bezeichner

crypt.c(925): error C2223: Der linke Teil von "->key" muss auf eine Struktur/Union zeigen

crypt.c(926): error C2065: "crypto_secretstream_xchacha20poly1305_HEADERBYTES": nichtdeklarierter Bezeichner

crypt.c(929): warning C4013: "crypto_secretstream_xchacha20poly1305_push" undefiniert; Annahme: extern mit Rückgabetyp int

crypt.c(929): error C2065: "sod_st": nichtdeklarierter Bezeichner

crypt.c(929): error C2223: Der linke Teil von "->state" muss auf eine Struktur/Union zeigen

crypt.c(932): error C2065: "sod_st": nichtdeklarierter Bezeichner

crypt.c(932): error C2223: Der linke Teil von "->count" muss auf eine Struktur/Union zeigen

crypt.c(934): error C2065: "crypto_secretstream_xchacha20poly1305_HEADERBYTES": nichtdeklarierter Bezeichner

crypt.c(954): error C2065: "sodium_state_T": nichtdeklarierter Bezeichner

crypt.c(954): error C2065: "sod_st": nichtdeklarierter Bezeichner

crypt.c(954): warning C4047: "=": Anzahl der Dereferenzierungen bei "int" und "void *" unterschiedlich

crypt.c(954): error C2106: "=": Linker Operand muss ein L-Wert sein

crypt.c(964): error C2065: "sod_st": nichtdeklarierter Bezeichner

crypt.c(964): error C2223: Der linke Teil von "->count" muss auf eine Struktur/Union zeigen

crypt.c(966): warning C4013: "crypto_secretstream_xchacha20poly1305_init_pull" undefiniert; Annahme: extern mit Rückgabetyp int

crypt.c(966): error C2065: "sod_st": nichtdeklarierter Bezeichner

crypt.c(966): error C2223: Der linke Teil von "->state" muss auf eine Struktur/Union zeigen

crypt.c(967): error C2065: "sod_st": nichtdeklarierter Bezeichner

crypt.c(967): error C2223: Der linke Teil von "->key" muss auf eine Struktur/Union zeigen

crypt.c(972): error C2065: "crypto_secretstream_xchacha20poly1305_HEADERBYTES": nichtdeklarierter Bezeichner

crypt.c(973): error C2065: "crypto_secretstream_xchacha20poly1305_HEADERBYTES": nichtdeklarierter Bezeichner

crypt.c(974): error C2065: "sod_st": nichtdeklarierter Bezeichner

crypt.c(974): error C2223: Der linke Teil von "->count" muss auf eine Struktur/Union zeigen

crypt.c(976): warning C4013: "crypto_secretstream_xchacha20poly1305_pull" undefiniert; Annahme: extern mit Rückgabetyp int

crypt.c(976): error C2065: "sod_st": nichtdeklarierter Bezeichner

crypt.c(976): error C2223: Der linke Teil von "->state" muss auf eine Struktur/Union zeigen

crypt.c(983): error C2065: "crypto_secretstream_xchacha20poly1305_TAG_FINAL": nichtdeklarierter Bezeichner

As it has worked before, I would guess that including sodium.h was not quite a bad idea.


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

vim-dev ML

unread,
Jul 30, 2021, 1:30:13 AM7/30/21
to vim/vim, vim-dev ML, Your activity


On Do, 29 Jul 2021, Cthulhux wrote:

> Vim 8.2.3245 has moved a few includes around. That seems to break `crypt.c` with libsodium (MSVC, Visual Studio 2019):

Ah, sorry. I see what happened. Please try this patch:

diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak
index 8c8e71afd..18b5a88c5 100644
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -395,7 +395,7 @@ SODIUM = no

!if "$(SODIUM)" != "no"
SOD_INC = /I "$(SODIUM)\include"
-SOD_DEFS = -DFEAT_SODIUM
+SOD_DEFS = -DHAVE_SODIUM
SOD_LIB = $(SOD_LIB)\libsodium.lib
!endif


Best,
Christian
--
Wir sitzen alle im gleiche Boot.
Nur die einen angeln, und die anderen rudern.

Cthulhux

unread,
Jul 30, 2021, 7:00:06 AM7/30/21
to vim/vim, vim-dev ML, Comment

That works, thank you. :-)


You are receiving this because you commented.

Bram Moolenaar

unread,
Jul 30, 2021, 2:52:29 PM7/30/21
to vim/vim, vim-dev ML, Comment

Closed #8663 via 1790be6.


You are receiving this because you commented.

Reply all
Reply to author
Forward
0 new messages