This is the mail archive of the crossgcc@cygnus.com mailing list for the crossgcc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

MIPS -m options


I recently lost a disk on my SparcStation and decided to upgrade
all my GNU software as part of rebuilding everything. This may have
been a big mistake, since a couple of things that used to work seem to
no longer be accepted. Specifically, I am doing MIPS cross tools:

gcc 2.8.1
binutils 2.9.1
newlib 1.8.1

with cross-gcc patch, of course. Oh, right, configuration:

target=mips-unknown-elf64 --with-gnu-as --with-gnu-ld --with-newlib
--prefix=/usr/local/solaris/mips --program-prefix=mips

Binutils and gcc build just fine. Even work, mostly.

The problems I am seeing have to do with acceptance of options. 

1) When building newlib (specifically libgloss), The Makefiles
generated by configure include the option -mno_mips16. This seems
reasonable to me, but not to the built cross compiler. The build dies
as soon as it hits one. I could walk the subtree and edit the
Makefiles, but this could take a really long time.

2) The -m4010 switch is accepted by gas, but the 4010-specific
instructions are rejected. The old version I still have around (2.6)
accepts these just fine. There is a disturbing comment in one of the
source files - "Nobody's using the 4010 any more..." I wonder if LSI
Logic knows about this? They might have a different opinion. This
suggests that the 4010 implementation may have been deliberately
broken.

3) ld now complains about mixed ISA levels. That's OK, but it also
refuses to link them. I have no problem with a warning, but the MIPS
architecture is deliberately backwards compatible, so this should NOT
be an error. I think this is a really bad change, and seriously
interferes with my work.

Does anyone have any good workarounds for these, short of going back
to an older version that does what I need? I actually know how to fix
the last one, but I'd like to see this get reversed in some future
distribution. The others have me perplexed - where in gcc and gas is
the code that determines what -m options are accepted? And who decided
the 4010 (an embedded core, if you are not familiar with it) was
obsolete?

Thanks,
Ken

Kenneth F. Greenberg, President
California Advanced Software Tools, Inc.
http://www.calast.com/
_______________________________________________
New CrossGCC FAQ: http://www.objsw.com/CrossGCC
_______________________________________________
To remove yourself from the crossgcc list, send
mail to crossgcc-request@cygnus.com with the
text 'unsubscribe' (without the quotes) in the
body of the message.