diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 2fc90f6a09..211adad751 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,14 @@ +2004-06-29 Corinna Vinschen + + * gdb.arch/i386-prologue.c: Add copyright header. Use preprocessor + directives to conditionalize symbol prefixing. + * gdb.arch/i386-prologue.exp: Allow symbol prefixing by adding + additional_flags handling. Add underscore prefix for Cygwin. + * gdb.arch/i386-unwind.c: Use preprocessor directives to + conditionalize symbol prefixing. + * gdb.arch/i386-unwind.exp: Allow symbol prefixing by adding + additional_flags handling. Add underscore prefix for Cygwin. + 2004-06-29 Corinna Vinschen * gdb.base/bigcore.exp: Skip test on Cygwin. diff --git a/gdb/testsuite/gdb.arch/i386-prologue.c b/gdb/testsuite/gdb.arch/i386-prologue.c index 33fc1dbefb..15ed2ca014 100644 --- a/gdb/testsuite/gdb.arch/i386-prologue.c +++ b/gdb/testsuite/gdb.arch/i386-prologue.c @@ -1,3 +1,30 @@ +/* Unwinder test program. + + Copyright 2003, 2004 Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifdef SYMBOL_PREFIX +#define SYMBOL(str) SYMBOL_PREFIX #str +#else +#define SYMBOL(str) #str +#endif + void gdb1253 (void); void gdb1338 (void); void jump_at_beginning (void); @@ -15,7 +42,7 @@ main (void) asm(".text\n" " .align 8\n" - "gdb1253:\n" + SYMBOL (gdb1253) ":\n" " pushl %ebp\n" " xorl %ecx, %ecx\n" " movl %esp, %ebp\n" @@ -28,7 +55,7 @@ asm(".text\n" asm(".text\n" " .align 8\n" - "gdb1338:\n" + SYMBOL (gdb1338) ":\n" " pushl %edi\n" " pushl %esi\n" " pushl %ebx\n" @@ -44,7 +71,7 @@ asm(".text\n" asm(".text\n" " .align 8\n" - "jump_at_beginning:\n" + SYMBOL (jump_at_beginning) ":\n" " pushl %ebp\n" " movl %esp,%ebp\n" " jmp .gdbjump\n" diff --git a/gdb/testsuite/gdb.arch/i386-prologue.exp b/gdb/testsuite/gdb.arch/i386-prologue.exp index ea04b535e5..1258e44168 100644 --- a/gdb/testsuite/gdb.arch/i386-prologue.exp +++ b/gdb/testsuite/gdb.arch/i386-prologue.exp @@ -1,4 +1,4 @@ -# Copyright 2003 Free Software Foundation, Inc. +# Copyright 2003, 2004 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -36,7 +36,15 @@ if ![istarget "i?86-*-*"] then { set testfile "i386-prologue" set srcfile ${testfile}.c set binfile ${objdir}/${subdir}/${testfile} -if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } { + +# some targets have leading underscores on assembly symbols. +# TODO: detect this automatically +set additional_flags "" +if [istarget "i?86-*-cygwin*"] then { + set additional_flags "additional_flags=-DSYMBOL_PREFIX=\"_\"" +} + +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug $additional_flags]] != "" } { gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." } diff --git a/gdb/testsuite/gdb.arch/i386-unwind.c b/gdb/testsuite/gdb.arch/i386-unwind.c index 6d10ecb84b..b1fa1df06e 100644 --- a/gdb/testsuite/gdb.arch/i386-unwind.c +++ b/gdb/testsuite/gdb.arch/i386-unwind.c @@ -1,6 +1,6 @@ /* Unwinder test program. - Copyright 2003 Free Software Foundation, Inc. + Copyright 2003, 2004 Free Software Foundation, Inc. This file is part of GDB. @@ -19,6 +19,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#ifdef SYMBOL_PREFIX +#define SYMBOL(str) SYMBOL_PREFIX #str +#else +#define SYMBOL(str) #str +#endif + void trap (void) { @@ -34,9 +40,9 @@ asm(".text\n" "gdb1435:\n" " pushl %ebp\n" " mov %esp, %ebp\n" - " call trap\n" - " .globl main\n" - "main:\n" + " call " SYMBOL (trap) "\n" + " .globl " SYMBOL (main) "\n" + SYMBOL (main) ":\n" " pushl %ebp\n" " mov %esp, %ebp\n" " call gdb1435\n"); diff --git a/gdb/testsuite/gdb.arch/i386-unwind.exp b/gdb/testsuite/gdb.arch/i386-unwind.exp index 9c3130fc8c..85fb9da62b 100644 --- a/gdb/testsuite/gdb.arch/i386-unwind.exp +++ b/gdb/testsuite/gdb.arch/i386-unwind.exp @@ -1,4 +1,4 @@ -# Copyright 2003 Free Software Foundation, Inc. +# Copyright 2003, 2004 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -36,7 +36,15 @@ if ![istarget "i?86-*-*"] then { set testfile "i386-unwind" set srcfile ${testfile}.c set binfile ${objdir}/${subdir}/${testfile} -if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } { + +# some targets have leading underscores on assembly symbols. +# TODO: detect this automatically +set additional_flags "" +if [istarget "i?86-*-cygwin*"] then { + set additional_flags "additional_flags=-DSYMBOL_PREFIX=\"_\"" +} + +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug $additional_flags]] != "" } { gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." }