Issue #13496 has been updated by MSP-Greg (Greg L).


Good evening Hiroshi,

I've been thinking of putting it on GitHub, but I've been dividing my OSS time between it and my doc site.

I'll try to get something by Sunday or earlier.  It will probably require some setup/editing of config files, but once that's done, set the ruby repo to wherever, click a cmd file and it builds.  I've got to 

It will require msys2/MinGW and and three packages I created (OpenSSL, GDBM, and LibYAML).  I'll upload them to bintray or add them as release files.  For the time being, I'll just upload the 64 bit.

----------------------------------------
Bug #13496: Patches for MinGW builds
https://bugs.ruby-lang.org/issues/13496#change-64561

* Author: MSP-Greg (Greg L)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: 
* Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
Thanks to Nobu for [58448](https://github.com/ruby/ruby/commit/27ed9f1d290a6ff6b788976ea7139c608920ee1e), which led me to the probable cause of many (but not all) of the silent SEGV's I was having in test-all, which is the patch of `defines.h`.

Since appveyor is currently broken, and I'm not a *nix guy, does anyone know if the following two patches will break travis or appveyor?  Or, a better way to do it?

These are the only two patches I have on the 'build' side.  The other patches are only for test-all.  I believe these should probably be backported to 2.4.  Thank you.

```patch
--- a/configure.in	Wed Apr 19 14:58:48 2017
+++ configure.in	Thu Apr 20 13:44:41 2017
@@ -1319,6 +1319,7 @@
 		])
 		AC_CHECK_TYPE([NET_LUID], [], [],
 			      [@%:@include <winsock2.h>
+			      @%:@include <windows.h>
 			      @%:@include <iphlpapi.h>])
 		if test x"$ac_cv_type_NET_LUID" = xyes; then
 		    AC_DEFINE(HAVE_TYPE_NET_LUID, 1)
@@ -1657,8 +1658,13 @@
             [@%:@include <stdio.h>
 	    @%:@include <stddef.h>
             @%:@ifdef __GNUC__
+            @%:@ifdef __MINGW32__
+            @%:@define PRINTF_ARGS(decl, string_index, first_to_check) \
+              decl __attribute__((format(gnu_printf, string_index, first_to_check)))
+            @%:@else
             @%:@define PRINTF_ARGS(decl, string_index, first_to_check) \
               decl __attribute__((format(printf, string_index, first_to_check)))
+            @%:@endif
             @%:@else
             @%:@define PRINTF_ARGS(decl, string_index, first_to_check) decl
             @%:@endif

```

and

```patch
--- a/include/ruby/defines.h	Thu Apr 20 18:58:40 2017
+++ b/include/ruby/defines.h	Sat Apr 22 17:08:33 2017
@@ -83,8 +83,13 @@
 #endif /* __GNUC__ >= 3 */
 
 #ifdef __GNUC__
+#ifdef __MINGW32__
+#define PRINTF_ARGS(decl, string_index, first_to_check) \
+  decl __attribute__((format(gnu_printf, string_index, first_to_check)))
+#else
 #define PRINTF_ARGS(decl, string_index, first_to_check) \
   decl __attribute__((format(printf, string_index, first_to_check)))
+#endif
 #else
 #define PRINTF_ARGS(decl, string_index, first_to_check) decl
 #endif

```




-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>