Issue #9189 has been updated by usa (Usaku NAKAMURA).

Status changed from Open to Third Party's Issue

"This application" is not ruby.
It's your compiler.
Please contact the compiler's support team for more information :)
----------------------------------------
Bug #9189: Build failure on Windows in case of nonascii TEMP environment.
https://bugs.ruby-lang.org/issues/9189#change-43306

Author: phasis68 (Heesob Park)
Status: Third Party's Issue
Priority: Normal
Assignee: usa (Usaku NAKAMURA)
Category: 
Target version: current: 2.1.0
ruby -v: ruby 2.1.0dev (2013-11-30 trunk 43936) [i386-mingw32]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN


I experienced a build failure during build extension library with trunk on Windows.

	make[2]: Entering directory `/c/work/ruby-2.1.0-r43936/ext/bigdecimal'
	generating bigdecimal-i386-mingw32.def
	compiling bigdecimal.c
	In file included from bigdecimal.c:20:0:
	bigdecimal.h:62:1: error: static declaration of 'labs' follows non-static declar
	ation
	make[2]: *** [bigdecimal.o] Error 1
	make[2]: Leaving directory `/c/work/ruby-2.1.0-r43936/ext/bigdecimal'
	make[1]: *** [ext/bigdecimal/all] Error 2
	make[1]: Leaving directory `/c/work/ruby-2.1.0-r43936'
	make: *** [build-ext] Error 2

I found the cause of this error is mkmk failure.
Here is a part of mkmf.log

	have_func: checking for labs() in stdlib.h... -------------------- no

	"i686-w64-mingw32-gcc -o conftest.exe -I../../.ext/include/i386-mingw32 -I../.././include -I../.././ext/bigdecimal -D_WIN32_WINNT=0x0501 -D_FILE_OFFSET_BITS=64   -O3 -fno-omit-frame-pointer -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration conftest.c  -L. -L../.. -L.      -lmsvcrt-ruby210-static  -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi  "

	This application has requested the Runtime to terminate it in an unusual way.
	Please contact the application's support team for more information.
	Cannot create temporary file in C:\Users\??????AppData\Local\Temp\: Invalid argument


The TEMP environment varable is
	
	C:\work\ruby-2.1.0-r43936>set TEMP
	TEMP=C:\Users\??Žė??\AppData\Local\Temp

It seems that miniruby cannot handle encoding properly.
	
	C:\work\ruby-2.1.0-r43936>miniruby -ve "p ENV['TEMP']"
	ruby 2.1.0dev (2013-11-30 trunk 43936) [i386-mingw32]
	"C:\\Users\\\xED\x9D\xAC\xEC\x84\xAD\\AppData\\Local\\Temp"

	C:\work\ruby-2.1.0-r43936>miniruby.exe -ve "p ENV['TEMP'].encoding"
	ruby 2.1.0dev (2013-11-30 trunk 43936) [i386-mingw32]
	#<Encoding:ASCII-8BIT>	
	
Whereas, the final ruby can handle encoding properly.

	C:\work>ruby -ve "p ENV['TEMP']"
	ruby 2.1.0dev (2013-11-30 trunk 43923) [i386-mingw32]
	"C:\\Users\\??Žė??\\AppData\\Local\\Temp"	

	C:\work>ruby -ve "p ENV['TEMP'].encoding"
	ruby 2.1.0dev (2013-11-30 trunk 43923) [i386-mingw32]
	#<Encoding:CP949>



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