This is the mail archive of the
mailing list for the binutils project.
Re: RFC & patch: Rework MIPS command-line handling
At Mon, 15 Jul 2002 18:56:55 +0000 (UTC), "Thiemo Seufer" wrote:
> > However, it is much more useful to people creating optimized code to
> > be able to generate code for specific ISAs,
> For people who create, maintain and use an whole OS this would
> be horrible. :-)
People who create and maintain a whole OS often do so via scripts,
which allow them to set defaults for things like this.
So, once you ship that OS to customers, you expect them to be able to
say "gcc -mabi=XXX" and have it do the right thing for them.
Similarly, if I ship mipsisa64sb1-linux tools to customers, my strong
hope is that they won't need to name -march=sb1 on every command
line... because that's the whole bloody reason a specific target other
than mips-linux was used for the build.
> > If they're using a target like, say, mipsisa64-linux, then they almost
> > certainly want -mabi=X to get them the ABI 'X' for binary format,
> > calling conventions, etc., but with use of MIPS64 instructions.
> > If they're using mipsisa64sb1-linux, they probably expect built-in
> > support for, say, MIPS-3D, MDMX .ob, and the few SB-1 extensions as
> > well, regardless of the ABI they choose on the command line.
> If all of the hardware for this target supports these, ok.
> But the ISA pre-selection should then be done in the target specific
> code and not globally.
I don't know that there's such a thing as "all of the hardware that
this target supports," really.
Given the flags you can pass to the compiler and assembler, you can
use the MIPS tools to generate code for any target you want, pretty
> > I'm wondering if the right thing to do here is have flags like
> > -mstrict-abi=XXX, which also set the ISA type, or -mabi=strict-XXX...
> -mabi=isa64sb1-with-many-wonderful-extensions ;-)
I'd argue that in the case where you specify a -march flag or specify
a default architecture as part of the target triple, you really want
"-mabi=X" to mean "X with those extensions which you have implied."
If you want strict conformance to ABI 'foo' in that situation, you
want a special flag that says that.