Skip to contentSkip to conversation

package/strace: bump to 4.21

PATCH New Romain Naour 4 participants 11 messages Feb 25, 2018 – May 20, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/3 package/strace: bump to 4.21

Switch to the new upstream url [1].

Use new --disable-mpers option instead of
st_cv_m32_mpers=no and st_cv_mx32_mpers=no

Restore previous mpers check behaviour (strace < 4.21) by specifying --enable-mpers=check. Otherwire strace enforces mpers support by default which require a specific compiler. See [2].

[1] https://github.com/strace/strace/commit/51d40516df28d03e693fd782a4167d7bcf4c6ad3
[2] https://lists.strace.io/pipermail/strace-devel/2018-February/007924.html

---
Even if there are 4.21 archive file hashes provided by sourceforge, don't use them since we just switched to github.

---
 package/strace/strace.hash |  7 ++-----
 package/strace/strace.mk   | 12 ++++++++----
 2 files changed, 10 insertions(+), 9 deletions(-)
package/strace/strace.hash +2 -5
index 404be39788..f05df2bb5e 100644
@@ -1,7 +1,4 @@
-# From https://sourceforge.net/projects/strace/files/strace/4.20/
-md5	f2271ab0fac49ebee9cbd7f3469227cb	strace-4.20.tar.xz
-sha1	9cebc754af3434e4027a07745770892f685c0316	strace-4.20.tar.xz
 # Locally calculated after checking signature
-# https://sourceforge.net/projects/strace/files/strace/4.20/strace-4.20.tar.xz.asc
-sha256	5bf3148dd17306a42566f7da17368fdd781afa147db05ea63a4ca2b50f58c523	strace-4.20.tar.xz
+# https://github.com/strace/strace/releases/download/v4.21/strace-4.21.tar.xz.asc
+sha256	5c7688db44073e94c59a5627744e5699454419824cc8166e8bcfd7ec58375c37	strace-4.21.tar.xz
 sha256	ea7ff222f36c9df0aa2924a8f7c7d2aec3ea11e752feba4b15ec79b695b6236a	COPYING
package/strace/strace.mk +8 -4
index ba57774e5d..e292c60f2a 100644
@@ -4,18 +4,22 @@
 #
 ################################################################################
 
-STRACE_VERSION = 4.20
+STRACE_VERSION = 4.21
 STRACE_SOURCE = strace-$(STRACE_VERSION).tar.xz
-STRACE_SITE = http://downloads.sourceforge.net/project/strace/strace/$(STRACE_VERSION)
+STRACE_SITE = https://github.com/strace/strace/releases/download/v$(STRACE_VERSION)
 STRACE_LICENSE = BSD-3-Clause
 STRACE_LICENSE_FILES = COPYING
 
 # strace bundle some kernel headers to build libmpers, this mixes userspace
 # headers and kernel headers which break the build with musl.
 # The stddef.h from gcc is used instead of the one from musl.
+# Restore previous mpers check behaviour (strace < 4.21) by specifying
+# --enable-mpers=check. Otherwire strace enforces mpers support by default
+# which require a specific compiler.
 ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y)
-STRACE_CONF_OPTS += st_cv_m32_mpers=no \
-	st_cv_mx32_mpers=no
+STRACE_CONF_OPTS += --disable-mpers
+else
+STRACE_CONF_OPTS += --enable-mpers=check
 endif
 
 define STRACE_REMOVE_STRACE_GRAPH
Signature · 1 line
2.14.3
#1 lore raw

PATCH 2/3 package/strace: add missing libunwind optional dependency

This improve the reproducible build.

---
 package/strace/strace.mk | 7 +++++++
 1 file changed, 7 insertions(+)
package/strace/strace.mk +7 -0
index e292c60f2a..9c1fab3871 100644
@@ -10,6 +10,13 @@ STRACE_SITE = https://github.com/strace/strace/releases/download/v$(STRACE_VERSI
 STRACE_LICENSE = BSD-3-Clause
 STRACE_LICENSE_FILES = COPYING
 
