[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gdb-patches
Subject:    [RFA] Patch for mips_o64_return_value to fix calling functions by hand
From:       fnf () specifix ! com (Fred Fish)
Date:       2006-04-27 14:04:00
Message-ID: 200604271004.44938.fnf () specifix ! com
[Download RAW message or body]

I'm doing some work with a mips64-elf toolchain and took a look at why
there are so many gdb testsuite failures.  One problem I found is that
calling functions by hand was broken, due to what looked to me like a
case of a development stub being left in.  I've attached a patch that
reduces the total number of testsuite failures by around 50%.

I'm testing with the following multilibs:

  mips64-sim/-EB
  mips64-sim/-EL
  mips64-sim/-EB/-msoft-float
  mips64-sim/-EL/-msoft-float

Before applying the attached patch, I get:

  # of expected passes            34613
  # of unexpected failures        1866
  # of unexpected successes       4
  # of expected failures          164
  # of known failures             196
  # of unresolved testcases       77
  # of untested testcases         36
  # of unsupported tests          152
  /links/build/latest/trunk/mips64-elf/gdb/gdb/testsuite/../../gdb/gdb version  6.4.50.20060422-cvs -nx
  
after applying the patch I get:

  # of expected passes            35540
  # of unexpected failures        938
  # of unexpected successes       4
  # of expected failures          164
  # of known failures             196
  # of unresolved testcases       76
  # of untested testcases         36
  # of unsupported tests          152
  /links/build/latest/trunk/mips64-elf/gdb/gdb/testsuite/../../gdb/gdb version  6.4.50.20060422-cvs -nx
  
There are still some issues calling functions by hand in code compiled
with -msoft-float, but these are not specific to 64-bit mips, or even
mips for that matter.  For example:

  Running target mips64-sim/-EB/-msoft-float
  Running /src/latest/trunk/src/gdb/gdb/testsuite/gdb.base/call-sc.exp ...
  FAIL: gdb.base/call-sc.exp: p/c fun(); call call-sc-tf
  FAIL: gdb.base/call-sc.exp: value foo returned; return call-sc-tf
  FAIL: gdb.base/call-sc.exp: p/c fun(); call call-sc-td
  FAIL: gdb.base/call-sc.exp: value foo returned; return call-sc-td
  FAIL: gdb.base/call-sc.exp: p/c fun(); call call-sc-tld
  FAIL: gdb.base/call-sc.exp: value foo returned; return call-sc-tld
  
  Running target mips-sim/-EB/-msoft-float
  Running /src/latest/trunk/src/gdb/gdb/testsuite/gdb.base/call-sc.exp ...
  FAIL: gdb.base/call-sc.exp: p/c fun(); call call-sc-tf
  FAIL: gdb.base/call-sc.exp: p/c L; call call-sc-tf
  FAIL: gdb.base/call-sc.exp: value foo returned; return call-sc-tf
  FAIL: gdb.base/call-sc.exp: p/c fun(); call call-sc-td
  FAIL: gdb.base/call-sc.exp: p/c L; call call-sc-td
  FAIL: gdb.base/call-sc.exp: value foo returned; return call-sc-td
  FAIL: gdb.base/call-sc.exp: p/c fun(); call call-sc-tld
  FAIL: gdb.base/call-sc.exp: p/c L; call call-sc-tld
  FAIL: gdb.base/call-sc.exp: value foo returned; return call-sc-tld
  
  Running target powerpc-sim/-msoft-float/-mrelocatable-lib/-mno-eabi/-mstrict-align
  Running /src/latest/trunk/src/gdb/gdb/testsuite/gdb.base/call-sc.exp ...
  FAIL: gdb.base/call-sc.exp: p/c fun(); call call-sc-tf
  FAIL: gdb.base/call-sc.exp: p/c L; call call-sc-tf
  FAIL: gdb.base/call-sc.exp: p/c fun(); call call-sc-td
  FAIL: gdb.base/call-sc.exp: p/c L; call call-sc-td
  FAIL: gdb.base/call-sc.exp: p/c fun(); call call-sc-tld
  FAIL: gdb.base/call-sc.exp: p/c L; call call-sc-tld

I'll investigate those failures and supply a separate patch.

-Fred

-------------- next part --------------
A non-text attachment was scrubbed...
Name: mips-tdep.patch
Type: text/x-diff
Size: 2388 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/gdb-patches/attachments/20060427/f19247a8/attachment.bin>

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic