support building on illumos systems #1854
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issues:
n/a
Description of changes:
The team that works on awslabs/tough wants to support using the aws-lc-rs Rust crate (awslabs/tough#824). As one of several downstream consumers of tough outside of AWS, we were asked for feedback. Oxide uses tough as part of our product which runs on the illumos operating system.
When linking Rust code using aws-lc-rs, the linker cannot find several
aws_lc_*
symbols:uname -p
on illumos systems returnsi386
on 64-bit machines. This resulted in assembly code not being linked into the AWS-LC library due to architecture misdetection. To determine the native instruction set,isainfo -n
is used instead.Once these cryptic errors were out of the way, we got a more normal linking error indicating some missing libraries; symbols that are in the libc on other platforms are in separate libraries on illumos.
I'm sending this PR on behalf of my coworker, @jclulow, but I can help handle any requested changes.
Call-outs:
n/a
Testing:
Tested on an illumos system via aws-lc-rs by patching the crate in Cargo.toml with:
which updates the AWS-LC submodule to this commit.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and the ISC license.