Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add x86_64-unknown-linux-gnux32 target #45224

Merged
merged 6 commits into from
Oct 15, 2017
Merged

Add x86_64-unknown-linux-gnux32 target #45224

merged 6 commits into from
Oct 15, 2017

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
Collaborator

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
Contributor

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
Contributor

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
Contributor

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