From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2035 invoked by alias); 9 Sep 2012 02:36:43 -0000 Received: (qmail 2014 invoked by uid 22791); 9 Sep 2012 02:36:41 -0000 X-SWARE-Spam-Status: No, hits=-4.3 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00,KHOP_THREADED X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 09 Sep 2012 02:36:28 +0000 From: "rbmj at verizon dot net" To: gcc-bugs@gcc.gnu.org Subject: [Bug libstdc++/54451] c++11/random.cc build failure when _GLIBCXX_USE_C99_STDINT_TR1 is not defined in config.h Date: Sun, 09 Sep 2012 02:36:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: libstdc++ X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: rbmj at verizon dot net X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: CC Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2012-09/txt/msg00690.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54451 rbmj at verizon dot net changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rbmj at verizon dot net --- Comment #1 from rbmj at verizon dot net 2012-09-09 02:36:26 UTC --- I can confirm that the build fails as reported. A bit of searching - turns out that acinclude.m4 has the following: if test x"$glibcxx_cv_c99_stdint_tr1" = x"yes"; then AC_DEFINE(_GLIBCXX_USE_C99_STDINT_TR1, 1, [Define if C99 tyeps in should be imported in in namespace std::tr1.]) fi This is confirmed in include/tr1/cstdint: #ifdef _GLIBCXX_USE_C99_STDINT_TR1 namespace std _GLIBCXX_VISIBILITY(default) { namespace tr1 { using ::int8_t; using ::int16_t; etc. However, this is also in include/c_global/cstdint: #ifdef _GLIBCXX_USE_C99_STDINT_TR1 namespace std { using ::int8_t; using ::int16_t; etc. Those are the only uses of it in code that I can find. It seems like it isn't exactly the best name for the define (it no longer just applies to TR1), but it doesn't do too much. I can't think of a case where this would not be desired behavior (I don't remember, but I *think* that the C++ standard says that those typenames should be in the standard namespace). Anyway, it doesn't appear like removing that code will have any adverse effects. The relevant code is coming from revision 150312 (written by Paolo Carlini in 2009). Since this just broke, I'm *guessing* that this is because of 4.8 moving more towards c++11, and because it was thought that this define was only for tr1, it was removed from a default define set *somewhere* (I'm too scared to venture too far into the build system...). I can't seem to find any evidence of this though... I know it worked ~3 months ago, but my git foo can't seem to find the change.