+ifeq ($(BR2_PACKAGE_LIBUNWIND),y)
+STRACE_DEPENDENCIES += libunwind
+STRACE_CONF_OPTS += --with-libunwind
+else
+STRACE_CONF_OPTS += --without-libunwind
+endif
+
 # strace bundle some kernel headers to build libmpers, this mixes userspace
 # headers and kernel headers which break the build with musl.
 # The stddef.h from gcc is used instead of the one from musl.
Signature · 1 line
2.14.3
#2 lore raw

PATCH 2/3 package/strace: add missing libunwind optional dependency

Hi,

2018-02-25 19:34 GMT+01:00 Romain Naour <[email protected]>:

Quoted 12 lines

This improve the reproducible build.

---
 package/strace/strace.mk | 7 +++++++
 1 file changed, 7 insertions(+)
package/strace/strace.mk +0 -0
index e292c60f2a..9c1fab3871 100644

package/strace/strace.mk STRACE_SITE = https://github.com/strace/strace/releases/download/v$(STRACE_VERSI · line 19

Quoted 10 lines
package/strace/strace.mk +7 -0
@@ -10,6 +10,13 @@ STRACE_SITE = https://github.com/strace/strace/releases/download/v$(STRACE_VERSI
 STRACE_LICENSE = BSD-3-Clause
 STRACE_LICENSE_FILES = COPYING
 
+ifeq ($(BR2_PACKAGE_LIBUNWIND),y)
+STRACE_DEPENDENCIES += libunwind
+STRACE_CONF_OPTS += --with-libunwind
+else
+STRACE_CONF_OPTS += --without-libunwind
+endif
+

As far as I know, the main (only?) reason for a libunwind dependency is to support 'strace -k' to get callstack info. Perhaps it would be useful to update the Config.in file to hint about this, i.e. that users should enable libunwind manually if they want 'strace -k' support.

In our local tree, I had added a config option to strace for that, but perhaps that is overkill?

/Thomas

#3 lore raw

PATCH 2/3 package/strace: add missing libunwind optional dependency

Hi Thomas,

Le 25/02/2018 ? 21:28, Thomas De Schampheleire a ?crit?:

Quoted 18 lines

Hi,

2018-02-25 19:34 GMT+01:00 Romain Naour <[email protected]>:

Quoted 15 lines

This improve the reproducible build.

---
 package/strace/strace.mk | 7 +++++++
 1 file changed, 7 insertions(+)
package/strace/strace.mk +0 -0
index e292c60f2a..9c1fab3871 100644
@@ -10,6 +10,13 @@ STRACE_SITE = https://github.com/strace/strace/releases/download/v$(STRACE_VERSI
 STRACE_LICENSE = BSD-3-Clause
 STRACE_LICENSE_FILES = COPYING
 
Quoted 13 lines

package/strace/strace.mk STRACE_SITE = https://github.com/strace/strace/releases/download/v$(STRACE_VERSI · line 19

Quoted 7 lines
package/strace/strace.mk +7 -0
+ifeq ($(BR2_PACKAGE_LIBUNWIND),y)
+STRACE_DEPENDENCIES += libunwind
+STRACE_CONF_OPTS += --with-libunwind
+else
+STRACE_CONF_OPTS += --without-libunwind
+endif
+

As far as I know, the main (only?) reason for a libunwind dependency is to support 'strace -k' to get callstack info. Perhaps it would be useful to update the Config.in file to hint about this, i.e. that users should enable libunwind manually if they want 'strace -k' support.

Ok, why not.

Quoted 3 lines

In our local tree, I had added a config option to strace for that, but perhaps that is overkill?

Most packages optional dependencies are handled like this, otherwise we have to maintain one config option for each optional dependencies.

Best regards,
Romain

Quoted 3 lines

/Thomas

#4 lore raw

PATCH 2/3 package/strace: add missing libunwind optional dependency

In reply to Thomas De Schampheleire

Hello Thomas,

Quoted 2 lines · Thomas De Schampheleire

In our local tree, I had added a config option to strace for that, but perhaps that is overkill?

Are you saying that you have changes in your local tree on packages available in upstream Buildroot, and you did not submit such changes ? :-)

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
http://bootlin.com
#5 lore raw

PATCH 2/3 package/strace: add missing libunwind optional dependency

2018-02-25 22:34 GMT+01:00 Thomas Petazzoni <[email protected]>:

Quoted 11 lines

