diff mbox

ltrace: use current master

Message ID 1406239161-23777-1-git-send-email-alexandre.belloni@free-electrons.com
State Accepted
Headers show

Commit Message

Alexandre Belloni July 24, 2014, 9:59 p.m. UTC
ltrace 0.7.3 is the latest release but it is actually broken on ARM
since PTRACE_SINGLESTEP emulation has been removed, see:

http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=425fc47adb5bb69f76285be77a09a3341a30799e

It fails with:
PTRACE_SINGLESTEP: Input/output error

Using master solves that until a new release is made.

Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
---
 package/ltrace/Config.in               |  1 +
 package/ltrace/ltrace-02-arm-plt.patch | 30 ++++++++++++++++++++++++++++++
 package/ltrace/ltrace.mk               | 13 +++++++++----
 3 files changed, 40 insertions(+), 4 deletions(-)
 create mode 100644 package/ltrace/ltrace-02-arm-plt.patch

Comments

Thomas Petazzoni July 27, 2014, 2:08 p.m. UTC | #1
Dear Alexandre Belloni,

On Thu, 24 Jul 2014 23:59:21 +0200, Alexandre Belloni wrote:
> ltrace 0.7.3 is the latest release but it is actually broken on ARM
> since PTRACE_SINGLESTEP emulation has been removed, see:
> 
> http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=425fc47adb5bb69f76285be77a09a3341a30799e
> 
> It fails with:
> PTRACE_SINGLESTEP: Input/output error
> 
> Using master solves that until a new release is made.
> 
> Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
> ---
>  package/ltrace/Config.in               |  1 +
>  package/ltrace/ltrace-02-arm-plt.patch | 30 ++++++++++++++++++++++++++++++
>  package/ltrace/ltrace.mk               | 13 +++++++++----
>  3 files changed, 40 insertions(+), 4 deletions(-)
>  create mode 100644 package/ltrace/ltrace-02-arm-plt.patch

Applied, thanks!

Thomas
Thomas Petazzoni July 28, 2014, 6:34 a.m. UTC | #2
Dear Alexandre Belloni,

On Thu, 24 Jul 2014 23:59:21 +0200, Alexandre Belloni wrote:
> ltrace 0.7.3 is the latest release but it is actually broken on ARM
> since PTRACE_SINGLESTEP emulation has been removed, see:
> 
> http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=425fc47adb5bb69f76285be77a09a3341a30799e
> 
> It fails with:
> PTRACE_SINGLESTEP: Input/output error
> 
> Using master solves that until a new release is made.
> 
> Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>

This commit is causing some build issues on PowerPC:
http://autobuild.buildroot.net/results/b4b/b4b1a7b5ebee4063e87e08c06024526db54bc77f/build-end.log.

Could you have a look?

Thanks,

Thomas
diff mbox

Patch

diff --git a/package/ltrace/Config.in b/package/ltrace/Config.in
index 3448342619af..aee14bd001bc 100644
--- a/package/ltrace/Config.in
+++ b/package/ltrace/Config.in
@@ -3,6 +3,7 @@  config BR2_PACKAGE_LTRACE
 	depends on (BR2_i386 || BR2_arm || BR2_mips || BR2_mipsel \
 		|| BR2_powerpc || BR2_sparc || BR2_x86_64)
 	select BR2_PACKAGE_LIBELF
+	select BR2_PACKAGE_ELFUTILS
 	help
 	  Debugging program which runs a specified command until it exits.
 	  While the command is executing, ltrace intercepts and records
diff --git a/package/ltrace/ltrace-02-arm-plt.patch b/package/ltrace/ltrace-02-arm-plt.patch
new file mode 100644
index 000000000000..f130ce8426e7
--- /dev/null
+++ b/package/ltrace/ltrace-02-arm-plt.patch
@@ -0,0 +1,30 @@ 
+From 04377d28135e351c8d096c4392a493e937416815 Mon Sep 17 00:00:00 2001
+From: Alexandre Belloni <alexandre.belloni@free-electrons.com>
+Date: Thu, 24 Jul 2014 23:15:20 +0200
+Subject: [PATCH] Allow building with uclibc toolchains
+
+Unfortunately, uclicbc doesn't define SHT_ARM_ATTRIBUTES in elf.h
+
+Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
+---
+ sysdeps/linux-gnu/arm/plt.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/sysdeps/linux-gnu/arm/plt.c b/sysdeps/linux-gnu/arm/plt.c
+index 9e9e37f0c5b0..a0a5795eb9cb 100644
+--- a/sysdeps/linux-gnu/arm/plt.c
++++ b/sysdeps/linux-gnu/arm/plt.c
+@@ -28,6 +28,10 @@
+ #include "library.h"
+ #include "ltrace-elf.h"
+ 
++#ifndef SHT_ARM_ATTRIBUTES
++#define SHT_ARM_ATTRIBUTES     0x70000003
++#endif
++
+ static int
+ get_hardfp(uint64_t abi_vfp_args)
+ {
+-- 
+1.9.1
+
diff --git a/package/ltrace/ltrace.mk b/package/ltrace/ltrace.mk
index 99c1af64b678..0a3a90c344c1 100644
--- a/package/ltrace/ltrace.mk
+++ b/package/ltrace/ltrace.mk
@@ -4,13 +4,18 @@ 
 #
 ################################################################################
 
-LTRACE_VERSION = 0.7.3
-LTRACE_SITE = http://sources.buildroot.net/
-LTRACE_SOURCE = ltrace-$(LTRACE_VERSION).tar.bz2
-LTRACE_DEPENDENCIES = libelf
+LTRACE_VERSION = 0896ce554f80afdcba81d9754f6104f863dea803
+LTRACE_SITE = git://anonscm.debian.org/collab-maint/ltrace.git
+LTRACE_DEPENDENCIES = libelf elfutils
 LTRACE_CONF_OPT = --disable-werror
 LTRACE_LICENSE = GPLv2
 LTRACE_LICENSE_FILES = COPYING
+LTRACE_AUTORECONF = YES
+
+define LTRACE_CREATE_CONFIG_M4
+	mkdir -p $(@D)/config/m4
+endef
+LTRACE_POST_PATCH_HOOKS += LTRACE_CREATE_CONFIG_M4
 
 # ltrace can use libunwind only if libc has backtrace() support
 # We don't normally do so for uClibc and we can't know if it's external