Moving libc/sys to be linked last
Jeff Johnston
jjohnstn@redhat.com
Wed Oct 26 22:13:00 GMT 2005
Jonathan S. Shapiro wrote:
> On Wed, 2005-10-26 at 20:04 +0100, pedro_alves@portugalmail.pt 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/Makefile.am,
>>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/Makefile.am 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
wins.
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