[PATCH] binutils, gdb: support zstd compressed debug sections

Simon Marchi simark@simark.ca
Mon Sep 19 06:55:08 GMT 2022


> diff --git a/config/zstd.m4 b/config/zstd.m4
> new file mode 100644
> index 00000000000..b8b3a199730
> --- /dev/null
> +++ b/config/zstd.m4
> @@ -0,0 +1,12 @@
> +AC_DEFUN([AM_ZSTD],
> +[
> +  zstdlib=
> +  AC_ARG_WITH(system-zstd,
> +  [AS_HELP_STRING([--with-system-zstd], [use installed zstd])],
> +  if test x$with_system_zstd = xyes ; then
> +    zstdlib=-lzstd
> +    AC_DEFINE(HAVE_ZSTD_H)
> +  fi
> +  )
> +  AC_SUBST(zstdlib)
> +])

Hi Fangrui,

I understand that you did this by copying zlib here.  However, the only
reason we have a --use-system-zlib is because the binutils-gdb contains
a copy of zlib, which is used by default, and --use-system-zlib can be
used to prefer the system version.  Since we don't carry a copy of zstd
in the tree, I don't think we need --with-system-zstd.

However, since zstd ships with a .pc file, my preference would be to use
PKG_CHECK_MODULES to have pkg-config find the right flags, and have
--with/--without-zstd.  Same as I did for the msgpack library here:

  https://gitlab.com/gnutools/binutils-gdb/-/commit/2952f10cd79af4645222f124f28c7928287d8113

I am not a binutils maintainers though (just GDB), so in the end it's up
to the binutils maintainers to decide and GDB will probably follow suit.

> diff --git a/configure.ac b/configure.ac
> index a5555a9c91b..f7316b24ac6 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -246,6 +246,9 @@ if test x$with_system_zlib = xyes ; then
>    noconfigdirs="$noconfigdirs zlib"
>  fi
>  
> +AC_ARG_WITH(system-zstd,
> +[AS_HELP_STRING([--with-system-zstd], [use installed zstd])])
> +

I don't think you need this change.  --with-system-zlib exists here
because we need to decide whether or not to build the local zlib.  But
since we don't have a local zstd...

Simon



More information about the Gdb-patches mailing list