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

Ruby-head: Add support for arm64 #21

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

Ruby-head: Add support for arm64 #21

wants to merge 3 commits into from

Conversation

larskanis
Copy link
Member

@larskanis larskanis commented Dec 15, 2024

The compiler options were taken from msys2/mingw-packages. The dependecies already existed, but are usually preinstalled on x86/x86_64.

This PR currently fails at make btest in check():

$ make btest
2024-12-15 19:01:35 +0100
Driver is ruby 3.4.0dev (2024-12-13 master c0caf1cc1a) +PRISM [aarch64-mingw-ucrt]
Target is ruby 3.4.0dev (2024-12-15T08:15:22Z master 5c372969ad) +PRISM [aarch64-mingw-ucrt]

test_attr.rb              PASS 3
test_autoload.rb          PASS 8
test_block.rb             PASS 58
test_class.rb             PASS 48
test_constant_cache.rb    PASS 10
test_env.rb               PASS 2
test_eval.rb              PASS 49
test_exception.rb         PASS 34
#218 test_fiber.rb:37:
     Fiber.new(&Object.method(:class_eval)).resume("foo")
  #=> killed by SIGSEGV (signal 11)  [ruby-dev:34128]
test_fiber.rb             FAIL 1/6
test_finalizer.rb         PASS 2
test_flip.rb              PASS 1
test_flow.rb              PASS 62
test_fork.rb              PASS 5
test_gc.rb                PASS 2
test_insns.rb             PASS 399
test_io.rb                PASS 18
test_jump.rb              PASS 29
test_literal.rb           PASS 157
test_literal_suffix.rb    PASS 48
test_load.rb              PASS 2
test_marshal.rb           PASS 1
test_massign.rb           PASS 34
test_method.rb            PASS 247
test_objectspace.rb       PASS 6
test_proc.rb              PASS 37
test_ractor.rb            PASS 118
test_rjit.rb              PASS 7
test_string.rb            PASS 1
test_struct.rb            PASS 1
test_syntax.rb            PASS 164
#1592 test_thread.rb:333:
     g = enum_for(:binding)
     loop { g.next }
  #=> killed by SIGSEGV (signal 11)  [ruby-dev:34128]
test_thread.rb            FAIL 1/50
test_yjit.rb              PASS 355
test_yjit_30k_ifelse.rb   PASS 1
test_yjit_30k_methods.rb  PASS 1
test_yjit_rust_port.rb    PASS 38

Finished in 68.40 sec

Fiber count: 10000 (skipping)
FAIL 2/2004 tests failed
make: *** [uncommon.mk:896: yes-btest] Fehler 1

The compiler options were taken from msys2/mingw-packages.
The dependecies already existed, but are usually preinstalled on x86/x86_64.
This is needed for ARM64, since the github CI doesn't provide ARM64 build environments.
This allows to add a customized manifest within the installer build process later on.
The Microsoft mt.exe allows to add a manifest to a EXE or DLL file after the build.
But there is no such tool in gcc/llvm.
So adding a placeholder manifest allows to later change the XML with simple text replacement.
That way the ruby build doesn't need any patches and is not bound too much to the installer.

Also use a build directory like the MSYS2/MINGW-packages.
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.

1 participant