diff options
Diffstat (limited to 'meta')
-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 | ;; | ||