MIPS code size strangeness
Eugene Grosbein
eugen at grosbein.net
Sun Nov 20 18:14:40 UTC 2016
Hi!
I'm currently struggle trying to fit my FreeBSD 12/mips build into 8M flash available.
It used to fit with early 11.0-CURRENT and it has over megabyte overhead with 12.0-CURRENT.
Large parts are /usr/bin and /usr/lib and I've found something very strange.
For example: /usr/lib/libprivateucl.so.1 has 136064 bytes for amd64
and it has 241560 bytes for mips.
"nm -C -D --print-size --size-sort libprivateucl.so.1" shows the symbol "ucl_hash_replace"
has 330 bytes (0x14a) for amd64 and it has 25000 bytes (sic! 0x61a8) for mips.
I understand that amd64 version is built with clang and MIPS code generated with gcc.
But why such large difference? In no way such small function ucl_hash_replace()
should expand to 25000 machine code bytes.
I suspect other parts of code may have this problem too.
Eugene Grosbein
More information about the freebsd-mips
mailing list