Dear list,

I finally found a solution.

The dirty fix is to add an additional define in each compiler call. A better 
way is to modify the spec file of GCC. Therein you need to add the following 
define at an appropriate place:

-D__USE_MINGW_OUTPUT_FORMAT_EMU=0


By default, MinGW assumes __USE_MINGW_OUTPUT_FORMAT_EMU=1 It is this assumption 
which leads to the missing linker symbols and I suggest to change the default 
in later versions of MinGW/GCC. The define is used in stdio.h to change the 
ident of the MSVCRT function from _set_output_format to 
__mingw_set_output_format. 

Best regards
Sebastian

On 19 Feb 2014, at 17:05, Sebastian Wolff <[email protected]> wrote:

> Dear list,
> 
> today I upgraded from a SVN revision from March 2013 of the MinGW-w64 runtime 
> to version 3.1.0. I use the open build service provided by the openSUSE 
> community to install my cross compiler framework (based on openSuse Linux 
> 12.2). GCC version is 4.8.2. Target system is x64.  
> 
> Since the upgrade I face the following problem: 
> 
> The Linker command terminates with error message
>       Undefined symbol: __mingw_set_output_format
> 
> There are no other errors. In my source code we use the MSVCRT function 
> _set_output_format. It seems that GCC is replacing this symbol automatically 
> by mingw_set_output_format. I believe, if that would not be the case, the 
> linker should go fine since _set_output_format is actually provided by 
> libmsvcrt.a
> 
> Any ideas on what I could do about this ?
> 
> Best regards
> Sebastian

------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to