The C6X port

Bernd Schmidt bernds at codesourcery.com
Wed Feb 23 19:05:04 UTC 2011


I will submit a series of patches in replies to this message which
together add a port for the Texas Instruments C6X processor family to
uClibc.

A toolchain which can be used to build it is available at
  http://www.codesourcery.com/sgpp/lite/c6000/portal/release1703
We are in the process of getting the various other bits upstream as well.

The uClibc port was originally written by TI; it has since been modified
by Mark Salter at Red Hat and by a few people including myself at
CodeSourcery. I am now submitting this code at the request of TI. The
code we're using internally is based on an older version of uClibc, but
I've built a working system using mainline with these patches applied.

Most of this is just a set of new C6X-specific files and directories.
There is only one major change in the generic ldso code to enable a new
ELF variant called DSBT ELF. DSBT stands for "Data Segment Base Table";
the mechanism is similar to that of shared-flat libraries: 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. Unlike
shared-flat, DSBT ELF uses real ELF binaries and libraries. It also
shares some concepts, such as loadmaps, with FD-PIC. However, unlike
FD-PIC, it does not use function descriptors.

The C6X ABI specifies different calling conventions for variadic and
non-variadic functions. One of the patches corrects a problem in uClibc
where a function pointer type declared a variadic was used to hold
pointers to non-variadic functions.


Bernd


More information about the uClibc mailing list