Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[omniorb] new port #30900

Merged
merged 16 commits into from
Apr 27, 2023
334 changes: 334 additions & 0 deletions ports/omniorb/add_win_into_autotools.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,334 @@
diff --git a/configure.ac b/configure.ac
index d485463..2ba9c82 100644
--- a/configure.ac
+++ b/configure.ac
@@ -231,6 +231,7 @@ case "$host" in
*-*-openbsd*) plat_name="OpenBSD"; plat_def="__openbsd__"; os_v="3";;
*-*-sco*) plat_name="OSR5"; plat_def="__osr5__"; os_v="5";;
*-*-gnu*) plat_name="GNU"; plat_def="__hurd__" ; os_v="0";;
+ *-*-mingw*) plat_name="Win32Platform"; plat_def="__WIN32__" ; os_v="4";;
esac

AC_SUBST(PLATFORM_NAME, $plat_name)
diff --git a/mk/beforeauto.mk.in b/mk/beforeauto.mk.in
index f078912..9aef646 100644
--- a/mk/beforeauto.mk.in
+++ b/mk/beforeauto.mk.in
@@ -1311,3 +1314,7 @@ endif

lib_depend := $(patsubst %,$(LibPattern),omnithread)
OMNITHREAD_LIB_DEPEND := $(GENERATE_LIB_DEPEND)
+
+ifdef Win32Platform
+include $(THIS_IMPORT_TREE)/mk/platforms/vcpkg.mk
+endif
\ No newline at end of file
diff --git a/mk/win32.mk b/mk/win32.mk
index 94c9aad..f788d41 100644
--- a/mk/win32.mk
+++ b/mk/win32.mk
@@ -81,7 +81,6 @@ endif


ifndef WINVER
-WINVER = 0x0400
endif

IMPORT_CPPFLAGS += -D__WIN32__ -D_WIN32_WINNT=$(WINVER)
@@ -179,7 +179,7 @@ define CXXExecutable
$(RM) $@; \
$(CXXLINK) -out:$@ $(CXXLINKOPTIONS) -PDB:[email protected] $(IMPORT_LIBRARY_FLAGS) \
$(filter-out $(LibPattern),$^) $$libs; \
- $(MANIFESTTOOL) /outputresource:"$@;#1" /manifest [email protected]; \
+ $(MANIFESTTOOL) -outputresource:"$@;#1" -manifest [email protected]; \
)
endef

@@ -187,7 +187,7 @@ define CExecutable
(set -x; \
$(RM) $@; \
$(CLINK) -out:$@ $(CLINKOPTIONS) -PDB:[email protected] $(IMPORT_LIBRARY_FLAGS) $(filter-out $(LibPattern),$^) $$libs; \
- $(MANIFESTTOOL) /outputresource:"$@;#1" /manifest [email protected]; \
+ $(MANIFESTTOOL) -outputresource:"$@;#1" -manifest [email protected]; \
)
endef

@@ -356,18 +356,18 @@ extralinkoption="$(MSVC_DLL_CXXLINKDEBUGOPTIONS)"; \
else \
extralinkoption="$(MSVC_DLL_CXXLINKNODEBUGOPTIONS)"; \
fi; \
if [ -z "$$nodeffile" ]; then \
$(MakeCXXExportSymbolDefinitionFile) \
defflag="-def:$$defname"; \
fi; \
$(MakeResourceDefinitionFile) \
set -x; \
$(RM) $@; \
$(CXXLINK) -out:$$dllname -DLL $$extralinkoption \
$$defflag -IMPLIB:$@ $(IMPORT_LIBRARY_FLAGS) \
$^ $$extralibs $$resname; \
-$(MANIFESTTOOL) /outputresource:"$$dllname;#2" /manifest $$dllname.manifest; \
+$(MANIFESTTOOL) -outputresource:"$$dllname;#2" -manifest $$dllname.manifest; \
$(CP) $@ $$slibname;
endef

# Export SharedLibrary
diff --git a/acinclude.m4 b/acinclude.m4
index cef87f8bd..cf61556bd 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -433,8 +433,8 @@ AC_SUBST(ENABLE_LONGDOUBLE, $omni_cv_enable_longdouble)

