* [bug#38803] [PATCH] gnu: elfutils: Update to 0.178 @ 2019-12-30 1:41 Mark Wielaard 2019-12-30 1:44 ` Brett Gilio ` (2 more replies) 0 siblings, 3 replies; 16+ messages in thread From: Mark Wielaard @ 2019-12-30 1:41 UTC (permalink / raw) To: 38803; +Cc: Mark Wielaard This introduces debuginfod support which requires a couple of new inputs. * gnu/packages/elf.scm (elfutils): Update to 0.178 [native-inputs]: Add iproute and pkg-config. [inputs]: Add cpio, libarchive, libmicrohttpd, libcurl, rpm and sqlite. * gnu/packages/patches/elfutils-tests-ptrace.patch: Removed. Fixed upstream. * gnu/packages/patches/elfutils-0.178-tests-build-id.patch: New. Patches backported from upstream git. --- gnu/packages/elf.scm | 26 ++- .../elfutils-0.178-tests-build-id.patch | 159 ++++++++++++++++++ .../patches/elfutils-tests-ptrace.patch | 64 ------- 3 files changed, 180 insertions(+), 69 deletions(-) create mode 100644 gnu/packages/patches/elfutils-0.178-tests-build-id.patch delete mode 100644 gnu/packages/patches/elfutils-tests-ptrace.patch diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm index 75caa54296..169e8d1af8 100644 --- a/gnu/packages/elf.scm +++ b/gnu/packages/elf.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2019 Mark Wielaard <mark@klomp.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,28 +30,35 @@ #:use-module (guix build-system gnu) #:use-module ((guix licenses) #:select (gpl3+ lgpl3+ lgpl2.0+)) #:use-module (gnu packages) + #:use-module (gnu packages backup) #:use-module (gnu packages compression) + #:use-module (gnu packages cpio) + #:use-module (gnu packages curl) #:use-module (gnu packages documentation) #:use-module (gnu packages gcc) + #:use-module (gnu packages gnunet) ; for libmicrohttpd + #:use-module (gnu packages linux) ; for iproute #:use-module (gnu packages m4) + #:use-module (gnu packages package-management) ; for rpm #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages sphinx) + #:use-module (gnu packages sqlite) #:use-module (gnu packages texinfo) #:use-module (gnu packages xml)) (define-public elfutils (package (name "elfutils") - (version "0.176") + (version "0.178") (source (origin (method url-fetch) (uri (string-append "https://sourceware.org/elfutils/ftp/" version "/elfutils-" version ".tar.bz2")) (sha256 (base32 - "08qhrl4g6qqr4ga46jhh78y56a47p3msa5b2x1qhzbxhf71lfmzb")) - (patches (search-patches "elfutils-tests-ptrace.patch")))) + "1wm0yfcih4rjwbg59qgm4jyqmbsdmk6z5qajljyw9sfljq7a1rri")) + (patches (search-patches "elfutils-0.178-tests-build-id.patch")))) (build-system gnu-build-system) ;; Separate programs because that's usually not what elfutils users want, @@ -81,8 +89,16 @@ (("run-backtrace-native.sh") "")) #t))))) - (native-inputs `(("m4" ,m4))) - (inputs `(("zlib" ,zlib))) + (native-inputs `(("iproute", iproute) ;; needed in tests for ss + ("m4", m4) + ("pkg-config", pkg-config))) + (inputs `(("cpio", cpio) + ("libarchive", libarchive) + ("libmicrohttpd", libmicrohttpd) + ("libcurl", curl) + ("rpm", rpm) + ("sqlite", sqlite) + ("zlib" ,zlib))) (home-page "https://sourceware.org/elfutils/") (synopsis "Linker and ELF manipulation tools") (description diff --git a/gnu/packages/patches/elfutils-0.178-tests-build-id.patch b/gnu/packages/patches/elfutils-0.178-tests-build-id.patch new file mode 100644 index 0000000000..ca9bd480b8 --- /dev/null +++ b/gnu/packages/patches/elfutils-0.178-tests-build-id.patch @@ -0,0 +1,159 @@ +commit 3f445279b60b16b6cb062921b74ae400344b4a68 +Author: Mark Wielaard <mark@klomp.org> +Date: Thu Dec 5 14:22:56 2019 +0100 + + tests: Run elfcompress under testrun in run-elfclassify.sh + + Otherwise elfcompress might run against the system libelf which might + be too old or missing. + + Signed-off-by: Mark Wielaard <mark@klomp.org> + +diff --git a/tests/run-elfclassify.sh b/tests/run-elfclassify.sh +index 5a849bbd..fb14139d 100755 +--- a/tests/run-elfclassify.sh ++++ b/tests/run-elfclassify.sh +@@ -267,7 +267,7 @@ $(echo $kmod_files | sed -e "s/ /\n/g") + EOF + + echo "gnu compressed kmods are unstripped" +-${abs_top_builddir}/src/elfcompress -t gnu --force $kmod_files ++testrun ${abs_top_builddir}/src/elfcompress -t gnu --force $kmod_files + testrun ${abs_top_builddir}/src/elfclassify --unstripped $kmod_files + testrun_compare ${abs_top_builddir}/src/elfclassify --unstripped --print $kmod_files <<EOF + $(echo $kmod_files | sed -e "s/ /\n/g") +@@ -312,7 +312,7 @@ $(echo $debug_files | sed -e "s/ /\n/g") + EOF + + echo "compress the debug sections and try again" +-${abs_top_builddir}/src/elfcompress -t gnu --force $debug_files ++testrun ${abs_top_builddir}/src/elfcompress -t gnu --force $debug_files + + echo "again unstripped" + testrun ${abs_top_builddir}/src/elfclassify --unstripped $debug_files + +commit eaffa79d52da7454044be53d28b525cebdb0093b +Author: Mark Wielaard <mark@klomp.org> +Date: Fri Dec 6 15:48:00 2019 +0100 + + tests: Run strip under testrun in run-debuginfod-find.sh + + Otherwise strip might run against the system libelf which might be too + old or missing. + + Signed-off-by: Mark Wielaard <mark@klomp.org> + +diff --git a/tests/run-debuginfod-find.sh b/tests/run-debuginfod-find.sh +index 0ade03b7..6f92fbf1 100755 +--- a/tests/run-debuginfod-find.sh ++++ b/tests/run-debuginfod-find.sh +@@ -102,7 +102,7 @@ export DEBUGINFOD_TIMEOUT=10 + echo "int main() { return 0; }" > ${PWD}/prog.c + tempfiles prog.c + gcc -g -o prog ${PWD}/prog.c +- ${abs_top_builddir}/src/strip -g -f prog.debug ${PWD}/prog ++testrun ${abs_top_builddir}/src/strip -g -f prog.debug ${PWD}/prog + BUILDID=`env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../src/readelf \ + -a prog | grep 'Build ID' | cut -d ' ' -f 7` + + +commit cf1b5fe170fa24f32871ef284ff2968c73816f98 +Author: Mark Wielaard <mark@klomp.org> +Date: Fri Dec 6 17:20:00 2019 +0100 + + Make sure to always build with build-ids. + + We really need build-ids for various things. If the system compiler + doesn't generate build-ids warn and generate them anyway for both the + binaries and the tests. + + Signed-off-by: Mark Wielaard <mark@klomp.org> + +diff --git a/configure.ac b/configure.ac +index 5a2dc373..36a6b6c2 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -197,6 +197,15 @@ if test "$ac_cv_zdefs" = "yes"; then + dso_LDFLAGS="$dso_LDFLAGS $ZDEFS_LDFLAGS" + fi + ++# We really want build-ids. Warn and force generating them if gcc was ++# configure without --enable-linker-build-id ++AC_CACHE_CHECK([whether the compiler generates build-ids], ac_cv_buildid, [dnl ++AC_LINK_IFELSE([AC_LANG_PROGRAM()],[ac_cv_buildid=yes; readelf -n conftest$EXEEXT | grep -q NT_GNU_BUILD_ID || ac_cv_buildid=no],AC_MSG_FAILURE([unexpected compile failure]))]) ++if test "$ac_cv_buildid" = "no"; then ++ AC_MSG_WARN([compiler doesn't generate build-id by default]) ++ LDFLAGS="$LDFLAGS -Wl,--build-id" ++fi ++ + ZRELRO_LDFLAGS="-Wl,-z,relro" + AC_CACHE_CHECK([whether gcc supports $ZRELRO_LDFLAGS], ac_cv_zrelro, [dnl + save_LDFLAGS="$LDFLAGS" +diff --git a/tests/run-debuginfod-find.sh b/tests/run-debuginfod-find.sh +index 6f92fbf1..6533996a 100755 +--- a/tests/run-debuginfod-find.sh ++++ b/tests/run-debuginfod-find.sh +@@ -101,7 +101,7 @@ export DEBUGINFOD_TIMEOUT=10 + # cannot find it without debuginfod. + echo "int main() { return 0; }" > ${PWD}/prog.c + tempfiles prog.c +-gcc -g -o prog ${PWD}/prog.c ++gcc -Wl,--build-id -g -o prog ${PWD}/prog.c + testrun ${abs_top_builddir}/src/strip -g -f prog.debug ${PWD}/prog + BUILDID=`env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../src/readelf \ + -a prog | grep 'Build ID' | cut -d ' ' -f 7` +@@ -138,7 +138,7 @@ cmp $filename ${PWD}/prog.c + # Build another, non-stripped binary + echo "int main() { return 0; }" > ${PWD}/prog2.c + tempfiles prog2.c +-gcc -g -o prog2 ${PWD}/prog2.c ++gcc -Wl,--build-id -g -o prog2 ${PWD}/prog2.c + BUILDID2=`env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../src/readelf \ + -a prog2 | grep 'Build ID' | cut -d ' ' -f 7` + +--- a/configure 1970-01-01 01:00:00.000000000 +0100 ++++ b/configure 2019-12-11 14:18:11.812008097 +0100 +@@ -5325,6 +5325,43 @@ + dso_LDFLAGS="$dso_LDFLAGS $ZDEFS_LDFLAGS" + fi + ++# We really want build-ids. Warn and force generating them if gcc was ++# configure without --enable-linker-build-id ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler generates build-ids" >&5 ++$as_echo_n "checking whether the compiler generates build-ids... " >&6; } ++if ${ac_cv_buildid+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_buildid=yes; readelf -n conftest$EXEEXT | grep -q NT_GNU_BUILD_ID || ac_cv_buildid=no ++else ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++as_fn_error $? "unexpected compile failure ++See \`config.log' for more details" "$LINENO" 5; } ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_buildid" >&5 ++$as_echo "$ac_cv_buildid" >&6; } ++if test "$ac_cv_buildid" = "no"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: compiler doesn't generate build-id by default" >&5 ++$as_echo "$as_me: WARNING: compiler doesn't generate build-id by default" >&2;} ++ LDFLAGS="$LDFLAGS -Wl,--build-id" ++fi ++ + ZRELRO_LDFLAGS="-Wl,-z,relro" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc supports $ZRELRO_LDFLAGS" >&5 + $as_echo_n "checking whether gcc supports $ZRELRO_LDFLAGS... " >&6; } diff --git a/gnu/packages/patches/elfutils-tests-ptrace.patch b/gnu/packages/patches/elfutils-tests-ptrace.patch deleted file mode 100644 index cd46999063..0000000000 --- a/gnu/packages/patches/elfutils-tests-ptrace.patch +++ /dev/null @@ -1,64 +0,0 @@ -This patch allows us to skip tests that require PTRACE_ATTACH in situations -where PTRACE_ATTACH is only allowed when CAP_SYS_PTRACE is held (i.e., for -root, by default.) - -Reported at <https://bugzilla.redhat.com/show_bug.cgi?id=1210966>. - ---- elfutils-0.161/tests/run-deleted.sh 2015-04-11 16:38:33.028556235 +0200 -+++ elfutils-0.161/tests/run-deleted.sh 2015-04-11 16:46:15.012442185 +0200 -@@ -17,6 +17,15 @@ - - . $srcdir/backtrace-subr.sh - -+# Check whether the Yama policy allows us to use PTRACE_ATTACH. -+if [ -f /proc/sys/kernel/yama/ptrace_scope ] -+then -+ if [ `cat /proc/sys/kernel/yama/ptrace_scope` -ne 0 ] -+ then -+ exit 77 -+ fi -+fi -+ - tempfiles deleted deleted-lib.so - cp -p ${abs_builddir}/deleted ${abs_builddir}/deleted-lib.so . - ---- elfutils-0.161/tests/vdsosyms.c 2015-04-11 16:40:20.633461110 +0200 -+++ elfutils-0.161/tests/vdsosyms.c 2015-04-11 16:45:06.611866677 +0200 -@@ -23,6 +23,8 @@ - #include <stdio.h> - #include <string.h> - #include <sys/types.h> -+#include <sys/stat.h> -+#include <fcntl.h> - #include <unistd.h> - #include ELFUTILS_HEADER(dwfl) - -@@ -68,6 +70,7 @@ module_callback (Dwfl_Module *mod, void - int - main (int argc __attribute__ ((unused)), char **argv __attribute__ ((unused))) - { -+ static const char ptrace_scope_file[] = "/proc/sys/kernel/yama/ptrace_scope"; - static char *debuginfo_path; - static const Dwfl_Callbacks proc_callbacks = - { -@@ -76,6 +79,20 @@ main (int argc __attribute__ ((unused)), - - .find_elf = dwfl_linux_proc_find_elf, - }; -+ -+ /* Check whether the Yama policy allows us to use PTRACE_ATTACH. */ -+ int ptrace_scope = open (ptrace_scope_file, O_RDONLY); -+ if (ptrace_scope >= 0) -+ { -+ char buf[10]; -+ int count = read (ptrace_scope, buf, sizeof buf); -+ assert (count > 0); -+ if (buf[0] != '0') -+ /* We're not allowed, so skip this test. */ -+ return 77; -+ close (ptrace_scope); -+ } -+ - Dwfl *dwfl = dwfl_begin (&proc_callbacks); - if (dwfl == NULL) - error (2, 0, "dwfl_begin: %s", dwfl_errmsg (-1)); -- 2.20.1 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* [bug#38803] [PATCH] gnu: elfutils: Update to 0.178 2019-12-30 1:41 [bug#38803] [PATCH] gnu: elfutils: Update to 0.178 Mark Wielaard @ 2019-12-30 1:44 ` Brett Gilio 2019-12-30 2:04 ` Mark Wielaard 2020-01-12 20:39 ` Mark Wielaard 2023-09-02 18:39 ` Vagrant Cascadian 2 siblings, 1 reply; 16+ messages in thread From: Brett Gilio @ 2019-12-30 1:44 UTC (permalink / raw) To: Mark Wielaard; +Cc: 38803 Dec 29, 2019 7:42:34 PM Mark Wielaard : > This introduces debuginfod support which requires a couple of new inputs. > > * gnu/packages/elf.scm (elfutils): Update to 0.178 > [native-inputs]: Add iproute and pkg-config. > [inputs]: Add cpio, libarchive, libmicrohttpd, libcurl, rpm and sqlite. > * gnu/packages/patches/elfutils-tests-ptrace.patch: Removed. Fixed upstream. > * gnu/packages/patches/elfutils-0.178-tests-build-id.patch: New. Patches > backported from upstream git. > --- > gnu/packages/elf.scm | 26 ++- > .../elfutils-0.178-tests-build-id.patch | 159 ++++++++++++++++++ > .../patches/elfutils-tests-ptrace.patch | 64 ------- > 3 files changed, 180 insertions(+), 69 deletions(-) > create mode 100644 gnu/packages/patches/elfutils-0.178-tests-build-id.patch > delete mode 100644 gnu/packages/patches/elfutils-tests-ptrace.patch > > diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm > index 75caa54296..169e8d1af8 100644 > --- a/gnu/packages/elf.scm > +++ b/gnu/packages/elf.scm > @@ -6,6 +6,7 @@ > ;;; Copyright © 2017 Leo Famulari > ;;; Copyright © 2018 Tobias Geerinckx-Rice > ;;; Copyright © 2018 Marius Bakke > +;;; Copyright © 2019 Mark Wielaard > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -29,28 +30,35 @@ > #:use-module (guix build-system gnu) > #:use-module ((guix licenses) #:select (gpl3+ lgpl3+ lgpl2.0+)) > #:use-module (gnu packages) > + #:use-module (gnu packages backup) > #:use-module (gnu packages compression) > + #:use-module (gnu packages cpio) > + #:use-module (gnu packages curl) > #:use-module (gnu packages documentation) > #:use-module (gnu packages gcc) > + #:use-module (gnu packages gnunet) ; for libmicrohttpd > + #:use-module (gnu packages linux) ; for iproute > #:use-module (gnu packages m4) > + #:use-module (gnu packages package-management) ; for rpm > #:use-module (gnu packages pkg-config) > #:use-module (gnu packages python) > #:use-module (gnu packages sphinx) > + #:use-module (gnu packages sqlite) > #:use-module (gnu packages texinfo) > #:use-module (gnu packages xml)) > > (define-public elfutils > (package > (name "elfutils") > - (version "0.176") > + (version "0.178") > (source (origin > (method url-fetch) > (uri (string-append "https://sourceware.org/elfutils/ftp/" > version "/elfutils-" version ".tar.bz2")) > (sha256 > (base32 > - "08qhrl4g6qqr4ga46jhh78y56a47p3msa5b2x1qhzbxhf71lfmzb")) > - (patches (search-patches "elfutils-tests-ptrace.patch")))) > + "1wm0yfcih4rjwbg59qgm4jyqmbsdmk6z5qajljyw9sfljq7a1rri")) > + (patches (search-patches "elfutils-0.178-tests-build-id.patch")))) > (build-system gnu-build-system) > > ;; Separate programs because that's usually not what elfutils users want, > @@ -81,8 +89,16 @@ > (("run-backtrace-native.sh") "")) > #t))))) > > - (native-inputs `(("m4" ,m4))) > - (inputs `(("zlib" ,zlib))) > + (native-inputs `(("iproute", iproute) ;; needed in tests for ss > + ("m4", m4) > + ("pkg-config", pkg-config))) > + (inputs `(("cpio", cpio) > + ("libarchive", libarchive) > + ("libmicrohttpd", libmicrohttpd) > + ("libcurl", curl) > + ("rpm", rpm) > + ("sqlite", sqlite) > + ("zlib" ,zlib))) > (home-page "https://sourceware.org/elfutils/") > (synopsis "Linker and ELF manipulation tools") > (description > diff --git a/gnu/packages/patches/elfutils-0.178-tests-build-id.patch b/gnu/packages/patches/elfutils-0.178-tests-build-id.patch > new file mode 100644 > index 0000000000..ca9bd480b8 > --- /dev/null > +++ b/gnu/packages/patches/elfutils-0.178-tests-build-id.patch > @@ -0,0 +1,159 @@ > +commit 3f445279b60b16b6cb062921b74ae400344b4a68 > +Author: Mark Wielaard > +Date: Thu Dec 5 14:22:56 2019 +0100 > + > + tests: Run elfcompress under testrun in run-elfclassify.sh > + > + Otherwise elfcompress might run against the system libelf which might > + be too old or missing. > + > + Signed-off-by: Mark Wielaard > + > +diff --git a/tests/run-elfclassify.sh b/tests/run-elfclassify.sh > +index 5a849bbd..fb14139d 100755 > +--- a/tests/run-elfclassify.sh > ++++ b/tests/run-elfclassify.sh > +@@ -267,7 +267,7 @@ $(echo $kmod_files | sed -e "s/ /\n/g") > + EOF > + > + echo "gnu compressed kmods are unstripped" > +-${abs_top_builddir}/src/elfcompress -t gnu --force $kmod_files > ++testrun ${abs_top_builddir}/src/elfcompress -t gnu --force $kmod_files > + testrun ${abs_top_builddir}/src/elfclassify --unstripped $kmod_files > + testrun_compare ${abs_top_builddir}/src/elfclassify --unstripped --print $kmod_files < > + $(echo $kmod_files | sed -e "s/ /\n/g") > +@@ -312,7 +312,7 @@ $(echo $debug_files | sed -e "s/ /\n/g") > + EOF > + > + echo "compress the debug sections and try again" > +-${abs_top_builddir}/src/elfcompress -t gnu --force $debug_files > ++testrun ${abs_top_builddir}/src/elfcompress -t gnu --force $debug_files > + > + echo "again unstripped" > + testrun ${abs_top_builddir}/src/elfclassify --unstripped $debug_files > + > +commit eaffa79d52da7454044be53d28b525cebdb0093b > +Author: Mark Wielaard > +Date: Fri Dec 6 15:48:00 2019 +0100 > + > + tests: Run strip under testrun in run-debuginfod-find.sh > + > + Otherwise strip might run against the system libelf which might be too > + old or missing. > + > + Signed-off-by: Mark Wielaard > + > +diff --git a/tests/run-debuginfod-find.sh b/tests/run-debuginfod-find.sh > +index 0ade03b7..6f92fbf1 100755 > +--- a/tests/run-debuginfod-find.sh > ++++ b/tests/run-debuginfod-find.sh > +@@ -102,7 +102,7 @@ export DEBUGINFOD_TIMEOUT=10 > + echo "int main() { return 0; }" > ${PWD}/prog.c > + tempfiles prog.c > + gcc -g -o prog ${PWD}/prog.c > +- ${abs_top_builddir}/src/strip -g -f prog.debug ${PWD}/prog > ++testrun ${abs_top_builddir}/src/strip -g -f prog.debug ${PWD}/prog > + BUILDID=`env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../src/readelf \ > + -a prog | grep 'Build ID' | cut -d ' ' -f 7` > + > + > +commit cf1b5fe170fa24f32871ef284ff2968c73816f98 > +Author: Mark Wielaard > +Date: Fri Dec 6 17:20:00 2019 +0100 > + > + Make sure to always build with build-ids. > + > + We really need build-ids for various things. If the system compiler > + doesn't generate build-ids warn and generate them anyway for both the > + binaries and the tests. > + > + Signed-off-by: Mark Wielaard > + > +diff --git a/configure.ac b/configure.ac > +index 5a2dc373..36a6b6c2 100644 > +--- a/configure.ac > ++++ b/configure.ac > +@@ -197,6 +197,15 @@ if test "$ac_cv_zdefs" = "yes"; then > + dso_LDFLAGS="$dso_LDFLAGS $ZDEFS_LDFLAGS" > + fi > + > ++# We really want build-ids. Warn and force generating them if gcc was > ++# configure without --enable-linker-build-id > ++AC_CACHE_CHECK([whether the compiler generates build-ids], ac_cv_buildid, [dnl > ++AC_LINK_IFELSE([AC_LANG_PROGRAM()],[ac_cv_buildid=yes; readelf -n conftest$EXEEXT | grep -q NT_GNU_BUILD_ID || ac_cv_buildid=no],AC_MSG_FAILURE([unexpected compile failure]))]) > ++if test "$ac_cv_buildid" = "no"; then > ++ AC_MSG_WARN([compiler doesn't generate build-id by default]) > ++ LDFLAGS="$LDFLAGS -Wl,--build-id" > ++fi > ++ > + ZRELRO_LDFLAGS="-Wl,-z,relro" > + AC_CACHE_CHECK([whether gcc supports $ZRELRO_LDFLAGS], ac_cv_zrelro, [dnl > + save_LDFLAGS="$LDFLAGS" > +diff --git a/tests/run-debuginfod-find.sh b/tests/run-debuginfod-find.sh > +index 6f92fbf1..6533996a 100755 > +--- a/tests/run-debuginfod-find.sh > ++++ b/tests/run-debuginfod-find.sh > +@@ -101,7 +101,7 @@ export DEBUGINFOD_TIMEOUT=10 > + # cannot find it without debuginfod. > + echo "int main() { return 0; }" > ${PWD}/prog.c > + tempfiles prog.c > +-gcc -g -o prog ${PWD}/prog.c > ++gcc -Wl,--build-id -g -o prog ${PWD}/prog.c > + testrun ${abs_top_builddir}/src/strip -g -f prog.debug ${PWD}/prog > + BUILDID=`env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../src/readelf \ > + -a prog | grep 'Build ID' | cut -d ' ' -f 7` > +@@ -138,7 +138,7 @@ cmp $filename ${PWD}/prog.c > + # Build another, non-stripped binary > + echo "int main() { return 0; }" > ${PWD}/prog2.c > + tempfiles prog2.c > +-gcc -g -o prog2 ${PWD}/prog2.c > ++gcc -Wl,--build-id -g -o prog2 ${PWD}/prog2.c > + BUILDID2=`env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../src/readelf \ > + -a prog2 | grep 'Build ID' | cut -d ' ' -f 7` > + > +--- a/configure 1970-01-01 01:00:00.000000000 +0100 > ++++ b/configure 2019-12-11 14:18:11.812008097 +0100 > +@@ -5325,6 +5325,43 @@ > + dso_LDFLAGS="$dso_LDFLAGS $ZDEFS_LDFLAGS" > + fi > + > ++# We really want build-ids. Warn and force generating them if gcc was > ++# configure without --enable-linker-build-id > ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler generates build-ids" >&5 > ++$as_echo_n "checking whether the compiler generates build-ids... " >&6; } > ++if ${ac_cv_buildid+:} false; then : > ++ $as_echo_n "(cached) " >&6 > ++else > ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext > ++/* end confdefs.h. */ > ++ > ++int > ++main () > ++{ > ++ > ++ ; > ++ return 0; > ++} > ++_ACEOF > ++if ac_fn_c_try_link "$LINENO"; then : > ++ ac_cv_buildid=yes; readelf -n conftest$EXEEXT | grep -q NT_GNU_BUILD_ID || ac_cv_buildid=no > ++else > ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 > ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} > ++as_fn_error $? "unexpected compile failure > ++See \`config.log' for more details" "$LINENO" 5; } > ++fi > ++rm -f core conftest.err conftest.$ac_objext \ > ++ conftest$ac_exeext conftest.$ac_ext > ++fi > ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_buildid" >&5 > ++$as_echo "$ac_cv_buildid" >&6; } > ++if test "$ac_cv_buildid" = "no"; then > ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: compiler doesn't generate build-id by default" >&5 > ++$as_echo "$as_me: WARNING: compiler doesn't generate build-id by default" >&2;} > ++ LDFLAGS="$LDFLAGS -Wl,--build-id" > ++fi > ++ > + ZRELRO_LDFLAGS="-Wl,-z,relro" > + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc supports $ZRELRO_LDFLAGS" >&5 > + $as_echo_n "checking whether gcc supports $ZRELRO_LDFLAGS... " >&6; } > diff --git a/gnu/packages/patches/elfutils-tests-ptrace.patch b/gnu/packages/patches/elfutils-tests-ptrace.patch > deleted file mode 100644 > index cd46999063..0000000000 > --- a/gnu/packages/patches/elfutils-tests-ptrace.patch > +++ /dev/null > @@ -1,64 +0,0 @@ > -This patch allows us to skip tests that require PTRACE_ATTACH in situations > -where PTRACE_ATTACH is only allowed when CAP_SYS_PTRACE is held (i.e., for > -root, by default.) > - > -Reported at . > - > ---- elfutils-0.161/tests/run-deleted.sh 2015-04-11 16:38:33.028556235 +0200 > -+++ elfutils-0.161/tests/run-deleted.sh 2015-04-11 16:46:15.012442185 +0200 > -@@ -17,6 +17,15 @@ > - > - . $srcdir/backtrace-subr.sh > - > -+# Check whether the Yama policy allows us to use PTRACE_ATTACH. > -+if [ -f /proc/sys/kernel/yama/ptrace_scope ] > -+then > -+ if [ `cat /proc/sys/kernel/yama/ptrace_scope` -ne 0 ] > -+ then > -+ exit 77 > -+ fi > -+fi > -+ > - tempfiles deleted deleted-lib.so > - cp -p ${abs_builddir}/deleted ${abs_builddir}/deleted-lib.so . > - > ---- elfutils-0.161/tests/vdsosyms.c 2015-04-11 16:40:20.633461110 +0200 > -+++ elfutils-0.161/tests/vdsosyms.c 2015-04-11 16:45:06.611866677 +0200 > -@@ -23,6 +23,8 @@ > - #include > - #include > - #include > -+#include > -+#include > - #include > - #include ELFUTILS_HEADER(dwfl) > - > -@@ -68,6 +70,7 @@ module_callback (Dwfl_Module *mod, void > - int > - main (int argc __attribute__ ((unused)), char **argv __attribute__ ((unused))) > - { > -+ static const char ptrace_scope_file[] = "/proc/sys/kernel/yama/ptrace_scope"; > - static char *debuginfo_path; > - static const Dwfl_Callbacks proc_callbacks = > - { > -@@ -76,6 +79,20 @@ main (int argc __attribute__ ((unused)), > - > - .find_elf = dwfl_linux_proc_find_elf, > - }; > -+ > -+ /* Check whether the Yama policy allows us to use PTRACE_ATTACH. */ > -+ int ptrace_scope = open (ptrace_scope_file, O_RDONLY); > -+ if (ptrace_scope >= 0) > -+ { > -+ char buf[10]; > -+ int count = read (ptrace_scope, buf, sizeof buf); > -+ assert (count > 0); > -+ if (buf[0] != '0') > -+ /* We're not allowed, so skip this test. */ > -+ return 77; > -+ close (ptrace_scope); > -+ } > -+ > - Dwfl *dwfl = dwfl_begin (&proc_callbacks); > - if (dwfl == NULL) > - error (2, 0, "dwfl_begin: %s", dwfl_errmsg (-1)); > -- > 2.20.1 > Hi Mark! Funny you submitted this, I was working on the same package about an hour ago. We must be reading each other's minds. You got significantly farther than I did. One thing I did do differently was that I extended the list of licenses to include the ones mentioned in the comment. I'll look at your patch, and hopefully this will be ready for core-updates. Thank you :) -- Brett M. Gilio GNU Guix, Contributor | GNU Project, Webmaster [DFC0 C7F7 9EE6 0CA7 AE55 5E19 6722 43C4 A03F 0EEE] < brettg@gnu.org [mailto:brettg@gnu.org] > < brettg@posteo.net [mailto:brettg@posteo.net] > ^ permalink raw reply [flat|nested] 16+ messages in thread
* [bug#38803] [PATCH] gnu: elfutils: Update to 0.178 2019-12-30 1:44 ` Brett Gilio @ 2019-12-30 2:04 ` Mark Wielaard 0 siblings, 0 replies; 16+ messages in thread From: Mark Wielaard @ 2019-12-30 2:04 UTC (permalink / raw) To: Brett Gilio; +Cc: 38803 Hi Brett, On Mon, Dec 30, 2019 at 01:44:21AM +0000, Brett Gilio wrote: > Funny you submitted this, I was working on the same package > about an hour ago. We must be reading each other's minds. You got > significantly farther than I did. Thanks for looking at it. This is my first guix patch, so please be gentle. I do maintain elfutils upstream, so I did have a little advantage picking some upstream patches which hadn't gone into the release yet. > One thing I did do differently was that I extended the list of > licenses to include the ones mentioned in the comment. I'll look at > your patch, and hopefully this will be ready for core-updates. Thank > you :) Good you mention the licenses. I forgot to update them licenses. 0.178 introduces some new documentation (man pages), one of them is under the GFDL (without invariant sections). Also I am not sure how precisely we should mention the dual gplv2+/lgplv3+ license for the "out" output libraries and the gplv3+ license for the "bin" output (and where the gfdl should be added). Thanks, Mark ^ permalink raw reply [flat|nested] 16+ messages in thread
* [bug#38803] [PATCH] gnu: elfutils: Update to 0.178 2019-12-30 1:41 [bug#38803] [PATCH] gnu: elfutils: Update to 0.178 Mark Wielaard 2019-12-30 1:44 ` Brett Gilio @ 2020-01-12 20:39 ` Mark Wielaard 2020-01-12 20:54 ` Marius Bakke 2023-09-02 18:39 ` Vagrant Cascadian 2 siblings, 1 reply; 16+ messages in thread From: Mark Wielaard @ 2020-01-12 20:39 UTC (permalink / raw) To: 38803; +Cc: Mark Wielaard, Brett Gilio This introduces debuginfod support which requires a couple of new inputs. * gnu/local.ml (dist_patch_DATA): Remove elfutils-tests-ptrace.patch. Add elfutils-0.178-tests-build-id.patch. * gnu/packages/elf.scm (elfutils): Update to 0.178 [native-inputs]: Add iproute and pkg-config. [inputs]: Add cpio, libarchive, libmicrohttpd, libcurl, rpm and sqlite. [synopsis]: Updated. [description]: Updated. [license]: List all licenses used. * gnu/packages/patches/elfutils-tests-ptrace.patch: Removed. Fixed upstream. * gnu/packages/patches/elfutils-0.178-tests-build-id.patch: New. Patches backported from upstream git. --- This updated patch adds the licenses list. Updates the synopsis and description of the package. And adds/removes the patches from gnu/local.ml. gnu/local.mk | 2 +- gnu/packages/elf.scm | 51 ++++-- .../elfutils-0.178-tests-build-id.patch | 159 ++++++++++++++++++ .../patches/elfutils-tests-ptrace.patch | 64 ------- 4 files changed, 198 insertions(+), 78 deletions(-) create mode 100644 gnu/packages/patches/elfutils-0.178-tests-build-id.patch delete mode 100644 gnu/packages/patches/elfutils-tests-ptrace.patch diff --git a/gnu/local.mk b/gnu/local.mk index 33cf439870..6574d2aa78 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -813,7 +813,7 @@ dist_patch_DATA = \ %D%/packages/patches/dstat-skip-devices-without-io.patch \ %D%/packages/patches/dvd+rw-tools-add-include.patch \ %D%/packages/patches/einstein-build.patch \ - %D%/packages/patches/elfutils-tests-ptrace.patch \ + %D%/packages/patches/elfutils-0.178-tests-build-id.patch \ %D%/packages/patches/elixir-path-length.patch \ %D%/packages/patches/elm-compiler-disable-reactor.patch \ %D%/packages/patches/elm-compiler-fix-map-key.patch \ diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm index 75caa54296..9f38c519aa 100644 --- a/gnu/packages/elf.scm +++ b/gnu/packages/elf.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2019 Mark Wielaard <mark@klomp.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,36 +28,44 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) - #:use-module ((guix licenses) #:select (gpl3+ lgpl3+ lgpl2.0+)) + #:use-module ((guix licenses) #:select (gpl2+ gpl3+ lgpl3+ lgpl2.0+ fdl1.3+)) #:use-module (gnu packages) + #:use-module (gnu packages backup) #:use-module (gnu packages compression) + #:use-module (gnu packages cpio) + #:use-module (gnu packages curl) #:use-module (gnu packages documentation) #:use-module (gnu packages gcc) + #:use-module (gnu packages gnunet) ; for libmicrohttpd + #:use-module (gnu packages linux) ; for iproute #:use-module (gnu packages m4) + #:use-module (gnu packages package-management) ; for rpm #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages sphinx) + #:use-module (gnu packages sqlite) #:use-module (gnu packages texinfo) #:use-module (gnu packages xml)) (define-public elfutils (package (name "elfutils") - (version "0.176") + (version "0.178") (source (origin (method url-fetch) (uri (string-append "https://sourceware.org/elfutils/ftp/" version "/elfutils-" version ".tar.bz2")) (sha256 (base32 - "08qhrl4g6qqr4ga46jhh78y56a47p3msa5b2x1qhzbxhf71lfmzb")) - (patches (search-patches "elfutils-tests-ptrace.patch")))) + "1wm0yfcih4rjwbg59qgm4jyqmbsdmk6z5qajljyw9sfljq7a1rri")) + (patches (search-patches "elfutils-0.178-tests-build-id.patch")))) (build-system gnu-build-system) ;; Separate programs because that's usually not what elfutils users want, - ;; and because they duplicate what Binutils provides. + ;; and because they duplicate what Binutils provides (but are named + ;; differently, using the eu- prefix and can be installed in parallel). (outputs '("out" ; libelf.so, elfutils/*.h, etc. - "bin")) ; ld, nm, objdump, etc. + "bin")) ; eu-nm, eu-objdump, etc. (arguments ;; Programs don't have libelf.so in their RUNPATH and libraries don't @@ -81,17 +90,33 @@ (("run-backtrace-native.sh") "")) #t))))) - (native-inputs `(("m4" ,m4))) - (inputs `(("zlib" ,zlib))) + (native-inputs `(("iproute", iproute) ;; needed in tests for ss + ("m4", m4) + ("pkg-config", pkg-config))) + (inputs `(("cpio", cpio) + ("libarchive", libarchive) + ("libmicrohttpd", libmicrohttpd) + ("libcurl", curl) + ("rpm", rpm) + ("sqlite", sqlite) + ("zlib" ,zlib))) (home-page "https://sourceware.org/elfutils/") - (synopsis "Linker and ELF manipulation tools") + (synopsis "Collection of utilities and libraries to handle ELF files and +DWARF data") (description - "This package provides command-line tools to manipulate binaries in the -Executable and Linkable Format (@dfn{ELF}). This includes @command{ld}, -@command{ar}, @command{objdump}, @command{addr2line}, and more.") + "A collection of utilities and libraries to read, create and modify ELF +binary files, find and handle DWARF debug data, symbols, thread state and +stacktraces for processes and core files on GNU/Linux. Includes libelf for +manipulating ELF files, libdw for inspecting DWARF data and process state and +utilities like eu-stack (to show backtraces), eu-nm (for listing symbols from +object files), eu-size (for listing the section sizes of an object or archive +file), eu-strip (for discarding symbols), eu-readelf (to see the raw ELF file +structures), eu-elflint (to check for well-formed ELF files) and +eu-elfcompress (to compress or decompress ELF sections).") ;; Libraries are dual-licensed LGPLv3.0+ | GPLv2, and programs are GPLv3+. - (license lgpl3+))) + ;; Some documentation is under the GFDL1.3+, without invariant texts. + (license (list lgpl3+ gpl2+ gpl3+ fdl1.3+)))) (define-public libabigail (package diff --git a/gnu/packages/patches/elfutils-0.178-tests-build-id.patch b/gnu/packages/patches/elfutils-0.178-tests-build-id.patch new file mode 100644 index 0000000000..ca9bd480b8 --- /dev/null +++ b/gnu/packages/patches/elfutils-0.178-tests-build-id.patch @@ -0,0 +1,159 @@ +commit 3f445279b60b16b6cb062921b74ae400344b4a68 +Author: Mark Wielaard <mark@klomp.org> +Date: Thu Dec 5 14:22:56 2019 +0100 + + tests: Run elfcompress under testrun in run-elfclassify.sh + + Otherwise elfcompress might run against the system libelf which might + be too old or missing. + + Signed-off-by: Mark Wielaard <mark@klomp.org> + +diff --git a/tests/run-elfclassify.sh b/tests/run-elfclassify.sh +index 5a849bbd..fb14139d 100755 +--- a/tests/run-elfclassify.sh ++++ b/tests/run-elfclassify.sh +@@ -267,7 +267,7 @@ $(echo $kmod_files | sed -e "s/ /\n/g") + EOF + + echo "gnu compressed kmods are unstripped" +-${abs_top_builddir}/src/elfcompress -t gnu --force $kmod_files ++testrun ${abs_top_builddir}/src/elfcompress -t gnu --force $kmod_files + testrun ${abs_top_builddir}/src/elfclassify --unstripped $kmod_files + testrun_compare ${abs_top_builddir}/src/elfclassify --unstripped --print $kmod_files <<EOF + $(echo $kmod_files | sed -e "s/ /\n/g") +@@ -312,7 +312,7 @@ $(echo $debug_files | sed -e "s/ /\n/g") + EOF + + echo "compress the debug sections and try again" +-${abs_top_builddir}/src/elfcompress -t gnu --force $debug_files ++testrun ${abs_top_builddir}/src/elfcompress -t gnu --force $debug_files + + echo "again unstripped" + testrun ${abs_top_builddir}/src/elfclassify --unstripped $debug_files + +commit eaffa79d52da7454044be53d28b525cebdb0093b +Author: Mark Wielaard <mark@klomp.org> +Date: Fri Dec 6 15:48:00 2019 +0100 + + tests: Run strip under testrun in run-debuginfod-find.sh + + Otherwise strip might run against the system libelf which might be too + old or missing. + + Signed-off-by: Mark Wielaard <mark@klomp.org> + +diff --git a/tests/run-debuginfod-find.sh b/tests/run-debuginfod-find.sh +index 0ade03b7..6f92fbf1 100755 +--- a/tests/run-debuginfod-find.sh ++++ b/tests/run-debuginfod-find.sh +@@ -102,7 +102,7 @@ export DEBUGINFOD_TIMEOUT=10 + echo "int main() { return 0; }" > ${PWD}/prog.c + tempfiles prog.c + gcc -g -o prog ${PWD}/prog.c +- ${abs_top_builddir}/src/strip -g -f prog.debug ${PWD}/prog ++testrun ${abs_top_builddir}/src/strip -g -f prog.debug ${PWD}/prog + BUILDID=`env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../src/readelf \ + -a prog | grep 'Build ID' | cut -d ' ' -f 7` + + +commit cf1b5fe170fa24f32871ef284ff2968c73816f98 +Author: Mark Wielaard <mark@klomp.org> +Date: Fri Dec 6 17:20:00 2019 +0100 + + Make sure to always build with build-ids. + + We really need build-ids for various things. If the system compiler + doesn't generate build-ids warn and generate them anyway for both the + binaries and the tests. + + Signed-off-by: Mark Wielaard <mark@klomp.org> + +diff --git a/configure.ac b/configure.ac +index 5a2dc373..36a6b6c2 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -197,6 +197,15 @@ if test "$ac_cv_zdefs" = "yes"; then + dso_LDFLAGS="$dso_LDFLAGS $ZDEFS_LDFLAGS" + fi + ++# We really want build-ids. Warn and force generating them if gcc was ++# configure without --enable-linker-build-id ++AC_CACHE_CHECK([whether the compiler generates build-ids], ac_cv_buildid, [dnl ++AC_LINK_IFELSE([AC_LANG_PROGRAM()],[ac_cv_buildid=yes; readelf -n conftest$EXEEXT | grep -q NT_GNU_BUILD_ID || ac_cv_buildid=no],AC_MSG_FAILURE([unexpected compile failure]))]) ++if test "$ac_cv_buildid" = "no"; then ++ AC_MSG_WARN([compiler doesn't generate build-id by default]) ++ LDFLAGS="$LDFLAGS -Wl,--build-id" ++fi ++ + ZRELRO_LDFLAGS="-Wl,-z,relro" + AC_CACHE_CHECK([whether gcc supports $ZRELRO_LDFLAGS], ac_cv_zrelro, [dnl + save_LDFLAGS="$LDFLAGS" +diff --git a/tests/run-debuginfod-find.sh b/tests/run-debuginfod-find.sh +index 6f92fbf1..6533996a 100755 +--- a/tests/run-debuginfod-find.sh ++++ b/tests/run-debuginfod-find.sh +@@ -101,7 +101,7 @@ export DEBUGINFOD_TIMEOUT=10 + # cannot find it without debuginfod. + echo "int main() { return 0; }" > ${PWD}/prog.c + tempfiles prog.c +-gcc -g -o prog ${PWD}/prog.c ++gcc -Wl,--build-id -g -o prog ${PWD}/prog.c + testrun ${abs_top_builddir}/src/strip -g -f prog.debug ${PWD}/prog + BUILDID=`env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../src/readelf \ + -a prog | grep 'Build ID' | cut -d ' ' -f 7` +@@ -138,7 +138,7 @@ cmp $filename ${PWD}/prog.c + # Build another, non-stripped binary + echo "int main() { return 0; }" > ${PWD}/prog2.c + tempfiles prog2.c +-gcc -g -o prog2 ${PWD}/prog2.c ++gcc -Wl,--build-id -g -o prog2 ${PWD}/prog2.c + BUILDID2=`env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../src/readelf \ + -a prog2 | grep 'Build ID' | cut -d ' ' -f 7` + +--- a/configure 1970-01-01 01:00:00.000000000 +0100 ++++ b/configure 2019-12-11 14:18:11.812008097 +0100 +@@ -5325,6 +5325,43 @@ + dso_LDFLAGS="$dso_LDFLAGS $ZDEFS_LDFLAGS" + fi + ++# We really want build-ids. Warn and force generating them if gcc was ++# configure without --enable-linker-build-id ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler generates build-ids" >&5 ++$as_echo_n "checking whether the compiler generates build-ids... " >&6; } ++if ${ac_cv_buildid+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_buildid=yes; readelf -n conftest$EXEEXT | grep -q NT_GNU_BUILD_ID || ac_cv_buildid=no ++else ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++as_fn_error $? "unexpected compile failure ++See \`config.log' for more details" "$LINENO" 5; } ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_buildid" >&5 ++$as_echo "$ac_cv_buildid" >&6; } ++if test "$ac_cv_buildid" = "no"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: compiler doesn't generate build-id by default" >&5 ++$as_echo "$as_me: WARNING: compiler doesn't generate build-id by default" >&2;} ++ LDFLAGS="$LDFLAGS -Wl,--build-id" ++fi ++ + ZRELRO_LDFLAGS="-Wl,-z,relro" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc supports $ZRELRO_LDFLAGS" >&5 + $as_echo_n "checking whether gcc supports $ZRELRO_LDFLAGS... " >&6; } diff --git a/gnu/packages/patches/elfutils-tests-ptrace.patch b/gnu/packages/patches/elfutils-tests-ptrace.patch deleted file mode 100644 index cd46999063..0000000000 --- a/gnu/packages/patches/elfutils-tests-ptrace.patch +++ /dev/null @@ -1,64 +0,0 @@ -This patch allows us to skip tests that require PTRACE_ATTACH in situations -where PTRACE_ATTACH is only allowed when CAP_SYS_PTRACE is held (i.e., for -root, by default.) - -Reported at <https://bugzilla.redhat.com/show_bug.cgi?id=1210966>. - ---- elfutils-0.161/tests/run-deleted.sh 2015-04-11 16:38:33.028556235 +0200 -+++ elfutils-0.161/tests/run-deleted.sh 2015-04-11 16:46:15.012442185 +0200 -@@ -17,6 +17,15 @@ - - . $srcdir/backtrace-subr.sh - -+# Check whether the Yama policy allows us to use PTRACE_ATTACH. -+if [ -f /proc/sys/kernel/yama/ptrace_scope ] -+then -+ if [ `cat /proc/sys/kernel/yama/ptrace_scope` -ne 0 ] -+ then -+ exit 77 -+ fi -+fi -+ - tempfiles deleted deleted-lib.so - cp -p ${abs_builddir}/deleted ${abs_builddir}/deleted-lib.so . - ---- elfutils-0.161/tests/vdsosyms.c 2015-04-11 16:40:20.633461110 +0200 -+++ elfutils-0.161/tests/vdsosyms.c 2015-04-11 16:45:06.611866677 +0200 -@@ -23,6 +23,8 @@ - #include <stdio.h> - #include <string.h> - #include <sys/types.h> -+#include <sys/stat.h> -+#include <fcntl.h> - #include <unistd.h> - #include ELFUTILS_HEADER(dwfl) - -@@ -68,6 +70,7 @@ module_callback (Dwfl_Module *mod, void - int - main (int argc __attribute__ ((unused)), char **argv __attribute__ ((unused))) - { -+ static const char ptrace_scope_file[] = "/proc/sys/kernel/yama/ptrace_scope"; - static char *debuginfo_path; - static const Dwfl_Callbacks proc_callbacks = - { -@@ -76,6 +79,20 @@ main (int argc __attribute__ ((unused)), - - .find_elf = dwfl_linux_proc_find_elf, - }; -+ -+ /* Check whether the Yama policy allows us to use PTRACE_ATTACH. */ -+ int ptrace_scope = open (ptrace_scope_file, O_RDONLY); -+ if (ptrace_scope >= 0) -+ { -+ char buf[10]; -+ int count = read (ptrace_scope, buf, sizeof buf); -+ assert (count > 0); -+ if (buf[0] != '0') -+ /* We're not allowed, so skip this test. */ -+ return 77; -+ close (ptrace_scope); -+ } -+ - Dwfl *dwfl = dwfl_begin (&proc_callbacks); - if (dwfl == NULL) - error (2, 0, "dwfl_begin: %s", dwfl_errmsg (-1)); -- 2.18.1 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* [bug#38803] [PATCH] gnu: elfutils: Update to 0.178 2020-01-12 20:39 ` Mark Wielaard @ 2020-01-12 20:54 ` Marius Bakke 2020-01-13 0:03 ` Mark Wielaard 0 siblings, 1 reply; 16+ messages in thread From: Marius Bakke @ 2020-01-12 20:54 UTC (permalink / raw) To: Mark Wielaard, 38803; +Cc: Brett Gilio [-- Attachment #1: Type: text/plain, Size: 1474 bytes --] Mark, Mark Wielaard <mark@klomp.org> writes: > This introduces debuginfod support which requires a couple of new inputs. > > * gnu/local.ml (dist_patch_DATA): Remove elfutils-tests-ptrace.patch. > Add elfutils-0.178-tests-build-id.patch. > * gnu/packages/elf.scm (elfutils): Update to 0.178 > [native-inputs]: Add iproute and pkg-config. > [inputs]: Add cpio, libarchive, libmicrohttpd, libcurl, rpm and sqlite. > [synopsis]: Updated. > [description]: Updated. > [license]: List all licenses used. > * gnu/packages/patches/elfutils-tests-ptrace.patch: Removed. Fixed upstream. > * gnu/packages/patches/elfutils-0.178-tests-build-id.patch: New. Patches > backported from upstream git. Thank you for these improvements. Could you submit the synopsis and description update separately? I worry about all the new inputs. This patch effectively makes us unable to update all these inputs outside of the 'staging' or 'core-updates' cycles. What is the difference in 'guix size elfutils' with and without this patch? Would it make sense to have a separate 'elfutils-minimal' for use in Mesa, and expose the debuginfod-enabled variant as a separate package? We could "hide" the minimal variant so that end users get the expected package. Also, for the patches, please add links to upstream commits in the patch files, see some of the other patches for examples. I would also prefer if they were separate files, seeing as the two commits do different things. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 487 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* [bug#38803] [PATCH] gnu: elfutils: Update to 0.178 2020-01-12 20:54 ` Marius Bakke @ 2020-01-13 0:03 ` Mark Wielaard 2020-01-13 22:26 ` Marius Bakke 0 siblings, 1 reply; 16+ messages in thread From: Mark Wielaard @ 2020-01-13 0:03 UTC (permalink / raw) To: Marius Bakke; +Cc: Brett Gilio, 38803 [-- Attachment #1: Type: text/plain, Size: 6103 bytes --] Hi, On Sun, Jan 12, 2020 at 09:54:52PM +0100, Marius Bakke wrote: > Mark Wielaard <mark@klomp.org> writes: > > > This introduces debuginfod support which requires a couple of new inputs. > > > > * gnu/local.ml (dist_patch_DATA): Remove elfutils-tests-ptrace.patch. > > Add elfutils-0.178-tests-build-id.patch. > > * gnu/packages/elf.scm (elfutils): Update to 0.178 > > [native-inputs]: Add iproute and pkg-config. > > [inputs]: Add cpio, libarchive, libmicrohttpd, libcurl, rpm and sqlite. > > [synopsis]: Updated. > > [description]: Updated. > > [license]: List all licenses used. > > * gnu/packages/patches/elfutils-tests-ptrace.patch: Removed. Fixed upstream. > > * gnu/packages/patches/elfutils-0.178-tests-build-id.patch: New. Patches > > backported from upstream git. > > Thank you for these improvements. Could you submit the synopsis and > description update separately? Sure. Split patch as attached. > I worry about all the new inputs. This patch effectively makes us > unable to update all these inputs outside of the 'staging' or > 'core-updates' cycles. I am not sure I follow. This is my first patch. It simply adds some inputs needed for a new client/server program added upstream in the new version. > What is the difference in 'guix size elfutils' with and without this > patch? $ guix size elfutils store item total self /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29 37.4 35.8 47.2% /gnu/store/2plcy91lypnbbysb18ymnhaw3zwk8pg1-gcc-7.4.0-lib 70.0 32.6 43.0% /gnu/store/w0c5bcygj73chk2f6h0g8zhzpm80p1a5-elfutils-0.176 75.8 3.2 4.2% /gnu/store/cp72ncw4prnsga65n3pzll07hpsg524f-bash-static-5.0.7 1.6 1.6 2.1% /gnu/store/29jhbbg1hf557x8j53f9sxd9imlmf02a-bash-minimal-5.0.7 38.4 1.0 1.4% /gnu/store/lbip9isk25isymvnb159l115xnacb5j8-xz-5.2.4 72.0 0.9 1.2% /gnu/store/l86azr7r3p5631wj3kk329jl1y1mpjgy-bzip2-1.0.6 71.5 0.4 0.5% /gnu/store/qx7p7hiq90mi7r78hcr9cyskccy2j4bg-zlib-1.2.11 70.2 0.2 0.3% total: 75.8 MiB $ ./pre-inst-env guix size elfutils store item total self /gnu/store/1mkkv2caiqbdbbd256c4dirfi4kwsacv-guile-2.2.6 123.9 44.4 22.7% /gnu/store/352q0n1rrymfdk49mfr0cym3d8svz824-icu4c-64.2 108.6 37.5 19.2% /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29 37.4 35.8 18.3% /gnu/store/2plcy91lypnbbysb18ymnhaw3zwk8pg1-gcc-7.4.0-lib 70.0 32.6 16.7% /gnu/store/k2m4q2av9hw73hw2jx6qrxqdyh855398-openssl-1.1.1c 76.4 6.4 3.3% /gnu/store/hfvz18igm68p5yz7z4asn6ph363blp1z-gnutls-3.6.9 130.6 5.1 2.6% /gnu/store/slvjkd3brr6n554r2gk9djsjpm7l7xbs-bdb-5.3.28 74.4 4.4 2.2% /gnu/store/4rs159kgsa0l1svi5vbvn86in7z28bpl-mit-krb5-1.17 75.3 4.3 2.2% /gnu/store/bjxd9jzc560d6i3i35f5yy5mljk0ib6m-openldap-2.4.47 188.5 3.7 1.9% /gnu/store/w8qacdh5fqrzn08wz3n43d0czi00c4c6-elfutils-0.178 195.8 3.6 1.9% /gnu/store/y7qk8raalgvdnxcglvxa320cfxrjk1x6-gmp-6.1.2 72.6 2.6 1.3% /gnu/store/nsikjxykcaqa0zjpfmkqd569bngbv5nl-libunistring-0.9.10 72.4 2.4 1.2% /gnu/store/cp72ncw4prnsga65n3pzll07hpsg524f-bash-static-5.0.7 1.6 1.6 0.8% /gnu/store/i1cqaixp79vd3qwnyj1ll10pq6skm2wk-pkg-config-0.29.2 71.3 1.3 0.7% /gnu/store/3xs3dnc28p9fi8in7hkfcdx20incrdvq-libgc-7.6.12 71.9 1.2 0.6% /gnu/store/29jhbbg1hf557x8j53f9sxd9imlmf02a-bash-minimal-5.0.7 38.4 1.0 0.5% /gnu/store/4m8dlhrzis07787xznx73ang35c3lly1-curl-7.65.3 190.8 1.0 0.5% /gnu/store/lbip9isk25isymvnb159l115xnacb5j8-xz-5.2.4 72.0 0.9 0.5% /gnu/store/lvnybsygfd6gya6xbdv48g72lb0iqqzx-nettle-3.5.1 73.5 0.9 0.5% /gnu/store/f8aljw2qhv3d1br9czn8v5afbgfdrxkg-cyrus-sasl-2.1.27 83.3 0.9 0.4% /gnu/store/2792g0vczwsxnvqm9ja5g9hwvbrjlc4w-gdbm-1.18.1 70.7 0.7 0.4% /gnu/store/bvpnq3alwbavyk4663j4p9x9hakxwc4d-libatomic-ops-7.6.10 0.7 0.7 0.4% /gnu/store/33f8qhxa69dmd43yqdx3wq1b2hqjddgb-curl-7.65.3-doc 0.7 0.7 0.3% /gnu/store/7gabmw9siqrz79slpi1f8i90v3w1638x-libidn2-2.2.0 72.8 0.5 0.2% /gnu/store/l86azr7r3p5631wj3kk329jl1y1mpjgy-bzip2-1.0.6 71.5 0.4 0.2% /gnu/store/zavdh2z5mwkakjf1v98x43w1hzjzxkhl-nghttp2-1.39.1-lib 70.4 0.4 0.2% /gnu/store/qx7p7hiq90mi7r78hcr9cyskccy2j4bg-zlib-1.2.11 70.2 0.2 0.1% /gnu/store/lwz8fygpmmsw6h8vrllr56p7ssi5qx33-libtasn1-4.14 70.2 0.2 0.1% /gnu/store/zasz52va238yyaq68rjm8ljwl4ikij4p-libltdl-2.4.6 70.2 0.2 0.1% /gnu/store/ain96mrdwqd4s9shdd3s7m4syp5icdx5-libffi-3.2.1 70.1 0.1 0.1% total: 195.8 MiB > Would it make sense to have a separate 'elfutils-minimal' for use in > Mesa, and expose the debuginfod-enabled variant as a separate package? > We could "hide" the minimal variant so that end users get the expected > package. Sure. Other distros split elfutils into multiple packages. For example fedora has: %package libs %package devel %package devel-static %package libelf %package libelf-devel %package libelf-devel-static %package default-yama-scope %package debuginfod-client %package debuginfod-client-devel %package debuginfod With the main elfutils package containing all binaries except for debuginfod-find (the client) and debuginfod (the server). With appropriate requires/recommends (I don't yet know how those work in guix). > Also, for the patches, please add links to upstream commits in the patch > files, see some of the other patches for examples. I would also prefer > if they were separate files, seeing as the two commits do different > things. OK split in two. The tests patches are together, because they do the same thing. I am not sure an upstream git commit id link is better than simply the commit id, but added if it is more convenient. Cheers, Mark [-- Attachment #2: 0001-gnu-elfutils-Update-synopsis-and-description.patch --] [-- Type: text/x-diff, Size: 3014 bytes --] From 2f75d90d59542fdc31bb9cc4d477eb90c7986e99 Mon Sep 17 00:00:00 2001 From: Mark Wielaard <mark@klomp.org> Date: Sun, 12 Jan 2020 23:54:18 +0100 Subject: [PATCH 1/2] gnu: elfutils: Update synopsis and description * gnu/packages/elf.scm (elfutils): Update summaries. [synopsis]: Updated. [description]: Updated. --- gnu/packages/elf.scm | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm index 75caa54296..01bf0fcf89 100644 --- a/gnu/packages/elf.scm +++ b/gnu/packages/elf.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2020 Mark Wielaard <mark@klomp.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -54,9 +55,10 @@ (build-system gnu-build-system) ;; Separate programs because that's usually not what elfutils users want, - ;; and because they duplicate what Binutils provides. + ;; and because they duplicate what Binutils proAvides (but are named + ;; differently, using the eu- prefix and can be installed in parallel). (outputs '("out" ; libelf.so, elfutils/*.h, etc. - "bin")) ; ld, nm, objdump, etc. + "bin")) ; eu-nm, eu-objdump, etc. (arguments ;; Programs don't have libelf.so in their RUNPATH and libraries don't @@ -84,11 +86,21 @@ (native-inputs `(("m4" ,m4))) (inputs `(("zlib" ,zlib))) (home-page "https://sourceware.org/elfutils/") - (synopsis "Linker and ELF manipulation tools") + (synopsis "Collection of utilities and libraries to handle ELF files and +DWARF data") (description - "This package provides command-line tools to manipulate binaries in the -Executable and Linkable Format (@dfn{ELF}). This includes @command{ld}, -@command{ar}, @command{objdump}, @command{addr2line}, and more.") + "A collection of utilities and libraries to read, create and modify +Executable and Linkable Format (@dfn{ELF}) binary files, find and handle +Debugging With Arbitrary Record Formats (@dfn{DWARF}) debug data, symbols, +thread state and stacktraces for processes and core files on GNU/Linux. +Includes @file{libelf} for manipulating ELF files, @file{libdw} for inspecting +DWARF data and process state and utilities like @command{eu-stack} (to show +backtraces), @command{eu-nm} (for listing symbols from object files), +@command{eu-size} (for listing the section sizes of an object or archive +file), @command{eu-strip} (for discarding symbols), @command{eu-readelf} (to +see the raw ELF file structures), @command{eu-elflint} (to check for +well-formed ELF files), @command{eu-elfcompress} (to compress or decompress +ELF sections), and more.") ;; Libraries are dual-licensed LGPLv3.0+ | GPLv2, and programs are GPLv3+. (license lgpl3+))) -- 2.20.1 [-- Attachment #3: 0002-gnu-elfutils-Update-to-0.178.patch --] [-- Type: text/x-diff, Size: 14289 bytes --] From f3573f3ce83dad4958673ded37fc44607c9fd910 Mon Sep 17 00:00:00 2001 From: Mark Wielaard <mark@klomp.org> Date: Mon, 13 Jan 2020 00:55:10 +0100 Subject: [PATCH 2/2] gnu: elfutils: Update to 0.178 This introduces debuginfod support which requires a couple of new inputs. * gnu/local.ml (dist_patch_DATA): Remove elfutils-tests-ptrace.patch. Add elfutils-0.178-tests.patch and elfutils-0.178-build-id.patch. * gnu/packages/elf.scm (elfutils): Update to 0.178 [native-inputs]: Add iproute and pkg-config. [inputs]: Add cpio, libarchive, libmicrohttpd, libcurl, rpm and sqlite. [license]: List all licenses used. * gnu/packages/patches/elfutils-tests-ptrace.patch: Removed. Fixed upstream. * gnu/packages/patches/elfutils-0.178-tests-build-id.patch: New. Patches backported from upstream git. * gnu/packages/patches/elfutils-0.178-build-id.patch: Likewise. --- gnu/local.mk | 3 +- gnu/packages/elf.scm | 29 +++-- .../patches/elfutils-0.178-build-id.patch | 102 ++++++++++++++++++ .../patches/elfutils-0.178-tests.patch | 63 +++++++++++ .../patches/elfutils-tests-ptrace.patch | 64 ----------- 5 files changed, 190 insertions(+), 71 deletions(-) create mode 100644 gnu/packages/patches/elfutils-0.178-build-id.patch create mode 100644 gnu/packages/patches/elfutils-0.178-tests.patch delete mode 100644 gnu/packages/patches/elfutils-tests-ptrace.patch diff --git a/gnu/local.mk b/gnu/local.mk index 33cf439870..2d64b483ee 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -813,7 +813,8 @@ dist_patch_DATA = \ %D%/packages/patches/dstat-skip-devices-without-io.patch \ %D%/packages/patches/dvd+rw-tools-add-include.patch \ %D%/packages/patches/einstein-build.patch \ - %D%/packages/patches/elfutils-tests-ptrace.patch \ + %D%/packages/patches/elfutils-0.178-tests.patch \ + %D%/packages/patches/elfutils-0.178-build-id.patch \ %D%/packages/patches/elixir-path-length.patch \ %D%/packages/patches/elm-compiler-disable-reactor.patch \ %D%/packages/patches/elm-compiler-fix-map-key.patch \ diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm index 01bf0fcf89..05068c00a1 100644 --- a/gnu/packages/elf.scm +++ b/gnu/packages/elf.scm @@ -28,30 +28,39 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) - #:use-module ((guix licenses) #:select (gpl3+ lgpl3+ lgpl2.0+)) + #:use-module ((guix licenses) #:select (gpl2+ gpl3+ lgpl3+ lgpl2.0+ fdl1.3+)) #:use-module (gnu packages) + #:use-module (gnu packages backup) #:use-module (gnu packages compression) + #:use-module (gnu packages cpio) + #:use-module (gnu packages curl) #:use-module (gnu packages documentation) #:use-module (gnu packages gcc) + #:use-module (gnu packages gnunet) ; for libmicrohttpd + #:use-module (gnu packages linux) ; for iproute #:use-module (gnu packages m4) + #:use-module (gnu packages package-management) ; for rpm #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages sphinx) + #:use-module (gnu packages sqlite) + #:use-module (gnu packages sphinx) #:use-module (gnu packages texinfo) #:use-module (gnu packages xml)) (define-public elfutils (package (name "elfutils") - (version "0.176") + (version "0.178") (source (origin (method url-fetch) (uri (string-append "https://sourceware.org/elfutils/ftp/" version "/elfutils-" version ".tar.bz2")) (sha256 (base32 - "08qhrl4g6qqr4ga46jhh78y56a47p3msa5b2x1qhzbxhf71lfmzb")) - (patches (search-patches "elfutils-tests-ptrace.patch")))) + "1wm0yfcih4rjwbg59qgm4jyqmbsdmk6z5qajljyw9sfljq7a1rri")) + (patches (search-patches "elfutils-0.178-tests.patch" + "elfutils-0.178-build-id.patch")))) (build-system gnu-build-system) ;; Separate programs because that's usually not what elfutils users want, @@ -83,8 +92,16 @@ (("run-backtrace-native.sh") "")) #t))))) - (native-inputs `(("m4" ,m4))) - (inputs `(("zlib" ,zlib))) + (native-inputs `(("iproute", iproute) ;; needed in tests for ss + ("m4", m4) + ("pkg-config", pkg-config))) + (inputs `(("cpio", cpio) + ("libarchive", libarchive) + ("libmicrohttpd", libmicrohttpd) + ("libcurl", curl) + ("rpm", rpm) + ("sqlite", sqlite) + ("zlib" ,zlib))) (home-page "https://sourceware.org/elfutils/") (synopsis "Collection of utilities and libraries to handle ELF files and DWARF data") diff --git a/gnu/packages/patches/elfutils-0.178-build-id.patch b/gnu/packages/patches/elfutils-0.178-build-id.patch new file mode 100644 index 0000000000..099f55d500 --- /dev/null +++ b/gnu/packages/patches/elfutils-0.178-build-id.patch @@ -0,0 +1,102 @@ +https://sourceware.org/git/?p=elfutils.git;a=commit;h=cf1b5fe170fa24f32871ef284ff2968c73816f98 + +commit cf1b5fe170fa24f32871ef284ff2968c73816f98 +Author: Mark Wielaard <mark@klomp.org> +Date: Fri Dec 6 17:20:00 2019 +0100 + + Make sure to always build with build-ids. + + We really need build-ids for various things. If the system compiler + doesn't generate build-ids warn and generate them anyway for both the + binaries and the tests. + + Signed-off-by: Mark Wielaard <mark@klomp.org> + +diff --git a/configure.ac b/configure.ac +index 5a2dc373..36a6b6c2 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -197,6 +197,15 @@ if test "$ac_cv_zdefs" = "yes"; then + dso_LDFLAGS="$dso_LDFLAGS $ZDEFS_LDFLAGS" + fi + ++# We really want build-ids. Warn and force generating them if gcc was ++# configure without --enable-linker-build-id ++AC_CACHE_CHECK([whether the compiler generates build-ids], ac_cv_buildid, [dnl ++AC_LINK_IFELSE([AC_LANG_PROGRAM()],[ac_cv_buildid=yes; readelf -n conftest$EXEEXT | grep -q NT_GNU_BUILD_ID || ac_cv_buildid=no],AC_MSG_FAILURE([unexpected compile failure]))]) ++if test "$ac_cv_buildid" = "no"; then ++ AC_MSG_WARN([compiler doesn't generate build-id by default]) ++ LDFLAGS="$LDFLAGS -Wl,--build-id" ++fi ++ + ZRELRO_LDFLAGS="-Wl,-z,relro" + AC_CACHE_CHECK([whether gcc supports $ZRELRO_LDFLAGS], ac_cv_zrelro, [dnl + save_LDFLAGS="$LDFLAGS" +diff --git a/tests/run-debuginfod-find.sh b/tests/run-debuginfod-find.sh +index 6f92fbf1..6533996a 100755 +--- a/tests/run-debuginfod-find.sh ++++ b/tests/run-debuginfod-find.sh +@@ -101,7 +101,7 @@ export DEBUGINFOD_TIMEOUT=10 + # cannot find it without debuginfod. + echo "int main() { return 0; }" > ${PWD}/prog.c + tempfiles prog.c +-gcc -g -o prog ${PWD}/prog.c ++gcc -Wl,--build-id -g -o prog ${PWD}/prog.c + testrun ${abs_top_builddir}/src/strip -g -f prog.debug ${PWD}/prog + BUILDID=`env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../src/readelf \ + -a prog | grep 'Build ID' | cut -d ' ' -f 7` +@@ -138,7 +138,7 @@ cmp $filename ${PWD}/prog.c + # Build another, non-stripped binary + echo "int main() { return 0; }" > ${PWD}/prog2.c + tempfiles prog2.c +-gcc -g -o prog2 ${PWD}/prog2.c ++gcc -Wl,--build-id -g -o prog2 ${PWD}/prog2.c + BUILDID2=`env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../src/readelf \ + -a prog2 | grep 'Build ID' | cut -d ' ' -f 7` + +--- a/configure 1970-01-01 01:00:00.000000000 +0100 ++++ b/configure 2019-12-11 14:18:11.812008097 +0100 +@@ -5325,6 +5325,43 @@ + dso_LDFLAGS="$dso_LDFLAGS $ZDEFS_LDFLAGS" + fi + ++# We really want build-ids. Warn and force generating them if gcc was ++# configure without --enable-linker-build-id ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler generates build-ids" >&5 ++$as_echo_n "checking whether the compiler generates build-ids... " >&6; } ++if ${ac_cv_buildid+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_buildid=yes; readelf -n conftest$EXEEXT | grep -q NT_GNU_BUILD_ID || ac_cv_buildid=no ++else ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++as_fn_error $? "unexpected compile failure ++See \`config.log' for more details" "$LINENO" 5; } ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_buildid" >&5 ++$as_echo "$ac_cv_buildid" >&6; } ++if test "$ac_cv_buildid" = "no"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: compiler doesn't generate build-id by default" >&5 ++$as_echo "$as_me: WARNING: compiler doesn't generate build-id by default" >&2;} ++ LDFLAGS="$LDFLAGS -Wl,--build-id" ++fi ++ + ZRELRO_LDFLAGS="-Wl,-z,relro" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc supports $ZRELRO_LDFLAGS" >&5 + $as_echo_n "checking whether gcc supports $ZRELRO_LDFLAGS... " >&6; } diff --git a/gnu/packages/patches/elfutils-0.178-tests.patch b/gnu/packages/patches/elfutils-0.178-tests.patch new file mode 100644 index 0000000000..3faeaf4a4f --- /dev/null +++ b/gnu/packages/patches/elfutils-0.178-tests.patch @@ -0,0 +1,63 @@ +https://sourceware.org/git/?p=elfutils.git;a=commit;h=3f445279b60b16b6cb062921b74ae400344b4a68 + +commit 3f445279b60b16b6cb062921b74ae400344b4a68 +Author: Mark Wielaard <mark@klomp.org> +Date: Thu Dec 5 14:22:56 2019 +0100 + + tests: Run elfcompress under testrun in run-elfclassify.sh + + Otherwise elfcompress might run against the system libelf which might + be too old or missing. + + Signed-off-by: Mark Wielaard <mark@klomp.org> + +diff --git a/tests/run-elfclassify.sh b/tests/run-elfclassify.sh +index 5a849bbd..fb14139d 100755 +--- a/tests/run-elfclassify.sh ++++ b/tests/run-elfclassify.sh +@@ -267,7 +267,7 @@ $(echo $kmod_files | sed -e "s/ /\n/g") + EOF + + echo "gnu compressed kmods are unstripped" +-${abs_top_builddir}/src/elfcompress -t gnu --force $kmod_files ++testrun ${abs_top_builddir}/src/elfcompress -t gnu --force $kmod_files + testrun ${abs_top_builddir}/src/elfclassify --unstripped $kmod_files + testrun_compare ${abs_top_builddir}/src/elfclassify --unstripped --print $kmod_files <<EOF + $(echo $kmod_files | sed -e "s/ /\n/g") +@@ -312,7 +312,7 @@ $(echo $debug_files | sed -e "s/ /\n/g") + EOF + + echo "compress the debug sections and try again" +-${abs_top_builddir}/src/elfcompress -t gnu --force $debug_files ++testrun ${abs_top_builddir}/src/elfcompress -t gnu --force $debug_files + + echo "again unstripped" + testrun ${abs_top_builddir}/src/elfclassify --unstripped $debug_files + +https://sourceware.org/git/?p=elfutils.git;a=commit;h=eaffa79d52da7454044be53d28b525cebdb0093b + +commit eaffa79d52da7454044be53d28b525cebdb0093b +Author: Mark Wielaard <mark@klomp.org> +Date: Fri Dec 6 15:48:00 2019 +0100 + + tests: Run strip under testrun in run-debuginfod-find.sh + + Otherwise strip might run against the system libelf which might be too + old or missing. + + Signed-off-by: Mark Wielaard <mark@klomp.org> + +diff --git a/tests/run-debuginfod-find.sh b/tests/run-debuginfod-find.sh +index 0ade03b7..6f92fbf1 100755 +--- a/tests/run-debuginfod-find.sh ++++ b/tests/run-debuginfod-find.sh +@@ -102,7 +102,7 @@ export DEBUGINFOD_TIMEOUT=10 + echo "int main() { return 0; }" > ${PWD}/prog.c + tempfiles prog.c + gcc -g -o prog ${PWD}/prog.c +- ${abs_top_builddir}/src/strip -g -f prog.debug ${PWD}/prog ++testrun ${abs_top_builddir}/src/strip -g -f prog.debug ${PWD}/prog + BUILDID=`env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../src/readelf \ + -a prog | grep 'Build ID' | cut -d ' ' -f 7` + + diff --git a/gnu/packages/patches/elfutils-tests-ptrace.patch b/gnu/packages/patches/elfutils-tests-ptrace.patch deleted file mode 100644 index cd46999063..0000000000 --- a/gnu/packages/patches/elfutils-tests-ptrace.patch +++ /dev/null @@ -1,64 +0,0 @@ -This patch allows us to skip tests that require PTRACE_ATTACH in situations -where PTRACE_ATTACH is only allowed when CAP_SYS_PTRACE is held (i.e., for -root, by default.) - -Reported at <https://bugzilla.redhat.com/show_bug.cgi?id=1210966>. - ---- elfutils-0.161/tests/run-deleted.sh 2015-04-11 16:38:33.028556235 +0200 -+++ elfutils-0.161/tests/run-deleted.sh 2015-04-11 16:46:15.012442185 +0200 -@@ -17,6 +17,15 @@ - - . $srcdir/backtrace-subr.sh - -+# Check whether the Yama policy allows us to use PTRACE_ATTACH. -+if [ -f /proc/sys/kernel/yama/ptrace_scope ] -+then -+ if [ `cat /proc/sys/kernel/yama/ptrace_scope` -ne 0 ] -+ then -+ exit 77 -+ fi -+fi -+ - tempfiles deleted deleted-lib.so - cp -p ${abs_builddir}/deleted ${abs_builddir}/deleted-lib.so . - ---- elfutils-0.161/tests/vdsosyms.c 2015-04-11 16:40:20.633461110 +0200 -+++ elfutils-0.161/tests/vdsosyms.c 2015-04-11 16:45:06.611866677 +0200 -@@ -23,6 +23,8 @@ - #include <stdio.h> - #include <string.h> - #include <sys/types.h> -+#include <sys/stat.h> -+#include <fcntl.h> - #include <unistd.h> - #include ELFUTILS_HEADER(dwfl) - -@@ -68,6 +70,7 @@ module_callback (Dwfl_Module *mod, void - int - main (int argc __attribute__ ((unused)), char **argv __attribute__ ((unused))) - { -+ static const char ptrace_scope_file[] = "/proc/sys/kernel/yama/ptrace_scope"; - static char *debuginfo_path; - static const Dwfl_Callbacks proc_callbacks = - { -@@ -76,6 +79,20 @@ main (int argc __attribute__ ((unused)), - - .find_elf = dwfl_linux_proc_find_elf, - }; -+ -+ /* Check whether the Yama policy allows us to use PTRACE_ATTACH. */ -+ int ptrace_scope = open (ptrace_scope_file, O_RDONLY); -+ if (ptrace_scope >= 0) -+ { -+ char buf[10]; -+ int count = read (ptrace_scope, buf, sizeof buf); -+ assert (count > 0); -+ if (buf[0] != '0') -+ /* We're not allowed, so skip this test. */ -+ return 77; -+ close (ptrace_scope); -+ } -+ - Dwfl *dwfl = dwfl_begin (&proc_callbacks); - if (dwfl == NULL) - error (2, 0, "dwfl_begin: %s", dwfl_errmsg (-1)); -- 2.20.1 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* [bug#38803] [PATCH] gnu: elfutils: Update to 0.178 2020-01-13 0:03 ` Mark Wielaard @ 2020-01-13 22:26 ` Marius Bakke 2020-01-31 12:43 ` Mark Wielaard 0 siblings, 1 reply; 16+ messages in thread From: Marius Bakke @ 2020-01-13 22:26 UTC (permalink / raw) To: Mark Wielaard; +Cc: Brett Gilio, 38803 [-- Attachment #1: Type: text/plain, Size: 8120 bytes --] Mark Wielaard <mark@klomp.org> writes: > Hi, > > On Sun, Jan 12, 2020 at 09:54:52PM +0100, Marius Bakke wrote: >> Mark Wielaard <mark@klomp.org> writes: >> >> > This introduces debuginfod support which requires a couple of new inputs. >> > >> > * gnu/local.ml (dist_patch_DATA): Remove elfutils-tests-ptrace.patch. >> > Add elfutils-0.178-tests-build-id.patch. >> > * gnu/packages/elf.scm (elfutils): Update to 0.178 >> > [native-inputs]: Add iproute and pkg-config. >> > [inputs]: Add cpio, libarchive, libmicrohttpd, libcurl, rpm and sqlite. >> > [synopsis]: Updated. >> > [description]: Updated. >> > [license]: List all licenses used. >> > * gnu/packages/patches/elfutils-tests-ptrace.patch: Removed. Fixed upstream. >> > * gnu/packages/patches/elfutils-0.178-tests-build-id.patch: New. Patches >> > backported from upstream git. >> >> Thank you for these improvements. Could you submit the synopsis and >> description update separately? > > Sure. Split patch as attached. Thanks! The first patch did not apply for me, can you rebase on 'master'? Also, for the description, please use full sentences. I.e. keep the 'This package provides a collection ...' and 'This includes ...' instead of 'A collection ...' and 'Includes ...'. >> I worry about all the new inputs. This patch effectively makes us >> unable to update all these inputs outside of the 'staging' or >> 'core-updates' cycles. > > I am not sure I follow. This is my first patch. It simply adds some > inputs needed for a new client/server program added upstream in the > new version. OK, thanks for clarifying. >> What is the difference in 'guix size elfutils' with and without this >> patch? > > $ guix size elfutils > store item total self > /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29 37.4 35.8 47.2% > /gnu/store/2plcy91lypnbbysb18ymnhaw3zwk8pg1-gcc-7.4.0-lib 70.0 32.6 43.0% > /gnu/store/w0c5bcygj73chk2f6h0g8zhzpm80p1a5-elfutils-0.176 75.8 3.2 4.2% > /gnu/store/cp72ncw4prnsga65n3pzll07hpsg524f-bash-static-5.0.7 1.6 1.6 2.1% > /gnu/store/29jhbbg1hf557x8j53f9sxd9imlmf02a-bash-minimal-5.0.7 38.4 1.0 1.4% > /gnu/store/lbip9isk25isymvnb159l115xnacb5j8-xz-5.2.4 72.0 0.9 1.2% > /gnu/store/l86azr7r3p5631wj3kk329jl1y1mpjgy-bzip2-1.0.6 71.5 0.4 0.5% > /gnu/store/qx7p7hiq90mi7r78hcr9cyskccy2j4bg-zlib-1.2.11 70.2 0.2 0.3% > total: 75.8 MiB > > $ ./pre-inst-env guix size elfutils > store item total self > /gnu/store/1mkkv2caiqbdbbd256c4dirfi4kwsacv-guile-2.2.6 123.9 44.4 22.7% > /gnu/store/352q0n1rrymfdk49mfr0cym3d8svz824-icu4c-64.2 108.6 37.5 19.2% > /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29 37.4 35.8 18.3% > /gnu/store/2plcy91lypnbbysb18ymnhaw3zwk8pg1-gcc-7.4.0-lib 70.0 32.6 16.7% > /gnu/store/k2m4q2av9hw73hw2jx6qrxqdyh855398-openssl-1.1.1c 76.4 6.4 3.3% > /gnu/store/hfvz18igm68p5yz7z4asn6ph363blp1z-gnutls-3.6.9 130.6 5.1 2.6% > /gnu/store/slvjkd3brr6n554r2gk9djsjpm7l7xbs-bdb-5.3.28 74.4 4.4 2.2% > /gnu/store/4rs159kgsa0l1svi5vbvn86in7z28bpl-mit-krb5-1.17 75.3 4.3 2.2% > /gnu/store/bjxd9jzc560d6i3i35f5yy5mljk0ib6m-openldap-2.4.47 188.5 3.7 1.9% > /gnu/store/w8qacdh5fqrzn08wz3n43d0czi00c4c6-elfutils-0.178 195.8 3.6 1.9% > /gnu/store/y7qk8raalgvdnxcglvxa320cfxrjk1x6-gmp-6.1.2 72.6 2.6 1.3% > /gnu/store/nsikjxykcaqa0zjpfmkqd569bngbv5nl-libunistring-0.9.10 72.4 2.4 1.2% > /gnu/store/cp72ncw4prnsga65n3pzll07hpsg524f-bash-static-5.0.7 1.6 1.6 0.8% > /gnu/store/i1cqaixp79vd3qwnyj1ll10pq6skm2wk-pkg-config-0.29.2 71.3 1.3 0.7% > /gnu/store/3xs3dnc28p9fi8in7hkfcdx20incrdvq-libgc-7.6.12 71.9 1.2 0.6% > /gnu/store/29jhbbg1hf557x8j53f9sxd9imlmf02a-bash-minimal-5.0.7 38.4 1.0 0.5% > /gnu/store/4m8dlhrzis07787xznx73ang35c3lly1-curl-7.65.3 190.8 1.0 0.5% > /gnu/store/lbip9isk25isymvnb159l115xnacb5j8-xz-5.2.4 72.0 0.9 0.5% > /gnu/store/lvnybsygfd6gya6xbdv48g72lb0iqqzx-nettle-3.5.1 73.5 0.9 0.5% > /gnu/store/f8aljw2qhv3d1br9czn8v5afbgfdrxkg-cyrus-sasl-2.1.27 83.3 0.9 0.4% > /gnu/store/2792g0vczwsxnvqm9ja5g9hwvbrjlc4w-gdbm-1.18.1 70.7 0.7 0.4% > /gnu/store/bvpnq3alwbavyk4663j4p9x9hakxwc4d-libatomic-ops-7.6.10 0.7 0.7 0.4% > /gnu/store/33f8qhxa69dmd43yqdx3wq1b2hqjddgb-curl-7.65.3-doc 0.7 0.7 0.3% > /gnu/store/7gabmw9siqrz79slpi1f8i90v3w1638x-libidn2-2.2.0 72.8 0.5 0.2% > /gnu/store/l86azr7r3p5631wj3kk329jl1y1mpjgy-bzip2-1.0.6 71.5 0.4 0.2% > /gnu/store/zavdh2z5mwkakjf1v98x43w1hzjzxkhl-nghttp2-1.39.1-lib 70.4 0.4 0.2% > /gnu/store/qx7p7hiq90mi7r78hcr9cyskccy2j4bg-zlib-1.2.11 70.2 0.2 0.1% > /gnu/store/lwz8fygpmmsw6h8vrllr56p7ssi5qx33-libtasn1-4.14 70.2 0.2 0.1% > /gnu/store/zasz52va238yyaq68rjm8ljwl4ikij4p-libltdl-2.4.6 70.2 0.2 0.1% > /gnu/store/ain96mrdwqd4s9shdd3s7m4syp5icdx5-libffi-3.2.1 70.1 0.1 0.1% > total: 195.8 MiB Oof, that is a *huge* difference. Do you know where the extra references come from? I.e. could we move libelf.so to its own output to lose some of the runtime dependencies? Previously 'mesa' was using our other 'libelf' package, but I switched it to elfutils in commit 9b3b4c05a06bb8ef22350706b66043b5e93d8d66 because that's what "everyone else" do. Perhaps we should go back to that, thoughts? Then we don't have to worry as much about the size of elfutils. >> Would it make sense to have a separate 'elfutils-minimal' for use in >> Mesa, and expose the debuginfod-enabled variant as a separate package? >> We could "hide" the minimal variant so that end users get the expected >> package. > > Sure. Other distros split elfutils into multiple packages. For example fedora has: > > %package libs > %package devel > %package devel-static > %package libelf > %package libelf-devel > %package libelf-devel-static > %package default-yama-scope > %package debuginfod-client > %package debuginfod-client-devel > %package debuginfod Right. It makes sense to do something similar for Guix if many packages end up needing elfutils at runtime. > With the main elfutils package containing all binaries except for > debuginfod-find (the client) and debuginfod (the server). With > appropriate requires/recommends (I don't yet know how those work in > guix). Guix does not have a notion of 'recommends'. Each package is built with an exact set of inputs, and each build output is scanned for references to the inputs which are then stored as runtime dependencies. There are talks about "parameterized packages", where you could apply some vetted transformation to the build procedure, but advertising optional runtime dependencies is an open question. >> Also, for the patches, please add links to upstream commits in the patch >> files, see some of the other patches for examples. I would also prefer >> if they were separate files, seeing as the two commits do different >> things. > > OK split in two. The tests patches are together, because they do the > same thing. I am not sure an upstream git commit id link is better > than simply the commit id, but added if it is more convenient. As someone who frequently chases upstream repositories for patches, I certainly appreciate not having to figure out where their VCS is hosted. Sourceware does exceptionally well in that regard, but not everyone knows it. So, thanks for adding the links. :-) And sorry for all the difficult questions! It is a great first patch really, but it also has a heavy impact (see guix refresh -l elfutils). [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 487 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* [bug#38803] [PATCH] gnu: elfutils: Update to 0.178 2020-01-13 22:26 ` Marius Bakke @ 2020-01-31 12:43 ` Mark Wielaard 2020-01-31 15:49 ` Marius Bakke 0 siblings, 1 reply; 16+ messages in thread From: Mark Wielaard @ 2020-01-31 12:43 UTC (permalink / raw) To: Marius Bakke; +Cc: Brett Gilio, 38803 [-- Attachment #1: Type: text/plain, Size: 9165 bytes --] Hi Marius, Sorry for the long delay in replying. At Guix Days now, so maybe someone can help me with some of this :) On Mon, Jan 13, 2020 at 11:26:48PM +0100, Marius Bakke wrote: > >> Thank you for these improvements. Could you submit the synopsis and > >> description update separately? > > > > Sure. Split patch as attached. > > Thanks! The first patch did not apply for me, can you rebase on > 'master'? I think it already was. But reattached. If it gets mangled by one of the mail systems you can also find it here: https://code.wildebeest.org/git/user/mjw/guix/ on the elfutils-0.178 branch. > Also, for the description, please use full sentences. I.e. keep the > 'This package provides a collection ...' and 'This includes ...' instead > of 'A collection ...' and 'Includes ...'. OK. Done. See attached patch. > >> I worry about all the new inputs. This patch effectively makes us > >> unable to update all these inputs outside of the 'staging' or > >> 'core-updates' cycles. > > > > I am not sure I follow. This is my first patch. It simply adds some > > inputs needed for a new client/server program added upstream in the > > new version. > > OK, thanks for clarifying. > > >> What is the difference in 'guix size elfutils' with and without this > >> patch? > > > > $ guix size elfutils > > store item total self > > /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29 37.4 35.8 47.2% > > /gnu/store/2plcy91lypnbbysb18ymnhaw3zwk8pg1-gcc-7.4.0-lib 70.0 32.6 43.0% > > /gnu/store/w0c5bcygj73chk2f6h0g8zhzpm80p1a5-elfutils-0.176 75.8 3.2 4.2% > > /gnu/store/cp72ncw4prnsga65n3pzll07hpsg524f-bash-static-5.0.7 1.6 1.6 2.1% > > /gnu/store/29jhbbg1hf557x8j53f9sxd9imlmf02a-bash-minimal-5.0.7 38.4 1.0 1.4% > > /gnu/store/lbip9isk25isymvnb159l115xnacb5j8-xz-5.2.4 72.0 0.9 1.2% > > /gnu/store/l86azr7r3p5631wj3kk329jl1y1mpjgy-bzip2-1.0.6 71.5 0.4 0.5% > > /gnu/store/qx7p7hiq90mi7r78hcr9cyskccy2j4bg-zlib-1.2.11 70.2 0.2 0.3% > > total: 75.8 MiB > > > > $ ./pre-inst-env guix size elfutils > > store item total self > > /gnu/store/1mkkv2caiqbdbbd256c4dirfi4kwsacv-guile-2.2.6 123.9 44.4 22.7% > > /gnu/store/352q0n1rrymfdk49mfr0cym3d8svz824-icu4c-64.2 108.6 37.5 19.2% > > /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29 37.4 35.8 18.3% > > /gnu/store/2plcy91lypnbbysb18ymnhaw3zwk8pg1-gcc-7.4.0-lib 70.0 32.6 16.7% > > /gnu/store/k2m4q2av9hw73hw2jx6qrxqdyh855398-openssl-1.1.1c 76.4 6.4 3.3% > > /gnu/store/hfvz18igm68p5yz7z4asn6ph363blp1z-gnutls-3.6.9 130.6 5.1 2.6% > > /gnu/store/slvjkd3brr6n554r2gk9djsjpm7l7xbs-bdb-5.3.28 74.4 4.4 2.2% > > /gnu/store/4rs159kgsa0l1svi5vbvn86in7z28bpl-mit-krb5-1.17 75.3 4.3 2.2% > > /gnu/store/bjxd9jzc560d6i3i35f5yy5mljk0ib6m-openldap-2.4.47 188.5 3.7 1.9% > > /gnu/store/w8qacdh5fqrzn08wz3n43d0czi00c4c6-elfutils-0.178 195.8 3.6 1.9% > > /gnu/store/y7qk8raalgvdnxcglvxa320cfxrjk1x6-gmp-6.1.2 72.6 2.6 1.3% > > /gnu/store/nsikjxykcaqa0zjpfmkqd569bngbv5nl-libunistring-0.9.10 72.4 2.4 1.2% > > /gnu/store/cp72ncw4prnsga65n3pzll07hpsg524f-bash-static-5.0.7 1.6 1.6 0.8% > > /gnu/store/i1cqaixp79vd3qwnyj1ll10pq6skm2wk-pkg-config-0.29.2 71.3 1.3 0.7% > > /gnu/store/3xs3dnc28p9fi8in7hkfcdx20incrdvq-libgc-7.6.12 71.9 1.2 0.6% > > /gnu/store/29jhbbg1hf557x8j53f9sxd9imlmf02a-bash-minimal-5.0.7 38.4 1.0 0.5% > > /gnu/store/4m8dlhrzis07787xznx73ang35c3lly1-curl-7.65.3 190.8 1.0 0.5% > > /gnu/store/lbip9isk25isymvnb159l115xnacb5j8-xz-5.2.4 72.0 0.9 0.5% > > /gnu/store/lvnybsygfd6gya6xbdv48g72lb0iqqzx-nettle-3.5.1 73.5 0.9 0.5% > > /gnu/store/f8aljw2qhv3d1br9czn8v5afbgfdrxkg-cyrus-sasl-2.1.27 83.3 0.9 0.4% > > /gnu/store/2792g0vczwsxnvqm9ja5g9hwvbrjlc4w-gdbm-1.18.1 70.7 0.7 0.4% > > /gnu/store/bvpnq3alwbavyk4663j4p9x9hakxwc4d-libatomic-ops-7.6.10 0.7 0.7 0.4% > > /gnu/store/33f8qhxa69dmd43yqdx3wq1b2hqjddgb-curl-7.65.3-doc 0.7 0.7 0.3% > > /gnu/store/7gabmw9siqrz79slpi1f8i90v3w1638x-libidn2-2.2.0 72.8 0.5 0.2% > > /gnu/store/l86azr7r3p5631wj3kk329jl1y1mpjgy-bzip2-1.0.6 71.5 0.4 0.2% > > /gnu/store/zavdh2z5mwkakjf1v98x43w1hzjzxkhl-nghttp2-1.39.1-lib 70.4 0.4 0.2% > > /gnu/store/qx7p7hiq90mi7r78hcr9cyskccy2j4bg-zlib-1.2.11 70.2 0.2 0.1% > > /gnu/store/lwz8fygpmmsw6h8vrllr56p7ssi5qx33-libtasn1-4.14 70.2 0.2 0.1% > > /gnu/store/zasz52va238yyaq68rjm8ljwl4ikij4p-libltdl-2.4.6 70.2 0.2 0.1% > > /gnu/store/ain96mrdwqd4s9shdd3s7m4syp5icdx5-libffi-3.2.1 70.1 0.1 0.1% > > total: 195.8 MiB > > Oof, that is a *huge* difference. Do you know where the extra > references come from? Yes. There is are a new network client and server integrated with elfutils in 0.178. A new client library debuginfod-client.so which depends on libcurl, which pulls in most of the other stuff. elfutils libdw.so has a dependency on this, but it is dlopened when available. So it isn't a hard dependency. In other distros debuginfod-client is its own elfutils subpackage which is recommended, but not required. It allows libdw.so to pull in separate debuginfo files from the network when not locally installed (and an server URL is configured). Then there is also a little server based on libmicrohttpd and sqlite which is responsible for the other part of the new inputs. Other distros put this also in a separate elfutils subpackage. > I.e. could we move libelf.so to its own output to > lose some of the runtime dependencies? Sure. That is what most distros do. Have a elfutils-libelf package that provides just the libelf.so. > Previously 'mesa' was using our other 'libelf' package, but I switched > it to elfutils in commit 9b3b4c05a06bb8ef22350706b66043b5e93d8d66 > because that's what "everyone else" do. Perhaps we should go back to > that, thoughts? Then we don't have to worry as much about the size of > elfutils. I would get rid of the other libelf. It has been dead upstream for years. And last year the home page and upstream completely disappeared. Replacing libelf with elfutils-libelf for guix globally would make a lot of sense to me. I believe that is what most distros do these days. > >> Would it make sense to have a separate 'elfutils-minimal' for use in > >> Mesa, and expose the debuginfod-enabled variant as a separate package? > >> We could "hide" the minimal variant so that end users get the expected > >> package. > > > > Sure. Other distros split elfutils into multiple packages. For example fedora has: > > > > %package libs > > %package devel > > %package devel-static > > %package libelf > > %package libelf-devel > > %package libelf-devel-static > > %package default-yama-scope > > %package debuginfod-client > > %package debuginfod-client-devel > > %package debuginfod > > Right. It makes sense to do something similar for Guix if many packages > end up needing elfutils at runtime. I can do that. But it wouldn't change the inputs. The runtime dependencies of libelf on its own would be reduced to just zlib and gcclibs. The other libraries (without debuginfod-client) would just add a couple more compression libraries as runtime dependencies (although you realy want debuginfod-client also around so that it can be dlopened). Same for the binaries minus debuginfod-find and debuginfod. The debuginfod subpackage would be the only thing with runtime dependencies on everything (including libmicrohttpd and sqlite). > > With the main elfutils package containing all binaries except for > > debuginfod-find (the client) and debuginfod (the server). With > > appropriate requires/recommends (I don't yet know how those work in > > guix). > > Guix does not have a notion of 'recommends'. Each package is built with > an exact set of inputs, and each build output is scanned for references > to the inputs which are then stored as runtime dependencies. > > There are talks about "parameterized packages", where you could apply > some vetted transformation to the build procedure, but advertising > optional runtime dependencies is an open question. yeah. I don't actually like optional runtime dependencies. It is had to explain to users why some installs do work out of the box and others don't. So I would actually recommend debuginfod-client be a hard runtime dependency whenever possible. It was mainly done for other distros which did worry about bootstrapping. I'll go ask around here how to create a minimal package to see if that helps. Although it feels a bit odd. Upstream doesn't really support building just a subset of the package (there are some dependencies between the libraries and binaries which require things to be build together). Cheers, Mark [-- Attachment #2: 0001-gnu-elfutils-Update-synopsis-and-description.patch --] [-- Type: text/x-diff, Size: 3010 bytes --] From a686a10451f600889a20b9ca8b08c25253b349f4 Mon Sep 17 00:00:00 2001 From: Mark Wielaard <mark@klomp.org> Date: Sun, 12 Jan 2020 23:54:18 +0100 Subject: [PATCH] gnu: elfutils: Update synopsis and description * gnu/packages/elf.scm (elfutils): Update summaries. [synopsis]: Updated. [description]: Updated. --- gnu/packages/elf.scm | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm index 75caa54296..01bf0fcf89 100644 --- a/gnu/packages/elf.scm +++ b/gnu/packages/elf.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2020 Mark Wielaard <mark@klomp.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -54,9 +55,10 @@ (build-system gnu-build-system) ;; Separate programs because that's usually not what elfutils users want, - ;; and because they duplicate what Binutils provides. + ;; and because they duplicate what Binutils proAvides (but are named + ;; differently, using the eu- prefix and can be installed in parallel). (outputs '("out" ; libelf.so, elfutils/*.h, etc. - "bin")) ; ld, nm, objdump, etc. + "bin")) ; eu-nm, eu-objdump, etc. (arguments ;; Programs don't have libelf.so in their RUNPATH and libraries don't @@ -84,11 +86,21 @@ (native-inputs `(("m4" ,m4))) (inputs `(("zlib" ,zlib))) (home-page "https://sourceware.org/elfutils/") - (synopsis "Linker and ELF manipulation tools") + (synopsis "Collection of utilities and libraries to handle ELF files and +DWARF data") (description - "This package provides command-line tools to manipulate binaries in the -Executable and Linkable Format (@dfn{ELF}). This includes @command{ld}, -@command{ar}, @command{objdump}, @command{addr2line}, and more.") + "A collection of utilities and libraries to read, create and modify +Executable and Linkable Format (@dfn{ELF}) binary files, find and handle +Debugging With Arbitrary Record Formats (@dfn{DWARF}) debug data, symbols, +thread state and stacktraces for processes and core files on GNU/Linux. +Includes @file{libelf} for manipulating ELF files, @file{libdw} for inspecting +DWARF data and process state and utilities like @command{eu-stack} (to show +backtraces), @command{eu-nm} (for listing symbols from object files), +@command{eu-size} (for listing the section sizes of an object or archive +file), @command{eu-strip} (for discarding symbols), @command{eu-readelf} (to +see the raw ELF file structures), @command{eu-elflint} (to check for +well-formed ELF files), @command{eu-elfcompress} (to compress or decompress +ELF sections), and more.") ;; Libraries are dual-licensed LGPLv3.0+ | GPLv2, and programs are GPLv3+. (license lgpl3+))) -- 2.20.1 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* [bug#38803] [PATCH] gnu: elfutils: Update to 0.178 2020-01-31 12:43 ` Mark Wielaard @ 2020-01-31 15:49 ` Marius Bakke 2020-01-31 16:55 ` Mark Wielaard 0 siblings, 1 reply; 16+ messages in thread From: Marius Bakke @ 2020-01-31 15:49 UTC (permalink / raw) To: Mark Wielaard; +Cc: Brett Gilio, 38803 [-- Attachment #1: Type: text/plain, Size: 3644 bytes --] Hello! Mark Wielaard <mark@klomp.org> writes: >> Also, for the description, please use full sentences. I.e. keep the >> 'This package provides a collection ...' and 'This includes ...' instead >> of 'A collection ...' and 'Includes ...'. > > OK. Done. See attached patch. Sorry for the nit-picks, but the description still starts 'mid-sentence', i.e. "A collection ..." instead of "elfutils is a collection ...". If you think it's better this way I'm fine with that, it's just that elfutils will "stand out" compared to its neighbours at e.g. <https://guix.gnu.org/packages/E/page/3/>. :-) > Yes. There is are a new network client and server integrated with > elfutils in 0.178. A new client library debuginfod-client.so which > depends on libcurl, which pulls in most of the other stuff. elfutils > libdw.so has a dependency on this, but it is dlopened when > available. So it isn't a hard dependency. In other distros > debuginfod-client is its own elfutils subpackage which is recommended, > but not required. It allows libdw.so to pull in separate debuginfo > files from the network when not locally installed (and an server URL > is configured). Then there is also a little server based on > libmicrohttpd and sqlite which is responsible for the other part of > the new inputs. Other distros put this also in a separate elfutils > subpackage. Thanks for the detailed clarification. Re: dlopen, we typically patch in the absolute file names to avoid surprises on foreign distributions (and getting deterministic results in general), so we should probably do it here too. >> Previously 'mesa' was using our other 'libelf' package, but I switched >> it to elfutils in commit 9b3b4c05a06bb8ef22350706b66043b5e93d8d66 >> because that's what "everyone else" do. Perhaps we should go back to >> that, thoughts? Then we don't have to worry as much about the size of >> elfutils. > > I would get rid of the other libelf. It has been dead upstream for > years. And last year the home page and upstream completely > disappeared. Replacing libelf with elfutils-libelf for guix globally > would make a lot of sense to me. I believe that is what most distros > do these days. Sounds good. Can you submit a patch that replaces libelf with elfutils for all packages except GCC? > I can do that. But it wouldn't change the inputs. The runtime > dependencies of libelf on its own would be reduced to just zlib and > gcclibs. The other libraries (without debuginfod-client) would just > add a couple more compression libraries as runtime dependencies > (although you realy want debuginfod-client also around so that it can > be dlopened). Same for the binaries minus debuginfod-find and > debuginfod. The debuginfod subpackage would be the only thing with > runtime dependencies on everything (including libmicrohttpd and > sqlite). I think a single :bin output with all the executables is fine. Regarding separate :libelf output, I suppose just copying libelf.so* should do the trick. Maybe we need to adjust some pkg-config files too? I can look into this if you like. > I'll go ask around here how to create a minimal package to see if that > helps. Although it feels a bit odd. Upstream doesn't really support > building just a subset of the package (there are some dependencies > between the libraries and binaries which require things to be build > together). If we are to use this libelf for 'gcc', we'll need to find a way to avoid the extraneous inputs to avoid complicating the bootstrap graph too much. We can always ignore the build system altogether and roll our own command line for the GCC variant though. Thanks, Marius [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 487 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* [bug#38803] [PATCH] gnu: elfutils: Update to 0.178 2020-01-31 15:49 ` Marius Bakke @ 2020-01-31 16:55 ` Mark Wielaard 2020-02-05 20:41 ` Marius Bakke 0 siblings, 1 reply; 16+ messages in thread From: Mark Wielaard @ 2020-01-31 16:55 UTC (permalink / raw) To: Marius Bakke; +Cc: Brett Gilio, 38803 [-- Attachment #1: Type: text/plain, Size: 816 bytes --] On Fri, Jan 31, 2020 at 04:49:44PM +0100, Marius Bakke wrote: > Mark Wielaard <mark@klomp.org> writes: > > >> Also, for the description, please use full sentences. I.e. keep the > >> 'This package provides a collection ...' and 'This includes ...' instead > >> of 'A collection ...' and 'Includes ...'. > > > > OK. Done. See attached patch. > > Sorry for the nit-picks, but the description still starts > 'mid-sentence', i.e. "A collection ..." instead of "elfutils is a > collection ...". > > If you think it's better this way I'm fine with that, it's just that > elfutils will "stand out" compared to its neighbours at > e.g. <https://guix.gnu.org/packages/E/page/3/>. :-) OK, OK. Lets see if I can at least get the patch that does only update the descriptions correct. New version attached. Cheers, Mark [-- Attachment #2: 0001-gnu-elfutils-Update-synopsis-and-description.patch --] [-- Type: text/x-diff, Size: 3032 bytes --] From 6a9f7efd89f6617766640b3e2f7a232977bf98a4 Mon Sep 17 00:00:00 2001 From: Mark Wielaard <mark@klomp.org> Date: Sun, 12 Jan 2020 23:54:18 +0100 Subject: [PATCH] gnu: elfutils: Update synopsis and description * gnu/packages/elf.scm (elfutils): Update summaries. [synopsis]: Updated. [description]: Updated. --- gnu/packages/elf.scm | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm index 75caa54296..22d03fba84 100644 --- a/gnu/packages/elf.scm +++ b/gnu/packages/elf.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2020 Mark Wielaard <mark@klomp.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -54,9 +55,10 @@ (build-system gnu-build-system) ;; Separate programs because that's usually not what elfutils users want, - ;; and because they duplicate what Binutils provides. + ;; and because they duplicate what Binutils proAvides (but are named + ;; differently, using the eu- prefix and can be installed in parallel). (outputs '("out" ; libelf.so, elfutils/*.h, etc. - "bin")) ; ld, nm, objdump, etc. + "bin")) ; eu-nm, eu-objdump, etc. (arguments ;; Programs don't have libelf.so in their RUNPATH and libraries don't @@ -84,11 +86,21 @@ (native-inputs `(("m4" ,m4))) (inputs `(("zlib" ,zlib))) (home-page "https://sourceware.org/elfutils/") - (synopsis "Linker and ELF manipulation tools") + (synopsis "Collection of utilities and libraries to handle ELF files and +DWARF data") (description - "This package provides command-line tools to manipulate binaries in the -Executable and Linkable Format (@dfn{ELF}). This includes @command{ld}, -@command{ar}, @command{objdump}, @command{addr2line}, and more.") + "Elfutils is a collection of utilities and libraries to read, create and +modify Executable and Linkable Format (@dfn{ELF}) binary files, find and +handle Debugging With Arbitrary Record Formats (@dfn{DWARF}) debug data, +symbols, thread state and stacktraces for processes and core files on +GNU/Linux. Elfutils includes @file{libelf} for manipulating ELF files, +@file{libdw} for inspecting DWARF data and process state and utilities like +@command{eu-stack} (to show backtraces), @command{eu-nm} (for listing symbols +from object files), @command{eu-size} (for listing the section sizes of an +object or archive file), @command{eu-strip} (for discarding symbols), +@command{eu-readelf} (to see the raw ELF file structures), +@command{eu-elflint} (to check for well-formed ELF files), +@command{eu-elfcompress} (to compress or decompress ELF sections), and more.") ;; Libraries are dual-licensed LGPLv3.0+ | GPLv2, and programs are GPLv3+. (license lgpl3+))) -- 2.24.1 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* [bug#38803] [PATCH] gnu: elfutils: Update to 0.178 2020-01-31 16:55 ` Mark Wielaard @ 2020-02-05 20:41 ` Marius Bakke 2020-02-06 11:04 ` Mark Wielaard 0 siblings, 1 reply; 16+ messages in thread From: Marius Bakke @ 2020-02-05 20:41 UTC (permalink / raw) To: Mark Wielaard; +Cc: Brett Gilio, 38803 [-- Attachment #1: Type: text/plain, Size: 793 bytes --] Mark Wielaard <mark@klomp.org> writes: > OK, OK. Lets see if I can at least get the patch that does only update > the descriptions correct. New version attached. Thanks! I fixed the comment typo and committed. The new description should show up on <https://guix.gnu.org/packages/E/page/3/> shortly. :-) Note that I had to convert the patch from ISO-8859-14 to UTF-8 in order to make git accept it: $ iconv -f ISO-8859-14 -t UTF-8 0001-gnu-elfutils-Update-synopsis-and-description.patch | git am -s Not sure what happened, perhaps it got mangled by your MUA? For the 0.178 update, perhaps we can add the new version as a separate variable until we figure out how to isolate libelf.so? That can be done on the 'master' branch as long as we don't change the current 'elfutils' package. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 487 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* [bug#38803] [PATCH] gnu: elfutils: Update to 0.178 2020-02-05 20:41 ` Marius Bakke @ 2020-02-06 11:04 ` Mark Wielaard 2020-02-06 11:36 ` Marius Bakke 2020-02-06 13:23 ` Mark Wielaard 0 siblings, 2 replies; 16+ messages in thread From: Mark Wielaard @ 2020-02-06 11:04 UTC (permalink / raw) To: Marius Bakke; +Cc: Brett Gilio, 38803 Hi Marius, On Wed, 2020-02-05 at 21:41 +0100, Marius Bakke wrote: > Mark Wielaard <mark@klomp.org> writes: > > > OK, OK. Lets see if I can at least get the patch that does only update > > the descriptions correct. New version attached. > > Thanks! I fixed the comment typo and committed. The new description > should show up on <https://guix.gnu.org/packages/E/page/3/> shortly. :-) Awesome. Looks good. Thanks. > Note that I had to convert the patch from ISO-8859-14 to UTF-8 in order > to make git accept it: > > $ iconv -f ISO-8859-14 -t UTF-8 0001-gnu-elfutils-Update-synopsis-and-description.patch | git am -s > > Not sure what happened, perhaps it got mangled by your MUA? That is indeed really odd. I definitely didn't want to encode any Celtic languages (I do speak Dutch, but not Gaelic or Breton). > For the 0.178 update, perhaps we can add the new version as a separate > variable until we figure out how to isolate libelf.so? That can be done > on the 'master' branch as long as we don't change the current 'elfutils' > package. I am not sure I completely understand your proposal. When you say 'separate variable', Do you mean we would (define-public elfutils-0.178 ...)? And changing the default libelf implementation should be a separate bug I assume. BTW. Upstream is now debating some of the dependencies for other distros that have bootstrapping requirements too: https://sourceware.org/bugzilla/show_bug.cgi?id=25509 Cheers, Mark ^ permalink raw reply [flat|nested] 16+ messages in thread
* [bug#38803] [PATCH] gnu: elfutils: Update to 0.178 2020-02-06 11:04 ` Mark Wielaard @ 2020-02-06 11:36 ` Marius Bakke 2020-02-06 13:23 ` Mark Wielaard 1 sibling, 0 replies; 16+ messages in thread From: Marius Bakke @ 2020-02-06 11:36 UTC (permalink / raw) To: Mark Wielaard; +Cc: Brett Gilio, 38803 [-- Attachment #1: Type: text/plain, Size: 899 bytes --] Mark Wielaard <mark@klomp.org> writes: >> For the 0.178 update, perhaps we can add the new version as a separate >> variable until we figure out how to isolate libelf.so? That can be done >> on the 'master' branch as long as we don't change the current 'elfutils' >> package. > > I am not sure I completely understand your proposal. When you say > 'separate variable', Do you mean we would (define-public elfutils-0.178 > ...)? Yes. See e.g 'gdb/next' or 'help2man/latest' for some examples of inheritance. > And changing the default libelf implementation should be a separate bug > I assume. Indeed. I suggest we defer that until we have 0.178+ in properly. > BTW. Upstream is now debating some of the dependencies for other > distros that have bootstrapping requirements too: > https://sourceware.org/bugzilla/show_bug.cgi?id=25509 Good to know we're not alone! [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 487 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* [bug#38803] [PATCH] gnu: elfutils: Update to 0.178 2020-02-06 11:04 ` Mark Wielaard 2020-02-06 11:36 ` Marius Bakke @ 2020-02-06 13:23 ` Mark Wielaard 2020-02-06 14:31 ` Marius Bakke 1 sibling, 1 reply; 16+ messages in thread From: Mark Wielaard @ 2020-02-06 13:23 UTC (permalink / raw) To: Marius Bakke; +Cc: Brett Gilio, 38803 On Thu, 2020-02-06 at 12:04 +0100, Mark Wielaard wrote: > BTW. Upstream is now debating some of the dependencies for other > distros that have bootstrapping requirements too: > https://sourceware.org/bugzilla/show_bug.cgi?id=25509 It would be nice if someone could comment on that bug who better understands the bootstrap requirements for the guix toolchain. Note that this is relevant to other packages too because we are very eager to improve the debugability of the whole toolchain and so have submitted patches to various core packages to support debuginfod-client like binutils, gdb, annocheck, etc. Which means they all eventually depend on everything libcurl depends on: https://sourceware.org/elfutils/Debuginfod.html ^ permalink raw reply [flat|nested] 16+ messages in thread
* [bug#38803] [PATCH] gnu: elfutils: Update to 0.178 2020-02-06 13:23 ` Mark Wielaard @ 2020-02-06 14:31 ` Marius Bakke 0 siblings, 0 replies; 16+ messages in thread From: Marius Bakke @ 2020-02-06 14:31 UTC (permalink / raw) To: Mark Wielaard; +Cc: Brett Gilio, 38803 [-- Attachment #1: Type: text/plain, Size: 1264 bytes --] Mark Wielaard <mark@klomp.org> writes: > On Thu, 2020-02-06 at 12:04 +0100, Mark Wielaard wrote: >> BTW. Upstream is now debating some of the dependencies for other >> distros that have bootstrapping requirements too: >> https://sourceware.org/bugzilla/show_bug.cgi?id=25509 > > It would be nice if someone could comment on that bug who better > understands the bootstrap requirements for the guix toolchain. Note > that this is relevant to other packages too because we are very eager > to improve the debugability of the whole toolchain and so have > submitted patches to various core packages to support debuginfod-client > like binutils, gdb, annocheck, etc. Which means they all eventually > depend on everything libcurl depends on: > https://sourceware.org/elfutils/Debuginfod.html I think that the Guix toolchain (the one used in package builds) should stay the same (no debuginfod support), and that we should add debuginfod-enabled variants that gets included when users install 'binutils' or 'gcc-toolchain' manually. How does that sound? So our only concern will be how to use Elfutils' libelf.so for GCC, which should be straightforward with an "elfutils-minimal" variant that does not pull in the debuginfo dependencies. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 487 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* [bug#38803] [PATCH] gnu: elfutils: Update to 0.178 2019-12-30 1:41 [bug#38803] [PATCH] gnu: elfutils: Update to 0.178 Mark Wielaard 2019-12-30 1:44 ` Brett Gilio 2020-01-12 20:39 ` Mark Wielaard @ 2023-09-02 18:39 ` Vagrant Cascadian 2 siblings, 0 replies; 16+ messages in thread From: Vagrant Cascadian @ 2023-09-02 18:39 UTC (permalink / raw) To: Mark Wielaard, 38803; +Cc: control, Marius Bakke, Brett Gilio [-- Attachment #1: Type: text/plain, Size: 534 bytes --] retitle 38803 gnu: elfutils: Enable debuginfod thanks On 2019-12-30, Mark Wielaard wrote: > This introduces debuginfod support which requires a couple of new inputs. > > * gnu/packages/elf.scm (elfutils): Update to 0.178 Newer versions of elfutils have been included: 1a97959b22668af999ebc79c3ddc1664420eadd4 gnu: elfutils: Update to 0.187. The outstanding issue from this bug is to enable the debuginfod server, which is referred to in the comments for the current elfutils package. Retitled appropriately. live well, vagrant [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 227 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2023-09-02 18:40 UTC | newest] Thread overview: 16+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-12-30 1:41 [bug#38803] [PATCH] gnu: elfutils: Update to 0.178 Mark Wielaard 2019-12-30 1:44 ` Brett Gilio 2019-12-30 2:04 ` Mark Wielaard 2020-01-12 20:39 ` Mark Wielaard 2020-01-12 20:54 ` Marius Bakke 2020-01-13 0:03 ` Mark Wielaard 2020-01-13 22:26 ` Marius Bakke 2020-01-31 12:43 ` Mark Wielaard 2020-01-31 15:49 ` Marius Bakke 2020-01-31 16:55 ` Mark Wielaard 2020-02-05 20:41 ` Marius Bakke 2020-02-06 11:04 ` Mark Wielaard 2020-02-06 11:36 ` Marius Bakke 2020-02-06 13:23 ` Mark Wielaard 2020-02-06 14:31 ` Marius Bakke 2023-09-02 18:39 ` Vagrant Cascadian
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).