unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
blob 099f55d5004976658a92cfc8175cb6c09faf98ae 4016 bytes (raw)
name: gnu/packages/patches/elfutils-0.178-build-id.patch 	 # note: path name is non-authoritative(*)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
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; }

debug log:

solving 099f55d500 ...
found 099f55d500 in https://yhetil.org/guix-patches/20200113000345.GA2825@wildebeest.org/

applying [1/1] https://yhetil.org/guix-patches/20200113000345.GA2825@wildebeest.org/
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

1:7: trailing whitespace.
https://sourceware.org/git/?p=elfutils.git;a=commit;h=cf1b5fe170fa24f32871ef284ff2968c73816f98 
1:14: trailing whitespace.
    
1:18: trailing whitespace.
    
1:26: space before tab in indent.
 	dso_LDFLAGS="$dso_LDFLAGS $ZDEFS_LDFLAGS"
1:28: trailing whitespace.
 
Checking patch gnu/packages/patches/elfutils-0.178-build-id.patch...
Applied patch gnu/packages/patches/elfutils-0.178-build-id.patch cleanly.
warning: squelched 3 whitespace errors
warning: 8 lines add whitespace errors.

index at:
100644 099f55d5004976658a92cfc8175cb6c09faf98ae	gnu/packages/patches/elfutils-0.178-build-id.patch

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

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).