Bare Bone Arm-Elf-Gcc

J. Johnston jjohnstn@redhat.com
Mon Feb 17 19:36:00 GMT 2003


Richard Earnshaw wrote:
>>Well, for starters you haven't removed the problem of having the
>>syscalls in newlib.  Because they are in libc, you can't simply
>>add your own library to replace them.
>>
>>I will soon be checking in a patch to add the configuration option I
>>mention below.
>>
>>Now, regarding modifying libnosys.  What modifications did you have in mind?
>>It currently is a generic default stub library meant to patch up any library
>>missing syscalls.  It doesn't supply _exit so in itself is not complete.
>>I don't see much value-add in making this platform-specific / board-specific
>>as there is already a system in place for building platform-specific / board-specific
>>libraries.
>>
> 
> 
> Can you provide more information on how this is supposed to work?  As I 
> understand your intent, it would appear that there will be a separate 
> library now that contains the syscalls.  How is that going to be linked 
> into an application?  Are you expecting GCC to know about it?  If so, then 
> that's going to mean a separate configuration for targeting Newlib, 
> something we've never needed before.
> 
> R.
> 

For starters, current behavior is still the default.

Now, with the option set to disable syscalls in newlib, you would add a new
library in libgloss/arm.  As well, it would be advisable for you to create a
new .ld linker script which specified your new library and if needed, a new
crt0 file.  Let's say for the moment, your ld script is called bare.ld.
A user would simply add -Tbare.ld on the compile/link command.

arm-elf-gcc -Tbare.ld helloworld.c

gcc should not know about this.  The idea is that you have a non-default system.
The user has to do something to tell gcc/newlib/libgloss about it.  The ld
script is simple to use.

Now, my future plans are to copy the syscalls from newlib
and put them in libgloss.  Again, there would be an ld script and a separate
library.  We could then coordinate with gcc to use the default library and
we could then later remove the syscalls from newlib for good.

-- Jeff J.



More information about the Newlib mailing list