Using libgloss with newlib

Jeff Johnston
Thu Feb 24 19:58:00 GMT 2005

Libgloss is meant to supply the system call layer that newlib sits upon.  It is 
separate to allow for multiple board and simulator packages.  The arm directory 
in newlib is only there due to historical reasons and I intend to remove this in 
the future (hence, why things are duplicated in libgloss).

To use the libgloss arm files instead of the newlib ones, you need to configure 
newlib with --disable-newlib-supplied-syscalls

Compile and link your application specifying the appropriate redboot compiler 
specs file (either -specs=elf-redboot.specs or -specs=coff-redboot.specs).  The 
compiler will take care of things from there.

-- Jeff J.

Shaun Jackman wrote:
> Where does libgloss fit into the newlib picture?
> libgloss/arm/syscalls.c and newlib/libc/sys/arm/syscalls.c are
> identical files, but libgloss also provides the alternative
> libgloss/arm/redboot-syscalls.c which seems more Unix-ish than either
> the RDP or RDI syscall interface. libgloss also includes alternative
> specs, linker scripts, and crt0.S files. These don't seem to be
> installed by default, but I see there is a make install-redboot
> target. If I wanted to link a simple "Hello, world!" application
> against the redboot interface, rather than the RDP and RDI interfaces
> that newlib supports out of the box, how would I go about it?
> Thanks in advance,
> Shaun

More information about the Newlib mailing list