__getreent in libgloss

Stefan Wallentowitz stefan.wallentowitz@tum.de
Tue Nov 4 10:53:00 GMT 2014

On 03.11.2014 22:50, Jeff Johnston wrote:
>> By default newlib
>> takes __getreent() and I can overwrite __getreent to my own function.
>> Where should I do this? I set it in config.h (#define __getreent
>> or1k_getreent), but then I also need to define the external function
>> (extern struct _reent *or1k_getreent(void)), correct?
> Actually, overriding is much easier.  Newlib is designed to override shared functions with ones
> that are found in the libc/machine or libc/sys directories.  In your case, if
> you have a getreent.c or getreent.S that is found in libc/machine/or1k (or whatever you designate
> your machine_dir in configure.host), it will override the object file built in libc/reent.
Ah, yes, I just found that this did not work properly as I forgot to run 
automake again after adding a the file to Makefile.am..
> If you don't actually have multiple threads, you might as well just use the
> default one found in libc/reent.  There is a sample multithread version in
> libc/sys/linux/linuxthreads/getreent.c which uses the thread specific storage
> to get the current reentrancy structure for the current thread.
I am more looking into baremetal multicore support and found that it 
might be a good option to use re-entrancy on the different cores. Do you 
agree on this?

Thanks for your support.

Best regards,

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4929 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://sourceware.org/pipermail/newlib/attachments/20141104/1f3c8ca1/attachment.p7s>

More information about the Newlib mailing list