Hello Thomas,

Quoted 2 lines · Thomas De Schampheleire

In our local tree, I had added a config option to strace for that, but perhaps that is overkill?

Are you saying that you have changes in your local tree on packages available in upstream Buildroot, and you did not submit such changes ? :-)

Haha, yes indeed :-) But you may be glad to hear that I already made a list of such changes that should be upstreamable, and plan to tackle the upstreaming after merging 2018.02!

#6 lore raw

PATCH 2/3 package/strace: add missing libunwind optional dependency

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Thomas" == Thomas De Schampheleire <[email protected]> writes:

Hi,

Quoted 11 lines
Quoted 7 lines
Quoted 2 lines

In our local tree, I had added a config option to strace for that, but perhaps that is overkill?

Are you saying that you have changes in your local tree on packages available in upstream Buildroot, and you did not submit such changes ? :-)

Haha, yes indeed :-) But you may be glad to hear that I already made a list of such changes that should be upstreamable, and plan to tackle the upstreaming after merging 2018.02!

Did you already get 2018.02 merged? ;)

Signature · 1 line
Bye, Peter Korsgaard
#7 lore raw

PATCH 2/3 package/strace: add missing libunwind optional dependency

Quoted 13 lines · On Sat, Mar 31, 2018, 22:47 Peter Korsgaard <[email protected]> wrote:
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Thomas" == Thomas De Schampheleire <[email protected]>

writes:

Hi,

Quoted 7 lines
Quoted 7 lines
Quoted 2 lines

In our local tree, I had added a config option to strace for that, but perhaps that is overkill?

Are you saying that you have changes in your local tree on packages available in upstream Buildroot, and you did not submit such changes ? :-)

Quoted 6 lines
Quoted 3 lines

Haha, yes indeed :-) But you may be glad to hear that I already made a list of such changes that should be upstreamable, and plan to tackle the upstreaming after merging 2018.02!

Did you already get 2018.02 merged? ;)

The code is ready, but the drop was postponed due to other issues...

I'll get to it, don't worry :)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180401/ee2d53a1/attachment.html>

#8 lore raw

PATCH 2/3 package/strace: add missing libunwind optional dependency

In reply to Romain Naour

Hello,

Quoted 6 lines · Romain Naour

This improve the reproducible build.

---
 package/strace/strace.mk | 7 +++++++
 1 file changed, 7 insertions(+)

I've updated the Config.in help text to indicate that libunwind should be enabled to get "strace -k" support, as suggested by Thomas DS. And then I've applied. Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
#9 lore raw

PATCH 3/3 package/strace: enable demangling of C++ symbol names in stack trace

In reply to Romain Naour

This is a new feature of strace 4.21 but the configure check need to be fixed for Buildroot.

---
 ...1-configure-allow-autoreconf-from-tarball.patch | 36 ++++++++++++++++++++++
 ...0002-configure-fix-libiberty-header-check.patch | 33 ++++++++++++++++++++
 package/strace/strace.mk                           | 12 ++++++++
 3 files changed, 81 insertions(+)
 create mode 100644 package/strace/0001-configure-allow-autoreconf-from-tarball.patch
 create mode 100644 package/strace/0002-configure-fix-libiberty-header-check.patch
