This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[RFA 0/8] New port: TI C6x
- From: Yao Qi <yao at codesourcery dot com>
- To: gdb-patches at sourceware dot org
- Date: Wed, 20 Jul 2011 10:05:30 +0800
- Subject: [RFA 0/8] New port: TI C6x
Hi,
the following patch set adds support for Texas Instruments C6x DSP
family processors.
0001: Remove "gdb" from noconfigdirs in top-level configure.ac.
0002: Handle tic6x-*-*linux and tic6x-*-* in configure.tgt.
0003: share library on dsbt.
0004: read fdpic/dsbt loadmap from gdbserver
0005: the port itself in gdb
0006: the port in gdbserver with target description.
0007: Some test cases fixes.
0008: NEWS.
Most of these changes are c6x-specific, except patch 0003 and patch
0004, which are about handling share object of DSBT ELF, a variant of
ELF. DSBT stands for Data Segment Base Table. It is a mechanism for
managing the content of the static base pointer during execution of a
dynamic application.
Every data segment starts with a table containing an entry for each
shared library. All shared libraries in the system must have a unique
index. DSBT ELF share some concepts, such as loadmaps, with FD-PIC, so
patch 0004, which is about fetching loadmap from gdbserver, is shared
with the code for FD-PIC.
With all of them applied, I get the current test suite result as shown
below. Once tic6x port is accepted, I am happy to act as a maintainer
of tic6x port.
=== gdb Summary ===
# of expected passes 13019
# of unexpected failures 65
# of unexpected successes 2
# of expected failures 48
# of known failures 61
# of unresolved testcases 1
# of untested testcases 23
# of unsupported tests 112
# GCC doesn't generate correct debug information.
FAIL: gdb.base/call-ar-st.exp: check args of sum_array_print
FAIL: gdb.base/funcargs.exp: recursive passing of structs by value
(pattern 2)
# caused by c6x branch delay slots, and no easy way to fix it in gdb,
unless we set -O0.
FAIL: gdb.opt/inline-cmds.exp: step into finish marker
FAIL: gdb.opt/inline-cmds.exp: finish from marker
# Failed on other platforms.
FAIL: gdb.stabs/gdb11479.exp: Inspect t in test2 forced_stabs
FAIL: gdb.stabs/gdb11479.exp: Inspect t in test forced_stabs
FAIL: gdb.base/siginfo-infcall.exp: continue to the handler
# The same variable may be located in different addresses in two runs.
FAIL: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: in scope now
# I am not familiar with modula2 front end, but everything works well
# when language is set to c.
FAIL: gdb.modula2/unbounded-array.exp: print unbounded array contents
# Limitation of LinuxThread.old, which we are using in tic6x-uclinux.
FAIL: gdb.threads/ia64-sigill.exp: continue (timeout)
FAIL: gdb.threads/ia64-sigill.exp: delete $sigill_bpnum
FAIL: gdb.threads/ia64-sigill.exp: continue for the pending signal (the
program exited)
FAIL: gdb.threads/leader-exit.exp: Single thread has been left
# Failed on x86 with remote testing as well.
FAIL: gdb.base/watchpoint.exp: enable watchpoint
FAIL: gdb.base/watchpoint.exp: watchpoints found in
watchpoint/breakpoint table
FAIL: gdb.base/watchpoint.exp: watchpoint enabled
FAIL: gdb.threads/thread-find.exp: name thread 2
FAIL: gdb.threads/thread-find.exp: name thread 3
FAIL: gdb.threads/thread-find.exp: name thread 4
FAIL: gdb.threads/thread-find.exp: name thread 5
FAIL: gdb.threads/thread-find.exp: name thread 6
FAIL: gdb.threads/thread-find.exp: find thread name 6
FAIL: gdb.threads/thread-find.exp: find thread name 5
FAIL: gdb.threads/thread-find.exp: find thread name 4
FAIL: gdb.threads/thread-find.exp: find thread name 3
FAIL: gdb.threads/thread-find.exp: find thread name 2
FAIL: gdb.threads/thread-find.exp: test regular exp
FAIL: gdb.threads/thread-find.exp: info threads 2 4 6
FAIL: gdb.threads/thread-find.exp: info threads 3-5
FAIL: gdb.threads/thread-find.exp: info threads 3-3
# No TLS support in c6x-uclinux.
FAIL: gdb.threads/tls-nodebug.exp: thread local storage
FAIL: gdb.threads/tls-shared.exp: print thread local storage variable
FAIL: gdb.threads/tls-shared.exp: ptype of thread local storage variable
FAIL: gdb.threads/tls-shared.exp: print storage info for thread local
storage variable
FAIL: gdb.threads/tls.exp: first thread local storage
FAIL: gdb.threads/tls.exp: first another thread local storage
FAIL: gdb.threads/tls.exp: first info address a_thread_local
FAIL: gdb.threads/tls.exp: first info address another_thread_local
FAIL: gdb.threads/tls.exp: second thread local storage
FAIL: gdb.threads/tls.exp: second another thread local storage
FAIL: gdb.threads/tls.exp: second info address a_thread_local
FAIL: gdb.threads/tls.exp: second info address another_thread_local
FAIL: gdb.threads/tls.exp: third thread local storage
FAIL: gdb.threads/tls.exp: third another thread local storage
FAIL: gdb.threads/tls.exp: third info address a_thread_local
FAIL: gdb.threads/tls.exp: third info address another_thread_local
FAIL: gdb.threads/tls.exp: 4 thread local storage
FAIL: gdb.threads/tls.exp: 4 another thread local storage
FAIL: gdb.threads/tls.exp: 4 info address a_thread_local
FAIL: gdb.threads/tls.exp: 4 info address another_thread_local
FAIL: gdb.threads/tls.exp: 5 thread local storage
FAIL: gdb.threads/tls.exp: 5 another thread local storage
FAIL: gdb.threads/tls.exp: 5 info address a_thread_local
FAIL: gdb.threads/tls.exp: 5 info address another_thread_local
FAIL: gdb.threads/tls.exp: 2 thread local storage
FAIL: gdb.threads/tls.exp: 2 another thread local storage
FAIL: gdb.threads/tls.exp: 2 info address a_thread_local
FAIL: gdb.threads/tls.exp: 2 info address another_thread_local
FAIL: gdb.threads/tls.exp: p a_thread_local
FAIL: gdb.threads/tls.exp: p file2_thread_local
FAIL: gdb.threads/tls.exp: info address file2_thread_local
FAIL: gdb.threads/tls.exp: p a_thread_local second time
FAIL: gdb.threads/tls.exp: info address a_thread_local
--
Yao (éå)