You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
2.1 KiB

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)'