This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: SafeStack proposal in GCC
- From: Torvald Riegel <triegel at redhat dot com>
- To: Ian Lance Taylor <iant at google dot com>
- Cc: Rich Felker <dalias at libc dot org>, Volodymyr Kuznetsov <vova dot kuznetsov at epfl dot ch>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Tue, 10 May 2016 14:48:58 +0200
- Subject: Re: SafeStack proposal in GCC
- Authentication-results: sourceware.org; auth=none
- References: <CAFA9rWPkb=eV0GhvFeOnd4pRVh=N3fSifYBwZjy9Ndh68BmBww at mail dot gmail dot com> <0d50f0ef01b24c25a79a6f18eaddfd6d at REXA dot intranet dot epfl dot ch> <CANL6WeqEwFYx2H-sv81K8CDFypiJ+ray+xPyRH+7kitTpD8bqw at mail dot gmail dot com> <20160507054212 dot GE21636 at brightrain dot aerifal dot cx> <CAKOQZ8zYdRgjsg0D5oVfXkkadzkyybKZn3nnG8RBs5hLNq7Neg at mail dot gmail dot com>
On Mon, 2016-05-09 at 12:25 -0700, Ian Lance Taylor wrote:
> On Fri, May 6, 2016 at 10:42 PM, Rich Felker <dalias@libc.org> wrote:
> >
> > The *context APIs are deprecated and I'm not sure they're worth
> > supporting with this. It would be a good excuse to get people to stop
> > using them.
>
> The gccgo library uses them, because there is no working alternative.
>
> In general coroutine support requires the ability to designate some
> area of memory as stack space.
That depends on the coroutine implementation. The Resumable Functions
proposal for C++ (http://wg21.link/p0057r3) does not require it, whereas
other implementations (called "stackful" in the ISO C++ discussions) do.
IMO, glibc would be the right place to support these because they can be
considered to be implementations of threads of execution that are
similar to POSIX threads but not quite the same.
In the glibc project, we've talked about such support (dubbed "libea"
derived from "execution agents", also a term from the C++ standard), but
haven't started work on it yet.