The announce of Rivet 3.1 stimulated the interest of a person who needs to have Rivet built for Windows. After George managed to build and run mod_rivet on Windows in 2017 I set aside this achievement and kind of considered it as granted.

So I decided for the weekend to revive my Windows setup and downloaded the whole toolchain from scratch in order to re-validate our work.

First of all I found out that not every binary build of Apache is equivalent. For instance I had errors with the ApacheHaus build (apr_perms_set.h include file not found) while the Apache Lounge seems to be fine.

Building Rivet with the Visual Studio Community Edition produces several warnings we didn't have last year (which is good because they help you to have more accurate code) but eventually I had weird errors with the definition of the symbol rivet_module (defined by APLOG_USE_MODULE)

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\CL.exe /c /IC:\ActiveTcl\include /IC:\Apache24\include /IC:\Users\massi\Documents\rivet\cmake\..\src /IC:\Users\massi\Documents\rivet\cmake\..\src\mod_rivet_ng /IC:\Users\massi\Documents\rivet\cmake\..\src\parser /IC:\Users\massi\Documents\rivet\cmake\..\src\request /IC:\Users\massi\Documents\rivet\cmake\build_64\generated /IC:\Users\massi\Documents\rivet\cmake\build_64 /nologo /W3 /WX- /diagnostics:classic /O2 /Ob2 /D WIN32 /D _WINDOWS /D NDEBUG /D HAVE_CONFIG_H=1 /D "CMAKE_INTDIR=\"Release\"" /D rivet_lazy_mpm_EXPORTS /D _WINDLL /D _MBCS /Gm- /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"rivet_lazy_mpm.dir\Release\\" /Fd"rivet_lazy_mpm.dir\Release\vc141.pdb" /Gd /TC /errorReport:queue C:\Users\massi\Documents\rivet\src\mod_rivet_ng\rivet_lazy_mpm.c
  rivet_lazy_mpm.c
C:\Users\massi\Documents\rivet\src\mod_rivet_ng\rivet_lazy_mpm.c(41): warning C4273: 'rivet_module': inconsistent dll linkage [C:\Users\massi\Documents\rivet\cmake\build_64\rivet_lazy_mpm.vcxproj] c:\users\massi\documents\rivet\src\mod_rivet_ng\mod_rivet.h(40): note: see previous definition of 'rivet_module'

I gather that this has to do with the way Windows expect to see exported symbols, but it didn't occur in 2017. Perhaps trivial, but I suspect it requires a Windows development knowledge I don't have at the moment

 -- Massimo

---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-dev-unsubscr...@tcl.apache.org
For additional commands, e-mail: rivet-dev-h...@tcl.apache.org

Reply via email to