I would like to officially announce patches to binutils and
friends that fix the mismatch of symbols in kernel modules
compiled for MIPS architectures that produced messages like
dummy.o: local symbol gcc2_compiled. with index 10 exceeds local_symtab_size 10
dummy.o: local symbol __gnu_compiled_c with index 11 exceeds local_symtab_size
dummy.o: local symbol __module_kernel_version with index 12 exceeds
They are available at (ftp://ftp.cotw.com/pub/linux/nino/toolchain/)
and are made against the official binutils/gcc/glibc straight out
of CVS snapshots made on 03292001. The most important patch is of
course the one made to binutils. The patch to GCC fixes the error
that some people are seeing with a missing 'atexit' symbol when
cross compiling glibc. You must update to GCC out of CVS in order
to fix this issue AFAIK. The GCC patch was done by HJ Lu and not
myself. This patch has been tested for a 32-bit toolchain configured
for little-endian. It currently does not compile for big endian and
64-bit architectures. The reason for this is what I would like to
discuss with everyone.
Without the binutils patch, all binaries compiled for MIPS/Linux
will be IRIX flavored which was the whole problem. I would now
like to make 'elf[32|64]_trad[little|big]mips' be the official
targets instead of 'elf[32|64]_[little|big]mips' which is what
things currently are. This means changing of linker scripts in
GLIBC as well as the Linux kernel (as far as I can tell). I would
like to propose the any 'mips*-*-linux-gnu' and 'mips*el-*linux-gnu'
targets be pure traditional targets WITHOUT any emulated IRIX targets
which are the current 'elf[32|64]_[little|big]mips' targets. Please
provide feedback, comments, etc. with justification. Thanks.
I shall now put on asbestos armor and grab a LART.
Steven J. Hill - Embedded SW Engineer
Public Key: 'http://www.cotw.com/pubkey.txt'
FPR1: E124 6E1C AF8E 7802 A815
FPR2: 7D72 829C 3386 4C4A E17D