Re: C++ conversion status update

John Baldwin <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <[email protected]>
On Tuesday, April 19, 2016 09:36:33 PM Pedro Alves wrote:
> 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 *.

Ok, I will include that in my current patchset.

-- 
John Baldwin
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.