Commit Graph

329 Commits

Author SHA1 Message Date
Dan Gohman
2625d9a286 Issue a #error if the host doesn't have an implementation for
GetMainExecutable yet.

llvm-svn: 113240
2010-09-07 18:26:49 +00:00
Dan Gohman
7abb8df743 Apply a patch from Kees van Reeuwijk to add support for Minix.
Minix apparently doesn't like double-slash separators, and there's
no apparent need for them here.

llvm-svn: 112844
2010-09-02 18:24:46 +00:00
Dan Gohman
5f2118dd6f Add an interface for unregistering a file from the FilesToRemove list.
llvm-svn: 112705
2010-09-01 14:17:34 +00:00
Anton Korobeynikov
1fa6799edc Some fixes for NetBSD
llvm-svn: 112662
2010-08-31 22:38:00 +00:00
Daniel Dunbar
093ad188e7 CrashRecovery/Darwin: On Darwin, raise sends a signal to the main thread instead
of the current thread. This has the unfortunate effect that assert() and abort()
will end up bypassing our crash recovery attempts. We work around this for
anything in the same linkage unit by just defining our own versions of the
assert handler and abort.

llvm-svn: 111583
2010-08-19 23:45:39 +00:00
Dan Gohman
227c4f64ac Eliminate unnecessary empty string literals.
llvm-svn: 110183
2010-08-04 01:39:08 +00:00
Owen Anderson
8769f9a8dd Add an erase() method to llvm::ThreadLocal.
llvm-svn: 109686
2010-07-28 22:49:43 +00:00
Duncan Sands
b0f45f192c Rather than using an ifdef on the target to zero out fields,
just use memset to zero the entire struct.

llvm-svn: 108330
2010-07-14 14:32:33 +00:00
Chris Lattner
a94ea82dac improve Path::makeUnique when mkstemp/mktemp are not available
patch by Lasse Kärkkäinen in PR7404.

llvm-svn: 108110
2010-07-12 00:09:55 +00:00
Chris Lattner
96566c78ef add some triple for minix, patch by Kees van Reeuwijk from PR7582
llvm-svn: 107785
2010-07-07 15:52:27 +00:00
Dan Gohman
b049874698 Factor out the handler work from SignalHandler into a helper function,
and change llvm::sys::RunInterruptHandlers to call that function directly
instead of calling SignalHandler, because the rest of SignalHandler
invokes side effects which aren't appropriate, including raising the
signal.

llvm-svn: 104896
2010-05-27 23:11:55 +00:00
Dan Gohman
31980d4fb9 Don't bother clearing the Magic string when the magic number
can't be read, since it isn't cleared on other error paths.

llvm-svn: 104852
2010-05-27 17:14:10 +00:00
Daniel Dunbar
1457d51ff8 Add llvm::sys::RunInterruptHandlers(), which runs the registered SIGINT cleanup
stuff.

llvm-svn: 103333
2010-05-08 02:10:34 +00:00
Dan Gohman
caa827af2c This doesn't need SmallVector.h anymore.
llvm-svn: 101790
2010-04-19 17:51:31 +00:00
Dan Gohman
ede59ecfbb Fix this for std::vectors which don't have .data().
llvm-svn: 101785
2010-04-19 16:33:28 +00:00
Dan Gohman
e2e1b9063a Fix -Wcast-qual warnings.
llvm-svn: 101782
2010-04-19 15:55:10 +00:00
Dan Gohman
735c177251 Revert 91528 and use a std::vector instead, fixing an abuse of std::string.
llvm-svn: 101781
2010-04-19 15:54:44 +00:00
Chris Lattner
746abd86e7 avoid temporary std::string in non posix_spawn path.
llvm-svn: 101723
2010-04-18 17:34:10 +00:00
Benjamin Kramer
2cade0b3ff Eliminate temporary string.
llvm-svn: 101711
2010-04-18 09:19:41 +00:00
Benjamin Kramer
6f6354213f Properly inherit the environment on darwin where environ is not available for shared libraries.
llvm-svn: 101710
2010-04-18 09:16:04 +00:00
Nick Lewycky
152b2bc046 This is horrible. Split the difference, and declare 'environ' on all non-Darwin
platforms to unbreak the darwin and linux builds. The BSD folks should feel
free to change the #if, if this breaks them.

llvm-svn: 101703
2010-04-18 07:07:48 +00:00
Nick Lewycky
459afe3cce Revert r101701, Darwin doesn't have 'environ'. Go figure.
llvm-svn: 101702
2010-04-18 06:44:21 +00:00
Nick Lewycky
2b694c49bb Fix linux build. posix_spawn doesn't inherit the environment by default.
llvm-svn: 101701
2010-04-18 06:22:26 +00:00
Chris Lattner
22b58ac393 make Program::Execute use posix_spawn on systems that support it,
as it is more efficient than fork/exec.

Thanks to Eric for adding the autoconf check.  It would be nice if
a cmake guru could add a cmake check for posix_spawn as well.

llvm-svn: 101693
2010-04-18 04:14:37 +00:00
Chris Lattner
bb78eb4d82 improve haiku portability, patch by Paul Davey.
llvm-svn: 100933
2010-04-10 17:54:51 +00:00
Dan Gohman
4bdd10c6df Fix a grammaro.
llvm-svn: 99917
2010-03-30 20:04:57 +00:00
Chris Lattner
be06cb7f99 remove a constructor implementation that isn't declared
in the header.  How can both clang and gcc accept this?