dnl Enable ZIOP
AC_DEFUN([OMNI_ENABLE_ZIOP],
-[AC_CHECK_LIB(z,compressBound,omni_cv_enable_ziop_zlib=yes,omni_cv_enable_ziop_zlib=no)
-AC_CHECK_LIB(zstd,ZSTD_compress,omni_cv_enable_ziop_zstd=yes,omni_cv_enable_ziop_zstd=no)
+[AC_SEARCH_LIBS(compressBound,[z zlib zlibd],omni_cv_enable_ziop_zlib=yes,omni_cv_enable_ziop_zlib=no)
+AC_SEARCH_LIBS(ZSTD_compress,[zstd zstdd],omni_cv_enable_ziop_zstd=yes,omni_cv_enable_ziop_zstd=no)
omni_cv_enable_ziop="no"
if test "$omni_cv_enable_ziop_zlib" = "yes"; then
omni_cv_enable_ziop="yes"
diff --git a/mk/win32.mk b/mk/win32.mk
index 741835b4b..7a5bff934 100644
--- a/mk/win32.mk
+++ b/mk/win32.mk
@@ -580,8 +580,7 @@ OMNIORB_IDL = $(OMNIORB_IDL_ONLY) $(OMNIORB_IDL_ANY_FLAGS)
OMNIORB_CPPFLAGS = -D__OMNIORB4__ -I$(CORBA_STUB_DIR) $(OMNITHREAD_CPPFLAGS)
OMNIORB_IDL_OUTPUTDIR_PATTERN = -C%

-msvc_work_around_stub = $(patsubst %,$(LibPattern),msvcstub) \
- -NODEFAULTLIB:libcmt.lib -NODEFAULTLIB:libcmtd.lib
+msvc_work_around_stub = $(patsubst %,$(LibPattern),msvcstub)

OMNIORB_LIB = $(omniorb_dll_name) \
$(omnidynamic_dll_name) \
diff --git a/src/tool/dir.mk b/src/tool/dir.mk
index c6cb127d9..d75ba288a 100644
--- a/src/tool/dir.mk
+++ b/src/tool/dir.mk
@@ -11,7 +11,7 @@ SUBDIRS = omkdepend omniidl
endif

ifdef Win32Platform
-SUBDIRS = omniidl
+SUBDIRS = omkdepend omniidl
endif


diff --git a/mk/win32.mk b/mk/win32.mk
index 6d320a2bd..3983eba5c 100644
--- a/mk/win32.mk
+++ b/mk/win32.mk
@@ -8,7 +8,7 @@ Win32Platform = 1
# Define macro for path of wrapper executables
#
ifndef EmbeddedSystem
-WRAPPER_FPATH = $(BINDIR)
+WRAPPER_FPATH = bin
else
WRAPPER_FPATH = $(HOSTBINDIR)
endif
@@ -40,12 +40,12 @@ SORT = sort
endif


-AR = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/libwrapper $(XLN)
-CXX = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/clwrapper $(XLN)
-CXXLINK = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/linkwrapper $(XLN)
+#AR = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/libwrapper $(XLN)
+#CXX = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/clwrapper $(XLN)
+#CXXLINK = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/linkwrapper $(XLN)
CXXMAKEDEPEND = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/omkdepend $(MKDEPOPT) -D__cplusplus -D_MSC_VER
-CC = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/clwrapper $(XLN)
-CLINK = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/linkwrapper $(XLN)
+#CC = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/clwrapper $(XLN)
+#CLINK = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/linkwrapper $(XLN)
CMAKEDEPEND = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/omkdepend $(MKDEPOPT) -D_MSC_VER

RCTOOL = rc.exe
@@ -83,7 +83,7 @@ endif
ifndef WINVER
endif

-IMPORT_CPPFLAGS += -D__WIN32__ -D_WIN32_WINNT=$(WINVER)
+IMPORT_CPPFLAGS += -D__WIN32__

SOCKET_LIB = ws2_32.lib mswsock.lib

diff --git a/mk/beforeauto.mk.in b/mk/beforeauto.mk.in
index b7087ea36..d7a826fa9 100644
--- a/mk/beforeauto.mk.in
+++ b/mk/beforeauto.mk.in
@@ -36,6 +36,8 @@ BINDIR = bin

prefix := @prefix@
exec_prefix := @exec_prefix@
+includedir := @includedir@
+libdir := @libdir@
INSTALLTARGET := 1
INSTALLINCDIR := $(DESTDIR)@includedir@
INSTALLBINDIR := $(DESTDIR)@bindir@
@@ -362,6 +364,9 @@ endef
#
# Patterns for various file types
#
+
+ifndef Win32Platform
+
LibPathPattern = -L%
LibNoDebugPattern = lib%.a
LibDebugPattern = lib%.a
@@ -371,6 +376,37 @@ LibSearchPattern = -l%
BinPattern = %
TclScriptPattern = %

+else
+
+LibPathPattern = -libpath:%
+LibNoDebugPattern = %.lib
+LibDebugPattern = %d.lib
+DLLNoDebugPattern = %_rt.lib
+DLLDebugPattern = %_rtd.lib
+LibNoDebugSearchPattern = %.lib
+LibDebugSearchPattern = %d.lib
+DLLNoDebugSearchPattern = %_rt.lib
+DLLDebugSearchPattern = %_rtd.lib
+
+
+ifndef BuildDebugBinary
+
+LibPattern = $(LibNoDebugPattern)
+DLLPattern = $(DLLNoDebugPattern)
+LibSearchPattern = $(LibNoDebugSearchPattern)
+DLLSearchPattern = $(DLLNoDebugSearchPattern)
+
+else
+
+LibPattern = $(LibDebugPattern)
+DLLPattern = $(DLLDebugPattern)
+LibSearchPattern = $(LibDebugSearchPattern)
+DLLSearchPattern = $(DLLDebugSearchPattern)
+endif
+
+endif
+
+

#
# Stuff to generate statically-linked libraries.
diff --git a/src/services/mklib/dynstublib/dir.mk b/src/services/mklib/dynstublib/dir.mk
index e128aa87a..f2e1448b3 100644
--- a/src/services/mklib/dynstublib/dir.mk
+++ b/src/services/mklib/dynstublib/dir.mk
@@ -17,6 +17,14 @@ ifdef Win32Platform
MSVC_STATICLIB_CXXDEBUGFLAGS += -D_WINSTATIC
endif

+ifdef Win32Platform
+# in case of Win32 lossage:
+dynimps := COS$(OMNIORB_MAJOR_VERSION)$(OMNIORB_MINOR_VERSION)$(OMNIORB_MICRO_VERSION)_rt.lib \
+ $(patsubst $(DLLDebugSearchPattern),$(DLLNoDebugSearchPattern), $(OMNIORB_LIB))
+else
+dynimps := $(OMNIORB_COS_LIB) $(OMNIORB_LIB)
+endif
+
ifndef NoReleaseBuild
all:: mkstatic mkshared

@@ -75,14 +83,6 @@ dynskshared = shared/$(shell $(SharedLibraryFullName) $(dynsknamespec))

MDFLAGS += -p shared/

-ifdef Win32Platform
-# in case of Win32 lossage:
-dynimps := COS$(OMNIORB_MAJOR_VERSION)$(OMNIORB_MINOR_VERSION)$(OMNIORB_MICRO_VERSION)_rt.lib \
- $(patsubst $(DLLDebugSearchPattern),$(DLLNoDebugSearchPattern), $(OMNIORB_LIB))
-else
-dynimps := $(OMNIORB_COS_LIB) $(OMNIORB_LIB)
-endif
-
mkshared::
@(dir=shared; $(CreateDir))

diff --git a/mk/win32.mk b/mk/win32.mk
index 83f1b1687..741835b4b 100644
--- a/mk/win32.mk
+++ b/mk/win32.mk
@@ -43,10 +43,10 @@ endif
#AR = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/libwrapper $(XLN)
#CXX = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/clwrapper $(XLN)
#CXXLINK = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/linkwrapper $(XLN)
-CXXMAKEDEPEND = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/omkdepend $(MKDEPOPT) -D__cplusplus -D_MSC_VER
+CXXMAKEDEPEND = $(OMKDEPEND) -D__cplusplus -D_MSC_VER
#CC = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/clwrapper $(XLN)
#CLINK = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/linkwrapper $(XLN)
-CMAKEDEPEND = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/omkdepend $(MKDEPOPT) -D_MSC_VER
+CMAKEDEPEND = $(OMKDEPEND) $(MKDEPOPT) -D_MSC_VER

RCTOOL = rc.exe
MANIFESTTOOL = true
@@ -145,7 +145,7 @@ BinPattern = %.exe
define StaticLinkLibrary
(set -x; \
$(RM) $@; \
- $(AR) $@ $^; \
+ $(AR) -OUT:$@ $^; \
)
endef

@@ -439,12 +444,11 @@ endef
# The pattern rules below ensured that the right compiler flags are used
# to compile the source for the library.

+ifndef NoReleaseBuild
+
static/%.o: %.cc
$(CXX) -c $(CXXDEBUGFLAGS) $(MSVC_STATICLIB_CXXNODEBUGFLAGS) $(CPPFLAGS) -Fo$@ -Fdstatic\\$(LIB_NAME)$(major).pdb $<

-debug/%.o: %.cc
- $(CXX) -c $(MSVC_STATICLIB_CXXDEBUGFLAGS) $(CPPFLAGS) -Fo$@ -Fddebug\\$(LIB_NAME)$(major)d.pdb $<
-
shared/%DynSK.o: %DynSK.cc
$(CXX) -c $(CXXDEBUGFLAGS) -DUSE_core_stub_in_nt_dll $(MSVC_DLL_CXXNODEBUGFLAGS) $(CPPFLAGS) -Fo$@ -Fdshared\\ $<

@@ -454,6 +458,18 @@ shared/%SK.o: %SK.cc
shared/%.o: %.cc
$(CXX) -c $(CXXDEBUGFLAGS) $(MSVC_DLL_CXXNODEBUGFLAGS) $(CPPFLAGS) -Fo$@ -Fdshared\\ $<

+static/%.o: %.c
+ $(CC) -c $(CDEBUGFLAGS) $(MSVC_STATICLIB_CXXNODEBUGFLAGS) $(CPPFLAGS) -Fo$@ -Fdstatic\\$(LIB_NAME)$(major).pdb $<
+
+shared/%.o: %.c
+ $(CC) -c $(CDEBUGFLAGS) $(MSVC_DLL_CXXNODEBUGFLAGS) $(CPPFLAGS) -Fo$@ $<
+
+endif
+
+ifndef NoDebugBuild
+
+debug/%.o: %.cc
+ $(CXX) -c $(MSVC_STATICLIB_CXXDEBUGFLAGS) $(CPPFLAGS) -Fo$@ -Fddebug\\$(LIB_NAME)$(major)d.pdb $<

shareddebug/%DynSK.o: %DynSK.cc
$(CXX) -c -DUSE_core_stub_in_nt_dll $(MSVC_DLL_CXXDEBUGFLAGS) $(CPPFLAGS) -Fo$@ -Fdshareddebug\\ $<
@@ -464,19 +480,14 @@ shareddebug/%SK.o: %SK.cc
shareddebug/%.o: %.cc
$(CXX) -c $(MSVC_DLL_CXXDEBUGFLAGS) $(CPPFLAGS) -Fo$@ -Fdshareddebug\\ $<

-static/%.o: %.c
- $(CC) -c $(CDEBUGFLAGS) $(MSVC_STATICLIB_CXXNODEBUGFLAGS) $(CPPFLAGS) -Fo$@ -Fdstatic\\$(LIB_NAME)$(major).pdb $<
-
debug/%.o: %.c
$(CC) -c $(MSVC_STATICLIB_CXXDEBUGFLAGS) $(CPPFLAGS) -Fo$@ -Fdstatic\\$(LIB_NAME)$(major)d.pdb $<

-shared/%.o: %.c
- $(CC) -c $(CDEBUGFLAGS) $(MSVC_DLL_CXXNODEBUGFLAGS) $(CPPFLAGS) -Fo$@ $<
-
-
shareddebug/%.o: %.c
$(CC) -c $(MSVC_DLL_CXXDEBUGFLAGS) $(CPPFLAGS) -Fo$@ $<

+endif
+

#
# Replacements for implicit rules
18 changes: 18 additions & 0 deletions ports/omniorb/def_gen_fix.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
diff --git a/mk/win32.mk b/mk/win32.mk
index fc179563e..15903919a 100644
--- a/mk/win32.mk
+++ b/mk/win32.mk
@@ -264,12 +264,12 @@ endef
define MakeCXXExportSymbolDefinitionFile
symrefdir=$${debug:+debug}; \
symreflib=$(SharedLibrarySymbolRefLibraryTemplate); \
if [ ! -f $$symreflib ]; then echo "Cannot find reference static library $$symreflib"; return 1; fi; \
set -x; \
echo "LIBRARY $$dllbase" > $$defname; \
echo "VERSION $$version" >> $$defname; \
echo "EXPORTS" >> $$defname; \
-DUMPBIN.EXE /SYMBOLS $$symreflib | \
+DUMPBIN.EXE $$symreflib -SYMBOLS | \
egrep '^[^ ]+ +[^ ]+ +SECT[^ ]+ +[^ ]+ +\(\) +External +\| +\?[^ ]*|^[^ ]+ +[^ ]+ +SECT[^ ]+ +[^ ]+ +External +\| +\?[^?][^ ]*'|\
egrep -v 'deleting destructor[^(]+\(unsigned int\)' | \
egrep -v 'anonymous namespace' | \
Loading