This is an automated email from the ASF dual-hosted git repository. damjan pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/openoffice.git
The following commit(s) were added to refs/heads/trunk by this push: new 104751b68f For gbuild, when linking a binary on Windows produces a .manifest file, embed this manifest into the binary like dmake did. 104751b68f is described below commit 104751b68faf29eef4f137251f7b9ecd22ed8074 Author: Damjan Jovanovic <dam...@apache.org> AuthorDate: Sun Oct 1 09:48:00 2023 +0200 For gbuild, when linking a binary on Windows produces a .manifest file, embed this manifest into the binary like dmake did. Unfortunately our old version of LINK.EXE doesn't have the /MANIFEST:EMBED option, so the manifest has to be be embedded by calling MT.EXE in a separate step. Also, stop delivering the .manifest files to ${OUTDIR} now. Patch by: me Fixes: #127731 - AOO fails to open ODBC manager --- main/solenv/gbuild/platform/windows.mk | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/main/solenv/gbuild/platform/windows.mk b/main/solenv/gbuild/platform/windows.mk index 1957e904f1..ad75301570 100644 --- a/main/solenv/gbuild/platform/windows.mk +++ b/main/solenv/gbuild/platform/windows.mk @@ -37,6 +37,7 @@ endif gb_CC := cl gb_CXX := cl gb_LINK := link +gb_MT := mt gb_AWK := awk gb_CLASSPATHSEP := ; gb_RC := rc @@ -453,6 +454,8 @@ gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC))) gb_LinkTarget_get_pdbfile = $(call gb_LinkTarget_get_target,)pdb/$(1).pdb +# Runs the linker command to generate the binary. +# If a .manifest file is generated, embeds it into the binary. define gb_LinkTarget__command $(call gb_Output_announce,$(2),$(true),LNK,4) $(call gb_Helper_abbreviate_dirs_native,\ @@ -477,7 +480,14 @@ $(call gb_Helper_abbreviate_dirs_native,\ $(patsubst %,%.lib,$(EXTERNAL_LIBS)) \ $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_filename,$(lib))) \ $(LIBS) \ - $(if $(DLLTARGET),-out:$(DLLTARGET) -implib:$(1),-out:$(1)); RC=$$?; rm $${RESPONSEFILE} \ + $(if $(DLLTARGET),-out:$(DLLTARGET) -implib:$(1),-out:$(1)); \ + RC=$$?; \ + if [ -f $(if $(DLLTARGET),$(DLLTARGET),$(1)).manifest ]; then \ + $(gb_MT) \ + -manifest $(if $(DLLTARGET),$(DLLTARGET),$(1)).manifest \ + -outputresource:$(if $(DLLTARGET),$(DLLTARGET),$(1)); \ + fi; \ + rm $${RESPONSEFILE} \ $(if $(DLLTARGET),; if [ ! -f $(DLLTARGET) ]; then rm -f $(1) && false; fi) ; exit $$RC) endef @@ -682,7 +692,6 @@ $(call gb_LinkTarget_set_auxtargets,$(2),\ $(call gb_Executable_get_target,$(1)) \ $(call gb_Executable_get_clean_target,$(1)) : AUXTARGETS := $(call gb_Executable_get_target,$(1)).manifest -$(call gb_Deliver_add_deliverable,$(call gb_Executable_get_target,$(1)).manifest,$(call gb_LinkTarget_get_target,$(2)).manifest,$(1)) $(call gb_LinkTarget_get_target,$(2)) \ $(call gb_LinkTarget_get_headers_target,$(2)) : PDBFILE = $(call gb_LinkTarget_get_pdbfile,$(2))