From patchwork Wed Feb 15 20:00:00 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Benjamin Kosnik X-Patchwork-Id: 141401 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 8B5871007D4 for ; Thu, 16 Feb 2012 07:00:50 +1100 (EST) Comment: DKIM? See http://www.dkim.org DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=gcc.gnu.org; s=default; x=1329940850; h=Comment: DomainKey-Signature:Received:Received:Received:Received:Received: Date:From:To:Subject:Message-ID:Mime-Version:Content-Type: Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:Sender:Delivered-To; bh=NiCfDdbgbNW5TTI9wAB9 E+/Eev8=; b=kGOvcaRfFzepgiZH0sheDxwlYLh8ObaIsuAblZcv6WQpV0s+f2jD 3rOhkWhVCcqwgbFnCcKc6hW2Hp7ygcpSUIUDRboB8GUXAMWJdXNSkUgMcWQG4INx zYid86Ji6O+p5lIVVnNtmEzs/NXeuZdZ5omsT+KA30gizJdN5NnqZdo= Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=gcc.gnu.org; h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:Received:Received:Received:Date:From:To:Subject:Message-ID:Mime-Version:Content-Type:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=k0H0g0f6C2owH6O2FcLaO2bnl401vqkYctCACnLqbiV5H7+VniKQ98Op5vkgpX 0hpctWJnmvzomLV5ch3z0oNLR9UiNltHPojrxaZUVtX/ea3SIJEKTgVZkWVmDmv7 z9/9Gxl7A18lmklVWliMeyUlBpezpRf5lqCChPnXs7tQM=; Received: (qmail 30681 invoked by alias); 15 Feb 2012 20:00:40 -0000 Received: (qmail 30654 invoked by uid 22791); 15 Feb 2012 20:00:37 -0000 X-SWARE-Spam-Status: No, hits=-2.1 required=5.0 tests=AWL, BAYES_00, KAM_MX3, RCVD_IN_DNSWL_HI, SPF_HELO_PASS, TW_IB, TW_SV, T_RP_MATCHES_RCVD, URIBL_BLACK X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 15 Feb 2012 20:00:02 +0000 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q1FK01Z7026465 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 15 Feb 2012 15:00:01 -0500 Received: from shotwell (ovpn-113-126.phx2.redhat.com [10.3.113.126]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id q1FK01hd001292 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Wed, 15 Feb 2012 15:00:01 -0500 Date: Wed, 15 Feb 2012 12:00:00 -0800 From: Benjamin Kosnik To: gcc-patches@gcc.gnu.org, libstdc++@gcc.gnu.org Subject: [v3] libstdc++/51368 Message-ID: <20120215120000.1e35960e@shotwell> Mime-Version: 1.0 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org As per request, syncs libstdc++ with libjava for installation of python modules using top-level --with-python-dir configure argument. I think we are going to need GLIBCXX_ENABLE_PYTHON anyway for the other python bug report. -benjamin tested x86/linux tested x86/linux --with-python-dir=/share/python commit 7087fa3c623191a70de5959ce23dbe004be61caf Author: bkoz Date: Wed Feb 15 11:33:24 2012 -0800 2012-02-15 Benjamin Kosnik PR libstdc++/51368 * acinclude.m4 (GLIBCXX_ENABLE_PYTHON): New. * configure.ac: Use it. * python/Makefile.am: Same. * configure: Regenerate. * python/Makefile.in: Regenerate. * Makefile.in: Same. * doc/Makefile.in: Same. * include/Makefile.in: Same. * po/Makefile.in: Same. * src/Makefile.in: Same. * src/c++11/Makefile.in: Same. * src/c++98/Makefile.in: Same. * testsuite/Makefile.in: Same. diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index e089b20..61fdb42 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -1737,26 +1737,26 @@ AC_DEFUN([GLIBCXX_CHECK_MATH_PROTO], [ { return __builtin_fabsf(__x); } } ])], - [glibcxx_cv_abs_float=no], - [glibcxx_cv_abs_float=yes] + [glibcxx_cv_abs_float=no], + [glibcxx_cv_abs_float=yes] )]) # autoheader cannot handle indented templates. AH_VERBATIM([__CORRECT_ISO_CPP_MATH_H_PROTO1], - [/* Define if all C++ overloads are available in . */ + [/* Define if all C++ overloads are available in . */ #if __cplusplus >= 199711L #undef __CORRECT_ISO_CPP_MATH_H_PROTO1 #endif]) AH_VERBATIM([__CORRECT_ISO_CPP_MATH_H_PROTO2], - [/* Define if only double std::abs(double) is available in . */ + [/* Define if only double std::abs(double) is available in . */ #if __cplusplus >= 199711L #undef __CORRECT_ISO_CPP_MATH_H_PROTO2 #endif]) if test $glibcxx_cv_abs_float = yes; then - AC_DEFINE(__CORRECT_ISO_CPP_MATH_H_PROTO1) + AC_DEFINE(__CORRECT_ISO_CPP_MATH_H_PROTO1) else - AC_DEFINE(__CORRECT_ISO_CPP_MATH_H_PROTO2) + AC_DEFINE(__CORRECT_ISO_CPP_MATH_H_PROTO2) fi AC_MSG_RESULT($glibcxx_cv_abs_float) ;; @@ -1787,19 +1787,19 @@ AC_DEFUN([GLIBCXX_CHECK_STDLIB_PROTO], [ inline long abs(long __i) { return labs(__i); } } - ])], - [glibcxx_cv_abs_long=no], - [glibcxx_cv_abs_long=yes] + ])], + [glibcxx_cv_abs_long=no], + [glibcxx_cv_abs_long=yes] )]) # autoheader cannot handle indented templates. AH_VERBATIM([__CORRECT_ISO_CPP_STDLIB_H_PROTO], - [/* Define if all C++ overloads are available in . */ + [/* Define if all C++ overloads are available in . */ #if __cplusplus >= 199711L #undef __CORRECT_ISO_CPP_STDLIB_H_PROTO #endif]) if test $glibcxx_cv_abs_long = yes; then - AC_DEFINE(__CORRECT_ISO_CPP_STDLIB_H_PROTO, 1) + AC_DEFINE(__CORRECT_ISO_CPP_STDLIB_H_PROTO, 1) fi AC_MSG_RESULT($glibcxx_cv_abs_long) ;; @@ -2495,7 +2495,7 @@ template int main() { - typename same::type f1; + typename same::type f1; typename same::type f2; } EOF @@ -2729,7 +2729,7 @@ AC_DEFUN([GLIBCXX_ENABLE_ATOMIC_BUILTINS], [ atomic_type c3(0); __atomic_fetch_add(&c1, c2, __ATOMIC_RELAXED); __atomic_compare_exchange_n(&c1, &c2, c3, true, __ATOMIC_ACQ_REL, - __ATOMIC_RELAXED); + __ATOMIC_RELAXED); __atomic_test_and_set(&c1, __ATOMIC_RELAXED); __atomic_load_n(&c1, __ATOMIC_RELAXED); ], @@ -2748,7 +2748,7 @@ AC_DEFUN([GLIBCXX_ENABLE_ATOMIC_BUILTINS], [ atomic_type c3(0); __atomic_fetch_add(&c1, c2, __ATOMIC_RELAXED); __atomic_compare_exchange_n(&c1, &c2, c3, true, __ATOMIC_ACQ_REL, - __ATOMIC_RELAXED); + __ATOMIC_RELAXED); __atomic_test_and_set(&c1, __ATOMIC_RELAXED); __atomic_load_n(&c1, __ATOMIC_RELAXED); ], @@ -2767,7 +2767,7 @@ AC_DEFUN([GLIBCXX_ENABLE_ATOMIC_BUILTINS], [ atomic_type c3(0); __atomic_fetch_add(&c1, c2, __ATOMIC_RELAXED); __atomic_compare_exchange_n(&c1, &c2, c3, true, __ATOMIC_ACQ_REL, - __ATOMIC_RELAXED); + __ATOMIC_RELAXED); __atomic_test_and_set(&c1, __ATOMIC_RELAXED); __atomic_load_n(&c1, __ATOMIC_RELAXED); ], @@ -2786,7 +2786,7 @@ AC_DEFUN([GLIBCXX_ENABLE_ATOMIC_BUILTINS], [ atomic_type c3(0); __atomic_fetch_add(&c1, c2, __ATOMIC_RELAXED); __atomic_compare_exchange_n(&c1, &c2, c3, true, __ATOMIC_ACQ_REL, - __ATOMIC_RELAXED); + __ATOMIC_RELAXED); __atomic_test_and_set(&c1, __ATOMIC_RELAXED); __atomic_load_n(&c1, __ATOMIC_RELAXED); ], @@ -2814,10 +2814,10 @@ int main() atomic_type c3(0); __atomic_fetch_add(&c1, c2, __ATOMIC_RELAXED); __atomic_compare_exchange_n(&c1, &c2, c3, true, __ATOMIC_ACQ_REL, - __ATOMIC_RELAXED); + __ATOMIC_RELAXED); __atomic_test_and_set(&c1, __ATOMIC_RELAXED); __atomic_load_n(&c1, __ATOMIC_RELAXED); - + return 0; } EOF @@ -2843,7 +2843,7 @@ int main() atomic_type c3(0); __atomic_fetch_add(&c1, c2, __ATOMIC_RELAXED); __atomic_compare_exchange_n(&c1, &c2, c3, true, __ATOMIC_ACQ_REL, - __ATOMIC_RELAXED); + __ATOMIC_RELAXED); __atomic_test_and_set(&c1, __ATOMIC_RELAXED); __atomic_load_n(&c1, __ATOMIC_RELAXED); @@ -2873,7 +2873,7 @@ int main() atomic_type c3(0); __atomic_fetch_add(&c1, c2, __ATOMIC_RELAXED); __atomic_compare_exchange_n(&c1, &c2, c3, true, __ATOMIC_ACQ_REL, - __ATOMIC_RELAXED); + __ATOMIC_RELAXED); __atomic_test_and_set(&c1, __ATOMIC_RELAXED); __atomic_load_n(&c1, __ATOMIC_RELAXED); @@ -2902,7 +2902,7 @@ int main() atomic_type c3(0); __atomic_fetch_add(&c1, c2, __ATOMIC_RELAXED); __atomic_compare_exchange_n(&c1, &c2, c3, true, __ATOMIC_ACQ_REL, - __ATOMIC_RELAXED); + __ATOMIC_RELAXED); __atomic_test_and_set(&c1, __ATOMIC_RELAXED); __atomic_load_n(&c1, __ATOMIC_RELAXED); @@ -3348,13 +3348,13 @@ AC_DEFUN([GLIBCXX_CHECK_GTHREADS], [ [ // In case of POSIX threads check _POSIX_TIMEOUTS. #if (defined(_PTHREADS) \ - && (!defined(_POSIX_TIMEOUTS) || _POSIX_TIMEOUTS <= 0)) + && (!defined(_POSIX_TIMEOUTS) || _POSIX_TIMEOUTS <= 0)) #error #endif ], [ac_gthread_use_mutex_timedlock=1], [ac_gthread_use_mutex_timedlock=0]) AC_DEFINE_UNQUOTED(_GTHREAD_USE_MUTEX_TIMEDLOCK, $ac_gthread_use_mutex_timedlock, - [Define to 1 if mutex_timedlock is available.]) + [Define to 1 if mutex_timedlock is available.]) if test $ac_gthread_use_mutex_timedlock = 1 ; then res_mutex_timedlock=yes ; else res_mutex_timedlock=no ; fi @@ -3543,6 +3543,27 @@ AC_DEFUN([GLIBCXX_CHECK_SYSCTL_HW_NCPU], [ AC_LANG_RESTORE ]) +dnl +dnl Check to see if python pretty printing can be activated. +dnl +dnl --with-python-dir=dir +dnl installs directory into $prefix/dir +AC_DEFUN([GLIBCXX_ENABLE_PYTHON], [ + +AC_MSG_CHECKING([for custom python install directory]) +AC_ARG_WITH([python-dir], + AS_HELP_STRING([--with-python-dir], + [the location to install Python modules. This path is relative starting from the prefix.]), + [with_python_dir=$withval], [with_python_dir="no"]) +AC_MSG_RESULT(${with_python_dir}) + +# Needed for installing Python modules during make install. +python_mod_dir="${with_python_dir}" +AC_SUBST(python_mod_dir) +GLIBCXX_CONDITIONAL(ENABLE_PYTHONDIR, test $python_mod_dir != no) +]) + + # Macros from the top-level gcc directory. m4_include([../config/gc++filt.m4]) m4_include([../config/tls.m4]) diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac index 7607e5b..de5fe95 100644 --- a/libstdc++-v3/configure.ac +++ b/libstdc++-v3/configure.ac @@ -130,6 +130,7 @@ GLIBCXX_ENABLE_PARALLEL([yes]) GLIBCXX_ENABLE_CXX_FLAGS GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING([no]) GLIBCXX_ENABLE_EXTERN_TEMPLATE([yes]) +GLIBCXX_ENABLE_PYTHON # Checks for operating systems support that doesn't require linking. GLIBCXX_CHECK_MATH_PROTO diff --git a/libstdc++-v3/python/Makefile.am b/libstdc++-v3/python/Makefile.am index 457e45b..49d8f86 100644 --- a/libstdc++-v3/python/Makefile.am +++ b/libstdc++-v3/python/Makefile.am @@ -1,6 +1,6 @@ ## Makefile for the python subdirectory of the GNU C++ Standard library. ## -## Copyright (C) 2009 Free Software Foundation, Inc. +## Copyright (C) 2009, 2012 Free Software Foundation, Inc. ## ## This file is part of the libstdc++ version 3 distribution. ## Process this file with automake to produce Makefile.in. @@ -24,7 +24,11 @@ include $(top_srcdir)/fragment.am ## Where to install the module code. +if ENABLE_PYTHONDIR +pythondir = $(prefix)/$(python_mod_dir) +else pythondir = $(datadir)/gcc-$(gcc_version)/python +endif all-local: gdb.py commit f06b90735bae23bedcc6e6c183bceeba88b2982a Author: bkoz Date: Fri Feb 10 18:20:43 2012 +0000 2012-02-10 Benjamin Kosnik Jonathan Wakely PR libstdc++/51798 continued. * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Use __atomic_* builtins instead of __sync_* builtins for atomic functionality. * include/bits/shared_ptr_base.h: Same. * include/parallel/compatibility.h: Same. * include/profile/impl/profiler_state.h: Same. * include/tr1/shared_ptr.h: Same. * libsupc++/eh_ptr.cc: Same. * libsupc++/eh_throw.cc: Same. * libsupc++/eh_tm.cc: Same. * libsupc++/guard.cc: Same. * configure: Regenerated. * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust line numbers. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184110 138bc75d-0d04-0410-961f-82ee72b054a4