package/strace/0001-configure-allow-autoreconf-from-tarball.patch new file +36 -0
new file mode 100644
index 0000000000..92dc7ed585
@@ -0,0 +1,36 @@
+From b2247bbd30989c707f3cb5bbd9635c52e5c962e6 Mon Sep 17 00:00:00 2001
+From: Romain Naour <[email protected]>
+Date: Sat, 17 Feb 2018 13:23:25 +0100
+Subject: [PATCH] configure: allow autoreconf from tarball
+
+git-version-gen copyright-year-gen file-date-gen tools
+are missing from the strace tarball breaking autoreconf.
+
+Signed-off-by: Romain Naour <[email protected]>
+---
+ configure.ac | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 86b8a8eb..f1a47b97 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -32,12 +32,12 @@
+ 
+ AC_PREREQ(2.57)
+ AC_INIT([strace],
+-	m4_esyscmd([./git-version-gen .tarball-version]),
++	4.21,
+ 	[strace-devel at lists.sourceforge.net],
+ 	[strace],
+ 	[https://strace.io])
+-m4_define([copyright_year], m4_esyscmd([./copyright-year-gen .year]))
+-m4_define([manpage_date], m4_esyscmd([./file-date-gen strace.1.in]))
++m4_define([copyright_year], 2018)
++m4_define([manpage_date], 2018-02-11)
+ AC_COPYRIGHT([Copyright (c) 1999-]copyright_year[ The strace developers.])
+ AC_CONFIG_SRCDIR([strace.c])
+ AC_CONFIG_AUX_DIR([.])
+-- 
+2.14.3
+
package/strace/0002-configure-fix-libiberty-header-check.patch new file +33 -0
new file mode 100644
index 0000000000..29bfb40ac3
@@ -0,0 +1,33 @@
+From 9487aac43518272074a1e1131c517b35b2529580 Mon Sep 17 00:00:00 2001
+From: Romain Naour <[email protected]>
+Date: Sat, 17 Feb 2018 12:38:37 +0100
+Subject: [PATCH] configure: fix libiberty header check
+
+The demangle.h header check for libiberty is looking at two potential
+file location. If one is missing the check fail.
+
+Since binutils package install demangle.h in
+"STAGING_DIR/usr/include/libiberty/demangle.h", remove the wrong
+path.
+
+Signed-off-by: Romain Naour <[email protected]>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index f1a47b97..052ce971 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -922,7 +922,7 @@ use_libiberty=no
+ AS_IF([test "x$use_libunwind" = xyes && test "x$with_libiberty" != xno],
+       [saved_CPPFLAGS="$CPPFLAGS"
+        CPPFLAGS="$CPPFLAGS $libiberty_CPPFLAGS"
+-       AC_CHECK_HEADERS([demangle.h libiberty/demangle.h],
++       AC_CHECK_HEADERS([libiberty/demangle.h],
+ 	 [saved_LDFLAGS="$LDFLAGS"
+ 	  LDFLAGS="$LDFLAGS $libiberty_LDFLAGS"
+ 	  AC_CHECK_LIB([iberty],[cplus_demangle],
+-- 
+2.14.3
+
package/strace/strace.mk +12 -0
index 9c1fab3871..f55755429d 100644
@@ -10,6 +10,10 @@ STRACE_SITE = https://github.com/strace/strace/releases/download/v$(STRACE_VERSI
 STRACE_LICENSE = BSD-3-Clause
 STRACE_LICENSE_FILES = COPYING
 
+# 0001-configure-allow-autoreconf-from-tarball.patch
+# 0002-configure-fix-libiberty-header-check.patch
+STRACE_AUTORECONF = YES
+
 ifeq ($(BR2_PACKAGE_LIBUNWIND),y)
 STRACE_DEPENDENCIES += libunwind
 STRACE_CONF_OPTS += --with-libunwind
@@ -17,6 +21,14 @@ else
 STRACE_CONF_OPTS += --without-libunwind
 endif
 
+# Demangling symbols in stack trace needs libunwind and libiberty.
+ifeq ($(BR2_PACKAGE_BINUTILS)$(BR2_PACKAGE_LIBUNWIND),yy)
+STRACE_DEPENDENCIES += binutils
+STRACE_CONF_OPTS += --with-libiberty=$(STAGING_DIR)/usr
+else
+STRACE_CONF_OPTS += --without-libiberty
+endif
+
 # strace bundle some kernel headers to build libmpers, this mixes userspace
 # headers and kernel headers which break the build with musl.
 # The stddef.h from gcc is used instead of the one from musl.
Signature · 1 line
2.14.3
#10 lore raw

PATCH 3/3 package/strace: enable demangling of C++ symbol names in stack trace

Hello,

Quoted 2 lines · Romain Naour
 ...1-configure-allow-autoreconf-from-tarball.patch | 36 ++++++++++++++++++++++
 ...0002-configure-fix-libiberty-header-check.patch | 33 ++++++++++++++++++++

In fact those patches are not necessary if you pass --with-libiberty=check. In this case, it doesn't fail at the first demangle.h check, and moves on to the next header file location.

So I've fixed that up, dropped the patches and AUTORECONF = YES, and applied to next. Thanks!

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com