From: Corinna Vinschen <vinschen@redhat.com>
To: gdb-patches <gdb-patches@sources.redhat.com>
Subject: [RFA]: arm changes to run gdb.asm/asm-source.exp successfully
Date: Tue, 04 Dec 2001 10:34:00 -0000 [thread overview]
Message-ID: <20011204193348.B10634@cygbert.vinschen.de> (raw)
Hi,
the following patch allows ARM targets to run the gdb.asm test
successfully. The change consists basically of a change to
asm-tdep.c, function arm_skip_prologue() to scan the prologue
the hard way when the source is assembler code and of adding the
appropriate arm.inc file plus some additional lines in asm-source.exp
and configure.in to support the new target.
Corinna
ChangeLog:
2001-12-04 Corinna Vinschen <vinschen@redhat.com>
* arm-tdep.c (arm_skip_prologue): Skip prologue by scanning
the prologue if source is assembler.
testsuite/ChangeLog:
* gdb.asm/arm.inc: New file.
* gdb.asm/asm-source.exp: Add arm targets.
* gdb.asm/configure.in: Ditto.
* gdb.asm/configure: Recreated from configure.in.
The new gdb.asm/arm.inc file:
comment "subroutine prologue"
.macro gdbasm_enter
mov ip, sp
stmdb sp!, {fp, ip, lr, pc}
sub fp, ip, #4
.endm
comment "subroutine epilogue"
.macro gdbasm_leave
ldmea fp, {fp, sp, pc}
.endm
.macro gdbasm_call subr
bl \subr
.endm
.macro gdbasm_several_nops
nop
nop
nop
nop
.endm
comment "exit (0)"
.macro gdbasm_exit0
mov r0, #0
swi 0x00123456
.endm
comment "crt0 startup"
.macro gdbasm_startup
mov sp, #0
.endm
Index: arm-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/arm-tdep.c,v
retrieving revision 1.18
diff -u -p -r1.18 arm-tdep.c
--- arm-tdep.c 2001/11/30 20:27:08 1.18
+++ arm-tdep.c 2001/12/04 18:18:25
@@ -402,15 +402,24 @@ arm_skip_prologue (CORE_ADDR pc)
unsigned long inst;
CORE_ADDR skip_pc;
CORE_ADDR func_addr, func_end;
+ char *func_name;
struct symtab_and_line sal;
/* See what the symbol table says. */
- if (find_pc_partial_function (pc, NULL, &func_addr, &func_end))
+ if (find_pc_partial_function (pc, &func_name, &func_addr, &func_end))
{
- sal = find_pc_line (func_addr, 0);
- if ((sal.line != 0) && (sal.end < func_end))
- return sal.end;
+ struct symbol *sym;
+
+ /* Found a function. */
+ sym = lookup_symbol (func_name, NULL, VAR_NAMESPACE, NULL, NULL);
+ if (sym && SYMBOL_LANGUAGE (sym) != language_asm)
+ {
+ /* Don't use this trick for assembly source files. */
+ sal = find_pc_line (func_addr, 0);
+ if ((sal.line != 0) && (sal.end < func_end))
+ return sal.end;
+ }
}
/* Check if this is Thumb code. */
Index: testsuite/gdb.asm/asm-source.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.asm/asm-source.exp,v
retrieving revision 1.10
diff -u -p -r1.10 asm-source.exp
--- asm-source.exp 2001/12/01 01:13:27 1.10
+++ asm-source.exp 2001/12/04 18:18:27
@@ -35,6 +35,12 @@ set asm-arch ""
set asm-flags ""
set link-flags ""
+if [istarget "*arm-*-*"] then {
+ set asm-arch arm
+}
+if [istarget "xscale-*-*"] then {
+ set asm-arch arm
+}
if [istarget "d10v-*-*"] then {
set asm-arch d10v
}
Index: testsuite/gdb.asm/configure
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.asm/configure,v
retrieving revision 1.6
diff -u -p -r1.6 configure
--- configure 2001/12/01 01:13:27 1.6
+++ configure 2001/12/04 18:18:28
@@ -28,7 +28,6 @@ program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
-sitefile=
srcdir=
target=NONE
verbose=
@@ -143,7 +142,6 @@ Configuration:
--help print this message
--no-create do not create output files
--quiet, --silent do not print \`checking...' messages
- --site-file=FILE use FILE as the site file
--version print the version of autoconf that created configure
Directory and file names:
--prefix=PREFIX install architecture-independent files in PREFIX
@@ -314,11 +312,6 @@ EOF
-site=* | --site=* | --sit=*)
site="$ac_optarg" ;;
- -site-file | --site-file | --site-fil | --site-fi | --site-f)
- ac_prev=sitefile ;;
- -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*)
- sitefile="$ac_optarg" ;;
-
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
ac_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
@@ -484,16 +477,12 @@ fi
srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
# Prefer explicitly selected file to automatically selected ones.
-if test -z "$sitefile"; then
- if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
+if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
fi
-else
- CONFIG_SITE="$sitefile"
fi
for ac_site_file in $CONFIG_SITE; do
if test -r "$ac_site_file"; then
@@ -582,7 +571,7 @@ else { echo "configure: error: can not r
fi
echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:586: checking host system type" >&5
+echo "configure:575: checking host system type" >&5
host_alias=$host
case "$host_alias" in
@@ -603,7 +592,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-
echo "$ac_t""$host" 1>&6
echo $ac_n "checking target system type""... $ac_c" 1>&6
-echo "configure:607: checking target system type" >&5
+echo "configure:596: checking target system type" >&5
target_alias=$target
case "$target_alias" in
@@ -621,7 +610,7 @@ target_os=`echo $target | sed 's/^\([^-]
echo "$ac_t""$target" 1>&6
echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:625: checking build system type" >&5
+echo "configure:614: checking build system type" >&5
build_alias=$build
case "$build_alias" in
@@ -646,6 +635,8 @@ test "$host_alias" != "$target_alias" &&
archinc=common.inc
case ${target} in
+*arm-*-*) archinc=arm.inc ;;
+xscale-*-*) archinc=arm.inc ;;
d10v-*-*) archinc=d10v.inc ;;
s390-*-*) archinc=s390.inc ;;
i[3456]86*) archinc=i386.inc ;;
Index: testsuite/gdb.asm/configure.in
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.asm/configure.in,v
retrieving revision 1.6
diff -u -p -r1.6 configure.in
--- configure.in 2001/12/01 01:13:27 1.6
+++ configure.in 2001/12/04 18:18:28
@@ -15,6 +15,8 @@ AC_CANONICAL_SYSTEM
dnl In default case we need to link with some file so use common.inc.
archinc=common.inc
case ${target} in
+*arm-*-*) archinc=arm.inc ;;
+xscale-*-*) archinc=arm.inc ;;
d10v-*-*) archinc=d10v.inc ;;
s390-*-*) archinc=s390.inc ;;
i[[3456]]86*) archinc=i386.inc ;;
--
Corinna Vinschen
Cygwin Developer
Red Hat, Inc.
mailto:vinschen@redhat.com
next reply other threads:[~2001-12-04 18:34 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-12-04 10:34 Corinna Vinschen [this message]
2001-12-04 12:09 ` Fernando Nasser
2001-12-05 1:02 ` Corinna Vinschen
2001-12-05 13:58 ` Michael Snyder
2001-12-20 14:15 ` Corinna Vinschen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20011204193348.B10634@cygbert.vinschen.de \
--to=vinschen@redhat.com \
--cc=gdb-patches@sources.redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox