diff options
| -rw-r--r-- | meta/recipes-devtools/gdb/gdb-cross_7.9.bb | 2 | ||||
| -rw-r--r-- | meta/recipes-devtools/gdb/gdb.inc | 5 | ||||
| -rw-r--r-- | meta/recipes-devtools/gdb/gdb/0001-make-man-install-relative-to-DESTDIR.patch | 28 | ||||
| -rw-r--r-- | meta/recipes-devtools/gdb/gdb/0002-Change-order-of-CFLAGS.patch (renamed from meta/recipes-devtools/gdb/gdb/gdbserver-cflags-last.diff) | 23 | ||||
| -rw-r--r-- | meta/recipes-devtools/gdb/gdb/0003-Add-support-for-Renesas-SH-sh4-architecture.patch (renamed from meta/recipes-devtools/gdb/gdb/renesas-sh-native-support.patch) | 835 | ||||
| -rw-r--r-- | meta/recipes-devtools/gdb/gdb/0004-Change-comment-in-gdb-compile.patch | 48 | ||||
| -rw-r--r-- | meta/recipes-devtools/gdb/gdb/sim-install-6.6.patch | 14 | ||||
| -rw-r--r-- | meta/recipes-devtools/gdb/gdb/sim-install.patch | 36 | ||||
| -rw-r--r-- | meta/recipes-devtools/gdb/gdb/uclibc.patch | 196 |
9 files changed, 286 insertions, 901 deletions
diff --git a/meta/recipes-devtools/gdb/gdb-cross_7.9.bb b/meta/recipes-devtools/gdb/gdb-cross_7.9.bb index f9da486d7d..3a95cfb035 100644 --- a/meta/recipes-devtools/gdb/gdb-cross_7.9.bb +++ b/meta/recipes-devtools/gdb/gdb-cross_7.9.bb | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | require gdb-cross.inc | 1 | require gdb-cross.inc |
| 2 | require gdb-${PV}.inc | 2 | require gdb-${PV}.inc |
| 3 | 3 | ||
| 4 | SRC_URI += "file://sim-install-6.6.patch" | 4 | SRC_URI += "file://0001-make-man-install-relative-to-DESTDIR.patch" |
diff --git a/meta/recipes-devtools/gdb/gdb.inc b/meta/recipes-devtools/gdb/gdb.inc index 2c95e03b1b..e65af4bf8b 100644 --- a/meta/recipes-devtools/gdb/gdb.inc +++ b/meta/recipes-devtools/gdb/gdb.inc | |||
| @@ -2,8 +2,9 @@ require gdb-common.inc | |||
| 2 | 2 | ||
| 3 | inherit gettext | 3 | inherit gettext |
| 4 | 4 | ||
| 5 | SRC_URI += "file://gdbserver-cflags-last.diff;striplevel=0 \ | 5 | SRC_URI += "file://0002-Change-order-of-CFLAGS.patch \ |
| 6 | file://renesas-sh-native-support.patch \ | 6 | file://0003-Add-support-for-Renesas-SH-sh4-architecture.patch \ |
| 7 | file://0004-Change-comment-in-gdb-compile.patch \ | ||
| 7 | " | 8 | " |
| 8 | #LDFLAGS_append = " -s" | 9 | #LDFLAGS_append = " -s" |
| 9 | #export CFLAGS_append=" -L${STAGING_LIBDIR}" | 10 | #export CFLAGS_append=" -L${STAGING_LIBDIR}" |
diff --git a/meta/recipes-devtools/gdb/gdb/0001-make-man-install-relative-to-DESTDIR.patch b/meta/recipes-devtools/gdb/gdb/0001-make-man-install-relative-to-DESTDIR.patch new file mode 100644 index 0000000000..e0221afca1 --- /dev/null +++ b/meta/recipes-devtools/gdb/gdb/0001-make-man-install-relative-to-DESTDIR.patch | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | From d3ec939b82be23e7c9534cdc7502645f6c5856d1 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Khem Raj <raj.khem@gmail.com> | ||
| 3 | Date: Mon, 2 Mar 2015 02:27:55 +0000 | ||
| 4 | Subject: [PATCH 1/3] make man install relative to DESTDIR | ||
| 5 | |||
| 6 | Upstream-Status: Pending | ||
| 7 | |||
| 8 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
| 9 | --- | ||
| 10 | sim/common/Makefile.in | 2 +- | ||
| 11 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 12 | |||
| 13 | diff --git a/sim/common/Makefile.in b/sim/common/Makefile.in | ||
| 14 | index d49a93b..2121c46 100644 | ||
| 15 | --- a/sim/common/Makefile.in | ||
| 16 | +++ b/sim/common/Makefile.in | ||
| 17 | @@ -35,7 +35,7 @@ tooldir = $(libdir)/$(target_alias) | ||
| 18 | datarootdir = @datarootdir@ | ||
| 19 | datadir = @datadir@ | ||
| 20 | mandir = @mandir@ | ||
| 21 | -man1dir = $(mandir)/man1 | ||
| 22 | +man1dir = $(DESTDIR)$(mandir)/man1 | ||
| 23 | infodir = @infodir@ | ||
| 24 | includedir = @includedir@ | ||
| 25 | |||
| 26 | -- | ||
| 27 | 2.1.4 | ||
| 28 | |||
diff --git a/meta/recipes-devtools/gdb/gdb/gdbserver-cflags-last.diff b/meta/recipes-devtools/gdb/gdb/0002-Change-order-of-CFLAGS.patch index 16a3aa93d9..26a34d3444 100644 --- a/meta/recipes-devtools/gdb/gdb/gdbserver-cflags-last.diff +++ b/meta/recipes-devtools/gdb/gdb/0002-Change-order-of-CFLAGS.patch | |||
| @@ -1,13 +1,21 @@ | |||
| 1 | Upstream-Status: Pending | 1 | From 0dcb0a8b139b44ae84e8fd8ff8130cbbb52e444d Mon Sep 17 00:00:00 2001 |
| 2 | From: Khem Raj <raj.khem@gmail.com> | ||
| 3 | Date: Mon, 2 Mar 2015 02:29:23 +0000 | ||
| 4 | Subject: [PATCH 2/3] Change order of CFLAGS | ||
| 2 | 5 | ||
| 6 | Lets us override Werror if need be | ||
| 7 | |||
| 8 | Upstream-Status: Inappropriate | ||
| 9 | |||
| 10 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
| 3 | --- | 11 | --- |
| 4 | gdb/gdbserver/Makefile.in | 4 ++-- | 12 | gdb/gdbserver/Makefile.in | 4 ++-- |
| 5 | 1 file changed, 2 insertions(+), 2 deletions(-) | 13 | 1 file changed, 2 insertions(+), 2 deletions(-) |
| 6 | 14 | ||
| 7 | Index: gdb/gdbserver/Makefile.in | 15 | diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in |
| 8 | =================================================================== | 16 | index 1ed2ec8..0cef95b 100644 |
| 9 | --- gdb/gdbserver/Makefile.in.orig | 17 | --- a/gdb/gdbserver/Makefile.in |
| 10 | +++ gdb/gdbserver/Makefile.in | 18 | +++ b/gdb/gdbserver/Makefile.in |
| 11 | @@ -131,10 +131,10 @@ CFLAGS = @CFLAGS@ | 19 | @@ -131,10 +131,10 @@ CFLAGS = @CFLAGS@ |
| 12 | CPPFLAGS = @CPPFLAGS@ | 20 | CPPFLAGS = @CPPFLAGS@ |
| 13 | 21 | ||
| @@ -21,3 +29,6 @@ Index: gdb/gdbserver/Makefile.in | |||
| 21 | 29 | ||
| 22 | # LDFLAGS is specifically reserved for setting from the command line | 30 | # LDFLAGS is specifically reserved for setting from the command line |
| 23 | # when running make. | 31 | # when running make. |
| 32 | -- | ||
| 33 | 2.1.4 | ||
| 34 | |||
diff --git a/meta/recipes-devtools/gdb/gdb/renesas-sh-native-support.patch b/meta/recipes-devtools/gdb/gdb/0003-Add-support-for-Renesas-SH-sh4-architecture.patch index 2259c6f7ee..d82d269208 100644 --- a/meta/recipes-devtools/gdb/gdb/renesas-sh-native-support.patch +++ b/meta/recipes-devtools/gdb/gdb/0003-Add-support-for-Renesas-SH-sh4-architecture.patch | |||
| @@ -1,41 +1,35 @@ | |||
| 1 | Description: Add Renesas SH (sh4) support | 1 | From 4e5507488068b3ea2ebf9c84c6c192c7bfd3be82 Mon Sep 17 00:00:00 2001 |
| 2 | Add support for Renesas SH (sh4) architecture. | 2 | From: Khem Raj <raj.khem@gmail.com> |
| 3 | . | 3 | Date: Mon, 2 Mar 2015 02:31:12 +0000 |
| 4 | gdb (7.4-1~cvs20111117.2) experimental; urgency=low | 4 | Subject: [PATCH 3/3] Add support for Renesas SH (sh4) architecture. |
| 5 | |||
| 6 | gdb (7.4-1~cvs20111117.2) experimental; urgency=low | ||
| 5 | . | 7 | . |
| 6 | * Add Renesas SH (sh4) support (Closes: #576242) | 8 | * Add Renesas SH (sh4) support (Closes: #576242) |
| 7 | - Thanks Nobuhiro Iwamatsu, Takashi Yoshii. | 9 | - Thanks Nobuhiro Iwamatsu, Takashi Yoshii. |
| 8 | Author: Hector Oron <zumbi@debian.org> | 10 | Author: Hector Oron <zumbi@debian.org> |
| 9 | Bug-Debian: http://bugs.debian.org/576242 | 11 | Bug-Debian: http://bugs.debian.org/576242 |
| 10 | 12 | ||
| 11 | --- | ||
| 12 | The information above should follow the Patch Tagging Guidelines, please | ||
| 13 | checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here | ||
| 14 | are templates for supplementary fields that you might want to add: | ||
| 15 | |||
| 16 | Forwarded: <no|not-needed|url proving that it has been forwarded> | ||
| 17 | Last-Update: <2011-11-17> | ||
| 18 | |||
| 19 | |||
| 20 | Upstream-Status: Pending | 13 | Upstream-Status: Pending |
| 21 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | 14 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| 15 | --- | ||
| 16 | gdb/Makefile.in | 1 + | ||
| 17 | gdb/configure.host | 1 + | ||
| 18 | gdb/sh-linux-tdep.c | 519 +++++++++++++++++++++++++++++++++++ | ||
| 19 | gdb/sh-tdep.c | 54 ++-- | ||
| 20 | gdb/sh-tdep.h | 49 ++++ | ||
| 21 | gdb/testsuite/gdb.asm/asm-source.exp | 5 + | ||
| 22 | gdb/testsuite/gdb.asm/sh.inc | 3 +- | ||
| 23 | gdb/testsuite/gdb.base/annota1.c | 3 + | ||
| 24 | gdb/testsuite/gdb.base/annota3.c | 4 + | ||
| 25 | gdb/testsuite/gdb.base/sigall.c | 3 + | ||
| 26 | gdb/testsuite/gdb.base/signals.c | 4 + | ||
| 27 | 11 files changed, 617 insertions(+), 29 deletions(-) | ||
| 22 | 28 | ||
| 23 | Index: gdb-7.9/gdb/configure.host | 29 | diff --git a/gdb/Makefile.in b/gdb/Makefile.in |
| 24 | =================================================================== | 30 | index 7937801..63baf81 100644 |
| 25 | --- gdb-7.9.orig/gdb/configure.host | 31 | --- a/gdb/Makefile.in |
| 26 | +++ gdb-7.9/gdb/configure.host | 32 | +++ b/gdb/Makefile.in |
| 27 | @@ -150,6 +150,7 @@ powerpc*-*-linux*) gdb_host=linux ;; | ||
| 28 | |||
| 29 | s390*-*-linux*) gdb_host=linux ;; | ||
| 30 | |||
| 31 | +sh*-*-linux*) gdb_host=linux ;; | ||
| 32 | sh*-*-netbsdelf* | sh*-*-knetbsd*-gnu) | ||
| 33 | gdb_host=nbsd ;; | ||
| 34 | sh*-*-openbsd*) gdb_host=nbsd ;; | ||
| 35 | Index: gdb-7.9/gdb/Makefile.in | ||
| 36 | =================================================================== | ||
| 37 | --- gdb-7.9.orig/gdb/Makefile.in | ||
| 38 | +++ gdb-7.9/gdb/Makefile.in | ||
| 39 | @@ -1707,6 +1707,7 @@ ALLDEPFILES = \ | 33 | @@ -1707,6 +1707,7 @@ ALLDEPFILES = \ |
| 40 | score-tdep.c \ | 34 | score-tdep.c \ |
| 41 | ser-go32.c ser-pipe.c ser-tcp.c ser-mingw.c \ | 35 | ser-go32.c ser-pipe.c ser-tcp.c ser-mingw.c \ |
| @@ -44,10 +38,22 @@ Index: gdb-7.9/gdb/Makefile.in | |||
| 44 | sol2-tdep.c \ | 38 | sol2-tdep.c \ |
| 45 | solib-svr4.c \ | 39 | solib-svr4.c \ |
| 46 | sparc-linux-nat.c sparc-linux-tdep.c \ | 40 | sparc-linux-nat.c sparc-linux-tdep.c \ |
| 47 | Index: gdb-7.9/gdb/sh-linux-tdep.c | 41 | diff --git a/gdb/configure.host b/gdb/configure.host |
| 48 | =================================================================== | 42 | index d07be4b..b6391c5 100644 |
| 49 | --- gdb-7.9.orig/gdb/sh-linux-tdep.c | 43 | --- a/gdb/configure.host |
| 50 | +++ gdb-7.9/gdb/sh-linux-tdep.c | 44 | +++ b/gdb/configure.host |
| 45 | @@ -150,6 +150,7 @@ powerpc*-*-linux*) gdb_host=linux ;; | ||
| 46 | |||
| 47 | s390*-*-linux*) gdb_host=linux ;; | ||
| 48 | |||
| 49 | +sh*-*-linux*) gdb_host=linux ;; | ||
| 50 | sh*-*-netbsdelf* | sh*-*-knetbsd*-gnu) | ||
| 51 | gdb_host=nbsd ;; | ||
| 52 | sh*-*-openbsd*) gdb_host=nbsd ;; | ||
| 53 | diff --git a/gdb/sh-linux-tdep.c b/gdb/sh-linux-tdep.c | ||
| 54 | index 2ff2ee8..1a11262 100644 | ||
| 55 | --- a/gdb/sh-linux-tdep.c | ||
| 56 | +++ b/gdb/sh-linux-tdep.c | ||
| 51 | @@ -18,14 +18,37 @@ | 57 | @@ -18,14 +18,37 @@ |
| 52 | along with this program. If not, see <http://www.gnu.org/licenses/>. */ | 58 | along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
| 53 | 59 | ||
| @@ -86,7 +92,7 @@ Index: gdb-7.9/gdb/sh-linux-tdep.c | |||
| 86 | #include "glibc-tdep.h" | 92 | #include "glibc-tdep.h" |
| 87 | #include "sh-tdep.h" | 93 | #include "sh-tdep.h" |
| 88 | #include "linux-tdep.h" | 94 | #include "linux-tdep.h" |
| 89 | @@ -180,9 +203,505 @@ static struct tramp_frame sh_linux_rt_si | 95 | @@ -180,9 +203,505 @@ static struct tramp_frame sh_linux_rt_sigreturn_tramp_frame = { |
| 90 | sh_linux_rt_sigreturn_init | 96 | sh_linux_rt_sigreturn_init |
| 91 | }; | 97 | }; |
| 92 | 98 | ||
| @@ -592,367 +598,10 @@ Index: gdb-7.9/gdb/sh-linux-tdep.c | |||
| 592 | linux_init_abi (info, gdbarch); | 598 | linux_init_abi (info, gdbarch); |
| 593 | 599 | ||
| 594 | /* GNU/Linux uses SVR4-style shared libraries. */ | 600 | /* GNU/Linux uses SVR4-style shared libraries. */ |
| 595 | Index: gdb-7.9/gdb/sh-tdep.h | 601 | diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c |
| 596 | =================================================================== | 602 | index 82cf2f4..b443e46 100644 |
| 597 | --- gdb-7.9.orig/gdb/sh-tdep.h | 603 | --- a/gdb/sh-tdep.c |
| 598 | +++ gdb-7.9/gdb/sh-tdep.h | 604 | +++ b/gdb/sh-tdep.c |
| 599 | @@ -21,6 +21,12 @@ | ||
| 600 | |||
| 601 | /* Contributed by Steve Chamberlain sac@cygnus.com. */ | ||
| 602 | |||
| 603 | +struct frame_info; | ||
| 604 | +struct gdbarch; | ||
| 605 | +struct reggroup; | ||
| 606 | +struct regset; | ||
| 607 | +struct regcache; | ||
| 608 | + | ||
| 609 | /* Registers for all SH variants. Used also by sh3-rom.c. */ | ||
| 610 | enum | ||
| 611 | { | ||
| 612 | @@ -29,6 +35,7 @@ enum | ||
| 613 | ARG0_REGNUM = 4, | ||
| 614 | ARGLAST_REGNUM = 7, | ||
| 615 | FP_REGNUM = 14, | ||
| 616 | + SP_REGNUM = 15, | ||
| 617 | PC_REGNUM = 16, | ||
| 618 | PR_REGNUM = 17, | ||
| 619 | GBR_REGNUM = 18, | ||
| 620 | @@ -81,6 +88,24 @@ enum | ||
| 621 | FV0_REGNUM = 76, | ||
| 622 | FV_LAST_REGNUM = 79 | ||
| 623 | }; | ||
| 624 | +#define SH_NUM_REGS 67 | ||
| 625 | + | ||
| 626 | +struct sh_frame_cache | ||
| 627 | +{ | ||
| 628 | + /* Base address. */ | ||
| 629 | + CORE_ADDR base; | ||
| 630 | + LONGEST sp_offset; | ||
| 631 | + CORE_ADDR pc; | ||
| 632 | + | ||
| 633 | + /* Flag showing that a frame has been created in the prologue code. */ | ||
| 634 | + int uses_fp; | ||
| 635 | + | ||
| 636 | + /* Saved registers. */ | ||
| 637 | + CORE_ADDR saved_regs[SH_NUM_REGS]; | ||
| 638 | + CORE_ADDR saved_sp; | ||
| 639 | +}; | ||
| 640 | + | ||
| 641 | +extern struct sh_frame_cache *sh_frame_cache (struct frame_info *next_frame, void **this_cache); | ||
| 642 | |||
| 643 | /* This structure describes a register in a core-file. */ | ||
| 644 | struct sh_corefile_regmap | ||
| 645 | @@ -89,8 +114,32 @@ struct sh_corefile_regmap | ||
| 646 | unsigned int offset; | ||
| 647 | }; | ||
| 648 | |||
| 649 | +/* sh architecture specific information. */ | ||
| 650 | struct gdbarch_tdep | ||
| 651 | { | ||
| 652 | + /* General-purpose registers. */ | ||
| 653 | + struct regset *gregset; | ||
| 654 | + int *gregset_reg_offset; | ||
| 655 | + int gregset_num_regs; | ||
| 656 | + size_t sizeof_gregset; | ||
| 657 | + | ||
| 658 | + /* Floating-point registers. */ | ||
| 659 | + struct regset *fpregset; | ||
| 660 | + size_t sizeof_fpregset; | ||
| 661 | + | ||
| 662 | + /* Offset of saved PC in jmp_buf. */ | ||
| 663 | + int jb_pc_offset; | ||
| 664 | + | ||
| 665 | + /* Detect sigtramp. */ | ||
| 666 | + int (*sigtramp_p) (struct frame_info *); | ||
| 667 | + | ||
| 668 | + /* Get address of sigcontext for sigtramp. */ | ||
| 669 | + CORE_ADDR (*sigcontext_addr) (struct frame_info *); | ||
| 670 | + | ||
| 671 | + /* Offset of registers in `struct sigcontext'. */ | ||
| 672 | + int *sc_reg_offset; | ||
| 673 | + int sc_num_regs; | ||
| 674 | + | ||
| 675 | /* Non-NULL when debugging from a core file. Provides the offset | ||
| 676 | where each general-purpose register is stored inside the associated | ||
| 677 | core file section. */ | ||
| 678 | Index: gdb-7.9/gdb/sh-linux-nat.c | ||
| 679 | =================================================================== | ||
| 680 | --- /dev/null | ||
| 681 | +++ gdb-7.9/gdb/sh-linux-nat.c | ||
| 682 | @@ -0,0 +1,269 @@ | ||
| 683 | +/* Low level SH interface to ptrace, for GDB when running native. | ||
| 684 | + Copyright (C) 2002, 2004 Free Software Foundation, Inc. | ||
| 685 | + | ||
| 686 | +This file is part of GDB. | ||
| 687 | + | ||
| 688 | +This program is free software; you can redistribute it and/or modify | ||
| 689 | +it under the terms of the GNU General Public License as published by | ||
| 690 | +the Free Software Foundation; either version 2 of the License, or | ||
| 691 | +(at your option) any later version. | ||
| 692 | + | ||
| 693 | +This program is distributed in the hope that it will be useful, | ||
| 694 | +but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 695 | +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 696 | +GNU General Public License for more details. | ||
| 697 | + | ||
| 698 | +You should have received a copy of the GNU General Public License | ||
| 699 | +along with this program; if not, write to the Free Software | ||
| 700 | +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | ||
| 701 | + | ||
| 702 | +#include "defs.h" | ||
| 703 | +#include "inferior.h" | ||
| 704 | +#include "gdbcore.h" | ||
| 705 | +#include "regcache.h" | ||
| 706 | +#include "linux-nat.h" | ||
| 707 | +#include "target.h" | ||
| 708 | +#include "arch-utils.h" | ||
| 709 | + | ||
| 710 | +#include "gdb_assert.h" | ||
| 711 | +#include "gdb_string.h" | ||
| 712 | +#include <sys/ptrace.h> | ||
| 713 | +#include <sys/user.h> | ||
| 714 | +#include <sys/procfs.h> | ||
| 715 | +#include <asm/ptrace.h> | ||
| 716 | + | ||
| 717 | +/* Prototypes for supply_gregset etc. */ | ||
| 718 | +#include "gregset.h" | ||
| 719 | +#include "sh-tdep.h" | ||
| 720 | + | ||
| 721 | +/* Defines ps_err_e, struct ps_prochandle. */ | ||
| 722 | +#include "gdb_proc_service.h" | ||
| 723 | + | ||
| 724 | +//#include <asm/elf.h> | ||
| 725 | + | ||
| 726 | +#define SH_LINUX_NUM_REGS 40 | ||
| 727 | +/* This table must line up with REGISTER_NAME in "sh-tdep.c". */ | ||
| 728 | +static const int regmap[] = | ||
| 729 | +{ | ||
| 730 | + /* general registers 0-15 */ | ||
| 731 | + REG_REG0 , REG_REG0+1 , REG_REG0+2 , REG_REG0+3, | ||
| 732 | + REG_REG0+4 , REG_REG0+5 , REG_REG0+6 , REG_REG0+7, | ||
| 733 | + REG_REG0+8 , REG_REG0+9 , REG_REG0+10, REG_REG0+11, | ||
| 734 | + REG_REG0+12, REG_REG0+13, REG_REG0+14, REG_REG0+15, | ||
| 735 | + /* 16 - 22 */ | ||
| 736 | + REG_PC, REG_PR, REG_GBR, -1, REG_MACH, REG_MACL, REG_SR, | ||
| 737 | + /* 23, 24 */ | ||
| 738 | + REG_FPUL, REG_FPSCR, | ||
| 739 | + /* floating point registers 25 - 40 */ | ||
| 740 | + REG_FPREG0 , REG_FPREG0+1 , REG_FPREG0+2 , REG_FPREG0+3 , | ||
| 741 | + REG_FPREG0+4 , REG_FPREG0+5 , REG_FPREG0+6 , REG_FPREG0+7 , | ||
| 742 | + REG_FPREG0+8 , REG_FPREG0+9 , REG_FPREG0+10, REG_FPREG0+11, | ||
| 743 | + REG_FPREG0+12, REG_FPREG0+13, REG_FPREG0+14, REG_FPREG0+15, | ||
| 744 | +}; | ||
| 745 | + | ||
| 746 | +CORE_ADDR | ||
| 747 | +register_u_addr (CORE_ADDR blockend, int regnum) | ||
| 748 | +{ | ||
| 749 | + if (regnum < 0 || regnum >= sizeof regmap/sizeof regmap[0]) | ||
| 750 | + return (CORE_ADDR)-1; | ||
| 751 | + return (blockend + 4 * regmap[regnum]); | ||
| 752 | +} | ||
| 753 | + | ||
| 754 | + | ||
| 755 | +/* Return the address in the core dump or inferior of register REGNO. | ||
| 756 | + BLOCKEND is the address of the end of the user structure. */ | ||
| 757 | + | ||
| 758 | +CORE_ADDR | ||
| 759 | +register_addr (int regno, CORE_ADDR blockend) | ||
| 760 | +{ | ||
| 761 | + CORE_ADDR addr; | ||
| 762 | + | ||
| 763 | + if (regno < 0 || regno >= SH_LINUX_NUM_REGS) { | ||
| 764 | + internal_error (__FILE__, __LINE__, | ||
| 765 | + _("Got request for bad register number %d."), regno); | ||
| 766 | + } | ||
| 767 | + | ||
| 768 | + REGISTER_U_ADDR (addr, blockend, regno); | ||
| 769 | + | ||
| 770 | + return addr; | ||
| 771 | +} | ||
| 772 | + | ||
| 773 | +/* Fetch one register. */ | ||
| 774 | + | ||
| 775 | +static void | ||
| 776 | +fetch_register (struct regcache *regcache, int tid, int regno) | ||
| 777 | +{ | ||
| 778 | + int val; | ||
| 779 | + | ||
| 780 | + if (cannot_fetch_register (regno)) | ||
| 781 | + { | ||
| 782 | + regcache_raw_supply (regcache, regno, NULL); | ||
| 783 | + return; | ||
| 784 | + } | ||
| 785 | + | ||
| 786 | + errno = 0; | ||
| 787 | + val = ptrace (PTRACE_PEEKUSER, tid, register_addr (regno, 0), 0); | ||
| 788 | + if (errno != 0) | ||
| 789 | + perror_with_name (_("Couldn't get registers")); | ||
| 790 | + | ||
| 791 | + regcache_raw_supply (regcache, regno, &val); | ||
| 792 | +} | ||
| 793 | + | ||
| 794 | +/* Store one register. */ | ||
| 795 | + | ||
| 796 | +static void | ||
| 797 | +store_register (struct regcache *regcache, int tid, int regno) | ||
| 798 | +{ | ||
| 799 | + int val; | ||
| 800 | + | ||
| 801 | + if (cannot_store_register (regno)) | ||
| 802 | + return; | ||
| 803 | + | ||
| 804 | + errno = 0; | ||
| 805 | + regcache_raw_collect (regcache, regno, &val); | ||
| 806 | + ptrace (PTRACE_POKEUSER, tid, register_addr (regno, 0), val); | ||
| 807 | + if (errno != 0) | ||
| 808 | + perror_with_name (_("Couldn't write registers")); | ||
| 809 | +} | ||
| 810 | + | ||
| 811 | +/* Transfering the general-purpose registers between GDB, inferiors | ||
| 812 | + and core files. */ | ||
| 813 | + | ||
| 814 | +/* Fill GDB's register array with the general-purpose register values | ||
| 815 | + in *GREGSETP. */ | ||
| 816 | + | ||
| 817 | +void | ||
| 818 | +supply_gregset (struct regcache *regcache, const elf_gregset_t *gregsetp) | ||
| 819 | +{ | ||
| 820 | + elf_greg_t *regp = (elf_greg_t *) gregsetp; | ||
| 821 | + int i; | ||
| 822 | + | ||
| 823 | + for (i = 0; i < 23; i++) | ||
| 824 | + if (regmap[i] == -1) | ||
| 825 | + regcache_raw_supply (regcache, i, NULL); | ||
| 826 | + else | ||
| 827 | + regcache_raw_supply (regcache, i, (char *) (regp + regmap[i])); | ||
| 828 | +} | ||
| 829 | + | ||
| 830 | +/* Fill register REGNO (if it is a general-purpose register) in | ||
| 831 | + *GREGSETPS with the value in GDB's register array. If REGNO is -1, | ||
| 832 | + do this for all registers. */ | ||
| 833 | + | ||
| 834 | +void | ||
| 835 | +fill_gregset (const struct regcache *regcache, elf_gregset_t *gregsetp, int regno) | ||
| 836 | +{ | ||
| 837 | + elf_greg_t *regp = (elf_greg_t *) gregsetp; | ||
| 838 | + int i; | ||
| 839 | + | ||
| 840 | + for (i = 0; i < 23; i++) | ||
| 841 | + if (regmap[i] != -1 && (regno == -1 || regno == i)) | ||
| 842 | + regcache_raw_collect (regcache, i, (char *) (regp + regmap[i])); | ||
| 843 | +} | ||
| 844 | + | ||
| 845 | +/* Transfering floating-point registers between GDB, inferiors and cores. */ | ||
| 846 | + | ||
| 847 | +/* Fill GDB's register array with the floating-point register values in | ||
| 848 | + *FPREGSETP. */ | ||
| 849 | + | ||
| 850 | +void | ||
| 851 | +supply_fpregset (struct regcache *regcache, const elf_fpregset_t *fpregsetp) | ||
| 852 | +{ | ||
| 853 | + int i; | ||
| 854 | + long *regp = (long *)fpregsetp; | ||
| 855 | + | ||
| 856 | + for (i = 0; i < 16; i++) | ||
| 857 | + regcache_raw_supply (regcache, 25 + i, (char *) (regp + i)); | ||
| 858 | + regcache_raw_supply (regcache, FPUL_REGNUM, (char *) (regp + REG_FPUL - REG_FPREG0)); | ||
| 859 | + regcache_raw_supply (regcache, FPSCR_REGNUM, (char *) (regp + REG_FPSCR - REG_FPREG0)); | ||
| 860 | +} | ||
| 861 | + | ||
| 862 | +/* Fill register REGNO (if it is a floating-point register) in | ||
| 863 | + *FPREGSETP with the value in GDB's register array. If REGNO is -1, | ||
| 864 | + do this for all registers. */ | ||
| 865 | + | ||
| 866 | +void | ||
| 867 | +fill_fpregset (const struct regcache *regcache, elf_fpregset_t *fpregsetp, int regno) | ||
| 868 | +{ | ||
| 869 | + int i; | ||
| 870 | + long *regp = (long *)fpregsetp; | ||
| 871 | + | ||
| 872 | + for (i = 0; i < 16; i++) | ||
| 873 | + if ((regno == -1) || (regno == i)) | ||
| 874 | + regcache_raw_collect (regcache, 25 + i, (char *) (regp + i)); | ||
| 875 | + if ((regno == -1) || regno == FPSCR_REGNUM) | ||
| 876 | + regcache_raw_collect (regcache, FPSCR_REGNUM, (char *) (regp + REG_FPSCR - REG_FPREG0)); | ||
| 877 | + if ((regno == -1) || regno == FPUL_REGNUM) | ||
| 878 | + regcache_raw_collect (regcache, FPUL_REGNUM, (char *) (regp + REG_FPUL - REG_FPREG0)); | ||
| 879 | +} | ||
| 880 | + | ||
| 881 | +/* Transferring arbitrary registers between GDB and inferior. */ | ||
| 882 | + | ||
| 883 | +/* Check if register REGNO in the child process is accessible. | ||
| 884 | + If we are accessing registers directly via the U area, only the | ||
| 885 | + general-purpose registers are available. | ||
| 886 | + All registers should be accessible if we have GETREGS support. */ | ||
| 887 | + | ||
| 888 | +int | ||
| 889 | +cannot_fetch_register (int regno) | ||
| 890 | +{ | ||
| 891 | + return (regno < 0 || regno >= sizeof regmap / sizeof regmap[0] || regmap[regno] == -1); | ||
| 892 | +} | ||
| 893 | + | ||
| 894 | +int | ||
| 895 | +cannot_store_register (int regno) | ||
| 896 | +{ | ||
| 897 | + return (regno < 0 || regno >= sizeof regmap / sizeof regmap[0] || regmap[regno] == -1); | ||
| 898 | +} | ||
| 899 | + | ||
| 900 | +/* Fetch register values from the inferior. | ||
| 901 | + If REGNO is negative, do this for all registers. | ||
| 902 | + Otherwise, REGNO specifies which register (so we can save time). */ | ||
| 903 | + | ||
| 904 | +static void | ||
| 905 | +sh_linux_fetch_inferior_registers (struct target_ops *ops, struct regcache *regcache, int regno) | ||
| 906 | +{ | ||
| 907 | + int i; | ||
| 908 | + int tid; | ||
| 909 | + | ||
| 910 | + /* GNU/Linux LWP ID's are process ID's. */ | ||
| 911 | + if ((tid = TIDGET (inferior_ptid)) == 0) | ||
| 912 | + tid = PIDGET (inferior_ptid); /* Not a threaded program. */ | ||
| 913 | + | ||
| 914 | + for (i = 0; i < SH_LINUX_NUM_REGS; i++) | ||
| 915 | + if (regno == -1 || regno == i) | ||
| 916 | + fetch_register (regcache, tid, i); | ||
| 917 | +} | ||
| 918 | +/* Store our register values back into the inferior. | ||
| 919 | + If REGNO is negative, do this for all registers. | ||
| 920 | + Otherwise, REGNO specifies which register (so we can save time). */ | ||
| 921 | + | ||
| 922 | +static void | ||
| 923 | +sh_linux_store_inferior_registers (struct target_ops *ops, struct regcache *regcache, int regno) | ||
| 924 | +{ | ||
| 925 | + int i; | ||
| 926 | + int tid; | ||
| 927 | + | ||
| 928 | + /* GNU/Linux LWP ID's are process ID's. */ | ||
| 929 | + if ((tid = TIDGET (inferior_ptid)) == 0) | ||
| 930 | + tid = PIDGET (inferior_ptid); /* Not a threaded program. */ | ||
| 931 | + | ||
| 932 | + for (i = 0; i < SH_LINUX_NUM_REGS; i++) | ||
| 933 | + if (regno == -1 || regno == i) | ||
| 934 | + store_register (regcache, tid, i); | ||
| 935 | +} | ||
| 936 | + | ||
| 937 | +void | ||
| 938 | +_initialize_sh_linux_nat (void) | ||
| 939 | +{ | ||
| 940 | + struct target_ops *t; | ||
| 941 | + | ||
| 942 | + /* Fill in the generic GNU/Linux methods. */ | ||
| 943 | + t = linux_target (); | ||
| 944 | + | ||
| 945 | + /* Add our register access methods. */ | ||
| 946 | + t->to_fetch_registers = sh_linux_fetch_inferior_registers; | ||
| 947 | + t->to_store_registers = sh_linux_store_inferior_registers; | ||
| 948 | + | ||
| 949 | + /* Register the target. */ | ||
| 950 | + linux_nat_add_target (t); | ||
| 951 | +} | ||
| 952 | Index: gdb-7.9/gdb/sh-tdep.c | ||
| 953 | =================================================================== | ||
| 954 | --- gdb-7.9.orig/gdb/sh-tdep.c | ||
| 955 | +++ gdb-7.9/gdb/sh-tdep.c | ||
| 956 | @@ -21,6 +21,9 @@ | 605 | @@ -21,6 +21,9 @@ |
| 957 | sac@cygnus.com. */ | 606 | sac@cygnus.com. */ |
| 958 | 607 | ||
| @@ -971,7 +620,7 @@ Index: gdb-7.9/gdb/sh-tdep.c | |||
| 971 | #include "doublest.h" | 620 | #include "doublest.h" |
| 972 | #include "osabi.h" | 621 | #include "osabi.h" |
| 973 | #include "reggroups.h" | 622 | #include "reggroups.h" |
| 974 | @@ -67,23 +71,6 @@ static const char *const sh_cc_enum[] = | 623 | @@ -67,23 +71,6 @@ static const char *const sh_cc_enum[] = { |
| 975 | 624 | ||
| 976 | static const char *sh_active_calling_convention = sh_cc_gcc; | 625 | static const char *sh_active_calling_convention = sh_cc_gcc; |
| 977 | 626 | ||
| @@ -1004,7 +653,7 @@ Index: gdb-7.9/gdb/sh-tdep.c | |||
| 1004 | return 1; | 653 | return 1; |
| 1005 | /* Otherwise it's not treated as float. */ | 654 | /* Otherwise it's not treated as float. */ |
| 1006 | return 0; | 655 | return 0; |
| 1007 | @@ -1093,7 +1080,7 @@ sh_push_dummy_call_fpu (struct gdbarch * | 656 | @@ -1093,7 +1080,7 @@ sh_push_dummy_call_fpu (struct gdbarch *gdbarch, |
| 1008 | in four registers available. Loop thru args from first to last. */ | 657 | in four registers available. Loop thru args from first to last. */ |
| 1009 | for (argnum = 0; argnum < nargs; argnum++) | 658 | for (argnum = 0; argnum < nargs; argnum++) |
| 1010 | { | 659 | { |
| @@ -1013,7 +662,7 @@ Index: gdb-7.9/gdb/sh-tdep.c | |||
| 1013 | len = TYPE_LENGTH (type); | 662 | len = TYPE_LENGTH (type); |
| 1014 | val = sh_justify_value_in_reg (gdbarch, args[argnum], len); | 663 | val = sh_justify_value_in_reg (gdbarch, args[argnum], len); |
| 1015 | 664 | ||
| 1016 | @@ -1821,7 +1808,7 @@ sh_dwarf2_frame_init_reg (struct gdbarch | 665 | @@ -1821,7 +1808,7 @@ sh_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum, |
| 1017 | reg->how = DWARF2_FRAME_REG_UNDEFINED; | 666 | reg->how = DWARF2_FRAME_REG_UNDEFINED; |
| 1018 | } | 667 | } |
| 1019 | 668 | ||
| @@ -1031,7 +680,7 @@ Index: gdb-7.9/gdb/sh-tdep.c | |||
| 1031 | sh_frame_cache (struct frame_info *this_frame, void **this_cache) | 680 | sh_frame_cache (struct frame_info *this_frame, void **this_cache) |
| 1032 | { | 681 | { |
| 1033 | struct gdbarch *gdbarch = get_frame_arch (this_frame); | 682 | struct gdbarch *gdbarch = get_frame_arch (this_frame); |
| 1034 | @@ -1915,9 +1902,9 @@ sh_frame_cache (struct frame_info *this_ | 683 | @@ -1915,9 +1902,9 @@ sh_frame_cache (struct frame_info *this_frame, void **this_cache) |
| 1035 | return cache; | 684 | return cache; |
| 1036 | } | 685 | } |
| 1037 | 686 | ||
| @@ -1044,7 +693,7 @@ Index: gdb-7.9/gdb/sh-tdep.c | |||
| 1044 | { | 693 | { |
| 1045 | struct gdbarch *gdbarch = get_frame_arch (this_frame); | 694 | struct gdbarch *gdbarch = get_frame_arch (this_frame); |
| 1046 | struct sh_frame_cache *cache = sh_frame_cache (this_frame, this_cache); | 695 | struct sh_frame_cache *cache = sh_frame_cache (this_frame, this_cache); |
| 1047 | @@ -1931,7 +1918,7 @@ sh_frame_prev_register (struct frame_inf | 696 | @@ -1931,7 +1918,7 @@ sh_frame_prev_register (struct frame_info *this_frame, |
| 1048 | the current frame. Frob regnum so that we pull the value from | 697 | the current frame. Frob regnum so that we pull the value from |
| 1049 | the correct place. */ | 698 | the correct place. */ |
| 1050 | if (regnum == gdbarch_pc_regnum (gdbarch)) | 699 | if (regnum == gdbarch_pc_regnum (gdbarch)) |
| @@ -1053,7 +702,7 @@ Index: gdb-7.9/gdb/sh-tdep.c | |||
| 1053 | 702 | ||
| 1054 | if (regnum < SH_NUM_REGS && cache->saved_regs[regnum] != -1) | 703 | if (regnum < SH_NUM_REGS && cache->saved_regs[regnum] != -1) |
| 1055 | return frame_unwind_got_memory (this_frame, regnum, | 704 | return frame_unwind_got_memory (this_frame, regnum, |
| 1056 | @@ -2237,8 +2224,8 @@ sh_return_in_first_hidden_param_p (struc | 705 | @@ -2237,8 +2224,8 @@ sh_return_in_first_hidden_param_p (struct gdbarch *gdbarch, |
| 1057 | static struct gdbarch * | 706 | static struct gdbarch * |
| 1058 | sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) | 707 | sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) |
| 1059 | { | 708 | { |
| @@ -1063,7 +712,7 @@ Index: gdb-7.9/gdb/sh-tdep.c | |||
| 1063 | 712 | ||
| 1064 | /* SH5 is handled entirely in sh64-tdep.c. */ | 713 | /* SH5 is handled entirely in sh64-tdep.c. */ |
| 1065 | if (info.bfd_arch_info->mach == bfd_mach_sh5) | 714 | if (info.bfd_arch_info->mach == bfd_mach_sh5) |
| 1066 | @@ -2254,6 +2241,18 @@ sh_gdbarch_init (struct gdbarch_info inf | 715 | @@ -2254,6 +2241,18 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) |
| 1067 | tdep = XCNEW (struct gdbarch_tdep); | 716 | tdep = XCNEW (struct gdbarch_tdep); |
| 1068 | gdbarch = gdbarch_alloc (&info, tdep); | 717 | gdbarch = gdbarch_alloc (&info, tdep); |
| 1069 | 718 | ||
| @@ -1082,7 +731,7 @@ Index: gdb-7.9/gdb/sh-tdep.c | |||
| 1082 | set_gdbarch_short_bit (gdbarch, 2 * TARGET_CHAR_BIT); | 731 | set_gdbarch_short_bit (gdbarch, 2 * TARGET_CHAR_BIT); |
| 1083 | set_gdbarch_int_bit (gdbarch, 4 * TARGET_CHAR_BIT); | 732 | set_gdbarch_int_bit (gdbarch, 4 * TARGET_CHAR_BIT); |
| 1084 | set_gdbarch_long_bit (gdbarch, 4 * TARGET_CHAR_BIT); | 733 | set_gdbarch_long_bit (gdbarch, 4 * TARGET_CHAR_BIT); |
| 1085 | @@ -2404,10 +2403,11 @@ sh_gdbarch_init (struct gdbarch_info inf | 734 | @@ -2404,10 +2403,11 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) |
| 1086 | break; | 735 | break; |
| 1087 | } | 736 | } |
| 1088 | 737 | ||
| @@ -1095,108 +744,93 @@ Index: gdb-7.9/gdb/sh-tdep.c | |||
| 1095 | frame_unwind_append_unwinder (gdbarch, &sh_stub_unwind); | 744 | frame_unwind_append_unwinder (gdbarch, &sh_stub_unwind); |
| 1096 | frame_unwind_append_unwinder (gdbarch, &sh_frame_unwind); | 745 | frame_unwind_append_unwinder (gdbarch, &sh_frame_unwind); |
| 1097 | 746 | ||
| 1098 | Index: gdb-7.9/gdb/testsuite/gdb.asm/sh-linux.inc | 747 | diff --git a/gdb/sh-tdep.h b/gdb/sh-tdep.h |
| 1099 | =================================================================== | 748 | index fc671a5..699f59f 100644 |
| 1100 | --- /dev/null | 749 | --- a/gdb/sh-tdep.h |
| 1101 | +++ gdb-7.9/gdb/testsuite/gdb.asm/sh-linux.inc | 750 | +++ b/gdb/sh-tdep.h |
| 1102 | @@ -0,0 +1,78 @@ | 751 | @@ -21,6 +21,12 @@ |
| 1103 | +# You'll find a bunch of nop opcodes in the below macros. They are | 752 | |
| 1104 | +# there to keep the code correctly aligned. Be careful to maintain | 753 | /* Contributed by Steve Chamberlain sac@cygnus.com. */ |
| 1105 | +# them when changing the code. | 754 | |
| 1106 | + | 755 | +struct frame_info; |
| 1107 | + comment "subroutine declare" | 756 | +struct gdbarch; |
| 1108 | + .purgem gdbasm_declare | 757 | +struct reggroup; |
| 1109 | + .macro gdbasm_declare name | 758 | +struct regset; |
| 1110 | + .align 1 | 759 | +struct regcache; |
| 1111 | + .global \name | 760 | + |
| 1112 | +\name: | 761 | /* Registers for all SH variants. Used also by sh3-rom.c. */ |
| 1113 | + .endm | 762 | enum |
| 1114 | + | 763 | { |
| 1115 | + comment "subroutine prologue" | 764 | @@ -29,6 +35,7 @@ enum |
| 1116 | + .macro gdbasm_enter | 765 | ARG0_REGNUM = 4, |
| 1117 | + mov.l r14,@-r15 | 766 | ARGLAST_REGNUM = 7, |
| 1118 | + sts.l pr,@-r15 | 767 | FP_REGNUM = 14, |
| 1119 | + mov r15,r14 | 768 | + SP_REGNUM = 15, |
| 1120 | + nop | 769 | PC_REGNUM = 16, |
| 1121 | + .endm | 770 | PR_REGNUM = 17, |
| 1122 | + | 771 | GBR_REGNUM = 18, |
| 1123 | + comment "subroutine epilogue" | 772 | @@ -81,6 +88,24 @@ enum |
| 1124 | + .macro gdbasm_leave | 773 | FV0_REGNUM = 76, |
| 1125 | + mov r14,r15 | 774 | FV_LAST_REGNUM = 79 |
| 1126 | + lds.l @r15+,pr | 775 | }; |
| 1127 | + mov.l @r15+,r14 | 776 | +#define SH_NUM_REGS 67 |
| 1128 | + rts | 777 | + |
| 1129 | + nop | 778 | +struct sh_frame_cache |
| 1130 | + nop | 779 | +{ |
| 1131 | + .endm | 780 | + /* Base address. */ |
| 1132 | + | 781 | + CORE_ADDR base; |
| 1133 | + comment "subroutine end" | 782 | + LONGEST sp_offset; |
| 1134 | + .purgem gdbasm_end | 783 | + CORE_ADDR pc; |
| 1135 | + .macro gdbasm_end name | 784 | + |
| 1136 | + .size \name, .-_foo1 | 785 | + /* Flag showing that a frame has been created in the prologue code. */ |
| 1137 | + .align 1 | 786 | + int uses_fp; |
| 1138 | + .endm | 787 | + |
| 1139 | + | 788 | + /* Saved registers. */ |
| 1140 | + comment "subroutine call" | 789 | + CORE_ADDR saved_regs[SH_NUM_REGS]; |
| 1141 | + .macro gdbasm_call subr | 790 | + CORE_ADDR saved_sp; |
| 1142 | + mov.l .Lconst\@,r1 | 791 | +}; |
| 1143 | + bra .Lafterconst\@ | 792 | + |
| 1144 | + nop | 793 | +extern struct sh_frame_cache *sh_frame_cache (struct frame_info *next_frame, void **this_cache); |
| 1145 | + .align 2 | 794 | |
| 1146 | +.Lconst\@: | 795 | /* This structure describes a register in a core-file. */ |
| 1147 | + .long \subr | 796 | struct sh_corefile_regmap |
| 1148 | +.Lafterconst\@: | 797 | @@ -89,8 +114,32 @@ struct sh_corefile_regmap |
| 1149 | + jsr @r1 | 798 | unsigned int offset; |
| 1150 | + nop | 799 | }; |
| 1151 | + .endm | 800 | |
| 1152 | + | 801 | +/* sh architecture specific information. */ |
| 1153 | + .macro gdbasm_several_nops | 802 | struct gdbarch_tdep |
| 1154 | + nop | 803 | { |
| 1155 | + nop | 804 | + /* General-purpose registers. */ |
| 1156 | + nop | 805 | + struct regset *gregset; |
| 1157 | + nop | 806 | + int *gregset_reg_offset; |
| 1158 | + .endm | 807 | + int gregset_num_regs; |
| 1159 | + | 808 | + size_t sizeof_gregset; |
| 1160 | + comment "exit (0)" | 809 | + |
| 1161 | + .macro gdbasm_exit0 | 810 | + /* Floating-point registers. */ |
| 1162 | + sleep | 811 | + struct regset *fpregset; |
| 1163 | + nop | 812 | + size_t sizeof_fpregset; |
| 1164 | + .endm | 813 | + |
| 1165 | + | 814 | + /* Offset of saved PC in jmp_buf. */ |
| 1166 | + comment "crt0 startup" | 815 | + int jb_pc_offset; |
| 1167 | + .macro gdbasm_startup | 816 | + |
| 1168 | + mov #0,r14 | 817 | + /* Detect sigtramp. */ |
| 1169 | + .endm | 818 | + int (*sigtramp_p) (struct frame_info *); |
| 1170 | + | 819 | + |
| 1171 | + comment "Declare a data variable" | 820 | + /* Get address of sigcontext for sigtramp. */ |
| 1172 | + .purgem gdbasm_datavar | 821 | + CORE_ADDR (*sigcontext_addr) (struct frame_info *); |
| 1173 | + .macro gdbasm_datavar name value | 822 | + |
| 1174 | + .data | 823 | + /* Offset of registers in `struct sigcontext'. */ |
| 1175 | + .align 2 | 824 | + int *sc_reg_offset; |
| 1176 | + .type \name, @object | 825 | + int sc_num_regs; |
| 1177 | + .size \name, 4 | 826 | + |
| 1178 | +\name: | 827 | /* Non-NULL when debugging from a core file. Provides the offset |
| 1179 | + .long \value | 828 | where each general-purpose register is stored inside the associated |
| 1180 | + .endm | 829 | core file section. */ |
| 1181 | Index: gdb-7.9/gdb/testsuite/gdb.asm/sh.inc | 830 | diff --git a/gdb/testsuite/gdb.asm/asm-source.exp b/gdb/testsuite/gdb.asm/asm-source.exp |
| 1182 | =================================================================== | 831 | index 8854af0..ef44682 100644 |
| 1183 | --- gdb-7.9.orig/gdb/testsuite/gdb.asm/sh.inc | 832 | --- a/gdb/testsuite/gdb.asm/asm-source.exp |
| 1184 | +++ gdb-7.9/gdb/testsuite/gdb.asm/sh.inc | 833 | +++ b/gdb/testsuite/gdb.asm/asm-source.exp |
| 1185 | @@ -40,9 +40,8 @@ | ||
| 1186 | mov.l .Lconst\@,r1 | ||
| 1187 | bra .Lafterconst\@ | ||
| 1188 | nop | ||
| 1189 | - nop | ||
| 1190 | -.Lconst\@: | ||
| 1191 | .align 2 | ||
| 1192 | +.Lconst\@: | ||
| 1193 | .long \subr | ||
| 1194 | .align 1 | ||
| 1195 | .Lafterconst\@: | ||
| 1196 | Index: gdb-7.9/gdb/testsuite/gdb.asm/asm-source.exp | ||
| 1197 | =================================================================== | ||
| 1198 | --- gdb-7.9.orig/gdb/testsuite/gdb.asm/asm-source.exp | ||
| 1199 | +++ gdb-7.9/gdb/testsuite/gdb.asm/asm-source.exp | ||
| 1200 | @@ -113,6 +113,11 @@ switch -glob -- [istarget] { | 834 | @@ -113,6 +113,11 @@ switch -glob -- [istarget] { |
| 1201 | append link-flags " -m elf32ppc" | 835 | append link-flags " -m elf32ppc" |
| 1202 | } | 836 | } |
| @@ -1209,170 +843,79 @@ Index: gdb-7.9/gdb/testsuite/gdb.asm/asm-source.exp | |||
| 1209 | "sh*-*-*" { | 843 | "sh*-*-*" { |
| 1210 | set asm-arch sh | 844 | set asm-arch sh |
| 1211 | set debug-flags "-gdwarf-2" | 845 | set debug-flags "-gdwarf-2" |
| 1212 | Index: gdb-7.9/gdb/testsuite/gdb.base/sigall.c | 846 | diff --git a/gdb/testsuite/gdb.asm/sh.inc b/gdb/testsuite/gdb.asm/sh.inc |
| 1213 | =================================================================== | 847 | index a4a5fc5..89efed7 100644 |
| 1214 | --- gdb-7.9.orig/gdb/testsuite/gdb.base/sigall.c | 848 | --- a/gdb/testsuite/gdb.asm/sh.inc |
| 1215 | +++ gdb-7.9/gdb/testsuite/gdb.base/sigall.c | 849 | +++ b/gdb/testsuite/gdb.asm/sh.inc |
| 850 | @@ -40,9 +40,8 @@ | ||
| 851 | mov.l .Lconst\@,r1 | ||
| 852 | bra .Lafterconst\@ | ||
| 853 | nop | ||
| 854 | - nop | ||
| 855 | -.Lconst\@: | ||
| 856 | .align 2 | ||
| 857 | +.Lconst\@: | ||
| 858 | .long \subr | ||
| 859 | .align 1 | ||
| 860 | .Lafterconst\@: | ||
| 861 | diff --git a/gdb/testsuite/gdb.base/annota1.c b/gdb/testsuite/gdb.base/annota1.c | ||
| 862 | index 424e1b8..0de2e7b 100644 | ||
| 863 | --- a/gdb/testsuite/gdb.base/annota1.c | ||
| 864 | +++ b/gdb/testsuite/gdb.base/annota1.c | ||
| 1216 | @@ -1,6 +1,9 @@ | 865 | @@ -1,6 +1,9 @@ |
| 866 | #include <stdio.h> | ||
| 1217 | #include <signal.h> | 867 | #include <signal.h> |
| 1218 | #include <unistd.h> | ||
| 1219 | 868 | ||
| 1220 | +#ifdef __sh__ | 869 | +#ifdef __sh__ |
| 1221 | +#define signal(a,b) /* Signals not supported on this target - make them go away */ | 870 | +#define signal(a,b) /* Signals not supported on this target - make them go away */ |
| 1222 | +#endif | 871 | +#endif |
| 1223 | 872 | ||
| 1224 | /* Signal handlers, we set breakpoints in them to make sure that the | 873 | void |
| 1225 | signals really get delivered. */ | 874 | handle_USR1 (int sig) |
| 1226 | Index: gdb-7.9/gdb/testsuite/gdb.base/signals.c | 875 | diff --git a/gdb/testsuite/gdb.base/annota3.c b/gdb/testsuite/gdb.base/annota3.c |
| 1227 | =================================================================== | 876 | index 424e1b8..952aaf2 100644 |
| 1228 | --- gdb-7.9.orig/gdb/testsuite/gdb.base/signals.c | 877 | --- a/gdb/testsuite/gdb.base/annota3.c |
| 1229 | +++ gdb-7.9/gdb/testsuite/gdb.base/signals.c | 878 | +++ b/gdb/testsuite/gdb.base/annota3.c |
| 1230 | @@ -3,6 +3,10 @@ | 879 | @@ -1,6 +1,10 @@ |
| 880 | #include <stdio.h> | ||
| 1231 | #include <signal.h> | 881 | #include <signal.h> |
| 1232 | #include <unistd.h> | ||
| 1233 | 882 | ||
| 1234 | +#ifdef __sh__ | 883 | +#ifdef __sh__ |
| 1235 | +#define signal(a,b) /* Signals not supported on this target - make them go away */ | 884 | +#define signal(a,b) /* Signals not supported on this target - make them go away */ |
| 1236 | +#define alarm(a) /* Ditto for alarm() */ | ||
| 1237 | +#endif | 885 | +#endif |
| 886 | + | ||
| 1238 | 887 | ||
| 1239 | static int count = 0; | 888 | void |
| 1240 | 889 | handle_USR1 (int sig) | |
| 1241 | Index: gdb-7.9/gdb/testsuite/gdb.base/annota1.c | 890 | diff --git a/gdb/testsuite/gdb.base/sigall.c b/gdb/testsuite/gdb.base/sigall.c |
| 1242 | =================================================================== | 891 | index 81f3b08..1574b2d 100644 |
| 1243 | --- gdb-7.9.orig/gdb/testsuite/gdb.base/annota1.c | 892 | --- a/gdb/testsuite/gdb.base/sigall.c |
| 1244 | +++ gdb-7.9/gdb/testsuite/gdb.base/annota1.c | 893 | +++ b/gdb/testsuite/gdb.base/sigall.c |
| 1245 | @@ -1,6 +1,9 @@ | 894 | @@ -1,6 +1,9 @@ |
| 1246 | #include <stdio.h> | ||
| 1247 | #include <signal.h> | 895 | #include <signal.h> |
| 896 | #include <unistd.h> | ||
| 1248 | 897 | ||
| 1249 | +#ifdef __sh__ | 898 | +#ifdef __sh__ |
| 1250 | +#define signal(a,b) /* Signals not supported on this target - make them go away */ | 899 | +#define signal(a,b) /* Signals not supported on this target - make them go away */ |
| 1251 | +#endif | 900 | +#endif |
| 1252 | 901 | ||
| 1253 | void | 902 | /* Signal handlers, we set breakpoints in them to make sure that the |
| 1254 | handle_USR1 (int sig) | 903 | signals really get delivered. */ |
| 1255 | Index: gdb-7.9/gdb/testsuite/gdb.base/annota3.c | 904 | diff --git a/gdb/testsuite/gdb.base/signals.c b/gdb/testsuite/gdb.base/signals.c |
| 1256 | =================================================================== | 905 | index 7566068..1205a9b 100644 |
| 1257 | --- gdb-7.9.orig/gdb/testsuite/gdb.base/annota3.c | 906 | --- a/gdb/testsuite/gdb.base/signals.c |
| 1258 | +++ gdb-7.9/gdb/testsuite/gdb.base/annota3.c | 907 | +++ b/gdb/testsuite/gdb.base/signals.c |
| 1259 | @@ -1,6 +1,10 @@ | 908 | @@ -3,6 +3,10 @@ |
| 1260 | #include <stdio.h> | ||
| 1261 | #include <signal.h> | 909 | #include <signal.h> |
| 910 | #include <unistd.h> | ||
| 1262 | 911 | ||
| 1263 | +#ifdef __sh__ | 912 | +#ifdef __sh__ |
| 1264 | +#define signal(a,b) /* Signals not supported on this target - make them go away */ | 913 | +#define signal(a,b) /* Signals not supported on this target - make them go away */ |
| 914 | +#define alarm(a) /* Ditto for alarm() */ | ||
| 1265 | +#endif | 915 | +#endif |
| 1266 | + | ||
| 1267 | 916 | ||
| 1268 | void | 917 | static int count = 0; |
| 1269 | handle_USR1 (int sig) | 918 | |
| 1270 | Index: gdb-7.9/gdb/config/sh/xm-linux.h | 919 | -- |
| 1271 | =================================================================== | 920 | 2.1.4 |
| 1272 | --- /dev/null | 921 | |
| 1273 | +++ gdb-7.9/gdb/config/sh/xm-linux.h | ||
| 1274 | @@ -0,0 +1,32 @@ | ||
| 1275 | +/* Native support for GNU/Linux, for GDB, the GNU debugger. | ||
| 1276 | + Copyright (C) 2000 Free Software Foundation, Inc. | ||
| 1277 | + | ||
| 1278 | +This file is part of GDB. | ||
| 1279 | + | ||
| 1280 | +This program is free software; you can redistribute it and/or modify | ||
| 1281 | +it under the terms of the GNU General Public License as published by | ||
| 1282 | +the Free Software Foundation; either version 2 of the License, or | ||
| 1283 | +(at your option) any later version. | ||
| 1284 | + | ||
| 1285 | +This program is distributed in the hope that it will be useful, | ||
| 1286 | +but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 1287 | +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 1288 | +GNU General Public License for more details. | ||
| 1289 | + | ||
| 1290 | +You should have received a copy of the GNU General Public License | ||
| 1291 | +along with this program; if not, write to the Free Software | ||
| 1292 | +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | ||
| 1293 | + | ||
| 1294 | +#ifndef XM_LINUX_H | ||
| 1295 | +#define XM_LINUX_H | ||
| 1296 | + | ||
| 1297 | +#define HOST_BYTE_ORDER LITTLE_ENDIAN | ||
| 1298 | + | ||
| 1299 | +#define HAVE_TERMIOS | ||
| 1300 | + | ||
| 1301 | +#define NEED_POSIX_SETPGID | ||
| 1302 | + | ||
| 1303 | +/* Need R_OK etc, but USG isn't defined. */ | ||
| 1304 | +#include <unistd.h> | ||
| 1305 | + | ||
| 1306 | +#endif /* #ifndef XM_LINUX_H */ | ||
| 1307 | Index: gdb-7.9/gdb/config/sh/nm-linux.h | ||
| 1308 | =================================================================== | ||
| 1309 | --- /dev/null | ||
| 1310 | +++ gdb-7.9/gdb/config/sh/nm-linux.h | ||
| 1311 | @@ -0,0 +1,54 @@ | ||
| 1312 | +/* Native-dependent definitions for SuperH running Linux, for GDB. | ||
| 1313 | + Copyright 2004 Free Software Foundation, Inc. | ||
| 1314 | + | ||
| 1315 | + This file is part of GDB. | ||
| 1316 | + | ||
| 1317 | + This program is free software; you can redistribute it and/or modify | ||
| 1318 | + it under the terms of the GNU General Public License as published by | ||
| 1319 | + the Free Software Foundation; either version 2 of the License, or | ||
| 1320 | + (at your option) any later version. | ||
| 1321 | + | ||
| 1322 | + This program is distributed in the hope that it will be useful, | ||
| 1323 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 1324 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 1325 | + GNU General Public License for more details. | ||
| 1326 | + | ||
| 1327 | + You should have received a copy of the GNU General Public License | ||
| 1328 | + along with this program; if not, write to the Free Software | ||
| 1329 | + Foundation, Inc., 59 Temple Place - Suite 330, | ||
| 1330 | + Boston, MA 02111-1307, USA. */ | ||
| 1331 | + | ||
| 1332 | +#ifndef NM_LINUX_H | ||
| 1333 | +#define NM_LINUX_H | ||
| 1334 | + | ||
| 1335 | +/* Get generic Linux native definitions. */ | ||
| 1336 | +#include "config/nm-linux.h" | ||
| 1337 | +/* Support for the user area. */ | ||
| 1338 | + | ||
| 1339 | +/* Return the size of the user struct. */ | ||
| 1340 | +extern int kernel_u_size (void); | ||
| 1341 | +#define KERNEL_U_SIZE kernel_u_size() | ||
| 1342 | + | ||
| 1343 | +/* This is the amount to substract from u.u_ar0 to get the offset in | ||
| 1344 | + the core file of the register values. */ | ||
| 1345 | +#define KERNEL_U_ADDR 0 | ||
| 1346 | + | ||
| 1347 | +#define U_REGS_OFFSET 0 | ||
| 1348 | + | ||
| 1349 | +extern CORE_ADDR register_u_addr (CORE_ADDR blockend, int regnum); | ||
| 1350 | +#define REGISTER_U_ADDR(addr, blockend, regnum) \ | ||
| 1351 | + (addr) = register_u_addr (blockend, regnum) | ||
| 1352 | + | ||
| 1353 | +/* Override copies of {fetch,store}_inferior_registers in `infptrace.c'. */ | ||
| 1354 | +#define FETCH_INFERIOR_REGISTERS | ||
| 1355 | + | ||
| 1356 | +/* Nevertheless, define CANNOT_{FETCH,STORE}_REGISTER, because we | ||
| 1357 | + might fall back on the code `infptrace.c' (well a copy of that code | ||
| 1358 | + in `sh-linux-nat.c' for now) and we can access only the | ||
| 1359 | + general-purpose registers in that way. */ | ||
| 1360 | +extern int cannot_fetch_register (int regno); | ||
| 1361 | +extern int cannot_store_register (int regno); | ||
| 1362 | +#define CANNOT_FETCH_REGISTER(regno) cannot_fetch_register (regno) | ||
| 1363 | +#define CANNOT_STORE_REGISTER(regno) cannot_store_register (regno) | ||
| 1364 | + | ||
| 1365 | +#endif /* NM_LINUX_H */ | ||
| 1366 | Index: gdb-7.9/gdb/config/sh/linux.mh | ||
| 1367 | =================================================================== | ||
| 1368 | --- /dev/null | ||
| 1369 | +++ gdb-7.9/gdb/config/sh/linux.mh | ||
| 1370 | @@ -0,0 +1,8 @@ | ||
| 1371 | +# Host: Renesas Super-H running GNU/Linux | ||
| 1372 | +NAT_FILE= config/sh/nm-linux.h | ||
| 1373 | +NATDEPFILES= inf-ptrace.o fork-child.o corelow.o sh-linux-nat.o \ | ||
| 1374 | + proc-service.o linux-thread-db.o gcore.o \ | ||
| 1375 | + linux-nat.o linux-osdata.o linux-fork.o linux-procfs.o | ||
| 1376 | + | ||
| 1377 | +NAT_CDEPS = $(srcdir)/proc-service.list | ||
| 1378 | +LOADLIBES= -ldl $(RDYNAMIC) | ||
diff --git a/meta/recipes-devtools/gdb/gdb/0004-Change-comment-in-gdb-compile.patch b/meta/recipes-devtools/gdb/gdb/0004-Change-comment-in-gdb-compile.patch new file mode 100644 index 0000000000..4df552c019 --- /dev/null +++ b/meta/recipes-devtools/gdb/gdb/0004-Change-comment-in-gdb-compile.patch | |||
| @@ -0,0 +1,48 @@ | |||
| 1 | Upstream-Status: Backport | ||
| 2 | |||
| 3 | From 09de64b93c2402e068daf0bce1c4a1dda833b646 Mon Sep 17 00:00:00 2001 | ||
| 4 | From: Jan Kratochvil <jan.kratochvil@redhat.com> | ||
| 5 | Date: Thu, 26 Feb 2015 11:52:28 +0100 | ||
| 6 | Subject: [PATCH] Change // comment in gdb/compile/ | ||
| 7 | |||
| 8 | gdb/ChangeLog | ||
| 9 | 2015-02-26 Jan Kratochvil <jan.kratochvil@redhat.com> | ||
| 10 | |||
| 11 | PR build/18033 | ||
| 12 | * compile/compile-c-support.c (c_compute_program): Change // comment. | ||
| 13 | * compile/compile-object-load.c (setup_sections): Change // comment. | ||
| 14 | --- | ||
| 15 | gdb/ChangeLog | 6 ++++++ | ||
| 16 | gdb/compile/compile-c-support.c | 2 +- | ||
| 17 | gdb/compile/compile-object-load.c | 2 +- | ||
| 18 | 3 files changed, 8 insertions(+), 2 deletions(-) | ||
| 19 | |||
| 20 | diff --git a/gdb/compile/compile-c-support.c b/gdb/compile/compile-c-support.c | ||
| 21 | index 8f1f45d..1711cda 100644 | ||
| 22 | --- a/gdb/compile/compile-c-support.c | ||
| 23 | +++ b/gdb/compile/compile-c-support.c | ||
| 24 | @@ -351,7 +351,7 @@ c_compute_program (struct compile_instance *inst, | ||
| 25 | " __gdb_intptr;\n", | ||
| 26 | buf); | ||
| 27 | |||
| 28 | - // Iterate all log2 sizes in bytes supported by c_get_mode_for_size. | ||
| 29 | + /* Iterate all log2 sizes in bytes supported by c_get_mode_for_size. */ | ||
| 30 | for (i = 0; i < 4; ++i) | ||
| 31 | { | ||
| 32 | const char *mode = c_get_mode_for_size (1 << i); | ||
| 33 | diff --git a/gdb/compile/compile-object-load.c b/gdb/compile/compile-object-load.c | ||
| 34 | index 5903f18..e187970 100644 | ||
| 35 | --- a/gdb/compile/compile-object-load.c | ||
| 36 | +++ b/gdb/compile/compile-object-load.c | ||
| 37 | @@ -67,7 +67,7 @@ setup_sections (bfd *abfd, asection *sect, void *data_voidp) | ||
| 38 | if ((bfd_get_section_flags (abfd, sect) & SEC_ALLOC) == 0) | ||
| 39 | return; | ||
| 40 | |||
| 41 | - // Make the memory always readable. | ||
| 42 | + /* Make the memory always readable. */ | ||
| 43 | prot = GDB_MMAP_PROT_READ; | ||
| 44 | if ((bfd_get_section_flags (abfd, sect) & SEC_READONLY) == 0) | ||
| 45 | prot |= GDB_MMAP_PROT_WRITE; | ||
| 46 | -- | ||
| 47 | 2.1.4 | ||
| 48 | |||
diff --git a/meta/recipes-devtools/gdb/gdb/sim-install-6.6.patch b/meta/recipes-devtools/gdb/gdb/sim-install-6.6.patch deleted file mode 100644 index f67c25d50e..0000000000 --- a/meta/recipes-devtools/gdb/gdb/sim-install-6.6.patch +++ /dev/null | |||
| @@ -1,14 +0,0 @@ | |||
| 1 | Upstream-Status: Inappropriate [embedded specific] | ||
| 2 | |||
| 3 | --- gdb-6.1/sim/common/Makefile.in~ 2004-01-15 21:25:06.000000000 +0000 | ||
| 4 | +++ gdb-6.1/sim/common/Makefile.in 2004-07-22 17:07:46.237809032 +0100 | ||
| 5 | @@ -34,7 +34,7 @@ | ||
| 6 | |||
| 7 | datadir = @datadir@ | ||
| 8 | mandir = @mandir@ | ||
| 9 | -man1dir = $(mandir)/man1 | ||
| 10 | +man1dir = $(DESTDIR)$(mandir)/man1 | ||
| 11 | infodir = @infodir@ | ||
| 12 | includedir = @includedir@ | ||
| 13 | |||
| 14 | |||
diff --git a/meta/recipes-devtools/gdb/gdb/sim-install.patch b/meta/recipes-devtools/gdb/gdb/sim-install.patch deleted file mode 100644 index a663ba7b81..0000000000 --- a/meta/recipes-devtools/gdb/gdb/sim-install.patch +++ /dev/null | |||
| @@ -1,36 +0,0 @@ | |||
| 1 | Upstream-Status: Inappropriate [embedded specific] | ||
| 2 | |||
| 3 | --- gdb-6.1/sim/common/Makefile.in~ 2004-01-15 21:25:06.000000000 +0000 | ||
| 4 | +++ gdb-6.1/sim/common/Makefile.in 2004-07-22 17:07:46.237809032 +0100 | ||
| 5 | @@ -34,7 +34,7 @@ | ||
| 6 | |||
| 7 | datadir = @datadir@ | ||
| 8 | mandir = @mandir@ | ||
| 9 | -man1dir = $(mandir)/man1 | ||
| 10 | +man1dir = $(DESTDIR)$(mandir)/man1 | ||
| 11 | infodir = @infodir@ | ||
| 12 | includedir = @includedir@ | ||
| 13 | |||
| 14 | |||
| 15 | --- gdb-6.1/sim/common/Make-common.in~sim-install.patch 2003-09-08 18:24:59.000000000 +0100 | ||
| 16 | +++ gdb-6.1/sim/common/Make-common.in 2004-07-22 17:56:18.947423032 +0100 | ||
| 17 | @@ -581,14 +581,14 @@ | ||
| 18 | |||
| 19 | install-common: installdirs | ||
| 20 | n=`echo run | sed '$(program_transform_name)'`; \ | ||
| 21 | - $(INSTALL_PROGRAM) run$(EXEEXT) $(bindir)/$$n$(EXEEXT) | ||
| 22 | + $(INSTALL_PROGRAM) run$(EXEEXT) $(DESTDIR)$(bindir)/$$n$(EXEEXT) | ||
| 23 | n=`echo libsim.a | sed s/libsim.a/lib$(target_alias)-sim.a/`; \ | ||
| 24 | - $(INSTALL_DATA) libsim.a $(libdir)/$$n ; \ | ||
| 25 | - ( cd $(libdir) ; $(RANLIB) $$n ) | ||
| 26 | + $(INSTALL_DATA) libsim.a $(DESTDIR)$(libdir)/$$n ; \ | ||
| 27 | + ( cd $(DESTDIR)$(libdir) ; $(RANLIB) $$n ) | ||
| 28 | |||
| 29 | installdirs: | ||
| 30 | - $(SHELL) $(srcdir)/../../mkinstalldirs $(bindir) | ||
| 31 | - $(SHELL) $(srcdir)/../../mkinstalldirs $(libdir) | ||
| 32 | + $(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(bindir) | ||
| 33 | + $(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(libdir) | ||
| 34 | |||
| 35 | check: | ||
| 36 | cd ../testsuite && $(MAKE) check RUNTESTFLAGS="$(RUNTESTFLAGS)" | ||
diff --git a/meta/recipes-devtools/gdb/gdb/uclibc.patch b/meta/recipes-devtools/gdb/gdb/uclibc.patch deleted file mode 100644 index f5fd518fcf..0000000000 --- a/meta/recipes-devtools/gdb/gdb/uclibc.patch +++ /dev/null | |||
| @@ -1,196 +0,0 @@ | |||
| 1 | Upstream-Status: Pending | ||
| 2 | |||
| 3 | --- binutils-2.15.91.0.1/bfd/config.bfd~binutils-2.15.90.0.3-uclibc-100-conf | ||
| 4 | +++ binutils-2.15.91.0.1/bfd/config.bfd | ||
| 5 | @@ -128,7 +128,7 @@ | ||
| 6 | targ_defvec=ecoffalpha_little_vec | ||
| 7 | targ_selvecs=bfd_elf64_alpha_vec | ||
| 8 | ;; | ||
| 9 | - alpha*-*-linux-gnu* | alpha*-*-elf*) | ||
| 10 | + alpha*-*-linux-gnu* | alpha*-*-linux-uclibc* | alpha*-*-elf*) | ||
| 11 | targ_defvec=bfd_elf64_alpha_vec | ||
| 12 | targ_selvecs=ecoffalpha_little_vec | ||
| 13 | ;; | ||
| 14 | @@ -138,7 +138,7 @@ | ||
| 15 | alpha*-*-*) | ||
| 16 | targ_defvec=ecoffalpha_little_vec | ||
| 17 | ;; | ||
| 18 | - ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu) | ||
| 19 | + ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf* | ia64*-*-linux-uclibc* | ia64*-*-kfreebsd*-gnu) | ||
| 20 | targ_defvec=bfd_elf64_ia64_little_vec | ||
| 21 | targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec" | ||
| 22 | ;; | ||
| 23 | @@ -215,7 +215,7 @@ | ||
| 24 | targ_defvec=bfd_elf32_littlearm_vec | ||
| 25 | targ_selvecs=bfd_elf32_bigarm_vec | ||
| 26 | ;; | ||
| 27 | - armeb-*-elf | arm*b-*-linux-gnu*) | ||
| 28 | + armeb-*-elf | arm*b-*-linux-gnu* | arm*b-*-linux-uclibc*) | ||
| 29 | targ_defvec=bfd_elf32_bigarm_vec | ||
| 30 | targ_selvecs=bfd_elf32_littlearm_vec | ||
| 31 | ;; | ||
| 32 | @@ -223,8 +223,8 @@ | ||
| 33 | targ_defvec=bfd_elf32_littlearm_vec | ||
| 34 | targ_selvecs=bfd_elf32_bigarm_vec | ||
| 35 | ;; | ||
| 36 | - arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* | \ | ||
| 37 | - arm*-*-uclinux* | arm-*-kfreebsd*-gnu | arm-*-vxworks) | ||
| 38 | + arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-linux-uclibc* | \ | ||
| 39 | + arm*-*-conix* | arm*-*-uclinux* | arm-*-kfreebsd*-gnu | arm-*-vxworks) | ||
| 40 | targ_defvec=bfd_elf32_littlearm_vec | ||
| 41 | targ_selvecs=bfd_elf32_bigarm_vec | ||
| 42 | ;; | ||
| 43 | @@ -367,7 +367,7 @@ | ||
| 44 | ;; | ||
| 45 | |||
| 46 | #ifdef BFD64 | ||
| 47 | - hppa*64*-*-linux-gnu*) | ||
| 48 | + hppa*64*-*-linux-gnu* | hppa*64*-*-linux-uclibc*) | ||
| 49 | targ_defvec=bfd_elf64_hppa_linux_vec | ||
| 50 | targ_selvecs=bfd_elf64_hppa_vec | ||
| 51 | ;; | ||
| 52 | @@ -378,7 +378,7 @@ | ||
| 53 | ;; | ||
| 54 | #endif | ||
| 55 | |||
| 56 | - hppa*-*-linux-gnu* | hppa*-*-netbsd*) | ||
| 57 | + hppa*-*-linux-gnu* | hppa*-*-netbsd* | hppa*-*-linux-uclibc*) | ||
| 58 | targ_defvec=bfd_elf32_hppa_linux_vec | ||
| 59 | targ_selvecs=bfd_elf32_hppa_vec | ||
| 60 | ;; | ||
| 61 | @@ -501,7 +501,7 @@ | ||
| 62 | targ_selvecs=bfd_elf32_i386_vec | ||
| 63 | targ_underscore=yes | ||
| 64 | ;; | ||
| 65 | - i[3-7]86-*-linux-gnu*) | ||
| 66 | + i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*) | ||
| 67 | targ_defvec=bfd_elf32_i386_vec | ||
| 68 | targ_selvecs="i386linux_vec bfd_efi_app_ia32_vec" | ||
| 69 | targ64_selvecs=bfd_elf64_x86_64_vec | ||
| 70 | @@ -515,7 +515,7 @@ | ||
| 71 | targ_defvec=bfd_elf64_x86_64_vec | ||
| 72 | targ_selvecs="bfd_elf32_i386_vec i386netbsd_vec i386coff_vec bfd_efi_app_ia32_vec" | ||
| 73 | ;; | ||
| 74 | - x86_64-*-linux-gnu*) | ||
| 75 | + x86_64-*-linux-gnu* | x86_64-*-linux-uclibc*) | ||
| 76 | targ_defvec=bfd_elf64_x86_64_vec | ||
| 77 | targ_selvecs="bfd_elf32_i386_vec i386linux_vec bfd_efi_app_ia32_vec" | ||
| 78 | ;; | ||
| 79 | @@ -690,7 +690,7 @@ | ||
| 80 | targ_selvecs=bfd_elf32_m68k_vec | ||
| 81 | targ_underscore=yes | ||
| 82 | ;; | ||
| 83 | - m68*-*-linux-gnu*) | ||
| 84 | + m68*-*-linux-gnu* | m68*-*-linux-uclibc*) | ||
| 85 | targ_defvec=bfd_elf32_m68k_vec | ||
| 86 | targ_selvecs=m68klinux_vec | ||
| 87 | ;; | ||
| 88 | @@ -966,7 +966,8 @@ | ||
| 89 | ;; | ||
| 90 | #endif | ||
| 91 | powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \ | ||
| 92 | - powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems* | \ | ||
| 93 | + powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-linux-uclibc* | \ | ||
| 94 | + powerpc-*-rtems* | \ | ||
| 95 | powerpc-*-chorus* | powerpc-*-vxworks* | powerpc-*-windiss*) | ||
| 96 | targ_defvec=bfd_elf32_powerpc_vec | ||
| 97 | targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec" | ||
| 98 | @@ -1003,8 +1004,8 @@ | ||
| 99 | targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec" | ||
| 100 | ;; | ||
| 101 | powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \ | ||
| 102 | - powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-vxworks* |\ | ||
| 103 | - powerpcle-*-rtems*) | ||
| 104 | + powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-linux-uclibc* |\ | ||
| 105 | + powerpcle-*-vxworks* | powerpcle-*-rtems*) | ||
| 106 | targ_defvec=bfd_elf32_powerpcle_vec | ||
| 107 | targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec" | ||
| 108 | targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec" | ||
| 109 | @@ -1165,7 +1166,7 @@ | ||
| 110 | targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec" | ||
| 111 | targ_underscore=yes | ||
| 112 | ;; | ||
| 113 | - sparc-*-linux-gnu*) | ||
| 114 | + sparc-*-linux-gnu* | sparc-*-linux-uclibc*) | ||
| 115 | targ_defvec=bfd_elf32_sparc_vec | ||
| 116 | targ_selvecs="sparclinux_vec bfd_elf64_sparc_vec sunos_big_vec" | ||
| 117 | ;; | ||
| 118 | @@ -1212,7 +1213,7 @@ | ||
| 119 | targ_defvec=sunos_big_vec | ||
| 120 | targ_underscore=yes | ||
| 121 | ;; | ||
| 122 | - sparc64-*-linux-gnu*) | ||
| 123 | + sparc64-*-linux-gnu* | sparc64-*-linux-uclibc*) | ||
| 124 | targ_defvec=bfd_elf64_sparc_vec | ||
| 125 | targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec" | ||
| 126 | ;; | ||
| 127 | --- binutils-2.15.91.0.1/bfd/configure~binutils-2.15.90.0.3-uclibc-100-conf | ||
| 128 | +++ binutils-2.15.91.0.1/bfd/configure | ||
| 129 | @@ -1687,6 +1687,11 @@ | ||
| 130 | lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` | ||
| 131 | ;; | ||
| 132 | |||
| 133 | +linux-uclibc*) | ||
| 134 | + lt_cv_deplibs_check_method=pass_all | ||
| 135 | + lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` | ||
| 136 | + ;; | ||
| 137 | + | ||
| 138 | netbsd*) | ||
| 139 | if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then | ||
| 140 | lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' | ||
| 141 | @@ -5266,7 +5271,7 @@ | ||
| 142 | alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu) | ||
| 143 | COREFILE='' | ||
| 144 | ;; | ||
| 145 | - alpha*-*-linux-gnu*) | ||
| 146 | + alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*) | ||
| 147 | COREFILE=trad-core.lo | ||
| 148 | TRAD_HEADER='"hosts/alphalinux.h"' | ||
| 149 | ;; | ||
| 150 | @@ -5326,7 +5331,7 @@ | ||
| 151 | COREFILE=trad-core.lo | ||
| 152 | TRAD_HEADER='"hosts/i386mach3.h"' | ||
| 153 | ;; | ||
| 154 | - i[3-7]86-*-linux-gnu*) | ||
| 155 | + i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*) | ||
| 156 | COREFILE=trad-core.lo | ||
| 157 | TRAD_HEADER='"hosts/i386linux.h"' | ||
| 158 | ;; | ||
| 159 | @@ -5364,7 +5369,7 @@ | ||
| 160 | COREFILE=trad-core.lo | ||
| 161 | TRAD_HEADER='"hosts/hp300bsd.h"' | ||
| 162 | ;; | ||
| 163 | - m68*-*-linux-gnu*) | ||
| 164 | + m68*-*-linux-gnu* | m68*-*-linux-uclibc*) | ||
| 165 | COREFILE=trad-core.lo | ||
| 166 | TRAD_HEADER='"hosts/m68klinux.h"' | ||
| 167 | ;; | ||
| 168 | --- binutils-2.15.91.0.1/bfd/configure.in~binutils-2.15.90.0.3-uclibc-100-conf | ||
| 169 | +++ binutils-2.15.91.0.1/bfd/configure.in | ||
| 170 | @@ -164,7 +164,7 @@ | ||
| 171 | alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu) | ||
| 172 | COREFILE='' | ||
| 173 | ;; | ||
| 174 | - alpha*-*-linux-gnu*) | ||
| 175 | + alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*) | ||
| 176 | COREFILE=trad-core.lo | ||
| 177 | TRAD_HEADER='"hosts/alphalinux.h"' | ||
| 178 | ;; | ||
| 179 | @@ -245,7 +245,7 @@ | ||
| 180 | TRAD_HEADER='"hosts/i386mach3.h"' | ||
| 181 | ;; | ||
| 182 | changequote(,)dnl | ||
| 183 | - i[3-7]86-*-linux-gnu*) | ||
| 184 | + i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*) | ||
| 185 | changequote([,])dnl | ||
| 186 | COREFILE=trad-core.lo | ||
| 187 | TRAD_HEADER='"hosts/i386linux.h"' | ||
| 188 | @@ -286,7 +286,7 @@ | ||
| 189 | COREFILE=trad-core.lo | ||
| 190 | TRAD_HEADER='"hosts/hp300bsd.h"' | ||
| 191 | ;; | ||
| 192 | - m68*-*-linux-gnu*) | ||
| 193 | + m68*-*-linux-gnu* | m68*-*-linux-uclibc*) | ||
| 194 | COREFILE=trad-core.lo | ||
| 195 | TRAD_HEADER='"hosts/m68klinux.h"' | ||
| 196 | ;; | ||
