| Bug: https://bugs.gentoo.org/show_bug.cgi?id=618878 |
| |
| A few patches to make crossdev for mingw-w64 play nice with ruby's ebuilds. |
| Basic gist is that without the following patch to configure.in ruby-2.4.1 |
| hardcodes 240 into the shared, static, and import library names, which when |
| built with the current ruby ebuilds results in names like libx64-msvcrt-ruby24240.dll and so on. The patch is in ruby-trunk[1], but may take a while |
| to hit the tarballs that gentoo uses. |
| |
| Index: configure.in |
| =================================================================== |
| --- a/configure.in (revision 57824) |
| +++ b/configure.in (revision 57825) |
| @@ -3825,7 +3825,23 @@ |
| |
| AC_ARG_WITH(soname, |
| AS_HELP_STRING([--with-soname=SONAME], [base name of shared library]), |
| - [RUBY_SO_NAME=$withval], [RUBY_SO_NAME='$(RUBY_BASE_NAME)']) |
| + [RUBY_SO_NAME=$withval], |
| + [ |
| + AS_CASE(["$target_os"], |
| + [darwin*], [ |
| + RUBY_SO_NAME='$(RUBY_BASE_NAME).$(RUBY_PROGRAM_VERSION)' |
| + ], |
| + [cygwin*], [ |
| + RUBY_SO_NAME='$(RUBY_BASE_NAME)$(MAJOR)$(MINOR)0' |
| + ], |
| + [mingw*], [ |
| + RUBY_SO_NAME="${rb_cv_msvcrt}"'-$(RUBY_BASE_NAME)$(MAJOR)$(MINOR)0' |
| + AS_IF([test x"${target_cpu}" != xi386], [ |
| + RUBY_SO_NAME="${target_cpu}-${RUBY_SO_NAME}" |
| + ]) |
| + ], |
| + [RUBY_SO_NAME='$(RUBY_BASE_NAME)']) |
| + ]) |
| |
| LIBRUBY_LDSHARED=$LDSHARED |
| LIBRUBY_DLDFLAGS=$DLDFLAGS |
| @@ -3925,7 +3941,6 @@ |
| SOLIBS='-lm -lc' |
| ], |
| [darwin*], [ |
| - RUBY_SO_NAME="$RUBY_SO_NAME"'.$(RUBY_PROGRAM_VERSION)' |
| LIBRUBY_LDSHARED='$(CC) -dynamiclib' |
| if test "$load_relative" = yes; then |
| libprefix="@executable_path/../${libdir_basename}" |
| @@ -4157,7 +4172,6 @@ |
| fi |
| ], |
| [cygwin*|mingw*], [ |
| - RUBY_SO_NAME="${RUBY_SO_NAME}"'$(MAJOR)$(MINOR)0' |
| LIBRUBY_DLDFLAGS="${DLDFLAGS}"' -Wl,--out-implib=$(LIBRUBY)' |
| AS_CASE(["$target_os"], |
| [cygwin*], [ |
| @@ -4167,10 +4181,6 @@ |
| fi |
| ], |
| [mingw*], [ |
| - RUBY_SO_NAME="${rb_cv_msvcrt}-${RUBY_SO_NAME}" |
| - if test x"${target_cpu}" != xi386; then |
| - RUBY_SO_NAME="${target_cpu}-${RUBY_SO_NAME}" |
| - fi |
| if test x"$enable_shared" = xyes; then |
| LIBRUBY_SO='$(RUBY_SO_NAME)'.dll |
| LIBRUBY_DLDFLAGS="${LIBRUBY_DLDFLAGS}"' $(RUBYDEF)' |