Issue #7960 has been updated by Ryexander (Benjamin Powers).


infact I think I'm right, it's right here in the 2.0 change log

 ext/extmk.rb (command_output): dmyext is needed as DLDOBJS if no static linked extensions.

this would seem to imply that is there were statically linked extentions it is not needed

the error happens as it is linking in the shared dll and considering that dmyext is included in both the static lib and the shared lib inside $(DMYEXT) and $(DLDOBJS) respectively

    relevant lines from common.mk 
  
    $(LIBRUBY_A):	$(OBJS) $(MAINOBJ) $(DTRACE_OBJ) $(DTRACE_GLOMMED_OBJ) $(DMYEXT) $(ARCHFILE)

    $(LIBRUBY_SO):	$(OBJS) $(DLDOBJS) $(LIBRUBY_A) $(PREP) $(LIBRUBY_SO_UPDATE) $(BUILTIN_ENCOBJS)


i'm pretty sure that the inclusion of dmyext is what is causing the error. 

not sure how to solve it though. I suspect it needs to be removed as a link somewhere under the condition of there being statically linked extensions.
----------------------------------------
Bug #7960: Ruby fails to build static under mswin linker error: multiple definitions of _Init_ext
https://bugs.ruby-lang.org/issues/7960#change-37249

Author: Ryexander (Benjamin Powers)
Status: Assigned
Priority: Normal
Assignee: nobu (Nobuyoshi Nakada)
Category: build
Target version: current: 2.1.0
ruby -v: 1.9.3


after the depend errors were fixed I obtained r39490 and attempted to build it

after nearly completing it failed with 

ruby200.dll : fatal error LNK1169: one or more multiply defined symbols found

searching through the output found only one line with a "already defined"

ruby200-static.lib(dmyext.obj) : error LNK2005: _Init_ext already defined in ext
init.obj

attached is the full output of the configure.bat and nmake commands run with arguments


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