PR6703

llvm-svn: 99658
2010-03-26 22:17:24 +00:00
Jeffrey Yasskin
58964f4bee Fix a false-positive memory leak in code using RemoveFileOnSignal(). Because
libstdc++'s std::string class points to the interior of an allocation, valgrind
reports strings still alive at program termination as possible leaks.  I didn't
use a ManagedStatic for this because System can't depend on Support.

llvm-svn: 98716
2010-03-17 07:08:12 +00:00
Chris Lattner
aa217407b9 don't forget to close a FD on an error condition, found by
cppcheck, PR6617.  Patch by Ettl Martin!

llvm-svn: 98525
2010-03-14 23:16:45 +00:00
Chris Lattner
42c8f96141 follow-on to PR6280
llvm-svn: 96172
2010-02-14 18:20:09 +00:00
Chris Lattner
f6aca786be improve support for minix, PR6280, patch by
Kees van Reeuwijk!

llvm-svn: 95946
2010-02-12 00:37:46 +00:00
Douglas Gregor
1fcfb8e183 Add llvm::Program::ChangeStderrToBinary().
llvm-svn: 94743
2010-01-28 06:42:08 +00:00
Torok Edwin
46925cc515 Fix TimeValue::now() on Unix.
TimeValue()::now().toEpochTime() is supposed to be the same as time(),
but it wasn't, because toEpoch subtracted PosixZeroTime, but now()
didn't add PosixZeroTime!
Add a unittest to check this works.

llvm-svn: 94178
2010-01-22 15:51:31 +00:00
Nuno Lopes
6abe311a0f move a few more symbols to .rodata
llvm-svn: 92011
2009-12-23 17:48:10 +00:00
Jeffrey Yasskin
d43aca2c4d Make Path use StringRef instead of std::string where possible.
llvm-svn: 91620
2009-12-17 21:02:39 +00:00
Chris Lattner
9581391002 remove use of SmallVector from Path::makeUnique. Path::makeUnique
is not used by anything performance sensitive, so just use std::string.

llvm-svn: 91528
2009-12-16 08:40:44 +00:00
Chris Lattner
4b57931af3 eliminate an extraneous use of SmallVector in a case where
a fixed size buffer is perfectly fine.

llvm-svn: 91527
2009-12-16 08:35:54 +00:00
Daniel Dunbar
3d073e0978 Remove spurious extern.
llvm-svn: 90937
2009-12-09 03:26:33 +00:00
Benjamin Kramer
34f2bcd0ae Remove dead returns.
llvm-svn: 90083
2009-11-29 17:42:58 +00:00
Kovarththanan Rajaratnam
435a9894a7 This patch ensures that Path::GetMainExecutable is able to handle the
case where realpath() fails. When this occurs we segfault trying to
create a std::string from a NULL pointer.

Fixes PR5635.

llvm-svn: 90082
2009-11-29 17:19:48 +00:00
Edward O'Callaghan
43864a3136 API change Path::isSpecialFile to Path::isRegularFile, improve semantics in regards to comments from 89765 post review.
llvm-svn: 89848
2009-11-25 06:32:19 +00:00
Daniel Dunbar
740136a956 Remove bogus error handling code.
llvm-svn: 89786
2009-11-24 19:03:33 +00:00
Edward O'Callaghan
69ba53657a Provide Path::isSpecialFile interface for PR5568.
llvm-svn: 89765
2009-11-24 15:19:10 +00:00
Duncan Sands
de498ef6ec Revert commit 81144, and add a comment. It caused bugpoint timeouts
not to work any more on linux.

llvm-svn: 86481
2009-11-08 20:55:48 +00:00
Edward O'Callaghan
ad76c7541b Fix malloc.h is deprecated warning on DragonFly BSD.
llvm-svn: 85782
2009-11-02 03:20:57 +00:00
Dan Gohman
84554e8eb2 Most stack straces don't need 3 digits worth of levels.
llvm-svn: 85575
2009-10-30 02:45:10 +00:00
Chandler Carruth
766362c707 Move DataTypes.h to include/llvm/System, update all users. This breaks the last
direct inclusion edge from System to Support.

llvm-svn: 85086
2009-10-26 01:35:46 +00:00
Ted Kremenek
b9ff937285 Use 'waitpid' instead of 'wait'. Basing Program::Wait() on 'wait()' prevents it being correct within a multithreaded context.
This address: PR 5277 (Program::Wait is unsafe to call from multiple threads).

Note: If waitpid() turns out to be non-portable, we can add more autoconf magic, or look into
another solution.

llvm-svn: 84903
2009-10-22 22:16:17 +00:00
Edward O'Callaghan
00f4a355eb Haiku porting patches, Credit to Paul Davey.
llvm-svn: 83823
2009-10-12 04:57:20 +00:00
Daniel Dunbar
badca39b69 Revert "Get rid of GetProcessId in Win32/Program.inc.", this breaks
ExecuteAndWait.

llvm-svn: 82522
2009-09-22 04:44:56 +00:00