--- mysql-ruby-2.7.1.orig/extconf.rb	2004-09-20 21:03:47.000000000 +0900
+++ mysql-ruby-2.7.1/extconf.rb	2006-09-26 15:35:30.040808000 +0900
@@ -1,6 +1,9 @@
 require 'mkmf'
 
-if mc = with_config('mysql-config') then
+if /mswin32/ =~ RUBY_PLATFORM
+  inc, lib = dir_config('mysql')
+  exit 1 unless have_library("libmysql")
+elsif mc = with_config('mysql-config') then
   mc = 'mysql_config' if mc == true
   cflags = `#{mc} --cflags`.chomp
   exit 1 if $? != 0
@@ -36,6 +39,9 @@
 else
   cpp = Config::expand sprintf(CPP, $CPPFLAGS, $CFLAGS, '')
 end
+if /mswin32/ =~ RUBY_PLATFORM && !/-E/.match(cpp)
+  cpp << " -E"
+end
 unless system "#{cpp} > confout" then
   exit 1
 end
--- mysql-ruby-2.7.1.orig/mysql.c.in	2006-06-04 23:29:28.000000000 +0900
+++ mysql-ruby-2.7.1/mysql.c.in	2006-09-25 15:15:47.630051200 +0900
@@ -1334,7 +1334,7 @@
 	case T_BIGNUM:
 	    s->param.bind[i].buffer_type = MYSQL_TYPE_LONGLONG;
 	    s->param.bind[i].buffer = &(s->param.buffer[i]);
-	    *(long long*)(s->param.bind[i].buffer) = rb_big2ll(argv[i]);
+	    *(LONG_LONG*)(s->param.bind[i].buffer) = rb_big2ll(argv[i]);
 	    break;
 	case T_FLOAT:
 	    s->param.bind[i].buffer_type = MYSQL_TYPE_DOUBLE;
@@ -1435,7 +1435,7 @@
 		v = INT2NUM(*(long*)s->result.bind[i].buffer);
 		break;
 	    case MYSQL_TYPE_LONGLONG:
-		v = rb_ll2inum(*(long long*)s->result.bind[i].buffer);
+		v = rb_ll2inum(*(LONG_LONG*)s->result.bind[i].buffer);
 		break;
 	    case MYSQL_TYPE_DOUBLE:
 		v = rb_float_new(*(double*)s->result.bind[i].buffer);

