Moving libc/sys to be linked last

Jeff Johnston
Wed Oct 26 22:13:00 GMT 2005

Jonathan S. Shapiro wrote:
> On Wed, 2005-10-26 at 20:04 +0100, wrote:
>>Hi all!
>>This is my first post to this list.
>>In my target (arm-wince-pe), I want to override some objects from unix dir,
>>but in libc/, 
>>both SUBDIRS and SUBLIBS don't list sys before the unix dir.
>>In my local copy, I moved them to the end, and now I get the wanted effect. 
>>Is this the right way to do it? 
>>Is there any reason sys wasn't put the last in the first place?
> What you describe would require sys/ to be *first*, not last. The rule
> is: "first resolution wins".
> However, I suspect that this is not the best way to achieve what you
> want. I do not know what the "approved" way is.
> shap

Pedro is correct that the order isn't quite right and that the sys 
objects should be added at the end.

The resolution isn't "link resolution".  Libc is built manually in 
libc/ by traversing the SUBLIB list and using ar to 
deconstruct each SUBLIB into its .o files which it places in a temporary 
directory.  Once complete, it then rebuilds the library from all the .o 
files in the temporary directory.  The last library to add its .o files 

For linux, newlib gets the shared libc library right because it uses 
special awk files to build the library and the last 3 set of objects 
added are:

machine objects
sys objects
sys/machine objects

I will fix this.

-- Jeff J.

More information about the Newlib mailing list