From d560106f300dd2547c659511c8668d88a50eb577 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Pouiller?= Date: Thu, 2 Jan 2014 16:00:49 +0100 Subject: [PATCH 3/3] Add replacement for MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Valgrind includes to get the definition of 'struct nlist'. However, while glibc directly defines 'struct nlist' in , uClibc relies on it being defined by kernel headers (i.e simply includes ). This works for most architectures, but not for PowerPC, on which the a.out binary format has never been supported, and therefore the kernel header does not exist. One solution would have been to use the header, but this one is only available in glibc, and it also has a slightly different definition than the one in . So, for the time being, the easiest solution is to just replace the #include in Valgrind code by a copy/paste of the 'struct nlist' definition. Signed-off-by: Thomas Petazzoni Signed-off-by: Jérôme Pouiller --- coregrind/m_debuginfo/readstabs.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/coregrind/m_debuginfo/readstabs.c b/coregrind/m_debuginfo/readstabs.c index 70ad319..47f5bc7 100644 --- a/coregrind/m_debuginfo/readstabs.c +++ b/coregrind/m_debuginfo/readstabs.c @@ -54,7 +54,21 @@ /* --- !!! --- EXTERNAL HEADERS start --- !!! --- */ #if defined(VGO_linux) -# include /* stabs defns */ +/* Copied from a.out.h, because it is otherwise not available on + PowerPC/uClibc */ +struct nlist +{ + union + { + char *n_name; + struct nlist *n_next; + long n_strx; + } n_un; + unsigned char n_type; + char n_other; + short n_desc; + unsigned long n_value; +}; #elif defined(VGO_darwin) # include # define n_other n_sect -- 1.8.3.2