Commit Graph

16 Commits

Author SHA1 Message Date
Brendan Shanks
7ab022f6e6 libiberty: Use posix_spawn in pex-unix when available.
Hi,

This patch implements pex_unix_exec_child using posix_spawn when
available.

This should especially benefit recent macOS (where vfork just calls
fork), but should have equivalent or faster performance on all
platforms.
In addition, the implementation is substantially simpler than the
vfork+exec code path.

Tested on x86_64-linux.

v2: Fix error handling (previously the function would be run twice in
case of error), and don't use a macro that changes control flow.

v3: Match file style for error-handling blocks, don't close
in/out/errdes on error, and check close() for errors.

libiberty/
	* configure.ac (AC_CHECK_HEADERS): Add spawn.h.
	(checkfuncs): Add posix_spawn, posix_spawnp.
	(AC_CHECK_FUNCS): Add posix_spawn, posix_spawnp.
	* aclocal.m4, configure, config.in: Rebuild.
	* pex-unix.c [HAVE_POSIX_SPAWN] (pex_unix_exec_child): New function.
2025-01-16 21:32:27 -05:00
waddlesplash
a2d83d7eeb Import GCC 11.2. 2021-12-06 21:18:24 +00:00
Augustin Cavalier
b0a6bed08c Import GCC 8.3. 2019-05-23 17:48:23 -04:00
Alexander von Gluck IV
3d544ab266 import gcc 7.3.0 2018-03-19 15:34:23 -05:00
Jérôme Duval
f8056f83f7 import gcc 5.3.0 2016-02-29 10:41:25 +01:00
Jérôme Duval
3793707eda import gcc 4.8.1 2013-06-05 18:35:38 +02:00
Jérôme Duval
e9f3433e73 import gcc 4.7.3 2013-04-23 18:39:47 +02:00
Jérôme Duval
0a01235971 import of gcc 4.6.2 (core and g++ only). 2012-01-07 16:48:31 +01:00
Jérôme Duval
44943b14a0 Merging GCC 4.5.3 in trunk. Patch in #6840 is required to build Haiku.
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@42247 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-19 17:36:26 +00:00
Jérôme Duval
5904152eeb Merging GCC 4.4.4 in trunk.
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@37371 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-07-03 11:11:20 +00:00
Michael Lotz
a84f174425 Bring GCC 4.3.3 to trunk.
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@29033 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-26 05:03:14 +00:00
Michael Lotz
c5e4f0dd64 Removing previous GCC4 to have a clean base.
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@29032 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-26 05:02:39 +00:00
Ingo Weinhold
18ca835d6d Merged in the changes to version 4.1.2.
* Solved conflicts with the libtool related files by simply using the
  vendor versions. IIRC the haiku related changes to libtool and
  autoconf were relevant only for the binutils.
* Solved {libstdc++-v3,libmudflap}/configure conflicts by re-running
  autoconf for these directories.

I'm already working on fixing the Haiku build, so please don't do the
same.


git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@20318 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-04 04:07:35 +00:00
Ingo Weinhold
e6c8d025f2 Renamed gcc4 to gcc.
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@15082 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-22 22:43:43 +00:00
Ingo Weinhold
9ea2a99edb Moved the old gcc to its new home.
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@15071 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-22 15:53:32 +00:00
Oliver Tappe
346d84c900 Initial revision
git-svn-id: file:///srv/svn/repos/haiku/trunk/buildtools@9577 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-28 18:13:23 +00:00