Project

General

Profile

Actions

Misc #21570

open

Windows: Static compilation struggles

Added by NuriYuri (Youri Nouri) about 9 hours ago.

Status:
Open
Assignee:
-
[ruby-core:123222]

Description

Hi, I'm trying to make static Ruby binaries and I've discovered several issues in the Windows building process:

  1. The GNUMakefile is trying to generate a ruby.exp file. It uses dllwrap leading to a failure since this is deprecated and exits with non-zero. (The ruby.exp file looks unnecessary for the compilation process).
  2. The generation of encoding (src/enc) files seem to be missing RUBY_EXPORT define and -lonig
  3. The openssl extconf.h is missing RUBY_EXPORT define.
  4. All the bundled gems are missing RUBY_EXPORT define and -lgmp

Also, the makefile is making some mess with the static and shared library file. It forces me to add lib=arc in rbinstall.rb so make install can work.

Here's the commands I ran for that result:

  • ridk enable ucrt64
  • sh ./src/autogen.sh
  • cd build
  • sh ../src/configure -C --disable-install-doc --disable-dln -disable-install-rdoc --disable-install-capi --with-static-linked-ext --disable-shared --disable-yjit --disable-rjit --enable-load-relative --with-parser=parse.y --prefix=C:/Projet/ruby/build/install
  • make
  • make install

I used the Ruby 3.4.5 archive from https://www.ruby-lang.org/en/downloads and mostly followed this doc https://github.com/ruby/ruby/blob/master/doc/windows.md#building-ruby-using-mingw-with-ucrt by simply adding the static spices.

In the end I was able to generate the .a files and a ruby.exe file but I had to do a ton of manual changes to achieve this result ^^.

Note: I have tried to use gcc or ldd to get the .exp file but they only make an empty .def file.

No data to display

Actions

Also available in: Atom PDF

Like0