summaryrefslogtreecommitdiff
path: root/src/process/posix_spawnp.c
AgeCommit message (Collapse)AuthorLines
2018-09-12rework mechanism for posix_spawnp calling posix_spawnRich Felker-6/+4
previously, a common __posix_spawnx backend was used that accepted an additional argument for the execve variant to call in the child. this moderately bloated up the posix_spawn function, shuffling arguments between stack and/or registers to call a 7-argument function from a 6-argument one. instead, tuck the exec function pointer in an unused part of the (large) pthread_spawnattr_t structure, and have posix_spawnp duplicate the attributes and fill in a pointer to __execvpe. the net code size change is minimal, but the weight is shifted to the "heavier" function which already pulls in more dependencies. as a bonus, we get rid of an external symbol (__posix_spawnx) that had no really good place for a declaration because it shouldn't have existed to begin with.
2012-10-18fix parent-memory-clobber in posix_spawn (environ)Rich Felker-2/+4
2012-09-06use restrict everywhere it's required by c99 and/or posix 2008Rich Felker-5/+5
to deal with the fact that the public headers may be used with pre-c99 compilers, __restrict is used in place of restrict, and defined appropriately for any supported compiler. we also avoid the form [restrict] since older versions of gcc rejected it due to a bug in the original c99 standard, and instead use the form *restrict.
2011-09-13fix various errors in function signatures/prototypes found by nszRich Felker-2/+3
2011-05-28initial implementation of posix_spawnRich Felker-0/+14
file actions are not yet implemented, but everything else should be mostly complete and roughly correct.