From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 96046 invoked by alias); 19 Apr 2016 20:36:38 -0000 Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org Received: (qmail 94500 invoked by uid 89); 19 Apr 2016 20:36:37 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.0 required=5.0 tests=BAYES_20,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=baldwin, Baldwin, torn, stack_t 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; Tue, 19 Apr 2016 20:36:36 +0000 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 20544C04B301; Tue, 19 Apr 2016 20:36:35 +0000 (UTC) Received: from [127.0.0.1] (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u3JKaXbe025540; Tue, 19 Apr 2016 16:36:34 -0400 Subject: Re: C++ conversion status update To: John Baldwin , gdb@sourceware.org References: <565460FB.6070103@redhat.com> <5711857D.8030708@redhat.com> <57151080.3000900@redhat.com> <4587615.ZrrbCebxpz@ralph.baldwin.cx> From: Pedro Alves Message-ID: <571696D1.807@redhat.com> Date: Tue, 19 Apr 2016 20:36:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.1 MIME-Version: 1.0 In-Reply-To: <4587615.ZrrbCebxpz@ralph.baldwin.cx> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-SW-Source: 2016-04/txt/msg00030.txt.bz2 On 04/19/2016 07:22 PM, John Baldwin wrote: > Thanks, I was able to test it and it works great on FreeBSD/amd64. Great, thanks for confirming. > The only remaining issue is that FreeBSD's stack_t defines ss_sp as char * > instead of void *. Apparently 4.4BSD had this and the other BSD's fixed this > long ago. When I first ran into this in January I fixed FreeBSD's trunk, so > 11.0 will ship with a proper ss_sp of void *, but older releases will not. > > The affected code is in setup_alternate_signal_stack() in gdb/main.c where > ss_sp is assigned to the void * returned from xmalloc(). > > I was torn between just supporting C++ builds on FreeBSD 11 and later, or > adding autoconf glue for just this part. However, given that it seems like > the recent discussion is to deprecate C mode in the near future, it seems > like I should do the latter. Do you have any better suggestions? > C++ allows conversion to 'void *' without a cast. So I think we just need to do: - ss.ss_sp = xmalloc (SIGSTKSZ); + ss.ss_sp = (char *) xmalloc (SIGSTKSZ); and it'll work on both char * and void * hosts. I tried it here on GNU/Linux, where ss_sp is void *, and it works. Would you like to send that as a patch (with a comment)? We can leave adding an autoconf check if some other host uses a type different than void * and char *. Thanks, Pedro Alves