This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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 (éå)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]