libgloss, libnosys ?

Jeff Johnston jjohnstn@redhat.com
Tue Jan 10 17:08:00 GMT 2006


rekisum@web.de wrote:
> Hi,
> I searched the web and this mailing list, but need more infos.
> I'm trying to add printf and other functions to my ARM7 (STR7) standalone programm.
> I got precompiled newlib libraries coming with the GNUARM toolchain.
> Somewhere I read I've got to make my own _read, _write implementation for UART.
> Ok, this fails because my compiler says their're already exist in syscalls.o, 
> and got no newlib sources (can download of course, configure under windows?).
> Maybe I use the wrong lib?
> I got several of them under:
> \lib
> \lib\thumb      ( for thumb mode?)
> \lib\interwork ( for mixed thumb / no-thumb mode?)
> \lib\fpu           ( for (no) floating point hardware ?)
> \lib\be            ( ? for belgium users ?)
> \lib\nofmult    ( ? without floating point multiply ?)
> 
> Also there are differnet libs named libiberty, libnosys, I read something about libgloss?
> I didn't found this information in the libc.pdf, so any help is appreciated.
> Regards,
> Joerg
> 

Joerg,

   If you read the FAQ on http://sources.redhat.com/newlib (no. 5) you 
will see a brief explanation of multilibs.  The subdirectories and 
libraries you see above are for multilibs that correspond to major 
compiler options.  For example, you don't want to choose a library built 
Big Endian (be) if the user has specified Little Endian via compiler 
options.

   What you will need to do is to configure newlib with 
--disable-newlib-supplied-syscalls.  This will keep the syscalls from 
being built into libc.  The syscalls will instead be built into 
libgloss.  Libgloss is where bsp libraries are put.  You can edit the 
libgloss/arm directory and create your own library or modify an existing 
one.  At compile/link time you will need to specify your library in 
addition to libc/libm.  You will notice that some board libraries have 
spec files while others have ld scripts.  If you go the ld script route, 
you just have to specify -Tyourscript.ld on the gcc compile/link call.

   Libnosys is a stub library used to fill in missing syscalls with
stubs.

-- Jeff J.



More information about the Newlib mailing list