mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-30 17:46:57 +00:00
Add GDB 8.0 ...
... which now requires C++. Signed-off-by: Alexey Neyman <stilor@att.net>
This commit is contained in:
parent
ef1ff2600d
commit
72a5a1d6de
@ -12,7 +12,7 @@ config GDB_CUSTOM
|
|||||||
bool
|
bool
|
||||||
prompt "Custom gdb"
|
prompt "Custom gdb"
|
||||||
depends on EXPERIMENTAL
|
depends on EXPERIMENTAL
|
||||||
select GDB_7_12_or_later
|
select GDB_8_0_or_later
|
||||||
help
|
help
|
||||||
The choosen gdb version shall be not downloaded. Instead use
|
The choosen gdb version shall be not downloaded. Instead use
|
||||||
a custom location to get the source.
|
a custom location to get the source.
|
||||||
@ -67,6 +67,11 @@ choice
|
|||||||
# Don't remove next line
|
# Don't remove next line
|
||||||
# CT_INSERT_VERSION_BELOW
|
# CT_INSERT_VERSION_BELOW
|
||||||
|
|
||||||
|
config GDB_V_8_0
|
||||||
|
bool
|
||||||
|
prompt "8.0"
|
||||||
|
select GDB_8_0_or_later
|
||||||
|
|
||||||
config GDB_V_7_12_1
|
config GDB_V_7_12_1
|
||||||
bool
|
bool
|
||||||
prompt "7.12.1"
|
prompt "7.12.1"
|
||||||
@ -249,6 +254,10 @@ endchoice
|
|||||||
|
|
||||||
endif # ! GDB_CUSTOM
|
endif # ! GDB_CUSTOM
|
||||||
|
|
||||||
|
config GDB_8_0_or_later
|
||||||
|
bool
|
||||||
|
select GDB_7_12_or_later
|
||||||
|
|
||||||
config GDB_7_12_or_later
|
config GDB_7_12_or_later
|
||||||
bool
|
bool
|
||||||
select GDB_7_2_or_later
|
select GDB_7_2_or_later
|
||||||
@ -272,12 +281,19 @@ config GDB_HAS_PYTHON
|
|||||||
config GDB_INSTALL_GDBINIT
|
config GDB_INSTALL_GDBINIT
|
||||||
bool
|
bool
|
||||||
|
|
||||||
|
# GDB 8.0 now requires C++ for build. GDB 7.12 offered a configure
|
||||||
|
# switch to fall back to C.
|
||||||
|
config GDB_TARGET_DISABLE_CXX_BUILD
|
||||||
|
def_bool y
|
||||||
|
depends on GDB_7_12_or_later && !GDB_8_0_or_later
|
||||||
|
|
||||||
if ! GDB_CUSTOM
|
if ! GDB_CUSTOM
|
||||||
|
|
||||||
config GDB_VERSION
|
config GDB_VERSION
|
||||||
string
|
string
|
||||||
# Don't remove next line
|
# Don't remove next line
|
||||||
# CT_INSERT_VERSION_STRING_BELOW
|
# CT_INSERT_VERSION_STRING_BELOW
|
||||||
|
default "8.0" if GDB_V_8_0
|
||||||
default "7.12.1" if GDB_V_7_12_1
|
default "7.12.1" if GDB_V_7_12_1
|
||||||
default "7.11.1" if GDB_V_7_11_1
|
default "7.11.1" if GDB_V_7_11_1
|
||||||
default "7.10.1" if GDB_V_7_10_1
|
default "7.10.1" if GDB_V_7_10_1
|
||||||
|
@ -5,6 +5,7 @@ config GDB_NATIVE
|
|||||||
prompt "Native gdb"
|
prompt "Native gdb"
|
||||||
depends on ! BARE_METAL
|
depends on ! BARE_METAL
|
||||||
depends on ! LIBC_bionic
|
depends on ! LIBC_bionic
|
||||||
|
depends on CC_LANG_CXX || !GDB_8_0_or_later
|
||||||
select EXPAT_TARGET
|
select EXPAT_TARGET
|
||||||
select NCURSES_TARGET
|
select NCURSES_TARGET
|
||||||
help
|
help
|
||||||
|
28
patches/gdb/8.0/100-musl_fix.patch
Normal file
28
patches/gdb/8.0/100-musl_fix.patch
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
--- a/gdb/linux-nat.c
|
||||||
|
+++ b/gdb/linux-nat.c
|
||||||
|
@@ -17,6 +17,7 @@
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
+#include "stopcode.h"
|
||||||
|
#include "defs.h"
|
||||||
|
#include "inferior.h"
|
||||||
|
#include "infrun.h"
|
||||||
|
@@ -73,6 +74,10 @@
|
||||||
|
#define SPUFS_MAGIC 0x23c9b64e
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#ifndef __SIGRTMIN
|
||||||
|
+#define __SIGRTMIN SIGRTMIN
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/* This comment documents high-level logic of this file.
|
||||||
|
|
||||||
|
Waiting for events in sync mode
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/gdb/stopcode.h
|
||||||
|
@@ -0,0 +1,4 @@
|
||||||
|
+#ifndef W_STOPCODE
|
||||||
|
+#define W_STOPCODE(sig) ((sig) << 8 | 0x7f)
|
||||||
|
+#endif
|
||||||
|
+
|
30
patches/gdb/8.0/101-uclibc-no-gettimeofday-clobber.patch
Normal file
30
patches/gdb/8.0/101-uclibc-no-gettimeofday-clobber.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
Improve gnulib in gdb's guess work, gettimeofday() works in uClibcm promise.
|
||||||
|
|
||||||
|
This patch helps building x86_64-unknown-linux-uclibc toolchains, the final
|
||||||
|
gdb-native step otherwise fails when linking the libinproctrace.so
|
||||||
|
|
||||||
|
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
|
||||||
|
Signed-off-by: Alexey Neyman <stilor@att.net>
|
||||||
|
|
||||||
|
diff -urpN gdb-7.12.orig/gdb/gnulib/configure gdb-7.12/gdb/gnulib/configure
|
||||||
|
--- gdb-7.12.orig/gdb/gnulib/configure 2017-01-13 13:42:11.773027566 -0800
|
||||||
|
+++ gdb-7.12/gdb/gnulib/configure 2017-01-13 13:44:32.518082618 -0800
|
||||||
|
@@ -13522,6 +13522,7 @@ else
|
||||||
|
case "$host_os" in
|
||||||
|
# Guess all is fine on glibc systems.
|
||||||
|
*-gnu*) gl_cv_func_gettimeofday_clobber="guessing no" ;;
|
||||||
|
+ *-uclibc*) gl_cv_func_gettimeofday_clobber="guessing no" ;;
|
||||||
|
# If we don't know, assume the worst.
|
||||||
|
*) gl_cv_func_gettimeofday_clobber="guessing yes" ;;
|
||||||
|
esac
|
||||||
|
diff -urpN gdb-7.12.orig/gdb/gnulib/import/m4/gettimeofday.m4 gdb-7.12/gdb/gnulib/import/m4/gettimeofday.m4
|
||||||
|
--- gdb-7.12.orig/gdb/gnulib/import/m4/gettimeofday.m4 2017-01-13 13:42:11.777027595 -0800
|
||||||
|
+++ gdb-7.12/gdb/gnulib/import/m4/gettimeofday.m4 2017-01-13 13:43:55.781797640 -0800
|
||||||
|
@@ -111,6 +111,7 @@ AC_DEFUN([gl_FUNC_GETTIMEOFDAY_CLOBBER],
|
||||||
|
case "$host_os" in
|
||||||
|
# Guess all is fine on glibc systems.
|
||||||
|
*-gnu*) gl_cv_func_gettimeofday_clobber="guessing no" ;;
|
||||||
|
+ *-uclibc*) gl_cv_func_gettimeofday_clobber="guessing no" ;;
|
||||||
|
# If we don't know, assume the worst.
|
||||||
|
*) gl_cv_func_gettimeofday_clobber="guessing yes" ;;
|
||||||
|
esac
|
@ -0,0 +1,35 @@
|
|||||||
|
From 208ea73d38c9c16cf983b6419f58050dbadcb6a9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Max Filippov <jcmvbkbc@gmail.com>
|
||||||
|
Date: Sun, 7 Jun 2015 22:43:49 +0300
|
||||||
|
Subject: [PATCH 2/2] xtensa: make sure ar_base is initialized
|
||||||
|
|
||||||
|
ar_base is uninitialized for cores w/o windowed registers as their
|
||||||
|
regmap doesn't have register 0x0100.
|
||||||
|
Check that ar_base is initialized and if not initialize it with a0_base.
|
||||||
|
|
||||||
|
gdb/
|
||||||
|
* xtensa-tdep.c (xtensa_derive_tdep): Make sure ar_base is
|
||||||
|
initialized.
|
||||||
|
|
||||||
|
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
|
||||||
|
---
|
||||||
|
gdb/xtensa-tdep.c | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c
|
||||||
|
index 55e7d98..41f5ec1 100644
|
||||||
|
--- a/gdb/xtensa-tdep.c
|
||||||
|
+++ b/gdb/xtensa-tdep.c
|
||||||
|
@@ -3175,6 +3175,9 @@ xtensa_derive_tdep (struct gdbarch_tdep *tdep)
|
||||||
|
tdep->num_regs = n;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (tdep->ar_base == -1)
|
||||||
|
+ tdep->ar_base = tdep->a0_base;
|
||||||
|
+
|
||||||
|
/* Number of pseudo registers. */
|
||||||
|
tdep->num_pseudo_regs = n - tdep->num_regs;
|
||||||
|
|
||||||
|
--
|
||||||
|
1.8.1.4
|
||||||
|
|
31
patches/gdb/8.0/112-WIP-end-of-prologue-detection-hack.patch
Normal file
31
patches/gdb/8.0/112-WIP-end-of-prologue-detection-hack.patch
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
From 7f8eacbb468575fb67db7fd1155a3aedaa91911b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Max Filippov <jcmvbkbc@gmail.com>
|
||||||
|
Date: Sun, 7 Jun 2015 23:15:39 +0300
|
||||||
|
Subject: [PATCH] WIP: *end of prologue* detection hack
|
||||||
|
|
||||||
|
see
|
||||||
|
http://www.esp8266.com/viewtopic.php?p=18461#p18461
|
||||||
|
http://www.esp8266.com/viewtopic.php?p=19026#p19026
|
||||||
|
http://www.esp8266.com/viewtopic.php?p=19683#p19683
|
||||||
|
|
||||||
|
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
|
||||||
|
---
|
||||||
|
gdb/xtensa-tdep.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c
|
||||||
|
index 41f5ec1..6a7dba7 100644
|
||||||
|
--- a/gdb/xtensa-tdep.c
|
||||||
|
+++ b/gdb/xtensa-tdep.c
|
||||||
|
@@ -2410,7 +2410,7 @@ call0_analyze_prologue (struct gdbarch *gdbarch,
|
||||||
|
/* Find out, if we have an information about the prologue from DWARF. */
|
||||||
|
prologue_sal = find_pc_line (start, 0);
|
||||||
|
if (prologue_sal.line != 0) /* Found debug info. */
|
||||||
|
- body_pc = prologue_sal.end;
|
||||||
|
+ body_pc = prologue_sal.end + 40;
|
||||||
|
|
||||||
|
/* If we are going to analyze the prologue in general without knowing about
|
||||||
|
the current PC, make the best assumtion for the end of the prologue. */
|
||||||
|
--
|
||||||
|
1.8.1.4
|
||||||
|
|
42
patches/gdb/8.0/200-allow-android.patch
Normal file
42
patches/gdb/8.0/200-allow-android.patch
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
diff -urpN gdb-7.12.1.orig/gdb/gdbserver/configure gdb-7.12.1/gdb/gdbserver/configure
|
||||||
|
--- gdb-7.12.1.orig/gdb/gdbserver/configure 2017-05-14 17:02:46.742711695 -0700
|
||||||
|
+++ gdb-7.12.1/gdb/gdbserver/configure 2017-05-14 17:03:22.147058607 -0700
|
||||||
|
@@ -6671,17 +6671,6 @@ fi
|
||||||
|
|
||||||
|
|
||||||
|
case "${target}" in
|
||||||
|
- *-android*)
|
||||||
|
- # Starting with NDK version 9, <elf.h> actually includes definitions
|
||||||
|
- # of Elf32_auxv_t and Elf64_auxv_t. But sadly, <elf.h> includes
|
||||||
|
- # <sys/exec_elf.h> which defines some of the ELF types incorrectly,
|
||||||
|
- # leading to conflicts with the defintions from <linux/elf.h>.
|
||||||
|
- # This makes it impossible for us to include both <elf.h> and
|
||||||
|
- # <linux/elf.h>, which means that, in practice, we do not have
|
||||||
|
- # access to Elf32_auxv_t and Elf64_auxv_t on this platform.
|
||||||
|
- # Therefore, do not try to auto-detect availability, as it would
|
||||||
|
- # get it wrong on this platform.
|
||||||
|
- ;;
|
||||||
|
*)
|
||||||
|
ac_fn_c_check_type "$LINENO" "Elf32_auxv_t" "ac_cv_type_Elf32_auxv_t" "#include <elf.h>
|
||||||
|
|
||||||
|
diff -urpN gdb-7.12.1.orig/gdb/gdbserver/configure.ac gdb-7.12.1/gdb/gdbserver/configure.ac
|
||||||
|
--- gdb-7.12.1.orig/gdb/gdbserver/configure.ac 2017-05-14 17:02:46.742711695 -0700
|
||||||
|
+++ gdb-7.12.1/gdb/gdbserver/configure.ac 2017-05-14 17:03:53.219361720 -0700
|
||||||
|
@@ -179,17 +179,6 @@ AC_CHECK_TYPES(socklen_t, [], [],
|
||||||
|
])
|
||||||
|
|
||||||
|
case "${target}" in
|
||||||
|
- *-android*)
|
||||||
|
- # Starting with NDK version 9, <elf.h> actually includes definitions
|
||||||
|
- # of Elf32_auxv_t and Elf64_auxv_t. But sadly, <elf.h> includes
|
||||||
|
- # <sys/exec_elf.h> which defines some of the ELF types incorrectly,
|
||||||
|
- # leading to conflicts with the defintions from <linux/elf.h>.
|
||||||
|
- # This makes it impossible for us to include both <elf.h> and
|
||||||
|
- # <linux/elf.h>, which means that, in practice, we do not have
|
||||||
|
- # access to Elf32_auxv_t and Elf64_auxv_t on this platform.
|
||||||
|
- # Therefore, do not try to auto-detect availability, as it would
|
||||||
|
- # get it wrong on this platform.
|
||||||
|
- ;;
|
||||||
|
*)
|
||||||
|
AC_CHECK_TYPES([Elf32_auxv_t, Elf64_auxv_t], [], [],
|
||||||
|
#include <elf.h>
|
@ -190,6 +190,7 @@ do_debug_gdb_build() {
|
|||||||
CT_EndStep
|
CT_EndStep
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# TBD combine GDB native and gdbserver backends, build either or both in a single pass.
|
||||||
if [ "${CT_GDB_NATIVE}" = "y" ]; then
|
if [ "${CT_GDB_NATIVE}" = "y" ]; then
|
||||||
local -a native_extra_config
|
local -a native_extra_config
|
||||||
|
|
||||||
@ -198,7 +199,9 @@ do_debug_gdb_build() {
|
|||||||
native_extra_config=("${extra_config[@]}")
|
native_extra_config=("${extra_config[@]}")
|
||||||
|
|
||||||
# We may not have C++ language configured for target
|
# We may not have C++ language configured for target
|
||||||
native_extra_config+=("--disable-build-with-cxx")
|
if [ "${GDB_TARGET_DISABLE_CXX_BUILD}" = "y" ]; then
|
||||||
|
native_extra_config+=("--disable-build-with-cxx")
|
||||||
|
fi
|
||||||
|
|
||||||
# GDB on Mingw depends on PDcurses, not ncurses
|
# GDB on Mingw depends on PDcurses, not ncurses
|
||||||
if [ "${CT_MINGW32}" != "y" ]; then
|
if [ "${CT_MINGW32}" != "y" ]; then
|
||||||
@ -317,7 +320,9 @@ do_debug_gdb_build() {
|
|||||||
gdbserver_extra_config=("${extra_config[@]}")
|
gdbserver_extra_config=("${extra_config[@]}")
|
||||||
|
|
||||||
# We may not have C++ language configured for target
|
# We may not have C++ language configured for target
|
||||||
gdbserver_extra_config+=("--disable-build-with-cxx")
|
if [ "${GDB_TARGET_DISABLE_CXX_BUILD}" = "y" ]; then
|
||||||
|
gdbserver_extra_config+=("--disable-build-with-cxx")
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "${CT_GDB_GDBSERVER_HAS_IPA_LIB}" = "y" ]; then
|
if [ "${CT_GDB_GDBSERVER_HAS_IPA_LIB}" = "y" ]; then
|
||||||
if [ "${CT_GDB_GDBSERVER_BUILD_IPA_LIB}" = "y" ]; then
|
if [ "${CT_GDB_GDBSERVER_BUILD_IPA_LIB}" = "y" ]; then
|
||||||
|
Loading…
Reference in New Issue
Block a user