diff --git a/.github/scripts/Windows/prepare_msys.sh b/.github/scripts/Windows/prepare_msys.sh index 4afea4722..a2b39dbcc 100644 --- a/.github/scripts/Windows/prepare_msys.sh +++ b/.github/scripts/Windows/prepare_msys.sh @@ -46,7 +46,7 @@ PACMAN_INSTALL='pacman -Sy --needed --noconfirm --disable-download-timeout' MINGW_PACKAGE_PREFIX=mingw-w64-clang-x86_64 m=$MINGW_PACKAGE_PREFIX $PACMAN_INSTALL automake autoconf git make pkgconf \ - $m-clang $m-winpthreads \ + $m-clang $m-lld $m-winpthreads \ $m-gcc-compat \ unzip zip $PACMAN_INSTALL $m-asciidoc \ diff --git a/Makefile.in b/Makefile.in index ea83bc891..c92f77272 100644 --- a/Makefile.in +++ b/Makefile.in @@ -241,7 +241,8 @@ src/dir-stamp: $(TARGET): src/dir-stamp $(ULTRAGRID_OBJS) $(GENERATED_HEADERS) $(BIN_DEPS) $(MKDIR_P) $$(dirname $@) - $(LINKER) $(LDFLAGS) $(ULTRAGRID_OBJS) $(LIBS) $(ULTRAGRID_LIBS) -o $(TARGET) + $(LINKER) $(LDFLAGS) @UV_LDFLAGS@ $(ULTRAGRID_OBJS) $(LIBS) $(ULTRAGRID_LIBS)\ + -o $(TARGET) @if [ -n '@DLL_LIBS@' ]; then $(INSTALL) -m 644 @DLL_LIBS@ bin; fi $(REFLECTOR_TARGET): src/dir-stamp $(REFLECTOR_OBJS) $(GENERATED_HEADERS) bin/hd-rum-av @@ -554,6 +555,7 @@ clean: $(COND_SILENCE)-rm -rf @TOREMOVE@ @MODULES@ @LIB_GENERATED_HEADERS@ $(COND_SILENCE)-rm -rf $(DEP_FILES) $(COND_SILENCE)-rm -rf bin/shaders + $(COND_SILENCE)-rm -f bin/uv.pdb $(COND_SILENCE)if [ -f "gui/QT/Makefile" ]; then make -C gui/QT/ distclean; fi distclean: clean @@ -690,6 +692,10 @@ install: all if [ -n "@VULKAN@" ]; then\ $(INSTALL) -D -m 644 "$(srcdir)/share/ultragrid/vulkan_shaders/"* -t "$(DESTDIR)$(datadir)/ultragrid/vulkan_shaders"; \ fi + if [ -f bin/uv.pdb ]; then\ + $(INSTALL) -m 644 bin/uv.pdb $(DESTDIR)$(bindir); \ + fi + uninstall: $(RM) $(DESTDIR)$(bindir)/uv $(RM) $(DESTDIR)$(bindir)/hd-rum-transcode @@ -710,5 +716,6 @@ uninstall: rmdir $(DESTDIR)$(datadir)/ultragrid/vulkan_shaders;\ rmdir $(DESTDIR)$(datadir)/ultragrid;\ fi + $(RM) $(DESTDIR)$(bindir)/uv.pdb # vim: set noexpandtab diff --git a/configure.ac b/configure.ac index 34107ea06..d4318216e 100644 --- a/configure.ac +++ b/configure.ac @@ -174,12 +174,23 @@ if test $system = Windows; then LIBS="$LIBS -lsetupapi -lws2_32 -liphlpapi -lole32 -loleaut32" LIBS="$LIBS -ldbghelp" AC_CHECK_FUNCS(SetThreadDescription) + if $CXX -dM -E - /dev/null; then + AC_CHECK_PROG([LLD], [lld], [yes]) + if test "$LLD" = yes; then + COMMON_FLAGS="${COMMON_FLAGS:+$COMMON_FLAGS }-gcodeview" + UV_LDFLAGS="-fuse-ld=lld -g -Wl,--pdb=bin/uv.pdb" + fi + fi + if ! expr "x$COMMON_FLAGS" : '.*gcodeview' >/dev/null; then + UG_MSG_WARN([Windows stacktrace will not be available.]) + fi fi LINKER=$CXX AC_SUBST(LINKER) AC_SUBST(LDFLAGS) +AC_SUBST(UV_LDFLAGS) AC_SUBST(CXXFLAGS) AC_ARG_ENABLE(depends-version-check,