Skip to content

Investigate using --target-rbconfig when cross compiling gems #884

Closed
@joshcooper

Description

@joshcooper

Use Case

In order to cross-compile gems with native extensions, like ffi, the top-level RbConfig constant must be modified to pretend to the target ruby architecture. To accomplish this, we patch the host ruby, however, this is fragile because the rubygems code keeps changing how it invokes the gem command. As a result we've shipped gems with unusable native extensions multiple times. I fixed this is 58560cc but it doesn't support rubygems > 3.5.10

Describe the Solution You Would Like

Ruby's mkmf introduced a --target-rbconfig option to satisfy this use case, see https://bugs.ruby-lang.org/issues/20345. Also the gem install and gem update commands recently added support for the --target-rbconfig option. In theory, this means we could eliminate patch-hostruby and instead do gem install --target-rbconfig fake.rb nokogiri. However, you'd need to use the latest ruby/rubygems to take advantage of the option.

Metadata

Metadata

Assignees

No one assigned

    Labels

    acceptedValid issue that we intend to work on when we have the bandwidthenhancementNew feature or requesttriagedJira issue has been created for this

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions