From: <t6...@gm...> - 2010-06-21 03:38:52
|
Hello: Yesterday I encountered a really weird / oddly gcc bug. AFAICT , that gcc-4_5 branch during that last past month that the C++ was changed. Now that the C99 implementation of C++ is in GCC 4.5 branch which indeed breaks a mingw-w64 compiler, in that aspect of C++. In the internal gcc libstdc++ ATM it defaults to using a strictly C99 implementation of. So far I see it is breaking the cstdlib and cwchar. Until somebody fixes this C99 specific stuff of Cplusplus it is broken. Best Regards, |
From: Doug S. <dou...@gm...> - 2010-06-21 12:43:23
|
On Sun, Jun 20, 2010 at 11:38 PM, t6...@gm... <t6...@gm...> wrote: > Hello: > > Yesterday I encountered a really weird / oddly gcc bug. > AFAICT , that gcc-4_5 branch during that last past month that the C++ > was changed. > Now that the C99 implementation of C++ is in GCC 4.5 branch which indeed > breaks a mingw-w64 compiler, in that aspect of C++. > > In the internal gcc libstdc++ ATM it defaults to using a strictly C99 > implementation of. > > So far I see it is breaking the cstdlib and cwchar. > > Until somebody fixes this C99 specific stuff of Cplusplus it is broken. > Do you have an example, including preprocessed source, of the failure? |
From: <t6...@gm...> - 2010-06-22 07:24:52
|
On 21/06/2010 10:43 PM, Doug Semler wrote: > On Sun, Jun 20, 2010 at 11:38 PM, t6...@gm...<t6...@gm...> wrote: >> Hello: >> >> Yesterday I encountered a really weird / oddly gcc bug. >> AFAICT , that gcc-4_5 branch during that last past month that the C++ >> was changed. >> Now that the C99 implementation of C++ is in GCC 4.5 branch which indeed >> breaks a mingw-w64 compiler, in that aspect of C++. >> >> In the internal gcc libstdc++ ATM it defaults to using a strictly C99 >> implementation of. >> >> So far I see it is breaking the cstdlib and cwchar. >> >> Until somebody fixes this C99 specific stuff of Cplusplus it is broken. >> > > Do you have an example, including preprocessed source, of the failure? > http://sourceforge.net/tracker/index.php?func=detail&aid=2990320&group_id=202880&atid=983356 |
From: Doug S. <dou...@gm...> - 2010-06-22 13:03:57
|
On Tue, Jun 22, 2010 at 3:24 AM, t6...@gm... <t6...@gm...> wrote: > On 21/06/2010 10:43 PM, Doug Semler wrote: >> >> On Sun, Jun 20, 2010 at 11:38 PM, t6...@gm...<t6...@gm...> >> wrote: >>> >>> Hello: >>> >>> Yesterday I encountered a really weird / oddly gcc bug. >>> AFAICT , that gcc-4_5 branch during that last past month that the C++ >>> was changed. >>> Now that the C99 implementation of C++ is in GCC 4.5 branch which indeed >>> breaks a mingw-w64 compiler, in that aspect of C++. >>> >>> In the internal gcc libstdc++ ATM it defaults to using a strictly C99 >>> implementation of. >>> >>> So far I see it is breaking the cstdlib and cwchar. >>> >>> Until somebody fixes this C99 specific stuff of Cplusplus it is broken. >>> >> >> Do you have an example, including preprocessed source, of the failure? >> > > http://sourceforge.net/tracker/index.php?func=detail&aid=2990320&group_id=202880&atid=983356 > Without the preprocessed source of the module that is giving the link error as described in the tracker, I cannot determine the issue because I am just guessing as to the problem, as I cannot reproduce it. The link error described should give the module that is attempting to pull the unresolved symbol. Run the same g++ command line that compiles that source file into an object with the additional option -save-temps in order to generate the <ccfilename>.ii file, and post that. Also, post the output of x86_64-w64-mingw32-gcc -v. The reason we need that to assist is the following test program compiles and links properly. GNU C++ (GCC) version 4.5.1 20100620 (prerelease) [gcc-4_5-branch-drs revision 161044] (x86_64-w64-mingw32) compiled by GNU C version 4.5.1 20100620 (prerelease) [gcc-4_5-branch-drs revision 161044], GMP version 5.0.1, MPFR version 3.0.0, MPC version 0.8.2 x86_64-w64-mingw32-g++ foo.cc #include <cstdlib> int funca() { exit(1); } int funcb() { _exit(2); } int funcc() { std::exit(3); } int funcd() { std::_Exit(4); } int funce() { ::_Exit(5); } int main() { return 0; } |