[Toybox] fun with vfork
Rob Landley
rob at landley.net
Wed Oct 12 17:49:49 PDT 2016
On 10/11/2016 12:04 PM, Josh Gao wrote:
> Do you have vfork tagged with __attribute__((returns_twice))? AFAIK,
> that's the incantation to get gcc to do the right thing for setjmpy
> functions.
Do I have it tagged, or do you mean does glibc? (I didn't implement
vfork, it came with libc.) Let's see, grep says glibc in Ubuntu 14.04
just has:
/usr/include/unistd.h:extern __pid_t vfork (void) __THROW;
And checking musl...
pid_t vfork(void);
In fact grep -r returns_twice is not finding any instances of it under
/usr/include or under the musl source dir.
So... no? I think? Is there a way _I_ can tag this? (I can't do my own
vfork prototype because I can't #undef the one I get out of unistd.h and
that's a fairly generic header. It's sad I can't redo function
prototypes after the fact, but the language never gave me a way to.
Maybe I could do a gratuitous wrapper around it?)
How does setjmp() itself do this...
/usr/include/setjmp.h:extern int setjmp (jmp_buf __env) __THROWNL;
And sys/cdefs.h #defines __THROWNL as nothing for non-c++ builds.
Rob
More information about the Toybox
mailing list