[ruby-core:80981] [Ruby trunk Bug#13496] Patches for MinGW builds

From: Greg.mpls@...
Date: 2017-05-02 22:46:20 UTC
List: ruby-core #80981
Issue #13496 has been updated by MSP-Greg (Greg L).


Hiroshi,

Today, I updated [ruby-loco](https://github.com/MSP-Greg/ruby-loco) to work with current builds.

I've added a page to my doc site, [Ruby MinGW test-all](https://msp-greg.github.io/file.mingw_test-all.html), it contains a brief summary of test results for several (but not all) builds.

For several builds, things have stayed at 8 failures, 1 error, and approx 85 skips.  I'm not sure why, but total 'assertions' seems to jump around quite a bit.

Recently, I took the make -j argument to 1 when I had some build issues.  I need to raise it back up to 3 and check results...

If others can confirm that builds and test-all are stable, maybe you and the other contributors can take a look at whether the required patches can be corrected, and also determine if the failures/errors can (or should) be fixed, or whether the assertions/tests should be considered 'skips'.

> Thanks always about MinGW.

Considering that I don't have the knowledge to really determine what is causing these issues, thank you (and the other Core contributors) for helping with my semi-educated guesses...

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

* 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>

In This Thread

Prev Next