Newlibc + Crossworks?

Started by kevin_townsend2 August 31, 2009
I often come across interesting open source projects that use newlibc (Contiki OS, for example), but since I use Crossworks I'm not really sure how to go about using newlibc instead of the gcc libraries provided by Crossworks (though I believe the libraries provided with Rowley are actually a replacement for the GCC code to avoid license restrictions).

Has anyone here had any success configuring Crossworks to build with newlibc? I didn't come across anything of use on Google or in the yahoo groups search engine (Bing didn't even return anything for newlibc + Crossworks).

I noticed that JC Wren's demo code (which uses newlib 1.13 if I recall correctly) has two prebuilt files for WinARM: libc.a and libgcc.a ... but I'm not sure if these are a useful starting point in Crossworks or not?

An Engineer's Guide to the LPC2100 Series

I use newlib (newlib_lpc) and Crossworks. This is mainly for historical
reasons (drivers already written for newlib_lpc), and no comment at all
on the alternative Crossworks C libs.
Perhaps the issues are similar with newlibc.

It did need some liaison with the helpful guys at Crossworks to get it
all going, and they introduced a couple of linker options for me to get
around some floating point errors I was experiencing.
For 1.17:
In Tools/Options/Building/Compatibility Options set -mfloat-abi, -mfpu
and -nostdlib options to NO.
For 2.0:
The above but the nostdlib option is now standard Crossworks.

In the Properties for your project:
You will of course need to change linker search paths to find your
libraries instead. Use 'Additional Input Files' to specify your libraies
(eg. -lnewlib-lpc,-lc....) and 'Additional Linker Options' to specify
the paths to them with -L). 'Use GCC Libraries' set to NO.
You will need to add where your library .h files can be found to the
'Preprocessor Options' too.

Hope this helps. Crossworks might even want to do an FAQ for this sort
of thing.

Cheers,
Bruce
-----Original Message-----
From: l... [mailto:l...] On Behalf
Of kevin_townsend2
Sent: Monday, 31 August 2009 9:46 PM
To: l...
Subject: [lpc2000] Newlibc + Crossworks?

I often come across interesting open source projects that use newlibc
(Contiki OS, for example), but since I use Crossworks I'm not really
sure how to go about using newlibc instead of the gcc libraries provided
by Crossworks (though I believe the libraries provided with Rowley are
actually a replacement for the GCC code to avoid license restrictions).

Has anyone here had any success configuring Crossworks to build with
newlibc? I didn't come across anything of use on Google or in the yahoo
groups search engine (Bing didn't even return anything for newlibc +
Crossworks).

I noticed that JC Wren's demo code (which uses newlib 1.13 if I recall
correctly) has two prebuilt files for WinARM: libc.a and libgcc.a ...
but I'm not sure if these are a useful starting point in Crossworks or
not?

Thanks for the reply. I'll try getting it setup with 2.0, but I agree a simple FAQ would be great. I noticed Paul has added a bunch of 'How do I' articles on the support website lately, which is nice to see.

> I use newlib (newlib_lpc) and Crossworks. This is mainly for historical
> reasons (drivers already written for newlib_lpc), and no comment at all
> on the alternative Crossworks C libs.
> Perhaps the issues are similar with newlibc.
>
> It did need some liaison with the helpful guys at Crossworks to get it
> all going, and they introduced a couple of linker options for me to get
> around some floating point errors I was experiencing.
> For 1.17:
> In Tools/Options/Building/Compatibility Options set -mfloat-abi, -mfpu
> and -nostdlib options to NO.
> For 2.0:
> The above but the nostdlib option is now standard Crossworks.
>
> In the Properties for your project:
> You will of course need to change linker search paths to find your
> libraries instead. Use 'Additional Input Files' to specify your libraies
> (eg. -lnewlib-lpc,-lc....) and 'Additional Linker Options' to specify
> the paths to them with -L). 'Use GCC Libraries' set to NO.
> You will need to add where your library .h files can be found to the
> 'Preprocessor Options' too.
>
> Hope this helps. Crossworks might even want to do an FAQ for this sort
> of thing.
>
> Cheers,
> Bruce
> -----Original Message-----
> From: l... [mailto:l...] On Behalf
> Of kevin_townsend2
> Sent: Monday, 31 August 2009 9:46 PM
> To: l...
> Subject: [lpc2000] Newlibc + Crossworks?
>
> I often come across interesting open source projects that use newlibc
> (Contiki OS, for example), but since I use Crossworks I'm not really
> sure how to go about using newlibc instead of the gcc libraries provided
> by Crossworks (though I believe the libraries provided with Rowley are
> actually a replacement for the GCC code to avoid license restrictions).
>
> Has anyone here had any success configuring Crossworks to build with
> newlibc? I didn't come across anything of use on Google or in the yahoo
> groups search engine (Bing didn't even return anything for newlibc +
> Crossworks).
>
> I noticed that JC Wren's demo code (which uses newlib 1.13 if I recall
> correctly) has two prebuilt files for WinARM: libc.a and libgcc.a ...
> but I'm not sure if these are a useful starting point in Crossworks or
> not?
>
>
Kevin,

> Thanks for the reply. I'll try getting it setup with 2.0, but I agree a
> simple FAQ would be great. I noticed Paul has added a bunch of 'How do I'
> articles on the support website lately, which is nice to see.

I just migrated them from the old support site.

You can always write an article on this yourself, in our user forum, and
then I can move it to the How Do I... forum.

-- Paul.