blob: 9434815d8f38b6dffbafa1d97da125b8ed19dce7 [file] [log] [blame]
From b8c8fbe0a2481e97fc57dd596346827a692a5768 Mon Sep 17 00:00:00 2001
From: Dave Anderson <anderson@redhat.com>
Date: Tue, 28 Mar 2017 15:44:40 -0400
Subject: [PATCH 1/3] Fix for a compilation error if glibc-2.25 or later has
been installed on the host build machine. Without the patch, the build fails
with the error message "amd64-linux-nat.c:496:1: error: conflicting types for
'ps_get_thread_area'". (anderson@redhat.com)
Upstream-Status: Backport
Signed-off-by: Dengke Du <dengke.du@windriver.com>
---
Makefile | 6 +++++
configure.c | 2 +-
gdb-7.6-proc_service.h.patch | 55 ++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 62 insertions(+), 1 deletion(-)
create mode 100644 gdb-7.6-proc_service.h.patch
diff --git a/Makefile b/Makefile
index 202ef8b..b6b7e80 100644
--- a/Makefile
+++ b/Makefile
@@ -264,6 +264,12 @@ gdb_patch:
if [ "${ARCH}" = "x86_64" ] && [ "${TARGET}" = "PPC64" ] && [ -f ${GDB}-ppc64le-support.patch ]; then \
patch -d ${GDB} -p1 -F0 < ${GDB}-ppc64le-support.patch ; \
fi
+ if [ -f /usr/include/proc_service.h ]; then \
+ grep 'extern ps_err_e ps_get_thread_area (struct' /usr/include/proc_service.h; \
+ if [ $$? -eq 0 ]; then \
+ patch -p0 < ${GDB}-proc_service.h.patch; \
+ fi; \
+ fi
library: make_build_data ${OBJECT_FILES}
ar -rs ${PROGRAM}lib.a ${OBJECT_FILES}
diff --git a/configure.c b/configure.c
index d63cdd7..776defe 100644
--- a/configure.c
+++ b/configure.c
@@ -240,7 +240,7 @@ struct supported_gdb_version {
"7.6",
"GDB_FILES=${GDB_7.6_FILES}",
"GDB_OFILES=${GDB_7.6_OFILES}",
- "GDB_PATCH_FILES=gdb-7.6.patch gdb-7.6-ppc64le-support.patch",
+ "GDB_PATCH_FILES=gdb-7.6.patch gdb-7.6-ppc64le-support.patch gdb-7.6-proc_service.h.patch",
"GDB_FLAGS=-DGDB_7_6",
"GPLv3"
},
diff --git a/gdb-7.6-proc_service.h.patch b/gdb-7.6-proc_service.h.patch
new file mode 100644
index 0000000..49d18bb
--- /dev/null
+++ b/gdb-7.6-proc_service.h.patch
@@ -0,0 +1,55 @@
+--- gdb-7.6/gdb/gdb_proc_service.h.orig
++++ gdb-7.6/gdb/gdb_proc_service.h
+@@ -115,7 +115,7 @@ extern pid_t ps_getpid (struct ps_procha
+ /* Fetch the special per-thread address associated with the given LWP.
+ This call is only used on a few platforms (most use a normal register).
+ The meaning of the `int' parameter is machine-dependent. */
+-extern ps_err_e ps_get_thread_area (const struct ps_prochandle *,
++extern ps_err_e ps_get_thread_area (struct ps_prochandle *,
+ lwpid_t, int, psaddr_t *);
+
+
+--- gdb-7.6/gdb/amd64-linux-nat.c.orig
++++ gdb-7.6/gdb/amd64-linux-nat.c
+@@ -493,7 +493,7 @@ amd64_linux_new_fork (struct lwp_info *p
+ a request for a thread's local storage address. */
+
+ ps_err_e
+-ps_get_thread_area (const struct ps_prochandle *ph,
++ps_get_thread_area (struct ps_prochandle *ph,
+ lwpid_t lwpid, int idx, void **base)
+ {
+ if (gdbarch_bfd_arch_info (target_gdbarch ())->bits_per_word == 32)
+--- gdb-7.6/gdb/aarch64-linux-nat.c.orig
++++ gdb-7.6/gdb/aarch64-linux-nat.c
+@@ -750,7 +750,7 @@ aarch64_linux_new_fork (struct lwp_info
+ storage (or its descriptor). */
+
+ ps_err_e
+-ps_get_thread_area (const struct ps_prochandle *ph,
++ps_get_thread_area (struct ps_prochandle *ph,
+ lwpid_t lwpid, int idx, void **base)
+ {
+ struct iovec iovec;
+--- gdb-7.6/gdb/arm-linux-nat.c.orig
++++ gdb-7.6/gdb/arm-linux-nat.c
+@@ -613,7 +613,7 @@ supply_fpregset (struct regcache *regcac
+ /* Fetch the thread-local storage pointer for libthread_db. */
+
+ ps_err_e
+-ps_get_thread_area (const struct ps_prochandle *ph,
++ps_get_thread_area (struct ps_prochandle *ph,
+ lwpid_t lwpid, int idx, void **base)
+ {
+ if (ptrace (PTRACE_GET_THREAD_AREA, lwpid, NULL, base) != 0)
+--- gdb-7.6/gdb/i386-linux-nat.c.orig
++++ gdb-7.6/gdb/i386-linux-nat.c
+@@ -849,7 +849,7 @@ i386_linux_new_fork (struct lwp_info *pa
+ storage (or its descriptor). */
+
+ ps_err_e
+-ps_get_thread_area (const struct ps_prochandle *ph,
++ps_get_thread_area (struct ps_prochandle *ph,
+ lwpid_t lwpid, int idx, void **base)
+ {
+ /* NOTE: cagney/2003-08-26: The definition of this buffer is found
--
2.8.1