Skip to content

Conversation

malbarbo
Copy link
Contributor

This adds X32 ABI support for Linux on X86_64. Let's package and dist it so we can star testing libc, libstd, etc.

Fixes rust-lang/rfcs#1339

@rust-highfive
Copy link
Contributor

r? @arielb1

(rust_highfive has picked a reviewer for you, use r? to override)

@malbarbo
Copy link
Contributor Author

Add the target build to cross2 because it seems to have some free time.

@malbarbo
Copy link
Contributor Author

Why this target is important?

Compared to amd64, x32 offers significant memory savings, often on the order of 30%, and modest efficiency gains.

Compared to i386, there's no memory use difference, but speed increases are more pronounced, especially in code that's under register pressure, operates on 64-bit or floating-point variables. It also avoids i386's penalty for PIC code, where EBX is essentially reserved for the Global Offset Table (GOT).

There are three principal use cases:

  • vserver hosting (memory bound)
  • netbooks/tablets (low memory, want performance)
  • scientific tasks (want every % of performance)

From Debian X32 port.

@malbarbo
Copy link
Contributor Author

r? @alexcrichton

@alexcrichton
Copy link
Member

@bors: r+

Thanks!

@bors
Copy link
Collaborator

bors commented Oct 12, 2017

📌 Commit 7199fee has been approved by alexcrichton

@kennytm kennytm added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Oct 13, 2017
@bors
Copy link
Collaborator

bors commented Oct 15, 2017

⌛ Testing commit 7199fee with merge 6c0d50f...

bors added a commit that referenced this pull request Oct 15, 2017
Add x86_64-unknown-linux-gnux32 target

This adds X32 ABI support for Linux on X86_64. Let's package and dist it so we can star testing libc, libstd, etc.

Fixes rust-lang/rfcs#1339
@bors
Copy link
Collaborator

bors commented Oct 15, 2017

☀️ Test successful - status-appveyor, status-travis
Approved by: alexcrichton
Pushing 6c0d50f to master...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants