coredumper
coredumper

Reputation: 73

OmniORB compilation error Windows 7 64 bit

Has anyone encountered the error below when compiling omniORB_4.1.6 64-bit for windows? 'RegQueryValueEx failed - error 109'

I followed the procedure in the readme.win32 and I get linking errors in the omniDyamic, codesets etc.. So someone suggested to rebuild the omniorb_root/src/tools/win32 and copy it in bin/x86_win32/. That's what I did and when I recompile the whole omniORB, the error is as below:

../../../../bin/x86_win32/omkdepend -D__cplusplus -D_MSC_VER -DIDLMODULE_VERSION
="0x2630" -DMSDOS -DOMNIIDL_EXECUTABLE -Ic:/python27/include -Ic:/python27/PC -I
c:/python27/include/python2.7 -DPYTHON_INCLUDE=<Python.h> -I. -I. -I../../../../
include -D__WIN32__ -D_WIN32_WINNT=0x0501 -D__x86__ -D__NT__ -D__OSVERSION__=4 -
D_CRT_SECURE_NO_DEPRECATE=1 idlc.cc idlpython.cc idlfixed.cc idlconfig.cc idldum
p.cc idlvalidate.cc idlast.cc idlexpr.cc idlscope.cc idlrepoId.cc idltype.cc idl
util.cc idlerr.cc lex.yy.cc y.tab.cc
RegQueryValueEx failed - error 109
-----------------------------------------------------------------------------------------------
make[4]: Entering directory `/cygdrive/c/Software/COTS/omniORB/omniORB_4.1.6/src
/tool/omniidl/cxx/cccp'
../../../../../bin/x86_win32/clwrapper -gnuwin32 -c -O2 -MD -GS -GR -Zi -nologo
-DHAVE_CONFIG_H -I. -I. -I. -I../../../../../include -D__WIN32__ -D_WIN32_WINNT=
0x0501 -D__x86__ -D__NT__ -D__OSVERSION__=4 -D_CRT_SECURE_NO_DEPRECATE=1 -Focexp
.o cexp.c
RegQueryValueEx failed - error 109

Upvotes: 0

Views: 559

Answers (2)

Nabil
Nabil

Reputation: 1223

I spent quite some time trying to compile OmniORB on windows 10 with visual studio 2017.

Assuming Cygwin64 was installed in directory

c:\software\cygwin64

, the compilation of OmniORB is quite straightforward:

  • open a command terminal (cmd)
  • in that terminal, setup the Visual environment:

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64

  • then, append the PATH (yes append and not prepend):

set PATH=%PATH%;c:\software\cygwin64\bin

  • then, in file config\config.mk, uncomment this line

platform = x86_win32_vs_15

  • in file platforms\x86_win32_vs_15, set PYTHON to target the python executable, in my case Python 3.6.5

PYTHON = /cygdrive/c/software/Python/python

  • finally start the compilation with make:

make export

Hope this helps.

Upvotes: 0

coredumper
coredumper

Reputation: 73

I'm going to answer my own question because it seems nobody has encountered this problem, and the mailing list is so quiet.

Someone suggested to me to recompile the src\tools\win32. So that's what I did and I copied the .exe files generated to bin\x86_win32. I then compiled all the omniORB and get the RegQueryValueEx error.

The reason for this is when you check the src\tools\win32\bccwrapper.c in the void GetMounts(void) function, it looks for this path in the registry: Software\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\%02X.

When I checked that using regedit, I noticed that in the mounts->00, 01, 02, 03 etc.. keys, there are no 'unix' and 'native' string values inside those keys. So I decided to delete all the keys and retained just the 00 and added a 'unix' and 'native' string value. After which, I recompiled the src\tools\win32 and copied over the created .exe files to bin\x86_win32 and finally when I recompiled all the omniOrb, it started compiling (need to copy the ssl libs too) and finished successfully.

I really don't even know how the following got into my registry: Software\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\%02X.

Best regards, Mark

Upvotes: 0

Related Questions