[rust-dev] ABI Opinion Poll

Sean Stangl sstangl at mozilla.com
Wed Mar 13 10:36:45 PDT 2013

Specifying ABI on the rust side may not be desirable. For example, ARM contains the option of at least the ABIs "armeabi"/"gnueabi" and "armeabi-v7"/"gnueabi-v7". This might be OK if Rust never intends to support cross-compilation, but with a number of targets, explicit annotations would get very hairy for no real gain.

But on top of that, a single ARM system may use disjoint ABIs in terms of softfp/hardfp, so autodetection wouldn't be valid since either is a valid option but the decision is significant.

It might be better for Rust to just express "this uses some C calling convention", and then have the specific convention decided at configuration time by the person compiling.


----- Original Message -----
From: "Patrick Walton" <pwalton at mozilla.com>
To: rust-dev at mozilla.org
Sent: Wednesday, March 13, 2013 10:20:42 AM
Subject: Re: [rust-dev] ABI Opinion Poll

On 3/13/13 9:16 AM, Niko Matsakis wrote:
> One simple improvement would be having the compiler issue an error if
> you either:
> 1. Combine a cross-platform ABI with any single-platform ABIs
> 2. Specify multiple single-platform ABIs that apply to the same platform.
> That's very easy.
> Oh, and two function types are only compatible if the ABI set is identical.

I guess it would be possible to use subtyping here so that e.g. `extern 
"aapcs cdecl" fn` is a subtype of `extern "cdecl" fn`, but that sounds 
like overkill.


Rust-dev mailing list
Rust-dev at mozilla.org

More information about the Rust-dev mailing list