Thiemo Seufer wrote:
> >Without the binutils patch, all binaries compiled for MIPS/Linux
> >will be IRIX flavored which was the whole problem.
> Please may You elaborate about this? AFAICS, the IRIX flavour
> can't be a problem by itself.
Yes, it is. Take a look at the IRIX_COMPAT macro in 'bfd/elf32-mips.c'
which checks to see what type (flavor) of binary you are using. Before
the patch all elf32-mips targets used the IRIX way of determining a if
a symbol was global or not (see function that determines this at around
line 2301 in 'bfd/elf32-mips.c'). By using IRIX flavored symbols, LOCAL
and GLOBAL symbols are not sorted correctly and we get the problems with
symbols being out of order in Linux kernel modules. With the patch and
using 'elfXX-tradXXmips' as the new output targets, we sort local and
global symbols correctly.
> Changing the MIPS/Linux ABI to circumvent a toolchain bug seems
> to be a bit extremistic. Am I missing some important details?
Yes, you are missing a few things, but I attribute that to my poor
communications in my first email. My point is that the IRIX_COMPAT
and SGI_COMPAT macros are used to check what type of target we are
using in order to sort local and global symbols properly and many
other places in the BFD library to creat binaries for Linux or for
IRIX. The way (that I think) this should be done is to use the
target 'elfXX-tradXXmips' and make that the default target utilized
for MIPS-Linux targets. This is the decision that I wanted everyone's
input on. I hope I explained this better. If not, ask more questions
and I will try again. Cheers.
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