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 _______________________________________________ Toybox mailing list Toybox@lists.landley.net http://lists.landley.net/listinfo.cgi/toybox-landley.net