office-gobmx/solenv
Mike Kaganski e403bf00af Fix build in a specific VS2022 environment
Building libraries in setup_native using VS2022 failed for me reproducibly
for some time, with

  mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file "C:/lo/src/build/instdir/program/reg_dlls.dll". The file or directory is corrupted and unreadable.
  make[1]: *** [C:/lo/src/core/setup_native/Library_reg_dlls.mk:10: C:/lo/src/build/instdir/program/reg_dlls.dll] Error 139

  mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file "C:/lo/src/build/instdir/program/reg4allmsdoc.dll". The file or directory is corrupted and unreadable.
  make[1]: *** [C:/lo/src/core/setup_native/Library_reg4allmsdoc.mk:10: C:/lo/src/build/instdir/program/reg4allmsdoc.dll] Error 139

  mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file "C:/lo/src/build/instdir/program/regactivex.dll". The file or directory is corrupted and unreadable.
  make[1]: *** [C:/lo/src/core/setup_native/Library_regactivex.mk:10: C:/lo/src/build/instdir/program/regactivex.dll] Error 139

  mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file "C:/lo/src/build/instdir/program/sdqsmsi.dll". The file or directory is corrupted and unreadable.
  make[1]: *** [C:/lo/src/core/setup_native/Library_sdqsmsi.mk:10: C:/lo/src/build/instdir/program/sdqsmsi.dll] Error 139

  mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file "C:/lo/src/build/instdir/program/sellangmsi.dll". The file or directory is corrupted and unreadable.
  make[1]: *** [C:/lo/src/core/setup_native/Library_sellangmsi.mk:10: C:/lo/src/build/instdir/program/sellangmsi.dll] Error 139

  mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file "C:/lo/src/build/instdir/program/shlxtmsi.dll". The file or directory is corrupted and unreadable.
  make[1]: *** [C:/lo/src/core/setup_native/Library_shlxtmsi.mk:10: C:/lo/src/build/instdir/program/shlxtmsi.dll] Error 139

  mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file "C:/lo/src/build/instdir/program/sn_tools.dll". The file or directory is corrupted and unreadable.
  make[1]: *** [C:/lo/src/core/setup_native/Library_sn_tools.mk:10: C:/lo/src/build/instdir/program/sn_tools.dll] Error 139

  mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file "C:/lo/src/build/instdir/program/odbcconfig.exe". The file or directory is corrupted and unreadable.
  make[1]: *** [C:/lo/src/core/dbaccess/Executable_odbcconfig.mk:10: C:/lo/src/build/instdir/program/odbcconfig.exe] Error 139

  mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file "C:/lo/src/build/instdir/program/instooofiltmsi.dll". The file or directory is corrupted and unreadable.
  make[1]: *** [C:/lo/src/core/setup_native/Library_instooofiltmsi.mk:10: C:/lo/src/build/instdir/program/instooofiltmsi.dll] Error 139

  mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file "C:/lo/src/build/instdir/program/qslnkmsi.dll". The file or directory is corrupted and unreadable.
  make[1]: *** [C:/lo/src/core/setup_native/Library_qslnkmsi.mk:10: C:/lo/src/build/instdir/program/qslnkmsi.dll] Error 139

  mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file "C:/lo/src/build/instdir/program/inst_msu_msi.dll". The file or directory is corrupted and unreadable.
  make[1]: *** [C:/lo/src/core/setup_native/Library_inst_msu_msi.mk:10: C:/lo/src/build/instdir/program/inst_msu_msi.dll] Error 139

It is caused by the -U_DLL and the first entries in gb_Library_use_system_win32_libs:
libcmt, libcpmt, libucrt, libvcruntime. They are needed to make the denerated DLLs
standalone, not dependent on presence of VCRT on the target system (they are called
from installer, when VCRT may not yet be present).

It seems to work OK for others, but somehow, this conflicts with the fastlink option
on my system, so just avoid it selectively for these DLLs.

Change-Id: I61f829682eb051944202bc7ef3578d6f43733030
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147628
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-02-24 17:05:53 +00:00
..
bin
buck
clang-cl
clang-format
doc/gbuild
gbuild Fix build in a specific VS2022 environment 2023-02-24 17:05:53 +00:00
gbuildtojson
gcc-wrappers
gdb
inc
lldb/libreoffice
lockfile
maven
qa/python
sanitizers
vs
wsl
CompilerTest_compilerplugins_clang-c++03.mk
CompilerTest_compilerplugins_clang.mk
CustomTarget_gbuildtesttools.mk
Executable_concat-deps.mk
Executable_g++-wrapper.mk
Executable_gbuildtojson.mk
Executable_gcc-wrapper.mk
Executable_lockfile.mk
flatpak-manifest.in
Makefile
Module_solenv.mk
PythonTest_solenv_python.mk
README.md
StaticLibrary_wrapper.mk

Tools and Makefile Fragments Necessary for Compilation

This module contains many tools and makefile configuration pieces, critical for building LibreOffice:

  • bin/

    • contains lots of tools used during the build:

      • concat-deps* these aggregate, and remove duplicates from module dependencies, to accelerate build times.

      • make_installer.pl this script executes the compiled instructions from the scp2/ module to create an installer, and/or to do a local install for the smoketest.

  • gbuild/

    implementation of the LibreOffice build system See gbuild/README for more info.

  • gdb/

    lots of nice python helpers to make debugging -much- easier that (eg.) print UCS2 strings as UTF-8 on the console to help with debugging.

  • inc/

    old / increasingly obsolete dmake setup and includes, we are trying to entirely rid ourselves of this

  • src/

    useful standard / re-usable component map files for components which shouldn't export anything more than a few registration symbols.

  • flatpak-manifest.in

    This file is copied manually to https://github.com/flathub/org.libreoffice.LibreOffice/blob/master/org.libreoffice.LibreOffice.json The flatpak/build.sh in the LO dev-tools repository is obsolete.