davydnorris wrote:So what you're saying is that the linker is pulling in all the functions already in ROM and that's why it's too big?
Yes, below is the list of objects missing in the SDK libgcc. I don't see any other differences.
_addsubdf3.o
_addsubsf3.o
_divdf3.o
_divdi3.o
_divsi3.o
_extendsfdf2.o
_fixdfsi.o
_fixunsdfsi.o
_fixunssfsi.o
_floatsidf.o
_floatsisf.o
_floatunsidf.o
_floatunsisf.o
_muldf3.o
_muldi3.o
_truncdfsf2.o
_udivdi3.o
_udivsi3.o
_umoddi3.o
_umodsi3.o
_umulsidi3.o
davydnorris wrote:Is there any way we can strip these out from libgcc as part of the crosstool-ng build? Or any other steps we can take so we can use the built version?
Either patch libgcc makefile (and that may be a bit challenging, as it's not a single makefile, but a bunch of fragments), or remove unneeded objects from the final archive.
davydnorris wrote:I am assuming it's better to use a libgcc built with newer gcc versions because there may be some optimisations added?
I don't think there would be noticeable differences. Definitely not for softfloat helpers, as they are written in assembly.