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

Really fix OSX nightlies #3315

Merged
merged 1 commit into from
Nov 23, 2016
Merged

Really fix OSX nightlies #3315

merged 1 commit into from
Nov 23, 2016

Conversation

alexcrichton
Copy link
Member

After #3311 we're now correctly trying to link OpenSSL statically on
OSX. Unfortunately though this is failing to complete on the builders.
Turns out the way we install OpenSSL through Homebrew create "universal
archives" which is essentially an archive with both i686 and x86_64
object files, but separated. The linker takes care of this just fine but
rustc currently chokes on it, unable to include the library statically
into the compiler.

To work around this we prepare our own mini install of OpenSSL by
copying relevant bits into a local directory (like we do on Linux). As
part of this we use the lipo tool, which is used to manage these fat
archives, to disassemble the archive and only extract the relevant
architecture. This should make a pre-installation step which both
extracts the information and configures Cargo to use it.

This should also fix the errors we're seeing on Travis I believe.

After rust-lang#3311 we're now correctly trying to link OpenSSL statically on
OSX. Unfortunately though this is failing to complete on the builders.
Turns out the way we install OpenSSL through Homebrew create "universal
archives" which is essentially an archive with both i686 and x86_64
object files, but separated. The linker takes care of this just fine but
rustc currently chokes on it, unable to include the library statically
into the compiler.

To work around this we prepare our own mini install of OpenSSL by
copying relevant bits into a local directory (like we do on Linux). As
part of this we use the `lipo` tool, which is used to manage these fat
archives, to disassemble the archive and only extract the relevant
architecture. This should make a pre-installation step which both
extracts the information and configures Cargo to use it.

This should also fix the errors we're seeing on Travis I believe.
@alexcrichton
Copy link
Member Author

@bors: r+

@bors
Copy link
Collaborator

bors commented Nov 23, 2016

📌 Commit 1fddd18 has been approved by alexcrichton

@bors
Copy link
Collaborator

bors commented Nov 23, 2016

⌛ Testing commit 1fddd18 with merge 182f197...

@rust-highfive
Copy link

r? @brson

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

bors added a commit that referenced this pull request Nov 23, 2016
Really fix OSX nightlies

After #3311 we're now correctly trying to link OpenSSL statically on
OSX. Unfortunately though this is failing to complete on the builders.
Turns out the way we install OpenSSL through Homebrew create "universal
archives" which is essentially an archive with both i686 and x86_64
object files, but separated. The linker takes care of this just fine but
rustc currently chokes on it, unable to include the library statically
into the compiler.

To work around this we prepare our own mini install of OpenSSL by
copying relevant bits into a local directory (like we do on Linux). As
part of this we use the `lipo` tool, which is used to manage these fat
archives, to disassemble the archive and only extract the relevant
architecture. This should make a pre-installation step which both
extracts the information and configures Cargo to use it.

This should also fix the errors we're seeing on Travis I believe.
@sfackler
Copy link
Member

Might be easier to just build from source?

@alexcrichton
Copy link
Member Author

True yeah, I'd be down for that. I just haven't ever actually tried that.

@bors
Copy link
Collaborator

bors commented Nov 23, 2016

☀️ Test successful - cargo-cross-linux, cargo-linux-32, cargo-linux-64, cargo-mac-32, cargo-mac-64, cargo-win-gnu-32, cargo-win-gnu-64, cargo-win-msvc-32, cargo-win-msvc-64
Approved by: alexcrichton
Pushing 182f197 to master...

@bors bors merged commit 1fddd18 into rust-lang:master Nov 23, 2016
@alexcrichton alexcrichton deleted the fix-travis branch November 23, 2016 19:18
bors added a commit that referenced this pull request Dec 2, 2016
Backporting fixes to 1.14.0

This is a backport of the following PRs to fix the actual issue, rust-lang/rust#37969.

* #3311 - first attempt to fix OpenSSL linkage on OSX
* #3315 - second attempt to fix linkage
* #3325 - fix a flaky test causing lots of CI problems
* #3332 - actual fix for OpenSSL linkage on OSX
* #3345 - first PR for automation changes
* #3350 - second PR for automation changes
* #3326 - update git2 to support netbsd
* #3331 - update git2 to fix segfaults in tests
* #3342 - update git2 to fix cert paths
@ehuss ehuss added this to the 1.15.0 milestone Feb 6, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants