From 1387ea9f984d5a7aa096a66b67d61dc2cc565d21 Mon Sep 17 00:00:00 2001 From: Jon Turney Date: Tue, 14 Feb 2023 13:52:39 +0000 Subject: [PATCH] Cygwin: dumper: also link with libzstd, as libbfd may require it Also allow that linkage to be dynamic, as libzstd-devel doesn't currently provide a static library. --- .appveyor.yml | 1 + .github/workflows/cygwin.yml | 1 + winsup/configure.ac | 10 ++++++---- winsup/doc/faq-programming.xml | 2 +- winsup/utils/Makefile.am | 7 ++----- 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 50a9101b7..9f20f6d83 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -35,6 +35,7 @@ patch,\ cocom,\ gettext-devel,\ libiconv-devel,\ +libzstd-devel,\ zlib-devel,\ %PKGARCH%-gcc-core,\ %PKGARCH%-gcc-g++,\ diff --git a/.github/workflows/cygwin.yml b/.github/workflows/cygwin.yml index 10d0255ef..575ff1fdc 100644 --- a/.github/workflows/cygwin.yml +++ b/.github/workflows/cygwin.yml @@ -81,6 +81,7 @@ jobs: gettext-devel, libiconv, libiconv-devel, + libzstd-devel, make, mingw64-${{ matrix.pkgarch }}-gcc-g++, mingw64-${{ matrix.pkgarch }}-zlib, diff --git a/winsup/configure.ac b/winsup/configure.ac index 76baf0a7d..13fce0da6 100644 --- a/winsup/configure.ac +++ b/winsup/configure.ac @@ -118,10 +118,12 @@ AC_ARG_ENABLE([dumper], AM_CONDITIONAL(BUILD_DUMPER, [test "x$build_dumper" = "xyes"]) -AC_CHECK_LIB([sframe], [sframe_decode], - AC_MSG_NOTICE([Detected libsframe; Assuming that libbfd depends on it]), [true]) - -AM_CONDITIONAL(HAVE_LIBSFRAME, [test "x$ac_cv_lib_sframe_sframe_decode" = "xyes"]) +# libbfd.a doesn't have a pkgconfig file, so we guess what it's dependencies +# are, based on what's present in the build environment +BFD_LIBS="-lintl -liconv -liberty -lz" +AC_CHECK_LIB([sframe], [sframe_decode], [BFD_LIBS="${BFD_LIBS} -lsframe"]) +AC_CHECK_LIB([zstd], [ZSTD_isError], [BFD_LIBS="${BFD_LIBS} -lzstd"]) +AC_SUBST([BFD_LIBS]) AC_CONFIG_FILES([ Makefile diff --git a/winsup/doc/faq-programming.xml b/winsup/doc/faq-programming.xml index 24c7f928e..7fc6baf25 100644 --- a/winsup/doc/faq-programming.xml +++ b/winsup/doc/faq-programming.xml @@ -684,7 +684,7 @@ installed; you at least need gcc-g++, Additionally, building the dumper utility requires -gettext-devel, libiconv-devel +gettext-devel, libiconv-devel, libzstd-devel and zlib-devel. Building this program can be disabled with the --disable-dumper option to configure. diff --git a/winsup/utils/Makefile.am b/winsup/utils/Makefile.am index f59cf9f50..57a4f377c 100644 --- a/winsup/utils/Makefile.am +++ b/winsup/utils/Makefile.am @@ -79,7 +79,8 @@ LDADD = -lnetapi32 cygpath_CXXFLAGS = -fno-threadsafe-statics $(AM_CXXFLAGS) cygpath_LDADD = $(LDADD) -luserenv -lntdll dumper_CXXFLAGS = -I$(top_srcdir)/../include $(AM_CXXFLAGS) -dumper_LDADD = $(LDADD) -lpsapi -lbfd -lintl -liconv -liberty -lz -lntdll +dumper_LDADD = $(LDADD) -lpsapi -lntdll -lbfd @BFD_LIBS@ +dumper_LDFLAGS = ldd_LDADD = $(LDADD) -lpsapi -lntdll mount_CXXFLAGS = -DFSTAB_ONLY $(AM_CXXFLAGS) minidumper_LDADD = $(LDADD) -ldbghelp @@ -89,10 +90,6 @@ profiler_LDADD = $(LDADD) -lntdll cygps_LDADD = $(LDADD) -lpsapi -lntdll newgrp_LDADD = $(LDADD) -luserenv -if HAVE_LIBSFRAME -dumper_LDADD += -lsframe -endif - if CROSS_BOOTSTRAP SUBDIRS = mingw endif