From 2fd459c3b180def80b0db4b6c91e4f088e779cc1 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 | 7 +++++++ winsup/doc/faq-programming.xml | 2 +- winsup/utils/Makefile.am | 3 ++- 5 files changed, 12 insertions(+), 2 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 7ad5ccf5f..8f7b888e3 100644 --- a/.github/workflows/cygwin.yml +++ b/.github/workflows/cygwin.yml @@ -80,6 +80,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 9205a8886..49a8346fa 100644 --- a/winsup/configure.ac +++ b/winsup/configure.ac @@ -116,6 +116,13 @@ AC_CHECK_LIB([bfd], [bfd_init], [true], AM_CONDITIONAL(BUILD_DUMPER, [test "x$ac_cv_lib_bfd_bfd_init" = "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 cygwin/Makefile diff --git a/winsup/doc/faq-programming.xml b/winsup/doc/faq-programming.xml index 632d1a173..d23f32c3a 100644 --- a/winsup/doc/faq-programming.xml +++ b/winsup/doc/faq-programming.xml @@ -679,7 +679,7 @@ rewriting the runtime library in question from specs... installed; you at least need gcc-g++, make, automake, autoconf, git, perl, -gettext-devel, libiconv-devel +gettext-devel, libiconv-devel, libzstd-devel, zlib-devel, cocom and patch. diff --git a/winsup/utils/Makefile.am b/winsup/utils/Makefile.am index 6be5b12c2..fa6499dfe 100644 --- a/winsup/utils/Makefile.am +++ b/winsup/utils/Makefile.am @@ -78,7 +78,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