thanks for you answer, I didn't realize mingw-w64 already change default code model. 
I found one more file also need change,otherwise package build will fail. the file is  share/make/winshlib.mk .


  $(NM) $^ | $(SED) -n $(SYMPAT)|$(SED) -n '/.refptr./d'   | $(SED) -n 's/.refptr*//g'   >> tmp.def; \

Yu Gong
On Sunday, July 20, 2014 8:35 PM, Prof Brian Ripley <ripley@stats.ox.ac.uk> wrote:
 


I think you used the wrong code model: these come from defaulting to the 
medium-code model intended for x64 Cygwin -- see 
https://gcc.gnu.org/ml/gcc-patches/2013-03/msg00858.html .

Also, please follow the posting guide and do not send HTML: your message 
arrived rather garbled.

I've added a more general way to achieve this in MkRules.dist in R-devel 
and R-patched.

On 19/07/2014 07:52, Yu Gong wrote:
> recently I used gcc 4.9.1 (http://sourceforge.net/projects/mingw-w64/files/Toolchains targetting Win64/Personal Builds/mingw-builds/)on windows to build R,but failed when link R.dll ,it report linker status 5.Â
> after some
 digging, I found when use gcc 4.9.1 64 bit on windows there are lots of .refptr.*(* is r function name) in R.def, which lead build fail.so I add a simple path to src/gnuwin32/Makefile:
>
> Index: Makefile
> ===================================================================
> --- Makefile(ç‰ˆæœ¬ 66200)
> +++ Makefile(å·¥ä½œå‰¯æœ¬)
> @@ -148,7 +148,7 @@
> Â ifeq "$(WIN)" "64"
> Â R.dll: $(OBJS) $(OBJS-EXTRA) $(MAINLIBS) $(EXTRALIBS) dllversion.o
> Â @$(ECHO) EXPORTS > R.def
> -@$(NM) $^ | $(SED) -n Â $(SYMPAT) | LC_COLLATE=C $(SORT) | uniq > R0.def
> +@$(NM) $^ | $(SED) -n Â $(SYMPAT) | LC_COLLATE=C $(SORT) | uniq |$(SED) '/.refptr./d' > R0.def
> Â @$(SED) -e's/@.*//' Rdll.hide | LC_COLLATE=C
 $(SORT) > R1.def
> Â @LC_COLLATE=C comm -23 R0.def R1.def >> R.def
> Â $(DLL) -shared $(DLLFLAGS) $($*-DLLFLAGS) -o $@ R.def $^ $($*-DLLLIBS) $(DLLLIBS)
> @@ -156,7 +156,7 @@
> Â else
> Â R.dll: $(OBJS) $(OBJS-EXTRA) $(MAINLIBS) $(EXTRALIBS) dllversion.o
> Â @$(ECHO) EXPORTS > R.def
> -@$(NM) $^ | $(SED) -n Â $(SYMPAT) | LC_COLLATE=C $(SORT) | uniq > R0.def
> +@$(NM) $^ | $(SED) -n Â $(SYMPAT) | LC_COLLATE=C $(SORT) | uniq |$(SED) '/.refptr./d' > R0.def
> Â @LC_COLLATE=C $(SORT) Rdll.hide > R1.def
> Â @LC_COLLATE=C comm -23 R0.def R1.def >> R.def
> Â $(DLL) -shared $(DLLFLAGS) $($*-DLLFLAGS) -o $@ R.def $^ $($*-DLLLIBS) $(DLLLIBS)

>
>
> Yu Gong
> 2014/07/18
>     [[alternative HTML version deleted]]
>
>
>
> ______________________________________________
> R-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>


-- 
Brian D. Ripley,                  ripley@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595
	[[alternative HTML version deleted]]

