Adding a bsp/OS to newlib

Norbert Lange lange@chello.at
Mon Mar 25 19:28:00 GMT 2013


Hello,

I compiled and patched newlib for a toolchain last year, I did this  
primary in a rather hackish way. By now we run into some limitations and I  
would like to add a own "plattform" to newlib.
the idea is simply to have a common codebase for a few toolchains, or if  
possible some choice with linking the system library (lnosys, lfullsys).
I am still lost on how to archive this, there are a few resources on the  
net (eg. http://www.embecosm.com/appnotes/ean9/ean9-howto-newlib-1.0.html)  
but they dont answer the questions I have.

The target is arm, and I probably could add everything in the libgloss/arm  
directory but I fail to see how this will add the option of chossing  
different system libs.
Or I could use a new folder in newlib/libc/sys, but I still dont know how  
you generate libraries fromt that or if thats even possible. Also there  
are several locks used and I dont know how to override these  
(newlib/libc/include/sys/lock.h)

So, probably best to summarize what I want/expect:
A single source-tree, which through configure options can be instructed to  
build:
A toolchain using newlib, where newlib will build multiple system libs  
during compilation, libnosys, libmysys, eventually more. The OS is based  
on FreeRTOS, so ideally the implementation is not tied to a single cpu  
architecture.
A barebone toolchain for single-threaded processors/dsps

I suppose I wont be able to fullfill both roles with a single toolchain,  
since eg. locks and threads are something deeply tied into the executeable  
(and probably I want different configurations anyway).

So how would I get along with a arm-mysys-eabi configuration? where would  
eg. OS code for the locks end up, where would the BSP be placed - own  
directory in libgloss or arm?
and where is it defined which bsps get build, are the arm, mysys and nosys  
directories built?
Would be thankfull for an outline of the steps involved.

kind regards, Norbert



More information about the Newlib mailing list