On Friday, 16 January 2015 at 10:04:55 UTC, Jens Bauer wrote:
Has anyone used newlib with a Cortex-M based GDC toolchain ?
As Mike pointed out, my minlibd project is a good starting point.
It contains a fully functional example for stm32f4
Build failed on final gcc.
I normally use newlib and multilib, because I'm developing for
Cortex-M0, Cortex-M3 and Cortex-M4 and would like to be able to
switch between those and use the same compiler.
But following the above mentioned instructions seem to suggest
disabling multilib and using libgcc instead of newlib.
Libgcc is not libc
Libgcc is gcc internal library. It contains functions for those c
language features that can not be represented as a simple machine
instruction pattern. The compiler generates calls to these
functions and users should never call these directly.
Libc contains the standard c library functions like fopen and
printf. Glibc is the original gnu libc. Newlib is a smaller
alternative for libc and better suitable for small systems. Libc
or newlib is needed to build the compiler but the application
needs it only if its features are used. I have not needed libc in
my cortex programs.
Both libgcc and libc are included automatically unless --nostdlib
option is used or if there is a custom linker script.
The multilib building is a bit tricky. I have not succeeded to
build m0/m3/m4 libraries at the same time. Gcc developers have
always assumed that there is no Arm processor with fpu and thumb.
Now we have Cortex-m4...
If you have succeeded with building the libraries please share
your experiences. If you have failed, please ask this in
gcc-users list and report here in d.gnu list what they answered.