From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 86440 invoked by alias); 27 Feb 2015 18:19:32 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 86429 invoked by uid 89); 27 Feb 2015 18:19:32 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Fri, 27 Feb 2015 18:19:31 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id t1RIJSuA002874 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for ; Fri, 27 Feb 2015 13:19:29 -0500 Received: from [127.0.0.1] (ovpn01.gateway.prod.ext.ams2.redhat.com [10.39.146.11]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t1RIJR7c015525 for ; Fri, 27 Feb 2015 13:19:28 -0500 Message-ID: <54F0B52F.1050909@redhat.com> Date: Fri, 27 Feb 2015 18:19:00 -0000 From: Pedro Alves User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: gdb-patches@sourceware.org Subject: Re: [PATCH 00/36] Support building GDB as a C++ program References: <1423524046-20605-1-git-send-email-palves@redhat.com> In-Reply-To: <1423524046-20605-1-git-send-email-palves@redhat.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-SW-Source: 2015-02/txt/msg00832.txt.bz2 A quick status update on this series. All patches but one up to the TRY_CATCH part are now pushed. That is, > [PATCH 01/36] Create libiberty/libiberty.m4, have GDB and GDBserver use it > [PATCH 02/36] Add --enable-build-with-cxx configure switch > [PATCH 03/36] C++ keyword cleanliness, mostly auto-generated > [PATCH 04/36] Fix struct, union, and enum nesting in C++ > [PATCH 05/36] Fix redefinition errors in C++ mode > [PATCH 06/36] record-btrace.c: Remove redefinitions > [PATCH 07/36] Make array object extern > [PATCH 08/36] elf-bfd.h: Wrap in extern "C". > [PATCH 09/36] floatformat.h: Wrap in extern "C". > [PATCH 10/36] Add extern "C" to declarations of C symbols > [PATCH 11/36] Make functions and variables exported by the IPA be extern "C" > [PATCH 12/36] proc-service, extern "C" > [PATCH 13/36] target.h: Include infrun.h > [PATCH 14/36] Do not do arithmetic on enum types > [PATCH 15/36] Don't forward declare enum target_hw_bp_type > [PATCH 16/36] x86 Linux/ptrace: fix offsetof usage in C++ mode > [PATCH 17/36] mi/mi-cmd-stack.c|frame filters: print_values <-> ext_lang_frame_args > [PATCH 18/36] Rename struct lzma_stream to avoid clash with system header > [PATCH 19/36] Exported const objects > [PATCH 21/36] opcodes/microblaze: Rename 'or', 'and', 'xor' to avoid C++ conflict > [PATCH 22/36] Remove duplicate const > [PATCH 23/36] gdbarch.h: include regcache.h > [PATCH 24/36] breakpoint.h: move enum âprint_stop_actionâ > [PATCH 25/36] python/python-internal.h: enum âext_lang_rcâ not defined > [PATCH 26/36] Adjust self tests to cope with GDB built as a C++ program > [PATCH 27/36] catch_command_errors: Remove 'mask' parameter > [PATCH 28/36] Move exception_none to common code, and use it All the above are now pushed. I didn't push this one, as it introduces an aliasing violation: > [PATCH 20/36] gdbserver/tracepoint: Add cast sockaddr_un/sockaddr cast These are still pending: > [PATCH 29/36] Normalize TRY_CATCH exception handling block > [PATCH 30/36] quit_force: Replace TRY_CATCH wrapper macros > [PATCH 31/36] Split TRY_CATCH into TRY + CATCH > [PATCH 32/36] TRY_CATCH -> TRY+CATCH+END_CATCH everywhere > [PATCH 33/36] TRY_CATCH -> TRY+CATCH+END_CATCH, the manual conversions > [PATCH 34/36] more making TRY/CATCH callers look more like real C++ try/catch blocks > [PATCH 35/36] kill volatile struct gdb_exception > [PATCH 36/36] Make TRY/CATCH use real C++ try/catch in C++ mode I don't have time right now to rebase this part, but I'd like to move ahead with it sometime soon. If anyone has comments on this, now's the time to send them out. > Known problems: > > . Other hosts/native targets will naturally stumble on more > host-specific code that needs converting, which I can't easily test. > Help very much welcome! This is still true. :-) > > . '--enable-targets=all' doesn't link yet in C++ mode. This just more > extern "C" problems. This is fixed, or will be, once the TRY_CATCH patches land, at least on x86_64 GNU/Linux. It was handled with a couple bfd and opcodes patches. > > I wrote a second series a few months ago that built on an older > version of this one and fixes all the '-fpermissive' errors/warnings, > until GDB and GDBserver build cleanly with -Werror, on x86_64 Fedora. > It's naturally rotten in a few places by now, and in need of some > further cleaning up but it shouldn't be that far off. You can find it > here: > > https://github.com/palves/gdb/commits/palves/cxx-conversion-attempt-part-2-no-fpermissive > git@github.com:palves/gdb.git palves/cxx-conversion-attempt-part-2-no-fpermissive A couple weeks ago I rebased this second part and cleaned it up substantially. It's not fully ready, and now needs another rebase though... Thanks, Pedro Alves